[Home] [Help]
PACKAGE BODY: APPS.XLA_00200_AAD_S_000011_PKG
Source
1 PACKAGE BODY XLA_00200_AAD_S_000011_PKG AS
2 --
3 /*======================================================================+
4 | Copyright (c) 1997 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | Package Name |
9 | XLA_00200_AAD_S_000011_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Cash Basis |
14 | Code : CASH |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 05:03:36 by user ANONYMOUS |
20 +=======================================================================*/
21 --
22 --
23 TYPE t_rec_array_event IS RECORD
24 (array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
25 ,array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
26 ,array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
27 ,array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
28 ,array_event_id xla_number_array_type --XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
29 ,array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
30 ,array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
31 ,array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
32 ,array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
33 ,array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
34 ,array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
35 ,array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
36 ,array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
37 ,array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
38 ,array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
39 ,array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
40 ,array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
41 ,array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
42 ,array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
43 ,array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
44 ,array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
45 ,array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L
46 );
47 --
48 type t_array_value_num is table of number index by varchar2(30);
49 type t_array_value_char is table of varchar2(240) index by varchar2(30);
50 type t_array_value_date is table of date index by varchar2(30);
51
52 type t_rec_value is record
53 (array_value_num t_array_value_num
54 ,array_value_char t_array_value_char
55 ,array_value_date t_array_value_date);
56
57 type t_array_event is table of t_rec_value index by binary_integer;
58
59 g_array_event t_array_event;
60
61 --=============================================================================
62 -- *********** Diagnostics **********
63 --=============================================================================
64
65 g_diagnostics_mode VARCHAR2(1);
66 g_last_hdr_idx NUMBER; -- 4262811 MPA
67 g_hdr_extract_count PLS_INTEGER;
68
69 --=============================================================================
70 -- *********** Local Trace Routine **********
71 --=============================================================================
72
73 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
74 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
75 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
76 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
77 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
78 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
79
80 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
81 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_00200_AAD_S_000011_PKG';
82
83 C_CHAR CONSTANT VARCHAR2(30) := fnd_global.local_chr(12); -- 4219869 Business flow
84 C_NUM CONSTANT NUMBER := 9.99E125; -- 4219869 Business flow
85
86 g_log_level NUMBER;
87 g_log_enabled BOOLEAN;
88
89 PROCEDURE trace
90 (p_msg IN VARCHAR2
91 ,p_level IN NUMBER
92 ,p_module IN VARCHAR2 ) IS
93 BEGIN
94 ----------------------------------------------------------------------------
95 -- Following is for FND log.
96 ----------------------------------------------------------------------------
97 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
98 fnd_log.message(p_level, p_module);
99 ELSIF p_level >= g_log_level THEN
100 fnd_log.string(p_level, p_module, p_msg);
101 END IF;
102
103 EXCEPTION
104 WHEN xla_exceptions_pkg.application_exception THEN
105 RAISE;
106 WHEN OTHERS THEN
107 xla_exceptions_pkg.raise_message
108 (p_location => 'XLA_00200_AAD_S_000011_PKG.trace');
109 END trace;
110
111 --
112 --+============================================+
113 --| |
114 --| PRIVATE PROCEDURES/FUNCTIONS |
115 --| |
116 --+============================================+
117 --
118
119 --
120 /*======================================================================+
121 | |
122 | Private Function |
123 | ValidateLookupMeaning |
124 | |
125 +======================================================================*/
126 FUNCTION ValidateLookupMeaning(
127 p_meaning IN VARCHAR2
128 , p_lookup_code IN VARCHAR2
129 , p_lookup_type IN VARCHAR2
130 , p_source_code IN VARCHAR2
131 , p_source_type_code IN VARCHAR2
132 , p_source_application_id IN INTEGER
133 )
134 RETURN VARCHAR2
135 IS
136 l_log_module VARCHAR2(240);
137 BEGIN
138 IF g_log_enabled THEN
139 l_log_module := C_DEFAULT_MODULE||'.ValidateLookupMeaning';
140 END IF;
141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142 trace
143 (p_msg => 'BEGIN of ValidateLookupMeaning'
144 ,p_level => C_LEVEL_PROCEDURE
145 ,p_module => l_log_module);
146 END IF;
147 --
148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
149 trace
150 (p_msg => 'p_source_code = '|| p_source_code||
151 ' - p_source_type_code = '|| p_source_type_code||
152 ' - p_source_application_id = '|| p_source_application_id||
153 ' - p_lookup_code = '|| p_lookup_code||
154 ' - p_lookup_type = '|| p_lookup_type||
155 ' - p_meaning = '|| p_meaning
156 ,p_level => C_LEVEL_PROCEDURE
157 ,p_module => l_log_module);
158
159 END IF;
160
161 IF p_lookup_code IS NOT NULL AND p_meaning IS NULL THEN
162 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
163 xla_accounting_err_pkg. build_message
164 (p_appli_s_name => 'XLA'
165 ,p_msg_name => 'XLA_AP_NO_LOOKUP_MEANING'
166 ,p_token_1 => 'SOURCE_NAME'
167 ,p_value_1 => xla_ae_sources_pkg.GetSourceName(
168 p_source_code
169 , p_source_type_code
170 , p_source_application_id
171 )
172 ,p_token_2 => 'LOOKUP_CODE'
173 ,p_value_2 => p_lookup_code
174 ,p_token_3 => 'LOOKUP_TYPE'
175 ,p_value_3 => p_lookup_type
176 ,p_token_4 => 'PRODUCT_NAME'
177 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
179 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
180 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
181 );
182
183 IF (C_LEVEL_ERROR >= g_log_level) THEN
184 trace
185 (p_msg => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
186 ,p_level => C_LEVEL_ERROR
187 ,p_module => l_log_module);
188 END IF;
189 END IF;
190
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192 trace
193 (p_msg => 'END of ValidateLookupMeaning'
194 ,p_level => C_LEVEL_PROCEDURE
195 ,p_module => l_log_module);
196 END IF;
197 RETURN p_meaning;
198 EXCEPTION
199 WHEN xla_exceptions_pkg.application_exception THEN
200 RETURN p_meaning;
201 WHEN OTHERS THEN
202 xla_exceptions_pkg.raise_message
203 (p_location => 'XLA_00200_AAD_S_000011_PKG.ValidateLookupMeaning');
204 --
205 END ValidateLookupMeaning;
206 --
207 --
208
209 FUNCTION GetMeaning (
210 p_flex_value_set_id IN INTEGER
211 , p_flex_value IN VARCHAR2
212 , p_source_code IN VARCHAR2
213 , p_source_type_code IN VARCHAR2
214 , p_source_application_id IN INTEGER
215 )
216 RETURN VARCHAR2
217 IS
218 BEGIN
219 --
220 RETURN NULL ;
221 --
222 EXCEPTION
223 WHEN xla_exceptions_pkg.application_exception THEN
224 RAISE;
225 WHEN OTHERS THEN
226 xla_exceptions_pkg.raise_message
227 (p_location => 'XLA_00200_AAD_S_000011_PKG.GetMeaning');
228 END GetMeaning;
229 --
230
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 -- Description_1
235 --
236 ---------------------------------------
237 FUNCTION Description_1 (
238 p_application_id IN NUMBER
239 , p_ae_header_id IN NUMBER DEFAULT NULL
240 --Invoice Number
241 , p_source_2 IN VARCHAR2
242 --Invoice Date
243 , p_source_3 IN DATE
244 --Invoice Document Sequence Category
245 , p_source_4 IN VARCHAR2
246 --Document Sequence Name
247 , p_source_5 IN VARCHAR2
248 --Invoice Voucher Number from Sequential Numbering
249 , p_source_6 IN NUMBER
250 --Invoice Description
251 , p_source_7 IN VARCHAR2
252 )
253 RETURN VARCHAR2
254 IS
255 l_component_type VARCHAR2(80) ;
256 l_component_code VARCHAR2(30) ;
257 l_component_type_code VARCHAR2(1) ;
258 l_component_appl_id INTEGER ;
259 l_amb_context_code VARCHAR2(30) ;
260 l_ledger_language VARCHAR2(30) ;
261 l_source VARCHAR2(1996) ;
262 l_description VARCHAR2(2000) ;
263 l_log_module VARCHAR2(240) ;
264 BEGIN
265 IF g_log_enabled THEN
266 l_log_module := C_DEFAULT_MODULE||'.Description_1';
267 END IF;
268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
269 trace
270 (p_msg => 'BEGIN of Description_1'
271 ,p_level => C_LEVEL_PROCEDURE
272 ,p_module => l_log_module);
273 END IF;
274
275 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
276 l_component_type := 'AMB_DESCRIPTION';
277 l_component_code := 'JE_INV_HEADER _DESC';
278 l_component_type_code := 'S';
279 l_component_appl_id := 200;
280 l_amb_context_code := 'DEFAULT';
281 l_source := NULL;
282 l_description := NULL;
283
284
285 IF p_source_6 IS NOT NULL
286 THEN
287
288 l_source := SUBSTR(
289 xla_ae_sources_pkg.GetSystemSourceChar(
290 p_source_code => 'XLA_EVENT_TYPE_NAME'
291 , p_source_type_code => 'Y'
292 , p_source_application_id => 602
293 ),1,1996);
294 IF l_source IS NOT NULL THEN
295 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
296 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
297 END IF;
298 IF
299 l_ledger_language = 'US' THEN
300 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
301 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
302 END IF;
303 IF
304 l_ledger_language = 'US' THEN
305 l_description := SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
306 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
307 END IF;
308 l_source := SUBSTR(p_source_2,1,1996);
309 IF l_source IS NOT NULL THEN
310 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
311 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
312 END IF;
313 IF
314 l_ledger_language = 'US' THEN
315 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
316 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
317 END IF;
318 IF
319 l_ledger_language = 'US' THEN
320 l_description := SUBSTR(CONCAT(l_description,'Date:'),1,2000);
321 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
322 END IF;
323 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_3,
324 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
325 IF l_source IS NOT NULL THEN
326 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
327 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
328 END IF;
329 IF
330 l_ledger_language = 'US' THEN
331 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
332 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
333 END IF;
334 IF
335 l_ledger_language = 'US' THEN
339 l_source := SUBSTR(p_source_4,1,1996);
336 l_description := SUBSTR(CONCAT(l_description,'Document Sequence Category:'),1,2000);
337 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
338 END IF;
340 IF l_source IS NOT NULL THEN
341 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
342 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
343 END IF;
344 IF
345 l_ledger_language = 'US' THEN
346 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
347 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
348 END IF;
349 IF
350 l_ledger_language = 'US' THEN
351 l_description := SUBSTR(CONCAT(l_description,'Document Sequence Name:'),1,2000);
352 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
353 END IF;
354 l_source := SUBSTR(p_source_5,1,1996);
355 IF l_source IS NOT NULL THEN
356 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
357 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
358 END IF;
359 IF
360 l_ledger_language = 'US' THEN
361 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
362 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
363 END IF;
364 IF
365 l_ledger_language = 'US' THEN
366 l_description := SUBSTR(CONCAT(l_description,'Invoice Voucher Number:'),1,2000);
367 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
368 END IF;
369 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
370 IF l_source IS NOT NULL THEN
371 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
372 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
373 END IF;
374 IF
375 l_ledger_language = 'US' THEN
376 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
377 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
378 END IF;
379 IF
380 l_ledger_language = 'US' THEN
381 l_description := SUBSTR(CONCAT(l_description,'Invoice Description:'),1,2000);
382 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
383 END IF;
384 l_source := SUBSTR(p_source_7,1,1996);
385 IF l_source IS NOT NULL THEN
386 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
387 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
388 END IF;
389 l_description := SUBSTR(l_description,1,1996);
390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
391 trace
392 (p_msg => 'END of Description_1'
393 ,p_level => C_LEVEL_PROCEDURE
394 ,p_module => l_log_module);
395
396 END IF;
397 RETURN l_description;
398
399 ELSIF p_source_6 IS NULL
400 THEN
401
402 l_source := SUBSTR(
403 xla_ae_sources_pkg.GetSystemSourceChar(
404 p_source_code => 'XLA_EVENT_TYPE_NAME'
405 , p_source_type_code => 'Y'
406 , p_source_application_id => 602
407 ),1,1996);
408 IF l_source IS NOT NULL THEN
409 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
410 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
411 END IF;
412 IF
413 l_ledger_language = 'US' THEN
414 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
415 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
416 END IF;
417 IF
418 l_ledger_language = 'US' THEN
419 l_description := SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
420 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
421 END IF;
422 l_source := SUBSTR(p_source_2,1,1996);
423 IF l_source IS NOT NULL THEN
424 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
425 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
426 END IF;
427 IF
428 l_ledger_language = 'US' THEN
429 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
430 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
431 END IF;
432 IF
433 l_ledger_language = 'US' THEN
434 l_description := SUBSTR(CONCAT(l_description,'Invoice Date:'),1,2000);
435 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
436 END IF;
437 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_3,
438 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
439 IF l_source IS NOT NULL THEN
440 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
441 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
442 END IF;
443 IF
444 l_ledger_language = 'US' THEN
445 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
446 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
447 END IF;
448 IF
449 l_ledger_language = 'US' THEN
450 l_description := SUBSTR(CONCAT(l_description,'Invoice Description:'),1,2000);
451 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
452 END IF;
453 l_source := SUBSTR(p_source_7,1,1996);
454 IF l_source IS NOT NULL THEN
455 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
456 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
457 END IF;
458 l_description := SUBSTR(l_description,1,1996);
459 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
460 trace
464
461 (p_msg => 'END of Description_1'
462 ,p_level => C_LEVEL_PROCEDURE
463 ,p_module => l_log_module);
465 END IF;
466 RETURN l_description;
467
468 END IF;
469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
470 trace
471 (p_msg => 'END of Description_1'
472 ,p_level => C_LEVEL_PROCEDURE
473 ,p_module => l_log_module);
474 END IF;
475 RETURN NULL;
476 EXCEPTION
477 WHEN VALUE_ERROR THEN
478 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
479 trace
480 (p_msg => 'ERROR: '||sqlerrm
481 ,p_level => C_LEVEL_EXCEPTION
482 ,p_module => l_log_module);
483 END IF;
484 RAISE;
485 WHEN xla_exceptions_pkg.application_exception THEN
486 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
487 trace
488 (p_msg => 'ERROR: '||sqlerrm
489 ,p_level => C_LEVEL_EXCEPTION
490 ,p_module => l_log_module);
491 END IF;
492 RAISE;
493 WHEN OTHERS THEN
494 xla_exceptions_pkg.raise_message
495 (p_location => 'XLA_00200_AAD_S_000011_PKG.Description_1');
496 END Description_1;
497
498 ---------------------------------------
499 --
500 -- PRIVATE FUNCTION
501 -- Description_2
502 --
503 ---------------------------------------
504 FUNCTION Description_2 (
505 p_application_id IN NUMBER
506 , p_ae_header_id IN NUMBER DEFAULT NULL
507 --Document Sequence Name
508 , p_source_5 IN VARCHAR2
509 --Payment Document Voucher Number
510 , p_source_8 IN NUMBER
511 --Payment Transaction Number
512 , p_source_9 IN NUMBER
513 --Payment Document Date
514 , p_source_10 IN DATE
515 --Bank Account Name
516 , p_source_11 IN VARCHAR2
517 --Payment Currency Code
518 , p_source_12 IN VARCHAR2
519 )
520 RETURN VARCHAR2
521 IS
522 l_component_type VARCHAR2(80) ;
523 l_component_code VARCHAR2(30) ;
524 l_component_type_code VARCHAR2(1) ;
525 l_component_appl_id INTEGER ;
526 l_amb_context_code VARCHAR2(30) ;
527 l_ledger_language VARCHAR2(30) ;
528 l_source VARCHAR2(1996) ;
529 l_description VARCHAR2(2000) ;
530 l_log_module VARCHAR2(240) ;
531 BEGIN
532 IF g_log_enabled THEN
533 l_log_module := C_DEFAULT_MODULE||'.Description_2';
534 END IF;
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536 trace
537 (p_msg => 'BEGIN of Description_2'
538 ,p_level => C_LEVEL_PROCEDURE
539 ,p_module => l_log_module);
540 END IF;
541
542 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
543 l_component_type := 'AMB_DESCRIPTION';
544 l_component_code := 'JE_PAYMENT_HEADER_DESC';
545 l_component_type_code := 'S';
546 l_component_appl_id := 200;
547 l_amb_context_code := 'DEFAULT';
548 l_source := NULL;
549 l_description := NULL;
550
551
552 IF p_source_8 IS NOT NULL
553 THEN
554
555 l_source := SUBSTR(
556 xla_ae_sources_pkg.GetSystemSourceChar(
557 p_source_code => 'XLA_EVENT_TYPE_NAME'
558 , p_source_type_code => 'Y'
559 , p_source_application_id => 602
560 ),1,1996);
561 IF l_source IS NOT NULL THEN
562 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
563 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
564 END IF;
565 IF
566 l_ledger_language = 'US' THEN
567 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
568 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
569 END IF;
570 IF
571 l_ledger_language = 'US' THEN
572 l_description := SUBSTR(CONCAT(l_description,'Payment Document Sequence Name:'),1,2000);
573 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
574 END IF;
575 l_source := SUBSTR(p_source_5,1,1996);
576 IF l_source IS NOT NULL THEN
577 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
578 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
579 END IF;
580 IF
581 l_ledger_language = 'US' THEN
582 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
583 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
584 END IF;
585 IF
586 l_ledger_language = 'US' THEN
587 l_description := SUBSTR(CONCAT(l_description,'Payment Document Sequence Number:'),1,2000);
588 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
589 END IF;
590 l_source := SUBSTR(TO_CHAR(p_source_8),1,1996);
591 IF l_source IS NOT NULL THEN
592 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
593 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
594 END IF;
595 IF
596 l_ledger_language = 'US' THEN
597 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
598 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
599 END IF;
600 IF
601 l_ledger_language = 'US' THEN
602 l_description := SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
606 IF l_source IS NOT NULL THEN
603 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
604 END IF;
605 l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
607 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
608 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
609 END IF;
610 IF
611 l_ledger_language = 'US' THEN
612 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
613 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
614 END IF;
615 IF
616 l_ledger_language = 'US' THEN
617 l_description := SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
618 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
619 END IF;
620 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_10,
621 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
622 IF l_source IS NOT NULL THEN
623 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
624 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
625 END IF;
626 IF
627 l_ledger_language = 'US' THEN
628 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
629 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
630 END IF;
631 IF
632 l_ledger_language = 'US' THEN
633 l_description := SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
634 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
635 END IF;
636 l_source := SUBSTR(p_source_11,1,1996);
637 IF l_source IS NOT NULL THEN
638 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
639 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
640 END IF;
641 IF
642 l_ledger_language = 'US' THEN
643 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
644 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
645 END IF;
646 IF
647 l_ledger_language = 'US' THEN
648 l_description := SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
649 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
650 END IF;
651 l_source := SUBSTR(p_source_12,1,1996);
652 IF l_source IS NOT NULL THEN
653 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
654 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
655 END IF;
656 l_description := SUBSTR(l_description,1,1996);
657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
658 trace
659 (p_msg => 'END of Description_2'
660 ,p_level => C_LEVEL_PROCEDURE
661 ,p_module => l_log_module);
662
663 END IF;
664 RETURN l_description;
665
666 ELSIF p_source_8 IS NULL
667 THEN
668
669 l_source := SUBSTR(
670 xla_ae_sources_pkg.GetSystemSourceChar(
671 p_source_code => 'XLA_EVENT_TYPE_NAME'
672 , p_source_type_code => 'Y'
673 , p_source_application_id => 602
674 ),1,1996);
675 IF l_source IS NOT NULL THEN
676 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
677 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
678 END IF;
679 IF
680 l_ledger_language = 'US' THEN
681 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
682 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
683 END IF;
684 IF
685 l_ledger_language = 'US' THEN
686 l_description := SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
687 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
688 END IF;
689 l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
690 IF l_source IS NOT NULL THEN
691 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
692 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
693 END IF;
694 IF
695 l_ledger_language = 'US' THEN
696 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
697 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
698 END IF;
699 IF
700 l_ledger_language = 'US' THEN
701 l_description := SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
702 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
703 END IF;
704 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_10,
705 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
706 IF l_source IS NOT NULL THEN
707 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
708 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
709 END IF;
710 IF
711 l_ledger_language = 'US' THEN
712 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
713 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
714 END IF;
715 IF
716 l_ledger_language = 'US' THEN
717 l_description := SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
718 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
719 END IF;
720 l_source := SUBSTR(p_source_11,1,1996);
721 IF l_source IS NOT NULL THEN
722 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
723 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
724 END IF;
725 IF
726 l_ledger_language = 'US' THEN
727 l_description := SUBSTR(CONCAT(l_description,','),1,2000);
728 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
732 l_description := SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
729 END IF;
730 IF
731 l_ledger_language = 'US' THEN
733 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
734 END IF;
735 l_source := SUBSTR(p_source_12,1,1996);
736 IF l_source IS NOT NULL THEN
737 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
738 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
739 END IF;
740 l_description := SUBSTR(l_description,1,1996);
741 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
742 trace
743 (p_msg => 'END of Description_2'
744 ,p_level => C_LEVEL_PROCEDURE
745 ,p_module => l_log_module);
746
747 END IF;
748 RETURN l_description;
749
750 END IF;
751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
752 trace
753 (p_msg => 'END of Description_2'
754 ,p_level => C_LEVEL_PROCEDURE
755 ,p_module => l_log_module);
756 END IF;
757 RETURN NULL;
758 EXCEPTION
759 WHEN VALUE_ERROR THEN
760 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
761 trace
762 (p_msg => 'ERROR: '||sqlerrm
763 ,p_level => C_LEVEL_EXCEPTION
764 ,p_module => l_log_module);
765 END IF;
766 RAISE;
767 WHEN xla_exceptions_pkg.application_exception THEN
768 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
769 trace
770 (p_msg => 'ERROR: '||sqlerrm
771 ,p_level => C_LEVEL_EXCEPTION
772 ,p_module => l_log_module);
773 END IF;
774 RAISE;
775 WHEN OTHERS THEN
776 xla_exceptions_pkg.raise_message
777 (p_location => 'XLA_00200_AAD_S_000011_PKG.Description_2');
778 END Description_2;
779
780 ---------------------------------------
781 --
782 -- PRIVATE FUNCTION
783 -- AcctDerRule_3
784 --
785 ---------------------------------------
786 FUNCTION AcctDerRule_3 (
787 p_application_id IN NUMBER
788 , p_ae_header_id IN NUMBER
789 , p_side IN VARCHAR2
790 , p_override_seg_flag IN VARCHAR2
791 --Bank Cash Account
792 , p_source_13 IN NUMBER
793 , x_transaction_coa_id OUT NOCOPY NUMBER
794 , x_accounting_coa_id OUT NOCOPY NUMBER
795 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
796 , x_flex_value_set_id OUT NOCOPY NUMBER
797 , x_value_type_code OUT NOCOPY VARCHAR2
798 , x_value_combination_id OUT NOCOPY NUMBER
799 , x_value_segment_code OUT NOCOPY VARCHAR2
800 )
801 RETURN VARCHAR2
802 IS
803 l_component_type VARCHAR2(80) ;
804 l_component_code VARCHAR2(30) ;
805 l_component_type_code VARCHAR2(1) ;
806 l_component_appl_id INTEGER ;
807 l_amb_context_code VARCHAR2(30) ;
808 l_log_module VARCHAR2(240) ;
809 l_output_value VARCHAR2(30) ;
810 BEGIN
811 IF g_log_enabled THEN
812 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
813 END IF;
814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
815
816 trace
817 (p_msg => 'BEGIN of AcctDerRule_3'
818 ,p_level => C_LEVEL_PROCEDURE
819 ,p_module => l_log_module);
820
821 END IF;
822
823 l_component_type := 'AMB_ADR';
824 l_component_code := 'AP_CASH_NATURAL_ACCT_SEG';
825 l_component_type_code := 'S';
826 l_component_appl_id := 200;
827 l_amb_context_code := 'DEFAULT';
828 x_transaction_coa_id := null;
829 x_accounting_coa_id := null;
830 x_flexfield_segment_code := 'GL_ACCOUNT';
831 x_flex_value_set_id := null ;
832
833
834 --
835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
836
837 trace
838 (p_msg => 'END of AcctDerRule_3'
839 ,p_level => C_LEVEL_PROCEDURE
840 ,p_module => l_log_module);
841
842 END IF;
843 x_value_combination_id := TO_NUMBER(p_source_13) ;
844 x_value_segment_code := 'GL_ACCOUNT' ;
845 x_value_type_code := 'S';
846 l_output_value := null;
847 RETURN l_output_value;
848
849
850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
851
852 trace
853 (p_msg => 'END of AcctDerRule_3(invalid)'
854 ,p_level => C_LEVEL_PROCEDURE
855 ,p_module => l_log_module);
856
857 END IF;
858
859 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
860 x_value_combination_id := null;
861 x_value_segment_code := null;
862 x_value_type_code := null;
863 l_output_value := null;
864 xla_accounting_err_pkg.build_message
865 (p_appli_s_name => 'XLA'
866 ,p_msg_name => 'XLA_AP_INVALID_ADR'
867 ,p_token_1 => 'COMPONENT_NAME'
868 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
869 l_component_type
870 , l_component_code
871 , l_component_type_code
875 ,p_token_2 => 'OWNER'
872 , l_component_appl_id
873 , l_amb_context_code
874 )
876 ,p_value_2 => xla_lookups_pkg.get_meaning(
877 'XLA_OWNER_TYPE'
878 ,l_component_type_code
879 )
880 ,p_token_3 => 'PAD_NAME'
881 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
882 ,p_token_4 => 'PAD_OWNER'
883 ,p_value_4 => xla_lookups_pkg.get_meaning(
884 'XLA_OWNER_TYPE'
885 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
886 )
887 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
888 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
889 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
890 ,p_ae_header_id => NULL
891 );
892 RETURN l_output_value;
893 EXCEPTION
894 WHEN xla_exceptions_pkg.application_exception THEN
895 RAISE;
896 WHEN OTHERS THEN
897 xla_exceptions_pkg.raise_message
898 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_3');
899 END AcctDerRule_3;
900 --
901
902 ---------------------------------------
903 --
904 -- PRIVATE FUNCTION
905 -- AcctDerRule_4
906 --
907 ---------------------------------------
908 FUNCTION AcctDerRule_4 (
909 p_application_id IN NUMBER
910 , p_ae_header_id IN NUMBER
911 , p_side IN VARCHAR2
912 , p_override_seg_flag IN VARCHAR2
913 --System Discount Account
914 , p_source_14 IN NUMBER
915 --Discount Distribution Method
916 , p_source_15 IN VARCHAR2
917 , p_source_15_meaning IN VARCHAR2
918 --Automatic Offsets Value
919 , p_source_16 IN VARCHAR2
920 , p_source_16_meaning IN VARCHAR2
921 , x_transaction_coa_id OUT NOCOPY NUMBER
922 , x_accounting_coa_id OUT NOCOPY NUMBER
923 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
924 , x_flex_value_set_id OUT NOCOPY NUMBER
925 , x_value_type_code OUT NOCOPY VARCHAR2
926 , x_value_combination_id OUT NOCOPY NUMBER
927 , x_value_segment_code OUT NOCOPY VARCHAR2
928 )
929 RETURN VARCHAR2
930 IS
931 l_component_type VARCHAR2(80) ;
932 l_component_code VARCHAR2(30) ;
933 l_component_type_code VARCHAR2(1) ;
934 l_component_appl_id INTEGER ;
935 l_amb_context_code VARCHAR2(30) ;
936 l_log_module VARCHAR2(240) ;
937 l_output_value VARCHAR2(30) ;
938 BEGIN
939 IF g_log_enabled THEN
940 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
941 END IF;
942 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
943
944 trace
945 (p_msg => 'BEGIN of AcctDerRule_4'
946 ,p_level => C_LEVEL_PROCEDURE
947 ,p_module => l_log_module);
948
949 END IF;
950
951 l_component_type := 'AMB_ADR';
952 l_component_code := 'AP_DISCOUNT_NAT_ACCT_SEG';
953 l_component_type_code := 'S';
954 l_component_appl_id := 200;
955 l_amb_context_code := 'DEFAULT';
956 x_transaction_coa_id := null;
957 x_accounting_coa_id := null;
958 x_flexfield_segment_code := 'GL_ACCOUNT';
959 x_flex_value_set_id := null ;
960
961
962 IF NVL(p_source_15,'
963 ') = 'SYSTEM' AND
964 NVL(p_source_16,'
965 ') = 'ACCOUNT_SEGMENT_VALUE'
966 THEN
967 --
968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
969
970 trace
971 (p_msg => 'END of AcctDerRule_4'
972 ,p_level => C_LEVEL_PROCEDURE
973 ,p_module => l_log_module);
974
975 END IF;
976 x_value_combination_id := TO_NUMBER(p_source_14) ;
977 x_value_segment_code := 'GL_ACCOUNT' ;
978 x_value_type_code := 'S';
979 l_output_value := null;
980 RETURN l_output_value;
981
982 ELSE
983 IF p_override_seg_flag = 'Y' THEN
984 RETURN '#$NO_OVERRIDE#$';
985 END IF;
986 END IF;
987
988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
989
990 trace
991 (p_msg => 'END of AcctDerRule_4(invalid)'
992 ,p_level => C_LEVEL_PROCEDURE
993 ,p_module => l_log_module);
994
995 END IF;
996
997 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
998 x_value_combination_id := null;
999 x_value_segment_code := null;
1000 x_value_type_code := null;
1001 l_output_value := null;
1002 xla_accounting_err_pkg.build_message
1003 (p_appli_s_name => 'XLA'
1004 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1008 , l_component_code
1005 ,p_token_1 => 'COMPONENT_NAME'
1006 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1007 l_component_type
1009 , l_component_type_code
1010 , l_component_appl_id
1011 , l_amb_context_code
1012 )
1013 ,p_token_2 => 'OWNER'
1014 ,p_value_2 => xla_lookups_pkg.get_meaning(
1015 'XLA_OWNER_TYPE'
1016 ,l_component_type_code
1017 )
1018 ,p_token_3 => 'PAD_NAME'
1019 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1020 ,p_token_4 => 'PAD_OWNER'
1021 ,p_value_4 => xla_lookups_pkg.get_meaning(
1022 'XLA_OWNER_TYPE'
1023 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1024 )
1025 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1026 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1027 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1028 ,p_ae_header_id => NULL
1029 );
1030 RETURN l_output_value;
1031 EXCEPTION
1032 WHEN xla_exceptions_pkg.application_exception THEN
1033 RAISE;
1034 WHEN OTHERS THEN
1035 xla_exceptions_pkg.raise_message
1036 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_4');
1037 END AcctDerRule_4;
1038 --
1039
1040 ---------------------------------------
1041 --
1042 -- PRIVATE FUNCTION
1043 -- AcctDerRule_5
1044 --
1045 ---------------------------------------
1046 FUNCTION AcctDerRule_5 (
1047 p_application_id IN NUMBER
1048 , p_ae_header_id IN NUMBER
1049 , p_side IN VARCHAR2
1050 , p_override_seg_flag IN VARCHAR2
1051 --Automatic Offsets Value
1052 , p_source_16 IN VARCHAR2
1053 , p_source_16_meaning IN VARCHAR2
1054 --Purchase Order Rate Variance Gain Account
1055 , p_source_17 IN NUMBER
1056 --Invoice Distribution Ledger Amount
1057 , p_source_18 IN NUMBER
1058 --Destination Type of the PO Distribution
1059 , p_source_19 IN VARCHAR2
1060 , p_source_19_meaning IN VARCHAR2
1061 --Purchase Order Rate Variance Loss Account
1062 , p_source_20 IN NUMBER
1063 , x_transaction_coa_id OUT NOCOPY NUMBER
1064 , x_accounting_coa_id OUT NOCOPY NUMBER
1065 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1066 , x_flex_value_set_id OUT NOCOPY NUMBER
1067 , x_value_type_code OUT NOCOPY VARCHAR2
1068 , x_value_combination_id OUT NOCOPY NUMBER
1069 , x_value_segment_code OUT NOCOPY VARCHAR2
1070 )
1071 RETURN VARCHAR2
1072 IS
1073 l_component_type VARCHAR2(80) ;
1074 l_component_code VARCHAR2(30) ;
1075 l_component_type_code VARCHAR2(1) ;
1076 l_component_appl_id INTEGER ;
1077 l_amb_context_code VARCHAR2(30) ;
1078 l_log_module VARCHAR2(240) ;
1079 l_output_value VARCHAR2(30) ;
1080 BEGIN
1081 IF g_log_enabled THEN
1082 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
1083 END IF;
1084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1085
1086 trace
1087 (p_msg => 'BEGIN of AcctDerRule_5'
1088 ,p_level => C_LEVEL_PROCEDURE
1089 ,p_module => l_log_module);
1090
1091 END IF;
1092
1093 l_component_type := 'AMB_ADR';
1094 l_component_code := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
1095 l_component_type_code := 'S';
1096 l_component_appl_id := 200;
1097 l_amb_context_code := 'DEFAULT';
1098 x_transaction_coa_id := null;
1099 x_accounting_coa_id := null;
1100 x_flexfield_segment_code := 'GL_ACCOUNT';
1101 x_flex_value_set_id := null ;
1102
1103
1104 IF NVL(p_source_16,'
1105 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1106 p_source_18 < 0 AND
1107 NVL(p_source_19,'
1108 ') = 'INVENTORY'
1109 THEN
1110 --
1111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1112
1113 trace
1114 (p_msg => 'END of AcctDerRule_5'
1115 ,p_level => C_LEVEL_PROCEDURE
1116 ,p_module => l_log_module);
1117
1118 END IF;
1119 x_value_combination_id := TO_NUMBER(p_source_17) ;
1120 x_value_segment_code := 'GL_ACCOUNT' ;
1121 x_value_type_code := 'S';
1122 l_output_value := null;
1123 RETURN l_output_value;
1124
1125 ELSIF NVL(p_source_16,'
1126 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1127 p_source_18 > 0 AND
1128 NVL(p_source_19,'
1129 ') = 'INVENTORY'
1130 THEN
1131 --
1132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1133
1134 trace
1138
1135 (p_msg => 'END of AcctDerRule_5'
1136 ,p_level => C_LEVEL_PROCEDURE
1137 ,p_module => l_log_module);
1139 END IF;
1140 x_value_combination_id := TO_NUMBER(p_source_20) ;
1141 x_value_segment_code := 'GL_ACCOUNT' ;
1142 x_value_type_code := 'S';
1143 l_output_value := null;
1144 RETURN l_output_value;
1145
1146 ELSE
1147 IF p_override_seg_flag = 'Y' THEN
1148 RETURN '#$NO_OVERRIDE#$';
1149 END IF;
1150 END IF;
1151
1152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1153
1154 trace
1155 (p_msg => 'END of AcctDerRule_5(invalid)'
1156 ,p_level => C_LEVEL_PROCEDURE
1157 ,p_module => l_log_module);
1158
1159 END IF;
1160
1161 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1162 x_value_combination_id := null;
1163 x_value_segment_code := null;
1164 x_value_type_code := null;
1165 l_output_value := null;
1166 xla_accounting_err_pkg.build_message
1167 (p_appli_s_name => 'XLA'
1168 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1169 ,p_token_1 => 'COMPONENT_NAME'
1170 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1171 l_component_type
1172 , l_component_code
1173 , l_component_type_code
1174 , l_component_appl_id
1175 , l_amb_context_code
1176 )
1177 ,p_token_2 => 'OWNER'
1178 ,p_value_2 => xla_lookups_pkg.get_meaning(
1179 'XLA_OWNER_TYPE'
1180 ,l_component_type_code
1181 )
1182 ,p_token_3 => 'PAD_NAME'
1183 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1184 ,p_token_4 => 'PAD_OWNER'
1185 ,p_value_4 => xla_lookups_pkg.get_meaning(
1186 'XLA_OWNER_TYPE'
1187 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1188 )
1189 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1190 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1191 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1192 ,p_ae_header_id => NULL
1193 );
1194 RETURN l_output_value;
1195 EXCEPTION
1196 WHEN xla_exceptions_pkg.application_exception THEN
1197 RAISE;
1198 WHEN OTHERS THEN
1199 xla_exceptions_pkg.raise_message
1200 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_5');
1201 END AcctDerRule_5;
1202 --
1203
1204 ---------------------------------------
1205 --
1206 -- PRIVATE FUNCTION
1207 -- AcctDerRule_6
1208 --
1209 ---------------------------------------
1210 FUNCTION AcctDerRule_6 (
1211 p_application_id IN NUMBER
1212 , p_ae_header_id IN NUMBER
1213 , p_side IN VARCHAR2
1214 , p_override_seg_flag IN VARCHAR2
1215 --Automatic Offsets Value
1216 , p_source_16 IN VARCHAR2
1217 , p_source_16_meaning IN VARCHAR2
1218 --Purchase Order Rate Variance Gain Account
1219 , p_source_17 IN NUMBER
1220 --Destination Type of the PO Distribution
1221 , p_source_19 IN VARCHAR2
1222 , p_source_19_meaning IN VARCHAR2
1223 --Purchase Order Rate Variance Loss Account
1224 , p_source_20 IN NUMBER
1225 --Payment Distribution (Payment Rate) Ledger Amount
1226 , p_source_21 IN NUMBER
1227 --Payment Distribution (Cleared Rate) Ledger Amount
1228 , p_source_22 IN NUMBER
1229 , x_transaction_coa_id OUT NOCOPY NUMBER
1230 , x_accounting_coa_id OUT NOCOPY NUMBER
1231 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1232 , x_flex_value_set_id OUT NOCOPY NUMBER
1233 , x_value_type_code OUT NOCOPY VARCHAR2
1234 , x_value_combination_id OUT NOCOPY NUMBER
1235 , x_value_segment_code OUT NOCOPY VARCHAR2
1236 )
1237 RETURN VARCHAR2
1238 IS
1239 l_component_type VARCHAR2(80) ;
1240 l_component_code VARCHAR2(30) ;
1241 l_component_type_code VARCHAR2(1) ;
1242 l_component_appl_id INTEGER ;
1243 l_amb_context_code VARCHAR2(30) ;
1244 l_log_module VARCHAR2(240) ;
1245 l_output_value VARCHAR2(30) ;
1246 BEGIN
1247 IF g_log_enabled THEN
1248 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1249 END IF;
1250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1251
1252 trace
1253 (p_msg => 'BEGIN of AcctDerRule_6'
1254 ,p_level => C_LEVEL_PROCEDURE
1255 ,p_module => l_log_module);
1256
1257 END IF;
1258
1259 l_component_type := 'AMB_ADR';
1263 l_amb_context_code := 'DEFAULT';
1260 l_component_code := 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH';
1261 l_component_type_code := 'S';
1262 l_component_appl_id := 200;
1264 x_transaction_coa_id := null;
1265 x_accounting_coa_id := null;
1266 x_flexfield_segment_code := 'GL_ACCOUNT';
1267 x_flex_value_set_id := null ;
1268
1269
1270 IF NVL(p_source_16,'
1271 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1272 NVL(p_source_19,'
1273 ') = 'INVENTORY' AND
1274 (p_source_21 < 0 OR
1275 p_source_22 < 0)
1276 THEN
1277 --
1278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1279
1280 trace
1281 (p_msg => 'END of AcctDerRule_6'
1282 ,p_level => C_LEVEL_PROCEDURE
1283 ,p_module => l_log_module);
1284
1285 END IF;
1286 x_value_combination_id := TO_NUMBER(p_source_17) ;
1287 x_value_segment_code := 'GL_ACCOUNT' ;
1288 x_value_type_code := 'S';
1289 l_output_value := null;
1290 RETURN l_output_value;
1291
1292 ELSIF NVL(p_source_16,'
1293 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1294 NVL(p_source_19,'
1295 ') = 'INVENTORY' AND
1296 (p_source_21 > 0 OR
1297 p_source_22 > 0)
1298 THEN
1299 --
1300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1301
1302 trace
1303 (p_msg => 'END of AcctDerRule_6'
1304 ,p_level => C_LEVEL_PROCEDURE
1305 ,p_module => l_log_module);
1306
1307 END IF;
1308 x_value_combination_id := TO_NUMBER(p_source_20) ;
1309 x_value_segment_code := 'GL_ACCOUNT' ;
1310 x_value_type_code := 'S';
1311 l_output_value := null;
1312 RETURN l_output_value;
1313
1314 ELSE
1315 IF p_override_seg_flag = 'Y' THEN
1316 RETURN '#$NO_OVERRIDE#$';
1317 END IF;
1318 END IF;
1319
1320 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1321
1322 trace
1323 (p_msg => 'END of AcctDerRule_6(invalid)'
1324 ,p_level => C_LEVEL_PROCEDURE
1325 ,p_module => l_log_module);
1326
1327 END IF;
1328
1329 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1330 x_value_combination_id := null;
1331 x_value_segment_code := null;
1332 x_value_type_code := null;
1333 l_output_value := null;
1334 xla_accounting_err_pkg.build_message
1335 (p_appli_s_name => 'XLA'
1336 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1337 ,p_token_1 => 'COMPONENT_NAME'
1338 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1339 l_component_type
1340 , l_component_code
1341 , l_component_type_code
1342 , l_component_appl_id
1343 , l_amb_context_code
1344 )
1345 ,p_token_2 => 'OWNER'
1346 ,p_value_2 => xla_lookups_pkg.get_meaning(
1347 'XLA_OWNER_TYPE'
1348 ,l_component_type_code
1349 )
1350 ,p_token_3 => 'PAD_NAME'
1351 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1352 ,p_token_4 => 'PAD_OWNER'
1353 ,p_value_4 => xla_lookups_pkg.get_meaning(
1354 'XLA_OWNER_TYPE'
1355 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1356 )
1357 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1358 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1359 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1360 ,p_ae_header_id => NULL
1361 );
1362 RETURN l_output_value;
1363 EXCEPTION
1364 WHEN xla_exceptions_pkg.application_exception THEN
1365 RAISE;
1366 WHEN OTHERS THEN
1367 xla_exceptions_pkg.raise_message
1368 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_6');
1369 END AcctDerRule_6;
1370 --
1371
1372 ---------------------------------------
1373 --
1374 -- PRIVATE FUNCTION
1375 -- AcctDerRule_7
1376 --
1377 ---------------------------------------
1378 FUNCTION AcctDerRule_7 (
1379 p_application_id IN NUMBER
1380 , p_ae_header_id IN NUMBER
1381 , p_side IN VARCHAR2
1382 , p_override_seg_flag IN VARCHAR2
1383 --Automatic Offsets Value
1384 , p_source_16 IN VARCHAR2
1385 , p_source_16_meaning IN VARCHAR2
1386 --Purchase Order Rate Variance Gain Account
1387 , p_source_17 IN NUMBER
1388 --Destination Type of the PO Distribution
1389 , p_source_19 IN VARCHAR2
1390 , p_source_19_meaning IN VARCHAR2
1391 , x_transaction_coa_id OUT NOCOPY NUMBER
1395 , x_value_type_code OUT NOCOPY VARCHAR2
1392 , x_accounting_coa_id OUT NOCOPY NUMBER
1393 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1394 , x_flex_value_set_id OUT NOCOPY NUMBER
1396 , x_value_combination_id OUT NOCOPY NUMBER
1397 , x_value_segment_code OUT NOCOPY VARCHAR2
1398 )
1399 RETURN VARCHAR2
1400 IS
1401 l_component_type VARCHAR2(80) ;
1402 l_component_code VARCHAR2(30) ;
1403 l_component_type_code VARCHAR2(1) ;
1404 l_component_appl_id INTEGER ;
1405 l_amb_context_code VARCHAR2(30) ;
1406 l_log_module VARCHAR2(240) ;
1407 l_output_value VARCHAR2(30) ;
1408 BEGIN
1409 IF g_log_enabled THEN
1410 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1411 END IF;
1412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1413
1414 trace
1415 (p_msg => 'BEGIN of AcctDerRule_7'
1416 ,p_level => C_LEVEL_PROCEDURE
1417 ,p_module => l_log_module);
1418
1419 END IF;
1420
1421 l_component_type := 'AMB_ADR';
1422 l_component_code := 'AP_ERV_GAIN_NAT_ACCT_SEG';
1423 l_component_type_code := 'S';
1424 l_component_appl_id := 200;
1425 l_amb_context_code := 'DEFAULT';
1426 x_transaction_coa_id := null;
1427 x_accounting_coa_id := null;
1428 x_flexfield_segment_code := 'GL_ACCOUNT';
1429 x_flex_value_set_id := null ;
1430
1431
1432 IF NVL(p_source_16,'
1433 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1434 NVL(p_source_19,'
1435 ') = 'INVENTORY'
1436 THEN
1437 --
1438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1439
1440 trace
1441 (p_msg => 'END of AcctDerRule_7'
1442 ,p_level => C_LEVEL_PROCEDURE
1443 ,p_module => l_log_module);
1444
1445 END IF;
1446 x_value_combination_id := TO_NUMBER(p_source_17) ;
1447 x_value_segment_code := 'GL_ACCOUNT' ;
1448 x_value_type_code := 'S';
1449 l_output_value := null;
1450 RETURN l_output_value;
1451
1452 ELSE
1453 IF p_override_seg_flag = 'Y' THEN
1454 RETURN '#$NO_OVERRIDE#$';
1455 END IF;
1456 END IF;
1457
1458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1459
1460 trace
1461 (p_msg => 'END of AcctDerRule_7(invalid)'
1462 ,p_level => C_LEVEL_PROCEDURE
1463 ,p_module => l_log_module);
1464
1465 END IF;
1466
1467 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1468 x_value_combination_id := null;
1469 x_value_segment_code := null;
1470 x_value_type_code := null;
1471 l_output_value := null;
1472 xla_accounting_err_pkg.build_message
1473 (p_appli_s_name => 'XLA'
1474 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1475 ,p_token_1 => 'COMPONENT_NAME'
1476 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1477 l_component_type
1478 , l_component_code
1479 , l_component_type_code
1480 , l_component_appl_id
1481 , l_amb_context_code
1482 )
1483 ,p_token_2 => 'OWNER'
1484 ,p_value_2 => xla_lookups_pkg.get_meaning(
1485 'XLA_OWNER_TYPE'
1486 ,l_component_type_code
1487 )
1488 ,p_token_3 => 'PAD_NAME'
1489 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1490 ,p_token_4 => 'PAD_OWNER'
1491 ,p_value_4 => xla_lookups_pkg.get_meaning(
1492 'XLA_OWNER_TYPE'
1493 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1494 )
1495 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1496 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1497 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1498 ,p_ae_header_id => NULL
1499 );
1500 RETURN l_output_value;
1501 EXCEPTION
1502 WHEN xla_exceptions_pkg.application_exception THEN
1503 RAISE;
1504 WHEN OTHERS THEN
1505 xla_exceptions_pkg.raise_message
1506 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_7');
1507 END AcctDerRule_7;
1508 --
1509
1510 ---------------------------------------
1511 --
1512 -- PRIVATE FUNCTION
1513 -- AcctDerRule_8
1514 --
1515 ---------------------------------------
1516 FUNCTION AcctDerRule_8 (
1517 p_application_id IN NUMBER
1518 , p_ae_header_id IN NUMBER
1519 , p_side IN VARCHAR2
1520 , p_override_seg_flag IN VARCHAR2
1521 --Automatic Offsets Value
1525 , p_source_19 IN VARCHAR2
1522 , p_source_16 IN VARCHAR2
1523 , p_source_16_meaning IN VARCHAR2
1524 --Destination Type of the PO Distribution
1526 , p_source_19_meaning IN VARCHAR2
1527 --Purchase Order Rate Variance Loss Account
1528 , p_source_20 IN NUMBER
1529 , x_transaction_coa_id OUT NOCOPY NUMBER
1530 , x_accounting_coa_id OUT NOCOPY NUMBER
1531 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1532 , x_flex_value_set_id OUT NOCOPY NUMBER
1533 , x_value_type_code OUT NOCOPY VARCHAR2
1534 , x_value_combination_id OUT NOCOPY NUMBER
1535 , x_value_segment_code OUT NOCOPY VARCHAR2
1536 )
1537 RETURN VARCHAR2
1538 IS
1539 l_component_type VARCHAR2(80) ;
1540 l_component_code VARCHAR2(30) ;
1541 l_component_type_code VARCHAR2(1) ;
1542 l_component_appl_id INTEGER ;
1543 l_amb_context_code VARCHAR2(30) ;
1544 l_log_module VARCHAR2(240) ;
1545 l_output_value VARCHAR2(30) ;
1546 BEGIN
1547 IF g_log_enabled THEN
1548 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1549 END IF;
1550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1551
1552 trace
1553 (p_msg => 'BEGIN of AcctDerRule_8'
1554 ,p_level => C_LEVEL_PROCEDURE
1555 ,p_module => l_log_module);
1556
1557 END IF;
1558
1559 l_component_type := 'AMB_ADR';
1560 l_component_code := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1561 l_component_type_code := 'S';
1562 l_component_appl_id := 200;
1563 l_amb_context_code := 'DEFAULT';
1564 x_transaction_coa_id := null;
1565 x_accounting_coa_id := null;
1566 x_flexfield_segment_code := 'GL_ACCOUNT';
1567 x_flex_value_set_id := null ;
1568
1569
1570 IF NVL(p_source_16,'
1571 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1572 NVL(p_source_19,'
1573 ') = 'INVENTORY'
1574 THEN
1575 --
1576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1577
1578 trace
1579 (p_msg => 'END of AcctDerRule_8'
1580 ,p_level => C_LEVEL_PROCEDURE
1581 ,p_module => l_log_module);
1582
1583 END IF;
1584 x_value_combination_id := TO_NUMBER(p_source_20) ;
1585 x_value_segment_code := 'GL_ACCOUNT' ;
1586 x_value_type_code := 'S';
1587 l_output_value := null;
1588 RETURN l_output_value;
1589
1590 ELSE
1591 IF p_override_seg_flag = 'Y' THEN
1592 RETURN '#$NO_OVERRIDE#$';
1593 END IF;
1594 END IF;
1595
1596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1597
1598 trace
1599 (p_msg => 'END of AcctDerRule_8(invalid)'
1600 ,p_level => C_LEVEL_PROCEDURE
1601 ,p_module => l_log_module);
1602
1603 END IF;
1604
1605 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1606 x_value_combination_id := null;
1607 x_value_segment_code := null;
1608 x_value_type_code := null;
1609 l_output_value := null;
1610 xla_accounting_err_pkg.build_message
1611 (p_appli_s_name => 'XLA'
1612 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1613 ,p_token_1 => 'COMPONENT_NAME'
1614 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1615 l_component_type
1616 , l_component_code
1617 , l_component_type_code
1618 , l_component_appl_id
1619 , l_amb_context_code
1620 )
1621 ,p_token_2 => 'OWNER'
1622 ,p_value_2 => xla_lookups_pkg.get_meaning(
1623 'XLA_OWNER_TYPE'
1624 ,l_component_type_code
1625 )
1626 ,p_token_3 => 'PAD_NAME'
1627 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1628 ,p_token_4 => 'PAD_OWNER'
1629 ,p_value_4 => xla_lookups_pkg.get_meaning(
1630 'XLA_OWNER_TYPE'
1631 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1632 )
1633 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1634 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1635 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1636 ,p_ae_header_id => NULL
1637 );
1638 RETURN l_output_value;
1639 EXCEPTION
1640 WHEN xla_exceptions_pkg.application_exception THEN
1641 RAISE;
1642 WHEN OTHERS THEN
1643 xla_exceptions_pkg.raise_message
1644 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_8');
1645 END AcctDerRule_8;
1646 --
1647
1648 ---------------------------------------
1649 --
1653 ---------------------------------------
1650 -- PRIVATE FUNCTION
1651 -- AcctDerRule_9
1652 --
1654 FUNCTION AcctDerRule_9 (
1655 p_application_id IN NUMBER
1656 , p_ae_header_id IN NUMBER
1657 , p_side IN VARCHAR2
1658 , p_override_seg_flag IN VARCHAR2
1659 --Automatic Offsets Value
1660 , p_source_16 IN VARCHAR2
1661 , p_source_16_meaning IN VARCHAR2
1662 --Bank Future Dated Payment Account
1663 , p_source_23 IN NUMBER
1664 --Future Dated Payment Account Source Option
1665 , p_source_24 IN VARCHAR2
1666 , p_source_24_meaning IN VARCHAR2
1667 --Financials Options Future Dated Payment Account
1668 , p_source_25 IN NUMBER
1669 --Supplier Site Future Dated Payment Account
1670 , p_source_26 IN NUMBER
1671 , x_transaction_coa_id OUT NOCOPY NUMBER
1672 , x_accounting_coa_id OUT NOCOPY NUMBER
1673 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1674 , x_flex_value_set_id OUT NOCOPY NUMBER
1675 , x_value_type_code OUT NOCOPY VARCHAR2
1676 , x_value_combination_id OUT NOCOPY NUMBER
1677 , x_value_segment_code OUT NOCOPY VARCHAR2
1678 )
1679 RETURN VARCHAR2
1680 IS
1681 l_component_type VARCHAR2(80) ;
1682 l_component_code VARCHAR2(30) ;
1683 l_component_type_code VARCHAR2(1) ;
1684 l_component_appl_id INTEGER ;
1685 l_amb_context_code VARCHAR2(30) ;
1686 l_log_module VARCHAR2(240) ;
1687 l_output_value VARCHAR2(30) ;
1688 BEGIN
1689 IF g_log_enabled THEN
1690 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1691 END IF;
1692 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1693
1694 trace
1695 (p_msg => 'BEGIN of AcctDerRule_9'
1696 ,p_level => C_LEVEL_PROCEDURE
1697 ,p_module => l_log_module);
1698
1699 END IF;
1700
1701 l_component_type := 'AMB_ADR';
1702 l_component_code := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1703 l_component_type_code := 'S';
1704 l_component_appl_id := 200;
1705 l_amb_context_code := 'DEFAULT';
1706 x_transaction_coa_id := null;
1707 x_accounting_coa_id := null;
1708 x_flexfield_segment_code := 'GL_ACCOUNT';
1709 x_flex_value_set_id := null ;
1710
1711
1712 IF (NVL(p_source_16,'
1713 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1714 NVL(p_source_24,'
1715 ') = 'BANK ACCOUNT') AND
1716 TO_NUMBER(p_source_23) IS NOT NULL
1717 THEN
1718 --
1719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1720
1721 trace
1722 (p_msg => 'END of AcctDerRule_9'
1723 ,p_level => C_LEVEL_PROCEDURE
1724 ,p_module => l_log_module);
1725
1726 END IF;
1727 x_value_combination_id := TO_NUMBER(p_source_23) ;
1728 x_value_segment_code := 'GL_ACCOUNT' ;
1729 x_value_type_code := 'S';
1730 l_output_value := null;
1731 RETURN l_output_value;
1732
1733 ELSIF NVL(p_source_16,'
1734 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1735 NVL(p_source_24,'
1736 ') = 'BANK ACCOUNT'
1737 THEN
1738 --
1739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1740
1741 trace
1742 (p_msg => 'END of AcctDerRule_9'
1743 ,p_level => C_LEVEL_PROCEDURE
1744 ,p_module => l_log_module);
1745
1746 END IF;
1747 x_value_combination_id := TO_NUMBER(p_source_25) ;
1748 x_value_segment_code := 'GL_ACCOUNT' ;
1749 x_value_type_code := 'S';
1750 l_output_value := null;
1751 RETURN l_output_value;
1752
1753 ELSIF NVL(p_source_16,'
1754 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1755 NVL(p_source_24,'
1756 ') = 'SUPPLIER SITE' AND
1757 TO_NUMBER(p_source_26) IS NOT NULL
1758 THEN
1759 --
1760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1761
1762 trace
1763 (p_msg => 'END of AcctDerRule_9'
1764 ,p_level => C_LEVEL_PROCEDURE
1765 ,p_module => l_log_module);
1766
1767 END IF;
1768 x_value_combination_id := TO_NUMBER(p_source_26) ;
1769 x_value_segment_code := 'GL_ACCOUNT' ;
1770 x_value_type_code := 'S';
1771 l_output_value := null;
1772 RETURN l_output_value;
1773
1774 ELSIF NVL(p_source_16,'
1775 ') = 'ACCOUNT_SEGMENT_VALUE' AND
1776 NVL(p_source_24,'
1777 ') = 'SUPPLIER SITE'
1778 THEN
1779 --
1780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1781
1782 trace
1783 (p_msg => 'END of AcctDerRule_9'
1784 ,p_level => C_LEVEL_PROCEDURE
1785 ,p_module => l_log_module);
1786
1787 END IF;
1788 x_value_combination_id := TO_NUMBER(p_source_25) ;
1789 x_value_segment_code := 'GL_ACCOUNT' ;
1790 x_value_type_code := 'S';
1791 l_output_value := null;
1792 RETURN l_output_value;
1793
1794 ELSE
1795 IF p_override_seg_flag = 'Y' THEN
1796 RETURN '#$NO_OVERRIDE#$';
1797 END IF;
1798 END IF;
1799
1800 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1801
1802 trace
1803 (p_msg => 'END of AcctDerRule_9(invalid)'
1804 ,p_level => C_LEVEL_PROCEDURE
1805 ,p_module => l_log_module);
1806
1807 END IF;
1808
1812 x_value_type_code := null;
1809 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1810 x_value_combination_id := null;
1811 x_value_segment_code := null;
1813 l_output_value := null;
1814 xla_accounting_err_pkg.build_message
1815 (p_appli_s_name => 'XLA'
1816 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1817 ,p_token_1 => 'COMPONENT_NAME'
1818 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1819 l_component_type
1820 , l_component_code
1821 , l_component_type_code
1822 , l_component_appl_id
1823 , l_amb_context_code
1824 )
1825 ,p_token_2 => 'OWNER'
1826 ,p_value_2 => xla_lookups_pkg.get_meaning(
1827 'XLA_OWNER_TYPE'
1828 ,l_component_type_code
1829 )
1830 ,p_token_3 => 'PAD_NAME'
1831 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1832 ,p_token_4 => 'PAD_OWNER'
1833 ,p_value_4 => xla_lookups_pkg.get_meaning(
1834 'XLA_OWNER_TYPE'
1835 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1836 )
1837 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1838 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1839 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1840 ,p_ae_header_id => NULL
1841 );
1842 RETURN l_output_value;
1843 EXCEPTION
1844 WHEN xla_exceptions_pkg.application_exception THEN
1845 RAISE;
1846 WHEN OTHERS THEN
1847 xla_exceptions_pkg.raise_message
1848 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_9');
1849 END AcctDerRule_9;
1850 --
1851
1852 ---------------------------------------
1853 --
1854 -- PRIVATE FUNCTION
1855 -- AcctDerRule_10
1856 --
1857 ---------------------------------------
1858 FUNCTION AcctDerRule_10 (
1859 p_application_id IN NUMBER
1860 , p_ae_header_id IN NUMBER
1861 , p_side IN VARCHAR2
1862 , p_override_seg_flag IN VARCHAR2
1863 --Interest Account
1864 , p_source_27 IN NUMBER
1865 --Prorate Interest Invoice Across Distributions Option
1866 , p_source_28 IN VARCHAR2
1867 , x_transaction_coa_id OUT NOCOPY NUMBER
1868 , x_accounting_coa_id OUT NOCOPY NUMBER
1869 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1870 , x_flex_value_set_id OUT NOCOPY NUMBER
1871 , x_value_type_code OUT NOCOPY VARCHAR2
1872 , x_value_combination_id OUT NOCOPY NUMBER
1873 , x_value_segment_code OUT NOCOPY VARCHAR2
1874 )
1875 RETURN VARCHAR2
1876 IS
1877 l_component_type VARCHAR2(80) ;
1878 l_component_code VARCHAR2(30) ;
1879 l_component_type_code VARCHAR2(1) ;
1880 l_component_appl_id INTEGER ;
1881 l_amb_context_code VARCHAR2(30) ;
1882 l_log_module VARCHAR2(240) ;
1883 l_output_value VARCHAR2(30) ;
1884 BEGIN
1885 IF g_log_enabled THEN
1886 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1887 END IF;
1888 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1889
1890 trace
1891 (p_msg => 'BEGIN of AcctDerRule_10'
1892 ,p_level => C_LEVEL_PROCEDURE
1893 ,p_module => l_log_module);
1894
1895 END IF;
1896
1897 l_component_type := 'AMB_ADR';
1898 l_component_code := 'AP_INTEREST_NAT_ACCT_SEG';
1899 l_component_type_code := 'S';
1900 l_component_appl_id := 200;
1901 l_amb_context_code := 'DEFAULT';
1902 x_transaction_coa_id := null;
1903 x_accounting_coa_id := null;
1904 x_flexfield_segment_code := 'GL_ACCOUNT';
1905 x_flex_value_set_id := null ;
1906
1907
1908 IF NVL(p_source_28,'
1909 ') = 'Y'
1910 THEN
1911 --
1912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1913
1914 trace
1915 (p_msg => 'END of AcctDerRule_10'
1916 ,p_level => C_LEVEL_PROCEDURE
1917 ,p_module => l_log_module);
1918
1919 END IF;
1920 x_value_combination_id := TO_NUMBER(p_source_27) ;
1921 x_value_segment_code := 'GL_ACCOUNT' ;
1922 x_value_type_code := 'S';
1923 l_output_value := null;
1924 RETURN l_output_value;
1925
1926 ELSE
1927 IF p_override_seg_flag = 'Y' THEN
1928 RETURN '#$NO_OVERRIDE#$';
1929 END IF;
1930 END IF;
1931
1932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1936 ,p_level => C_LEVEL_PROCEDURE
1933
1934 trace
1935 (p_msg => 'END of AcctDerRule_10(invalid)'
1937 ,p_module => l_log_module);
1938
1939 END IF;
1940
1941 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1942 x_value_combination_id := null;
1943 x_value_segment_code := null;
1944 x_value_type_code := null;
1945 l_output_value := null;
1946 xla_accounting_err_pkg.build_message
1947 (p_appli_s_name => 'XLA'
1948 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1949 ,p_token_1 => 'COMPONENT_NAME'
1950 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1951 l_component_type
1952 , l_component_code
1953 , l_component_type_code
1954 , l_component_appl_id
1955 , l_amb_context_code
1956 )
1957 ,p_token_2 => 'OWNER'
1958 ,p_value_2 => xla_lookups_pkg.get_meaning(
1959 'XLA_OWNER_TYPE'
1960 ,l_component_type_code
1961 )
1962 ,p_token_3 => 'PAD_NAME'
1963 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1964 ,p_token_4 => 'PAD_OWNER'
1965 ,p_value_4 => xla_lookups_pkg.get_meaning(
1966 'XLA_OWNER_TYPE'
1967 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1968 )
1969 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1970 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1971 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1972 ,p_ae_header_id => NULL
1973 );
1974 RETURN l_output_value;
1975 EXCEPTION
1976 WHEN xla_exceptions_pkg.application_exception THEN
1977 RAISE;
1978 WHEN OTHERS THEN
1979 xla_exceptions_pkg.raise_message
1980 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_10');
1981 END AcctDerRule_10;
1982 --
1983
1984 ---------------------------------------
1985 --
1986 -- PRIVATE FUNCTION
1987 -- AcctDerRule_11
1988 --
1989 ---------------------------------------
1990 FUNCTION AcctDerRule_11 (
1991 p_application_id IN NUMBER
1992 , p_ae_header_id IN NUMBER
1993 , p_side IN VARCHAR2
1994 , p_override_seg_flag IN VARCHAR2
1995 --Invoice Distribution Account
1996 , p_source_29 IN NUMBER
1997 --Prepaid Expense Account Source Option
1998 , p_source_30 IN VARCHAR2
1999 , p_source_30_meaning IN VARCHAR2
2000 --Purchase Order Number
2001 , p_source_31 IN VARCHAR2
2002 --Invoice Distribution Type
2003 , p_source_32 IN VARCHAR2
2004 , p_source_32_meaning IN VARCHAR2
2005 , x_transaction_coa_id OUT NOCOPY NUMBER
2006 , x_accounting_coa_id OUT NOCOPY NUMBER
2007 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2008 , x_flex_value_set_id OUT NOCOPY NUMBER
2009 , x_value_type_code OUT NOCOPY VARCHAR2
2010 , x_value_combination_id OUT NOCOPY NUMBER
2011 , x_value_segment_code OUT NOCOPY VARCHAR2
2012 )
2013 RETURN VARCHAR2
2014 IS
2015 l_component_type VARCHAR2(80) ;
2016 l_component_code VARCHAR2(30) ;
2017 l_component_type_code VARCHAR2(1) ;
2018 l_component_appl_id INTEGER ;
2019 l_amb_context_code VARCHAR2(30) ;
2020 l_log_module VARCHAR2(240) ;
2021 l_output_value VARCHAR2(30) ;
2022 BEGIN
2023 IF g_log_enabled THEN
2024 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
2025 END IF;
2026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2027
2028 trace
2029 (p_msg => 'BEGIN of AcctDerRule_11'
2030 ,p_level => C_LEVEL_PROCEDURE
2031 ,p_module => l_log_module);
2032
2033 END IF;
2034
2035 l_component_type := 'AMB_ADR';
2036 l_component_code := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
2037 l_component_type_code := 'S';
2038 l_component_appl_id := 200;
2039 l_amb_context_code := 'DEFAULT';
2040 x_transaction_coa_id := null;
2041 x_accounting_coa_id := null;
2042 x_flexfield_segment_code := 'GL_ACCOUNT';
2043 x_flex_value_set_id := null ;
2044
2045
2046 IF NVL(p_source_30,'
2047 ') = 'Y' AND
2048 p_source_31 IS NOT NULL AND
2049 NVL(p_source_32,'
2050 ') = 'ITEM'
2051 THEN
2052 --
2053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2054
2055 trace
2056 (p_msg => 'END of AcctDerRule_11'
2057 ,p_level => C_LEVEL_PROCEDURE
2058 ,p_module => l_log_module);
2059
2060 END IF;
2061 x_value_combination_id := TO_NUMBER(p_source_29) ;
2065 RETURN l_output_value;
2062 x_value_segment_code := 'GL_ACCOUNT' ;
2063 x_value_type_code := 'S';
2064 l_output_value := null;
2066
2067 ELSE
2068 IF p_override_seg_flag = 'Y' THEN
2069 RETURN '#$NO_OVERRIDE#$';
2070 END IF;
2071 END IF;
2072
2073 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2074
2075 trace
2076 (p_msg => 'END of AcctDerRule_11(invalid)'
2077 ,p_level => C_LEVEL_PROCEDURE
2078 ,p_module => l_log_module);
2079
2080 END IF;
2081
2082 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2083 x_value_combination_id := null;
2084 x_value_segment_code := null;
2085 x_value_type_code := null;
2086 l_output_value := null;
2087 xla_accounting_err_pkg.build_message
2088 (p_appli_s_name => 'XLA'
2089 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2090 ,p_token_1 => 'COMPONENT_NAME'
2091 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2092 l_component_type
2093 , l_component_code
2094 , l_component_type_code
2095 , l_component_appl_id
2096 , l_amb_context_code
2097 )
2098 ,p_token_2 => 'OWNER'
2099 ,p_value_2 => xla_lookups_pkg.get_meaning(
2100 'XLA_OWNER_TYPE'
2101 ,l_component_type_code
2102 )
2103 ,p_token_3 => 'PAD_NAME'
2104 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2105 ,p_token_4 => 'PAD_OWNER'
2106 ,p_value_4 => xla_lookups_pkg.get_meaning(
2107 'XLA_OWNER_TYPE'
2108 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2109 )
2110 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2111 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2112 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2113 ,p_ae_header_id => NULL
2114 );
2115 RETURN l_output_value;
2116 EXCEPTION
2117 WHEN xla_exceptions_pkg.application_exception THEN
2118 RAISE;
2119 WHEN OTHERS THEN
2120 xla_exceptions_pkg.raise_message
2121 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_11');
2122 END AcctDerRule_11;
2123 --
2124
2125 ---------------------------------------
2126 --
2127 -- PRIVATE FUNCTION
2128 -- AcctDerRule_12
2129 --
2130 ---------------------------------------
2131 FUNCTION AcctDerRule_12 (
2132 p_application_id IN NUMBER
2133 , p_ae_header_id IN NUMBER
2134 , p_side IN VARCHAR2
2135 , p_override_seg_flag IN VARCHAR2
2136 --Automatic Offsets Value
2137 , p_source_16 IN VARCHAR2
2138 , p_source_16_meaning IN VARCHAR2
2139 --Invoice Distribution Account
2140 , p_source_29 IN NUMBER
2141 , x_transaction_coa_id OUT NOCOPY NUMBER
2142 , x_accounting_coa_id OUT NOCOPY NUMBER
2143 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2144 , x_flex_value_set_id OUT NOCOPY NUMBER
2145 , x_value_type_code OUT NOCOPY VARCHAR2
2146 , x_value_combination_id OUT NOCOPY NUMBER
2147 , x_value_segment_code OUT NOCOPY VARCHAR2
2148 )
2149 RETURN VARCHAR2
2150 IS
2151 l_component_type VARCHAR2(80) ;
2152 l_component_code VARCHAR2(30) ;
2153 l_component_type_code VARCHAR2(1) ;
2154 l_component_appl_id INTEGER ;
2155 l_amb_context_code VARCHAR2(30) ;
2156 l_log_module VARCHAR2(240) ;
2157 l_output_value VARCHAR2(30) ;
2158 BEGIN
2159 IF g_log_enabled THEN
2160 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
2161 END IF;
2162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2163
2164 trace
2165 (p_msg => 'BEGIN of AcctDerRule_12'
2166 ,p_level => C_LEVEL_PROCEDURE
2167 ,p_module => l_log_module);
2168
2169 END IF;
2170
2171 l_component_type := 'AMB_ADR';
2172 l_component_code := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
2173 l_component_type_code := 'S';
2174 l_component_appl_id := 200;
2175 l_amb_context_code := 'DEFAULT';
2176 x_transaction_coa_id := null;
2177 x_accounting_coa_id := null;
2178 x_flexfield_segment_code := 'GL_ACCOUNT';
2179 x_flex_value_set_id := null ;
2180
2181
2182 IF NVL(p_source_16,'
2183 ') = 'ACCOUNT_SEGMENT_VALUE'
2184 THEN
2185 --
2186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2187
2188 trace
2192
2189 (p_msg => 'END of AcctDerRule_12'
2190 ,p_level => C_LEVEL_PROCEDURE
2191 ,p_module => l_log_module);
2193 END IF;
2194 x_value_combination_id := TO_NUMBER(p_source_29) ;
2195 x_value_segment_code := 'GL_ACCOUNT' ;
2196 x_value_type_code := 'S';
2197 l_output_value := null;
2198 RETURN l_output_value;
2199
2200 ELSE
2201 IF p_override_seg_flag = 'Y' THEN
2202 RETURN '#$NO_OVERRIDE#$';
2203 END IF;
2204 END IF;
2205
2206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2207
2208 trace
2209 (p_msg => 'END of AcctDerRule_12(invalid)'
2210 ,p_level => C_LEVEL_PROCEDURE
2211 ,p_module => l_log_module);
2212
2213 END IF;
2214
2215 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2216 x_value_combination_id := null;
2217 x_value_segment_code := null;
2218 x_value_type_code := null;
2219 l_output_value := null;
2220 xla_accounting_err_pkg.build_message
2221 (p_appli_s_name => 'XLA'
2222 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2223 ,p_token_1 => 'COMPONENT_NAME'
2224 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2225 l_component_type
2226 , l_component_code
2227 , l_component_type_code
2228 , l_component_appl_id
2229 , l_amb_context_code
2230 )
2231 ,p_token_2 => 'OWNER'
2232 ,p_value_2 => xla_lookups_pkg.get_meaning(
2233 'XLA_OWNER_TYPE'
2234 ,l_component_type_code
2235 )
2236 ,p_token_3 => 'PAD_NAME'
2237 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2238 ,p_token_4 => 'PAD_OWNER'
2239 ,p_value_4 => xla_lookups_pkg.get_meaning(
2240 'XLA_OWNER_TYPE'
2241 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2242 )
2243 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2244 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2245 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2246 ,p_ae_header_id => NULL
2247 );
2248 RETURN l_output_value;
2249 EXCEPTION
2250 WHEN xla_exceptions_pkg.application_exception THEN
2251 RAISE;
2252 WHEN OTHERS THEN
2253 xla_exceptions_pkg.raise_message
2254 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_12');
2255 END AcctDerRule_12;
2256 --
2257
2258 ---------------------------------------
2259 --
2260 -- PRIVATE FUNCTION
2261 -- AcctDerRule_13
2262 --
2263 ---------------------------------------
2264 FUNCTION AcctDerRule_13 (
2265 p_application_id IN NUMBER
2266 , p_ae_header_id IN NUMBER
2267 , p_side IN VARCHAR2
2268 , p_override_seg_flag IN VARCHAR2
2269 --Bank Cash Clearing Account
2270 , p_source_33 IN NUMBER
2271 , x_transaction_coa_id OUT NOCOPY NUMBER
2272 , x_accounting_coa_id OUT NOCOPY NUMBER
2273 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2274 , x_flex_value_set_id OUT NOCOPY NUMBER
2275 , x_value_type_code OUT NOCOPY VARCHAR2
2276 , x_value_combination_id OUT NOCOPY NUMBER
2277 , x_value_segment_code OUT NOCOPY VARCHAR2
2278 )
2279 RETURN VARCHAR2
2280 IS
2281 l_component_type VARCHAR2(80) ;
2282 l_component_code VARCHAR2(30) ;
2283 l_component_type_code VARCHAR2(1) ;
2284 l_component_appl_id INTEGER ;
2285 l_amb_context_code VARCHAR2(30) ;
2286 l_log_module VARCHAR2(240) ;
2287 l_output_value VARCHAR2(30) ;
2288 BEGIN
2289 IF g_log_enabled THEN
2290 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
2291 END IF;
2292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2293
2294 trace
2295 (p_msg => 'BEGIN of AcctDerRule_13'
2296 ,p_level => C_LEVEL_PROCEDURE
2297 ,p_module => l_log_module);
2298
2299 END IF;
2300
2301 l_component_type := 'AMB_ADR';
2302 l_component_code := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
2303 l_component_type_code := 'S';
2304 l_component_appl_id := 200;
2305 l_amb_context_code := 'DEFAULT';
2306 x_transaction_coa_id := null;
2307 x_accounting_coa_id := null;
2308 x_flexfield_segment_code := 'GL_ACCOUNT';
2309 x_flex_value_set_id := null ;
2310
2311
2312 --
2313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2317 ,p_level => C_LEVEL_PROCEDURE
2314
2315 trace
2316 (p_msg => 'END of AcctDerRule_13'
2318 ,p_module => l_log_module);
2319
2320 END IF;
2321 x_value_combination_id := TO_NUMBER(p_source_33) ;
2322 x_value_segment_code := 'GL_ACCOUNT' ;
2323 x_value_type_code := 'S';
2324 l_output_value := null;
2325 RETURN l_output_value;
2326
2327
2328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2329
2330 trace
2331 (p_msg => 'END of AcctDerRule_13(invalid)'
2332 ,p_level => C_LEVEL_PROCEDURE
2333 ,p_module => l_log_module);
2334
2335 END IF;
2336
2337 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2338 x_value_combination_id := null;
2339 x_value_segment_code := null;
2340 x_value_type_code := null;
2341 l_output_value := null;
2342 xla_accounting_err_pkg.build_message
2343 (p_appli_s_name => 'XLA'
2344 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2345 ,p_token_1 => 'COMPONENT_NAME'
2346 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2347 l_component_type
2348 , l_component_code
2349 , l_component_type_code
2350 , l_component_appl_id
2351 , l_amb_context_code
2352 )
2353 ,p_token_2 => 'OWNER'
2354 ,p_value_2 => xla_lookups_pkg.get_meaning(
2355 'XLA_OWNER_TYPE'
2356 ,l_component_type_code
2357 )
2358 ,p_token_3 => 'PAD_NAME'
2359 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2360 ,p_token_4 => 'PAD_OWNER'
2361 ,p_value_4 => xla_lookups_pkg.get_meaning(
2362 'XLA_OWNER_TYPE'
2363 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2364 )
2365 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2366 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2367 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2368 ,p_ae_header_id => NULL
2369 );
2370 RETURN l_output_value;
2371 EXCEPTION
2372 WHEN xla_exceptions_pkg.application_exception THEN
2373 RAISE;
2374 WHEN OTHERS THEN
2375 xla_exceptions_pkg.raise_message
2376 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_13');
2377 END AcctDerRule_13;
2378 --
2379
2380 ---------------------------------------
2381 --
2382 -- PRIVATE FUNCTION
2383 -- AcctDerRule_14
2384 --
2385 ---------------------------------------
2386 FUNCTION AcctDerRule_14 (
2387 p_application_id IN NUMBER
2388 , p_ae_header_id IN NUMBER
2389 , p_side IN VARCHAR2
2390 , p_override_seg_flag IN VARCHAR2
2391 --Retainage Account
2392 , p_source_34 IN NUMBER
2393 , x_transaction_coa_id OUT NOCOPY NUMBER
2394 , x_accounting_coa_id OUT NOCOPY NUMBER
2395 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2396 , x_flex_value_set_id OUT NOCOPY NUMBER
2397 , x_value_type_code OUT NOCOPY VARCHAR2
2398 , x_value_combination_id OUT NOCOPY NUMBER
2399 , x_value_segment_code OUT NOCOPY VARCHAR2
2400 )
2401 RETURN VARCHAR2
2402 IS
2403 l_component_type VARCHAR2(80) ;
2404 l_component_code VARCHAR2(30) ;
2405 l_component_type_code VARCHAR2(1) ;
2406 l_component_appl_id INTEGER ;
2407 l_amb_context_code VARCHAR2(30) ;
2408 l_log_module VARCHAR2(240) ;
2409 l_output_value VARCHAR2(30) ;
2410 BEGIN
2411 IF g_log_enabled THEN
2412 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2413 END IF;
2414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2415
2416 trace
2417 (p_msg => 'BEGIN of AcctDerRule_14'
2418 ,p_level => C_LEVEL_PROCEDURE
2419 ,p_module => l_log_module);
2420
2421 END IF;
2422
2423 l_component_type := 'AMB_ADR';
2424 l_component_code := 'AP_RETAIN_NAT_ACCT_SEG';
2425 l_component_type_code := 'S';
2426 l_component_appl_id := 200;
2427 l_amb_context_code := 'DEFAULT';
2428 x_transaction_coa_id := null;
2429 x_accounting_coa_id := null;
2430 x_flexfield_segment_code := 'GL_ACCOUNT';
2431 x_flex_value_set_id := null ;
2432
2433
2434 --
2435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2436
2437 trace
2438 (p_msg => 'END of AcctDerRule_14'
2439 ,p_level => C_LEVEL_PROCEDURE
2443 x_value_combination_id := TO_NUMBER(p_source_34) ;
2440 ,p_module => l_log_module);
2441
2442 END IF;
2444 x_value_segment_code := 'GL_ACCOUNT' ;
2445 x_value_type_code := 'S';
2446 l_output_value := null;
2447 RETURN l_output_value;
2448
2449
2450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2451
2452 trace
2453 (p_msg => 'END of AcctDerRule_14(invalid)'
2454 ,p_level => C_LEVEL_PROCEDURE
2455 ,p_module => l_log_module);
2456
2457 END IF;
2458
2459 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2460 x_value_combination_id := null;
2461 x_value_segment_code := null;
2462 x_value_type_code := null;
2463 l_output_value := null;
2464 xla_accounting_err_pkg.build_message
2465 (p_appli_s_name => 'XLA'
2466 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2467 ,p_token_1 => 'COMPONENT_NAME'
2468 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2469 l_component_type
2470 , l_component_code
2471 , l_component_type_code
2472 , l_component_appl_id
2473 , l_amb_context_code
2474 )
2475 ,p_token_2 => 'OWNER'
2476 ,p_value_2 => xla_lookups_pkg.get_meaning(
2477 'XLA_OWNER_TYPE'
2478 ,l_component_type_code
2479 )
2480 ,p_token_3 => 'PAD_NAME'
2481 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2482 ,p_token_4 => 'PAD_OWNER'
2483 ,p_value_4 => xla_lookups_pkg.get_meaning(
2484 'XLA_OWNER_TYPE'
2485 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2486 )
2487 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2488 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2489 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2490 ,p_ae_header_id => NULL
2491 );
2492 RETURN l_output_value;
2493 EXCEPTION
2494 WHEN xla_exceptions_pkg.application_exception THEN
2495 RAISE;
2496 WHEN OTHERS THEN
2497 xla_exceptions_pkg.raise_message
2498 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_14');
2499 END AcctDerRule_14;
2500 --
2501
2502 ---------------------------------------
2503 --
2504 -- PRIVATE FUNCTION
2505 -- AcctDerRule_15
2506 --
2507 ---------------------------------------
2508 FUNCTION AcctDerRule_15 (
2509 p_application_id IN NUMBER
2510 , p_ae_header_id IN NUMBER
2511 , p_side IN VARCHAR2
2512 , p_override_seg_flag IN VARCHAR2
2513 --Discount Distribution Method
2514 , p_source_15 IN VARCHAR2
2515 , p_source_15_meaning IN VARCHAR2
2516 --Automatic Offsets Value
2517 , p_source_16 IN VARCHAR2
2518 , p_source_16_meaning IN VARCHAR2
2519 --Invoice Distribution Account
2520 , p_source_29 IN NUMBER
2521 , x_transaction_coa_id OUT NOCOPY NUMBER
2522 , x_accounting_coa_id OUT NOCOPY NUMBER
2523 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2524 , x_flex_value_set_id OUT NOCOPY NUMBER
2525 , x_value_type_code OUT NOCOPY VARCHAR2
2526 , x_value_combination_id OUT NOCOPY NUMBER
2527 , x_value_segment_code OUT NOCOPY VARCHAR2
2528 )
2529 RETURN VARCHAR2
2530 IS
2531 l_component_type VARCHAR2(80) ;
2532 l_component_code VARCHAR2(30) ;
2533 l_component_type_code VARCHAR2(1) ;
2534 l_component_appl_id INTEGER ;
2535 l_amb_context_code VARCHAR2(30) ;
2536 l_log_module VARCHAR2(240) ;
2537 l_output_value VARCHAR2(30) ;
2538 BEGIN
2539 IF g_log_enabled THEN
2540 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2541 END IF;
2542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2543
2544 trace
2545 (p_msg => 'BEGIN of AcctDerRule_15'
2546 ,p_level => C_LEVEL_PROCEDURE
2547 ,p_module => l_log_module);
2548
2549 END IF;
2550
2551 l_component_type := 'AMB_ADR';
2552 l_component_code := 'AP_DISCOUNT_BAL_ACCT_SEG';
2553 l_component_type_code := 'S';
2554 l_component_appl_id := 200;
2555 l_amb_context_code := 'DEFAULT';
2556 x_transaction_coa_id := null;
2557 x_accounting_coa_id := null;
2558 x_flexfield_segment_code := 'GL_BALANCING';
2559 x_flex_value_set_id := null ;
2560
2561
2562 IF NVL(p_source_15,'
2563 ') = 'SYSTEM' AND
2564 NVL(p_source_16,'
2565 ') = 'BALANCING_SEGMENT'
2566 THEN
2567 --
2568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2569
2570 trace
2574
2571 (p_msg => 'END of AcctDerRule_15'
2572 ,p_level => C_LEVEL_PROCEDURE
2573 ,p_module => l_log_module);
2575 END IF;
2576 x_value_combination_id := TO_NUMBER(p_source_29) ;
2577 x_value_segment_code := 'GL_BALANCING' ;
2578 x_value_type_code := 'S';
2579 l_output_value := null;
2580 RETURN l_output_value;
2581
2582 ELSE
2583 IF p_override_seg_flag = 'Y' THEN
2584 RETURN '#$NO_OVERRIDE#$';
2585 END IF;
2586 END IF;
2587
2588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2589
2590 trace
2591 (p_msg => 'END of AcctDerRule_15(invalid)'
2592 ,p_level => C_LEVEL_PROCEDURE
2593 ,p_module => l_log_module);
2594
2595 END IF;
2596
2597 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2598 x_value_combination_id := null;
2599 x_value_segment_code := null;
2600 x_value_type_code := null;
2601 l_output_value := null;
2602 xla_accounting_err_pkg.build_message
2603 (p_appli_s_name => 'XLA'
2604 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2605 ,p_token_1 => 'COMPONENT_NAME'
2606 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2607 l_component_type
2608 , l_component_code
2609 , l_component_type_code
2610 , l_component_appl_id
2611 , l_amb_context_code
2612 )
2613 ,p_token_2 => 'OWNER'
2614 ,p_value_2 => xla_lookups_pkg.get_meaning(
2615 'XLA_OWNER_TYPE'
2616 ,l_component_type_code
2617 )
2618 ,p_token_3 => 'PAD_NAME'
2619 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2620 ,p_token_4 => 'PAD_OWNER'
2621 ,p_value_4 => xla_lookups_pkg.get_meaning(
2622 'XLA_OWNER_TYPE'
2623 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2624 )
2625 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2626 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2627 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2628 ,p_ae_header_id => NULL
2629 );
2630 RETURN l_output_value;
2631 EXCEPTION
2632 WHEN xla_exceptions_pkg.application_exception THEN
2633 RAISE;
2634 WHEN OTHERS THEN
2635 xla_exceptions_pkg.raise_message
2636 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_15');
2637 END AcctDerRule_15;
2638 --
2639
2640 ---------------------------------------
2641 --
2642 -- PRIVATE FUNCTION
2643 -- AcctDerRule_16
2644 --
2645 ---------------------------------------
2646 FUNCTION AcctDerRule_16 (
2647 p_application_id IN NUMBER
2648 , p_ae_header_id IN NUMBER
2649 , p_side IN VARCHAR2
2650 , p_override_seg_flag IN VARCHAR2
2651 --Automatic Offsets Value
2652 , p_source_16 IN VARCHAR2
2653 , p_source_16_meaning IN VARCHAR2
2654 --Invoice Distribution Account
2655 , p_source_29 IN NUMBER
2656 , x_transaction_coa_id OUT NOCOPY NUMBER
2657 , x_accounting_coa_id OUT NOCOPY NUMBER
2658 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2659 , x_flex_value_set_id OUT NOCOPY NUMBER
2660 , x_value_type_code OUT NOCOPY VARCHAR2
2661 , x_value_combination_id OUT NOCOPY NUMBER
2662 , x_value_segment_code OUT NOCOPY VARCHAR2
2663 )
2664 RETURN VARCHAR2
2665 IS
2666 l_component_type VARCHAR2(80) ;
2667 l_component_code VARCHAR2(30) ;
2668 l_component_type_code VARCHAR2(1) ;
2669 l_component_appl_id INTEGER ;
2670 l_amb_context_code VARCHAR2(30) ;
2671 l_log_module VARCHAR2(240) ;
2672 l_output_value VARCHAR2(30) ;
2673 BEGIN
2674 IF g_log_enabled THEN
2675 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2676 END IF;
2677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2678
2679 trace
2680 (p_msg => 'BEGIN of AcctDerRule_16'
2681 ,p_level => C_LEVEL_PROCEDURE
2682 ,p_module => l_log_module);
2683
2684 END IF;
2685
2686 l_component_type := 'AMB_ADR';
2687 l_component_code := 'AP_INV_DIST_BAL_SEG';
2688 l_component_type_code := 'S';
2689 l_component_appl_id := 200;
2690 l_amb_context_code := 'DEFAULT';
2691 x_transaction_coa_id := null;
2692 x_accounting_coa_id := null;
2693 x_flexfield_segment_code := 'GL_BALANCING';
2694 x_flex_value_set_id := null ;
2695
2696
2697 IF NVL(p_source_16,'
2698 ') = 'BALANCING_SEGMENT'
2699 THEN
2700 --
2704 (p_msg => 'END of AcctDerRule_16'
2701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2702
2703 trace
2705 ,p_level => C_LEVEL_PROCEDURE
2706 ,p_module => l_log_module);
2707
2708 END IF;
2709 x_value_combination_id := TO_NUMBER(p_source_29) ;
2710 x_value_segment_code := 'GL_BALANCING' ;
2711 x_value_type_code := 'S';
2712 l_output_value := null;
2713 RETURN l_output_value;
2714
2715 ELSE
2716 IF p_override_seg_flag = 'Y' THEN
2717 RETURN '#$NO_OVERRIDE#$';
2718 END IF;
2719 END IF;
2720
2721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2722
2723 trace
2724 (p_msg => 'END of AcctDerRule_16(invalid)'
2725 ,p_level => C_LEVEL_PROCEDURE
2726 ,p_module => l_log_module);
2727
2728 END IF;
2729
2730 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2731 x_value_combination_id := null;
2732 x_value_segment_code := null;
2733 x_value_type_code := null;
2734 l_output_value := null;
2735 xla_accounting_err_pkg.build_message
2736 (p_appli_s_name => 'XLA'
2737 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2738 ,p_token_1 => 'COMPONENT_NAME'
2739 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2740 l_component_type
2741 , l_component_code
2742 , l_component_type_code
2743 , l_component_appl_id
2744 , l_amb_context_code
2745 )
2746 ,p_token_2 => 'OWNER'
2747 ,p_value_2 => xla_lookups_pkg.get_meaning(
2748 'XLA_OWNER_TYPE'
2749 ,l_component_type_code
2750 )
2751 ,p_token_3 => 'PAD_NAME'
2752 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2753 ,p_token_4 => 'PAD_OWNER'
2754 ,p_value_4 => xla_lookups_pkg.get_meaning(
2755 'XLA_OWNER_TYPE'
2756 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_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
2762 );
2763 RETURN l_output_value;
2764 EXCEPTION
2765 WHEN xla_exceptions_pkg.application_exception THEN
2766 RAISE;
2767 WHEN OTHERS THEN
2768 xla_exceptions_pkg.raise_message
2769 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_16');
2770 END AcctDerRule_16;
2771 --
2772
2773 ---------------------------------------
2774 --
2775 -- PRIVATE FUNCTION
2776 -- AcctDerRule_17
2777 --
2778 ---------------------------------------
2779 FUNCTION AcctDerRule_17 (
2780 p_application_id IN NUMBER
2781 , p_ae_header_id IN NUMBER
2782 , p_side IN VARCHAR2
2783 , p_override_seg_flag IN VARCHAR2
2784 --Automatic Offsets Value
2785 , p_source_16 IN VARCHAR2
2786 , p_source_16_meaning IN VARCHAR2
2787 --Destination Type of the PO Distribution
2788 , p_source_19 IN VARCHAR2
2789 , p_source_19_meaning IN VARCHAR2
2790 --Invoice Distribution Account
2791 , p_source_29 IN NUMBER
2792 , x_transaction_coa_id OUT NOCOPY NUMBER
2793 , x_accounting_coa_id OUT NOCOPY NUMBER
2794 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2795 , x_flex_value_set_id OUT NOCOPY NUMBER
2796 , x_value_type_code OUT NOCOPY VARCHAR2
2797 , x_value_combination_id OUT NOCOPY NUMBER
2798 , x_value_segment_code OUT NOCOPY VARCHAR2
2799 )
2800 RETURN VARCHAR2
2801 IS
2802 l_component_type VARCHAR2(80) ;
2803 l_component_code VARCHAR2(30) ;
2804 l_component_type_code VARCHAR2(1) ;
2805 l_component_appl_id INTEGER ;
2806 l_amb_context_code VARCHAR2(30) ;
2807 l_log_module VARCHAR2(240) ;
2808 l_output_value VARCHAR2(30) ;
2809 BEGIN
2810 IF g_log_enabled THEN
2811 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2812 END IF;
2813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2814
2815 trace
2816 (p_msg => 'BEGIN of AcctDerRule_17'
2817 ,p_level => C_LEVEL_PROCEDURE
2818 ,p_module => l_log_module);
2819
2820 END IF;
2821
2822 l_component_type := 'AMB_ADR';
2823 l_component_code := 'AP_RELATED_DIST_BAL_SEG';
2824 l_component_type_code := 'S';
2825 l_component_appl_id := 200;
2829 x_flexfield_segment_code := 'GL_BALANCING';
2826 l_amb_context_code := 'DEFAULT';
2827 x_transaction_coa_id := null;
2828 x_accounting_coa_id := null;
2830 x_flex_value_set_id := null ;
2831
2832
2833 IF NVL(p_source_16,'
2834 ') = 'BALANCING_SEGMENT' AND
2835 NVL(p_source_19,'
2836 ') = 'INVENTORY'
2837 THEN
2838 --
2839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2840
2841 trace
2842 (p_msg => 'END of AcctDerRule_17'
2843 ,p_level => C_LEVEL_PROCEDURE
2844 ,p_module => l_log_module);
2845
2846 END IF;
2847 x_value_combination_id := TO_NUMBER(p_source_29) ;
2848 x_value_segment_code := 'GL_BALANCING' ;
2849 x_value_type_code := 'S';
2850 l_output_value := null;
2851 RETURN l_output_value;
2852
2853 ELSE
2854 IF p_override_seg_flag = 'Y' THEN
2855 RETURN '#$NO_OVERRIDE#$';
2856 END IF;
2857 END IF;
2858
2859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2860
2861 trace
2862 (p_msg => 'END of AcctDerRule_17(invalid)'
2863 ,p_level => C_LEVEL_PROCEDURE
2864 ,p_module => l_log_module);
2865
2866 END IF;
2867
2868 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2869 x_value_combination_id := null;
2870 x_value_segment_code := null;
2871 x_value_type_code := null;
2872 l_output_value := null;
2873 xla_accounting_err_pkg.build_message
2874 (p_appli_s_name => 'XLA'
2875 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2876 ,p_token_1 => 'COMPONENT_NAME'
2877 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2878 l_component_type
2879 , l_component_code
2880 , l_component_type_code
2881 , l_component_appl_id
2882 , l_amb_context_code
2883 )
2884 ,p_token_2 => 'OWNER'
2885 ,p_value_2 => xla_lookups_pkg.get_meaning(
2886 'XLA_OWNER_TYPE'
2887 ,l_component_type_code
2888 )
2889 ,p_token_3 => 'PAD_NAME'
2890 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2891 ,p_token_4 => 'PAD_OWNER'
2892 ,p_value_4 => xla_lookups_pkg.get_meaning(
2893 'XLA_OWNER_TYPE'
2894 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2895 )
2896 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2897 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2898 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2899 ,p_ae_header_id => NULL
2900 );
2901 RETURN l_output_value;
2902 EXCEPTION
2903 WHEN xla_exceptions_pkg.application_exception THEN
2904 RAISE;
2905 WHEN OTHERS THEN
2906 xla_exceptions_pkg.raise_message
2907 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_17');
2908 END AcctDerRule_17;
2909 --
2910
2911 ---------------------------------------
2912 --
2913 -- PRIVATE FUNCTION
2914 -- AcctDerRule_18
2915 --
2916 ---------------------------------------
2917 FUNCTION AcctDerRule_18 (
2918 p_application_id IN NUMBER
2919 , p_ae_header_id IN NUMBER
2920 , p_side IN VARCHAR2
2921 , p_override_seg_flag IN VARCHAR2
2922 --Automatic Offsets Value
2923 , p_source_16 IN VARCHAR2
2924 , p_source_16_meaning IN VARCHAR2
2925 --Retainage Related Item Distribution Account
2926 , p_source_35 IN NUMBER
2927 , x_transaction_coa_id OUT NOCOPY NUMBER
2928 , x_accounting_coa_id OUT NOCOPY NUMBER
2929 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2930 , x_flex_value_set_id OUT NOCOPY NUMBER
2931 , x_value_type_code OUT NOCOPY VARCHAR2
2932 , x_value_combination_id OUT NOCOPY NUMBER
2933 , x_value_segment_code OUT NOCOPY VARCHAR2
2934 )
2935 RETURN VARCHAR2
2936 IS
2937 l_component_type VARCHAR2(80) ;
2938 l_component_code VARCHAR2(30) ;
2939 l_component_type_code VARCHAR2(1) ;
2940 l_component_appl_id INTEGER ;
2941 l_amb_context_code VARCHAR2(30) ;
2942 l_log_module VARCHAR2(240) ;
2943 l_output_value VARCHAR2(30) ;
2944 BEGIN
2945 IF g_log_enabled THEN
2946 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2947 END IF;
2948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2949
2950 trace
2951 (p_msg => 'BEGIN of AcctDerRule_18'
2952 ,p_level => C_LEVEL_PROCEDURE
2956
2953 ,p_module => l_log_module);
2954
2955 END IF;
2957 l_component_type := 'AMB_ADR';
2958 l_component_code := 'AP_RETAIN_RELATED_BAL_SEG';
2959 l_component_type_code := 'S';
2960 l_component_appl_id := 200;
2961 l_amb_context_code := 'DEFAULT';
2962 x_transaction_coa_id := null;
2963 x_accounting_coa_id := null;
2964 x_flexfield_segment_code := 'GL_BALANCING';
2965 x_flex_value_set_id := null ;
2966
2967
2968 IF NVL(p_source_16,'
2969 ') = 'BALANCING_SEGMENT'
2970 THEN
2971 --
2972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2973
2974 trace
2975 (p_msg => 'END of AcctDerRule_18'
2976 ,p_level => C_LEVEL_PROCEDURE
2977 ,p_module => l_log_module);
2978
2979 END IF;
2980 x_value_combination_id := TO_NUMBER(p_source_35) ;
2981 x_value_segment_code := 'GL_BALANCING' ;
2982 x_value_type_code := 'S';
2983 l_output_value := null;
2984 RETURN l_output_value;
2985
2986 ELSE
2987 IF p_override_seg_flag = 'Y' THEN
2988 RETURN '#$NO_OVERRIDE#$';
2989 END IF;
2990 END IF;
2991
2992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2993
2994 trace
2995 (p_msg => 'END of AcctDerRule_18(invalid)'
2996 ,p_level => C_LEVEL_PROCEDURE
2997 ,p_module => l_log_module);
2998
2999 END IF;
3000
3001 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3002 x_value_combination_id := null;
3003 x_value_segment_code := null;
3004 x_value_type_code := null;
3005 l_output_value := null;
3006 xla_accounting_err_pkg.build_message
3007 (p_appli_s_name => 'XLA'
3008 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3009 ,p_token_1 => 'COMPONENT_NAME'
3010 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3011 l_component_type
3012 , l_component_code
3013 , l_component_type_code
3014 , l_component_appl_id
3015 , l_amb_context_code
3016 )
3017 ,p_token_2 => 'OWNER'
3018 ,p_value_2 => xla_lookups_pkg.get_meaning(
3019 'XLA_OWNER_TYPE'
3020 ,l_component_type_code
3021 )
3022 ,p_token_3 => 'PAD_NAME'
3023 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3024 ,p_token_4 => 'PAD_OWNER'
3025 ,p_value_4 => xla_lookups_pkg.get_meaning(
3026 'XLA_OWNER_TYPE'
3027 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3028 )
3029 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3030 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3031 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3032 ,p_ae_header_id => NULL
3033 );
3034 RETURN l_output_value;
3035 EXCEPTION
3036 WHEN xla_exceptions_pkg.application_exception THEN
3037 RAISE;
3038 WHEN OTHERS THEN
3039 xla_exceptions_pkg.raise_message
3040 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_18');
3041 END AcctDerRule_18;
3042 --
3043
3044 ---------------------------------------
3045 --
3046 -- PRIVATE FUNCTION
3047 -- AcctDerRule_19
3048 --
3049 ---------------------------------------
3050 FUNCTION AcctDerRule_19 (
3051 p_application_id IN NUMBER
3052 , p_ae_header_id IN NUMBER
3053 , p_side IN VARCHAR2
3054 , p_override_seg_flag IN VARCHAR2
3055 --Automatic Offsets Value
3056 , p_source_16 IN VARCHAR2
3057 , p_source_16_meaning IN VARCHAR2
3058 --Withholding Related Distribution Account
3059 , p_source_36 IN NUMBER
3060 , x_transaction_coa_id OUT NOCOPY NUMBER
3061 , x_accounting_coa_id OUT NOCOPY NUMBER
3062 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
3063 , x_flex_value_set_id OUT NOCOPY NUMBER
3064 , x_value_type_code OUT NOCOPY VARCHAR2
3065 , x_value_combination_id OUT NOCOPY NUMBER
3066 , x_value_segment_code OUT NOCOPY VARCHAR2
3067 )
3068 RETURN VARCHAR2
3069 IS
3070 l_component_type VARCHAR2(80) ;
3071 l_component_code VARCHAR2(30) ;
3072 l_component_type_code VARCHAR2(1) ;
3073 l_component_appl_id INTEGER ;
3074 l_amb_context_code VARCHAR2(30) ;
3075 l_log_module VARCHAR2(240) ;
3076 l_output_value VARCHAR2(30) ;
3077 BEGIN
3078 IF g_log_enabled THEN
3082
3079 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
3080 END IF;
3081 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3083 trace
3084 (p_msg => 'BEGIN of AcctDerRule_19'
3085 ,p_level => C_LEVEL_PROCEDURE
3086 ,p_module => l_log_module);
3087
3088 END IF;
3089
3090 l_component_type := 'AMB_ADR';
3091 l_component_code := 'AP_WH_RELATED_DIST_BAL_SEG';
3092 l_component_type_code := 'S';
3093 l_component_appl_id := 200;
3094 l_amb_context_code := 'DEFAULT';
3095 x_transaction_coa_id := null;
3096 x_accounting_coa_id := null;
3097 x_flexfield_segment_code := 'GL_BALANCING';
3098 x_flex_value_set_id := null ;
3099
3100
3101 IF NVL(p_source_16,'
3102 ') = 'BALANCING_SEGMENT'
3103 THEN
3104 --
3105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3106
3107 trace
3108 (p_msg => 'END of AcctDerRule_19'
3109 ,p_level => C_LEVEL_PROCEDURE
3110 ,p_module => l_log_module);
3111
3112 END IF;
3113 x_value_combination_id := TO_NUMBER(p_source_36) ;
3114 x_value_segment_code := 'GL_BALANCING' ;
3115 x_value_type_code := 'S';
3116 l_output_value := null;
3117 RETURN l_output_value;
3118
3119 ELSE
3120 IF p_override_seg_flag = 'Y' THEN
3121 RETURN '#$NO_OVERRIDE#$';
3122 END IF;
3123 END IF;
3124
3125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3126
3127 trace
3128 (p_msg => 'END of AcctDerRule_19(invalid)'
3129 ,p_level => C_LEVEL_PROCEDURE
3130 ,p_module => l_log_module);
3131
3132 END IF;
3133
3134 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3135 x_value_combination_id := null;
3136 x_value_segment_code := null;
3137 x_value_type_code := null;
3138 l_output_value := null;
3139 xla_accounting_err_pkg.build_message
3140 (p_appli_s_name => 'XLA'
3141 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3142 ,p_token_1 => 'COMPONENT_NAME'
3143 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3144 l_component_type
3145 , l_component_code
3146 , l_component_type_code
3147 , l_component_appl_id
3148 , l_amb_context_code
3149 )
3150 ,p_token_2 => 'OWNER'
3151 ,p_value_2 => xla_lookups_pkg.get_meaning(
3152 'XLA_OWNER_TYPE'
3153 ,l_component_type_code
3154 )
3155 ,p_token_3 => 'PAD_NAME'
3156 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3157 ,p_token_4 => 'PAD_OWNER'
3158 ,p_value_4 => xla_lookups_pkg.get_meaning(
3159 'XLA_OWNER_TYPE'
3160 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3161 )
3162 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3163 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3164 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3165 ,p_ae_header_id => NULL
3166 );
3167 RETURN l_output_value;
3168 EXCEPTION
3169 WHEN xla_exceptions_pkg.application_exception THEN
3170 RAISE;
3171 WHEN OTHERS THEN
3172 xla_exceptions_pkg.raise_message
3173 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_19');
3174 END AcctDerRule_19;
3175 --
3176
3177 ---------------------------------------
3178 --
3179 -- PRIVATE FUNCTION
3180 -- AcctDerRule_20
3181 --
3182 ---------------------------------------
3183 FUNCTION AcctDerRule_20 (
3184 p_application_id IN NUMBER
3185 , p_ae_header_id IN NUMBER
3186 , p_side IN VARCHAR2
3187 --Automatic Offsets Value
3188 , p_source_16 IN VARCHAR2
3189 , p_source_16_meaning IN VARCHAR2
3190 --Invoice Distribution Account
3191 , p_source_29 IN NUMBER
3192 --Bank Charges Account
3193 , p_source_37 IN NUMBER
3194 , x_transaction_coa_id OUT NOCOPY NUMBER
3195 , x_accounting_coa_id OUT NOCOPY NUMBER
3196 , x_value_type_code OUT NOCOPY VARCHAR2
3197 )
3198 RETURN NUMBER
3199 IS
3200 l_component_type VARCHAR2(80) ;
3201 l_component_code VARCHAR2(30) ;
3202 l_component_type_code VARCHAR2(1) ;
3203 l_component_appl_id INTEGER ;
3204 l_amb_context_code VARCHAR2(30) ;
3205 l_log_module VARCHAR2(240) ;
3206 l_output_value NUMBER ;
3207 BEGIN
3208 IF g_log_enabled THEN
3212 trace
3209 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
3210 END IF;
3211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3213 (p_msg => 'BEGIN of AcctDerRule_20'
3214 ,p_level => C_LEVEL_PROCEDURE
3215 ,p_module => l_log_module);
3216 END IF;
3217 --
3218 l_component_type := 'AMB_ADR';
3219 l_component_code := 'AP_BANK_CHARGES';
3220 l_component_type_code := 'S';
3221 l_component_appl_id := 200;
3222 l_amb_context_code := 'DEFAULT';
3223 x_transaction_coa_id := null;
3224 x_accounting_coa_id := null;
3225 --
3226
3227 IF NVL(p_source_16,'
3228 ') <> 'ACCOUNT_SEGMENT_VALUE'
3229 THEN
3230 --
3231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3232 trace
3233 (p_msg => 'END of AcctDerRule_20'
3234 ,p_level => C_LEVEL_PROCEDURE
3235 ,p_module => l_log_module);
3236 END IF;
3237 x_value_type_code := 'S';
3238 l_output_value := TO_NUMBER(TO_NUMBER(p_source_37));
3239 RETURN l_output_value;
3240
3241 ELSIF NVL(p_source_16,'
3242 ') = 'ACCOUNT_SEGMENT_VALUE'
3243 THEN
3244 --
3245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3246 trace
3247 (p_msg => 'END of AcctDerRule_20'
3248 ,p_level => C_LEVEL_PROCEDURE
3249 ,p_module => l_log_module);
3250 END IF;
3251 x_value_type_code := 'S';
3252 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3253 RETURN l_output_value;
3254
3255 END IF;
3256 --
3257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3258 trace
3259 (p_msg => 'END of AcctDerRule_20(invalid)'
3260 ,p_level => C_LEVEL_PROCEDURE
3261 ,p_module => l_log_module);
3262 END IF;
3263 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3264 x_value_type_code := null;
3265 l_output_value := null;
3266 xla_accounting_err_pkg.build_message
3267 (p_appli_s_name => 'XLA'
3268 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3269 ,p_token_1 => 'COMPONENT_NAME'
3270 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3271 l_component_type
3272 , l_component_code
3273 , l_component_type_code
3274 , l_component_appl_id
3275 , l_amb_context_code
3276 )
3277 ,p_token_2 => 'OWNER'
3278 ,p_value_2 => xla_lookups_pkg.get_meaning(
3279 'XLA_OWNER_TYPE'
3280 ,l_component_type_code
3281 )
3282 ,p_token_3 => 'PAD_NAME'
3283 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3284 ,p_token_4 => 'PAD_OWNER'
3285 ,p_value_4 => xla_lookups_pkg.get_meaning(
3286 'XLA_OWNER_TYPE'
3287 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3288 )
3289 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3290 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3291 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3292 ,p_ae_header_id => NULL
3293 );
3294 RETURN l_output_value;
3295 EXCEPTION
3296 WHEN xla_exceptions_pkg.application_exception THEN
3297 RAISE;
3298 WHEN OTHERS THEN
3299 xla_exceptions_pkg.raise_message
3300 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_20');
3301 END AcctDerRule_20;
3302 --
3303
3304 ---------------------------------------
3305 --
3306 -- PRIVATE FUNCTION
3307 -- AcctDerRule_21
3308 --
3309 ---------------------------------------
3310 FUNCTION AcctDerRule_21 (
3311 p_application_id IN NUMBER
3312 , p_ae_header_id IN NUMBER
3313 , p_side IN VARCHAR2
3314 --Automatic Offsets Value
3315 , p_source_16 IN VARCHAR2
3316 , p_source_16_meaning IN VARCHAR2
3317 --Invoice Distribution Account
3318 , p_source_29 IN NUMBER
3319 --Bank Errors Account
3320 , p_source_38 IN NUMBER
3321 , x_transaction_coa_id OUT NOCOPY NUMBER
3322 , x_accounting_coa_id OUT NOCOPY NUMBER
3323 , x_value_type_code OUT NOCOPY VARCHAR2
3324 )
3325 RETURN NUMBER
3326 IS
3327 l_component_type VARCHAR2(80) ;
3328 l_component_code VARCHAR2(30) ;
3329 l_component_type_code VARCHAR2(1) ;
3330 l_component_appl_id INTEGER ;
3331 l_amb_context_code VARCHAR2(30) ;
3332 l_log_module VARCHAR2(240) ;
3336 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3333 l_output_value NUMBER ;
3334 BEGIN
3335 IF g_log_enabled THEN
3337 END IF;
3338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3339 trace
3340 (p_msg => 'BEGIN of AcctDerRule_21'
3341 ,p_level => C_LEVEL_PROCEDURE
3342 ,p_module => l_log_module);
3343 END IF;
3344 --
3345 l_component_type := 'AMB_ADR';
3346 l_component_code := 'AP_BANK_ERRORS';
3347 l_component_type_code := 'S';
3348 l_component_appl_id := 200;
3349 l_amb_context_code := 'DEFAULT';
3350 x_transaction_coa_id := null;
3351 x_accounting_coa_id := null;
3352 --
3353
3354 IF NVL(p_source_16,'
3355 ') <> 'ACCOUNT_SEGMENT_VALUE'
3356 THEN
3357 --
3358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3359 trace
3360 (p_msg => 'END of AcctDerRule_21'
3361 ,p_level => C_LEVEL_PROCEDURE
3362 ,p_module => l_log_module);
3363 END IF;
3364 x_value_type_code := 'S';
3365 l_output_value := TO_NUMBER(TO_NUMBER(p_source_38));
3366 RETURN l_output_value;
3367
3368 ELSIF NVL(p_source_16,'
3369 ') = 'ACCOUNT_SEGMENT_VALUE'
3370 THEN
3371 --
3372 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3373 trace
3374 (p_msg => 'END of AcctDerRule_21'
3375 ,p_level => C_LEVEL_PROCEDURE
3376 ,p_module => l_log_module);
3377 END IF;
3378 x_value_type_code := 'S';
3379 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3380 RETURN l_output_value;
3381
3382 END IF;
3383 --
3384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3385 trace
3386 (p_msg => 'END of AcctDerRule_21(invalid)'
3387 ,p_level => C_LEVEL_PROCEDURE
3388 ,p_module => l_log_module);
3389 END IF;
3390 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3391 x_value_type_code := null;
3392 l_output_value := null;
3393 xla_accounting_err_pkg.build_message
3394 (p_appli_s_name => 'XLA'
3395 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3396 ,p_token_1 => 'COMPONENT_NAME'
3397 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3398 l_component_type
3399 , l_component_code
3400 , l_component_type_code
3401 , l_component_appl_id
3402 , l_amb_context_code
3403 )
3404 ,p_token_2 => 'OWNER'
3405 ,p_value_2 => xla_lookups_pkg.get_meaning(
3406 'XLA_OWNER_TYPE'
3407 ,l_component_type_code
3408 )
3409 ,p_token_3 => 'PAD_NAME'
3410 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3411 ,p_token_4 => 'PAD_OWNER'
3412 ,p_value_4 => xla_lookups_pkg.get_meaning(
3413 'XLA_OWNER_TYPE'
3414 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3415 )
3416 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3417 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3418 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3419 ,p_ae_header_id => NULL
3420 );
3421 RETURN l_output_value;
3422 EXCEPTION
3423 WHEN xla_exceptions_pkg.application_exception THEN
3424 RAISE;
3425 WHEN OTHERS THEN
3426 xla_exceptions_pkg.raise_message
3427 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_21');
3428 END AcctDerRule_21;
3429 --
3430
3431 ---------------------------------------
3432 --
3433 -- PRIVATE FUNCTION
3434 -- AcctDerRule_22
3435 --
3436 ---------------------------------------
3437 FUNCTION AcctDerRule_22 (
3438 p_application_id IN NUMBER
3439 , p_ae_header_id IN NUMBER
3440 , p_side IN VARCHAR2
3441 --Bank Cash Account
3442 , p_source_13 IN NUMBER
3443 , x_transaction_coa_id OUT NOCOPY NUMBER
3444 , x_accounting_coa_id OUT NOCOPY NUMBER
3445 , x_value_type_code OUT NOCOPY VARCHAR2
3446 )
3447 RETURN NUMBER
3448 IS
3449 l_component_type VARCHAR2(80) ;
3450 l_component_code VARCHAR2(30) ;
3451 l_component_type_code VARCHAR2(1) ;
3452 l_component_appl_id INTEGER ;
3453 l_amb_context_code VARCHAR2(30) ;
3454 l_log_module VARCHAR2(240) ;
3455 l_output_value NUMBER ;
3456 BEGIN
3457 IF g_log_enabled THEN
3458 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3459 END IF;
3463 ,p_level => C_LEVEL_PROCEDURE
3460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3461 trace
3462 (p_msg => 'BEGIN of AcctDerRule_22'
3464 ,p_module => l_log_module);
3465 END IF;
3466 --
3467 l_component_type := 'AMB_ADR';
3468 l_component_code := 'AP_CASH';
3469 l_component_type_code := 'S';
3470 l_component_appl_id := 200;
3471 l_amb_context_code := 'DEFAULT';
3472 x_transaction_coa_id := null;
3473 x_accounting_coa_id := null;
3474 --
3475
3476 --
3477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3478 trace
3479 (p_msg => 'END of AcctDerRule_22'
3480 ,p_level => C_LEVEL_PROCEDURE
3481 ,p_module => l_log_module);
3482 END IF;
3483 x_value_type_code := 'S';
3484 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
3485 RETURN l_output_value;
3486
3487 --
3488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3489 trace
3490 (p_msg => 'END of AcctDerRule_22(invalid)'
3491 ,p_level => C_LEVEL_PROCEDURE
3492 ,p_module => l_log_module);
3493 END IF;
3494 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3495 x_value_type_code := null;
3496 l_output_value := null;
3497 xla_accounting_err_pkg.build_message
3498 (p_appli_s_name => 'XLA'
3499 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3500 ,p_token_1 => 'COMPONENT_NAME'
3501 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3502 l_component_type
3503 , l_component_code
3504 , l_component_type_code
3505 , l_component_appl_id
3506 , l_amb_context_code
3507 )
3508 ,p_token_2 => 'OWNER'
3509 ,p_value_2 => xla_lookups_pkg.get_meaning(
3510 'XLA_OWNER_TYPE'
3511 ,l_component_type_code
3512 )
3513 ,p_token_3 => 'PAD_NAME'
3514 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3515 ,p_token_4 => 'PAD_OWNER'
3516 ,p_value_4 => xla_lookups_pkg.get_meaning(
3517 'XLA_OWNER_TYPE'
3518 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3519 )
3520 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3521 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3522 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3523 ,p_ae_header_id => NULL
3524 );
3525 RETURN l_output_value;
3526 EXCEPTION
3527 WHEN xla_exceptions_pkg.application_exception THEN
3528 RAISE;
3529 WHEN OTHERS THEN
3530 xla_exceptions_pkg.raise_message
3531 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_22');
3532 END AcctDerRule_22;
3533 --
3534
3535 ---------------------------------------
3536 --
3537 -- PRIVATE FUNCTION
3538 -- AcctDerRule_23
3539 --
3540 ---------------------------------------
3541 FUNCTION AcctDerRule_23 (
3542 p_application_id IN NUMBER
3543 , p_ae_header_id IN NUMBER
3544 , p_side IN VARCHAR2
3545 --System Discount Account
3546 , p_source_14 IN NUMBER
3547 --Discount Distribution Method
3548 , p_source_15 IN VARCHAR2
3549 , p_source_15_meaning IN VARCHAR2
3550 --Automatic Offsets Value
3551 , p_source_16 IN VARCHAR2
3552 , p_source_16_meaning IN VARCHAR2
3553 --Invoice Distribution Account
3554 , p_source_29 IN NUMBER
3555 --Invoice Distribution Type
3556 , p_source_32 IN VARCHAR2
3557 , p_source_32_meaning IN VARCHAR2
3558 --Discount Account
3559 , p_source_39 IN NUMBER
3560 --Purchase Order Charge Account
3561 , p_source_40 IN NUMBER
3562 --Purchase Order Variance Account
3563 , p_source_41 IN NUMBER
3564 , x_transaction_coa_id OUT NOCOPY NUMBER
3565 , x_accounting_coa_id OUT NOCOPY NUMBER
3566 , x_value_type_code OUT NOCOPY VARCHAR2
3567 )
3568 RETURN NUMBER
3569 IS
3570 l_component_type VARCHAR2(80) ;
3571 l_component_code VARCHAR2(30) ;
3572 l_component_type_code VARCHAR2(1) ;
3573 l_component_appl_id INTEGER ;
3574 l_amb_context_code VARCHAR2(30) ;
3575 l_log_module VARCHAR2(240) ;
3576 l_output_value NUMBER ;
3577 BEGIN
3578 IF g_log_enabled THEN
3579 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3580 END IF;
3581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3582 trace
3583 (p_msg => 'BEGIN of AcctDerRule_23'
3587 --
3584 ,p_level => C_LEVEL_PROCEDURE
3585 ,p_module => l_log_module);
3586 END IF;
3588 l_component_type := 'AMB_ADR';
3589 l_component_code := 'AP_DISCOUNT';
3590 l_component_type_code := 'S';
3591 l_component_appl_id := 200;
3592 l_amb_context_code := 'DEFAULT';
3593 x_transaction_coa_id := null;
3594 x_accounting_coa_id := null;
3595 --
3596
3597 IF NVL(p_source_15,'
3598 ') = 'SYSTEM' AND
3599 NVL(p_source_16,'
3600 ') <> 'ACCOUNT_SEGMENT_VALUE'
3601 THEN
3602 --
3603 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3604 trace
3605 (p_msg => 'END of AcctDerRule_23'
3606 ,p_level => C_LEVEL_PROCEDURE
3607 ,p_module => l_log_module);
3608 END IF;
3609 x_value_type_code := 'S';
3610 l_output_value := TO_NUMBER(TO_NUMBER(p_source_39));
3611 RETURN l_output_value;
3612
3613 ELSIF NVL(p_source_15,'
3614 ') = 'SYSTEM' AND
3615 NVL(p_source_16,'
3616 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3617 NVL(p_source_32,'
3618 ') <> 'ACCRUAL'
3619 THEN
3620 --
3621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3622 trace
3623 (p_msg => 'END of AcctDerRule_23'
3624 ,p_level => C_LEVEL_PROCEDURE
3625 ,p_module => l_log_module);
3626 END IF;
3627 x_value_type_code := 'S';
3628 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3629 RETURN l_output_value;
3630
3631 ELSIF NVL(p_source_15,'
3632 ') = 'SYSTEM' AND
3633 NVL(p_source_16,'
3634 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3635 NVL(p_source_32,'
3636 ') = 'ACCRUAL'
3637 THEN
3638 --
3639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3640 trace
3641 (p_msg => 'END of AcctDerRule_23'
3642 ,p_level => C_LEVEL_PROCEDURE
3643 ,p_module => l_log_module);
3644 END IF;
3645 x_value_type_code := 'S';
3646 l_output_value := TO_NUMBER(TO_NUMBER(p_source_40));
3647 RETURN l_output_value;
3648
3649 ELSIF NVL(p_source_15,'
3650 ') = 'EXPENSE' AND
3651 NVL(p_source_32,'
3652 ') <> 'ACCRUAL'
3653 THEN
3654 --
3655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3656 trace
3657 (p_msg => 'END of AcctDerRule_23'
3658 ,p_level => C_LEVEL_PROCEDURE
3659 ,p_module => l_log_module);
3660 END IF;
3661 x_value_type_code := 'S';
3662 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3663 RETURN l_output_value;
3664
3665 ELSIF NVL(p_source_15,'
3666 ') = 'EXPENSE' AND
3667 NVL(p_source_32,'
3668 ') = 'ACCRUAL'
3669 THEN
3670 --
3671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3672 trace
3673 (p_msg => 'END of AcctDerRule_23'
3674 ,p_level => C_LEVEL_PROCEDURE
3675 ,p_module => l_log_module);
3676 END IF;
3677 x_value_type_code := 'S';
3678 l_output_value := TO_NUMBER(TO_NUMBER(p_source_41));
3679 RETURN l_output_value;
3680
3681 ELSIF NVL(p_source_15,'
3682 ') = 'TAX' AND
3683 NVL(p_source_16,'
3684 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3685 (NVL(p_source_32,'
3686 ') = 'REC_TAX' OR
3687 NVL(p_source_32,'
3688 ') = 'NONREC_TAX' OR
3689 NVL(p_source_32,'
3690 ') = 'TIPV' OR
3691 NVL(p_source_32,'
3692 ') = 'TRV')
3693 THEN
3694 --
3695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3696 trace
3697 (p_msg => 'END of AcctDerRule_23'
3698 ,p_level => C_LEVEL_PROCEDURE
3699 ,p_module => l_log_module);
3700 END IF;
3701 x_value_type_code := 'S';
3702 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3703 RETURN l_output_value;
3704
3705 ELSIF NVL(p_source_15,'
3706 ') = 'TAX' AND
3707 NVL(p_source_16,'
3708 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
3709 (NVL(p_source_32,'
3710 ') <> 'REC_TAX' OR
3711 NVL(p_source_32,'
3712 ') <> 'NONREC_TAX' OR
3713 NVL(p_source_32,'
3714 ') <> 'TIPV' OR
3715 NVL(p_source_32,'
3716 ') <> 'TRV')
3717 THEN
3718 --
3719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3720 trace
3721 (p_msg => 'END of AcctDerRule_23'
3722 ,p_level => C_LEVEL_PROCEDURE
3723 ,p_module => l_log_module);
3724 END IF;
3725 x_value_type_code := 'S';
3726 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
3727 RETURN l_output_value;
3728
3729 ELSIF NVL(p_source_15,'
3730 ') = 'TAX' AND
3731 NVL(p_source_16,'
3732 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3733 NVL(p_source_32,'
3734 ') <> 'ACCRUAL'
3735 THEN
3736 --
3737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3738 trace
3739 (p_msg => 'END of AcctDerRule_23'
3740 ,p_level => C_LEVEL_PROCEDURE
3741 ,p_module => l_log_module);
3742 END IF;
3743 x_value_type_code := 'S';
3744 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3745 RETURN l_output_value;
3746
3747 ELSIF NVL(p_source_15,'
3748 ') = 'TAX' AND
3749 NVL(p_source_16,'
3750 ') = 'ACCOUNT_SEGMENT_VALUE' AND
3751 NVL(p_source_32,'
3752 ') = 'ACCRUAL'
3753 THEN
3754 --
3758 ,p_level => C_LEVEL_PROCEDURE
3755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3756 trace
3757 (p_msg => 'END of AcctDerRule_23'
3759 ,p_module => l_log_module);
3760 END IF;
3761 x_value_type_code := 'S';
3762 l_output_value := TO_NUMBER(TO_NUMBER(p_source_40));
3763 RETURN l_output_value;
3764
3765 END IF;
3766 --
3767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3768 trace
3769 (p_msg => 'END of AcctDerRule_23(invalid)'
3770 ,p_level => C_LEVEL_PROCEDURE
3771 ,p_module => l_log_module);
3772 END IF;
3773 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3774 x_value_type_code := null;
3775 l_output_value := null;
3776 xla_accounting_err_pkg.build_message
3777 (p_appli_s_name => 'XLA'
3778 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3779 ,p_token_1 => 'COMPONENT_NAME'
3780 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3781 l_component_type
3782 , l_component_code
3783 , l_component_type_code
3784 , l_component_appl_id
3785 , l_amb_context_code
3786 )
3787 ,p_token_2 => 'OWNER'
3788 ,p_value_2 => xla_lookups_pkg.get_meaning(
3789 'XLA_OWNER_TYPE'
3790 ,l_component_type_code
3791 )
3792 ,p_token_3 => 'PAD_NAME'
3793 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3794 ,p_token_4 => 'PAD_OWNER'
3795 ,p_value_4 => xla_lookups_pkg.get_meaning(
3796 'XLA_OWNER_TYPE'
3797 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3798 )
3799 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3800 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3801 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3802 ,p_ae_header_id => NULL
3803 );
3804 RETURN l_output_value;
3805 EXCEPTION
3806 WHEN xla_exceptions_pkg.application_exception THEN
3807 RAISE;
3808 WHEN OTHERS THEN
3809 xla_exceptions_pkg.raise_message
3810 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_23');
3811 END AcctDerRule_23;
3812 --
3813
3814 ---------------------------------------
3815 --
3816 -- PRIVATE FUNCTION
3817 -- AcctDerRule_24
3818 --
3819 ---------------------------------------
3820 FUNCTION AcctDerRule_24 (
3821 p_application_id IN NUMBER
3822 , p_ae_header_id IN NUMBER
3823 , p_side IN VARCHAR2
3824 --Automatic Offsets Value
3825 , p_source_16 IN VARCHAR2
3826 , p_source_16_meaning IN VARCHAR2
3827 --Purchase Order Rate Variance Gain Account
3828 , p_source_17 IN NUMBER
3829 --Destination Type of the PO Distribution
3830 , p_source_19 IN VARCHAR2
3831 , p_source_19_meaning IN VARCHAR2
3832 --Purchase Order Rate Variance Loss Account
3833 , p_source_20 IN NUMBER
3834 --Payment Distribution (Payment Rate) Ledger Amount
3835 , p_source_21 IN NUMBER
3836 --Payment Distribution (Cleared Rate) Ledger Amount
3837 , p_source_22 IN NUMBER
3838 --Invoice Distribution Account
3839 , p_source_29 IN NUMBER
3840 --Automatic Offsets Flag
3841 , p_source_42 IN VARCHAR2
3842 , p_source_42_meaning IN VARCHAR2
3843 , x_transaction_coa_id OUT NOCOPY NUMBER
3844 , x_accounting_coa_id OUT NOCOPY NUMBER
3845 , x_value_type_code OUT NOCOPY VARCHAR2
3846 )
3847 RETURN NUMBER
3848 IS
3849 l_component_type VARCHAR2(80) ;
3850 l_component_code VARCHAR2(30) ;
3851 l_component_type_code VARCHAR2(1) ;
3852 l_component_appl_id INTEGER ;
3853 l_amb_context_code VARCHAR2(30) ;
3854 l_log_module VARCHAR2(240) ;
3855 l_output_value NUMBER ;
3856 BEGIN
3857 IF g_log_enabled THEN
3858 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3859 END IF;
3860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3861 trace
3862 (p_msg => 'BEGIN of AcctDerRule_24'
3863 ,p_level => C_LEVEL_PROCEDURE
3864 ,p_module => l_log_module);
3865 END IF;
3866 --
3867 l_component_type := 'AMB_ADR';
3868 l_component_code := 'AP_ERV_TAXERV_CASH';
3869 l_component_type_code := 'S';
3870 l_component_appl_id := 200;
3871 l_amb_context_code := 'DEFAULT';
3872 x_transaction_coa_id := null;
3873 x_accounting_coa_id := null;
3874 --
3875
3876 IF NVL(p_source_19,'
3880 NVL(p_source_16,'
3877 ') = 'EXPENSE' OR
3878 (NVL(p_source_19,'
3879 ') = 'INVENTORY' AND
3881 ') = 'ACCOUNT_SEGMENT_VALUE')
3882 THEN
3883 --
3884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3885 trace
3886 (p_msg => 'END of AcctDerRule_24'
3887 ,p_level => C_LEVEL_PROCEDURE
3888 ,p_module => l_log_module);
3889 END IF;
3890 x_value_type_code := 'S';
3891 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3892 RETURN l_output_value;
3893
3894 ELSIF NVL(p_source_19,'
3895 ') <> 'EXPENSE' AND
3896 (p_source_21 < 0 OR
3897 p_source_22 < 0) AND
3898 (NVL(p_source_42,'
3899 ') = 'N' OR
3900 NVL(p_source_16,'
3901 ') = 'BALANCING_SEGMENT')
3902 THEN
3903 --
3904 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3905 trace
3906 (p_msg => 'END of AcctDerRule_24'
3907 ,p_level => C_LEVEL_PROCEDURE
3908 ,p_module => l_log_module);
3909 END IF;
3910 x_value_type_code := 'S';
3911 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3912 RETURN l_output_value;
3913
3914 ELSIF NVL(p_source_19,'
3915 ') <> 'EXPENSE' AND
3916 (p_source_21 > 0 OR
3917 p_source_22 > 0) AND
3918 (NVL(p_source_42,'
3919 ') = 'N' OR
3920 NVL(p_source_16,'
3921 ') = 'BALANCING_SEGMENT')
3922 THEN
3923 --
3924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3925 trace
3926 (p_msg => 'END of AcctDerRule_24'
3927 ,p_level => C_LEVEL_PROCEDURE
3928 ,p_module => l_log_module);
3929 END IF;
3930 x_value_type_code := 'S';
3931 l_output_value := TO_NUMBER(TO_NUMBER(p_source_20));
3932 RETURN l_output_value;
3933
3934 END IF;
3935 --
3936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3937 trace
3938 (p_msg => 'END of AcctDerRule_24(invalid)'
3939 ,p_level => C_LEVEL_PROCEDURE
3940 ,p_module => l_log_module);
3941 END IF;
3942 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3943 x_value_type_code := null;
3944 l_output_value := null;
3945 xla_accounting_err_pkg.build_message
3946 (p_appli_s_name => 'XLA'
3947 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3948 ,p_token_1 => 'COMPONENT_NAME'
3949 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3950 l_component_type
3951 , l_component_code
3952 , l_component_type_code
3953 , l_component_appl_id
3954 , l_amb_context_code
3955 )
3956 ,p_token_2 => 'OWNER'
3957 ,p_value_2 => xla_lookups_pkg.get_meaning(
3958 'XLA_OWNER_TYPE'
3959 ,l_component_type_code
3960 )
3961 ,p_token_3 => 'PAD_NAME'
3962 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3963 ,p_token_4 => 'PAD_OWNER'
3964 ,p_value_4 => xla_lookups_pkg.get_meaning(
3965 'XLA_OWNER_TYPE'
3966 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3967 )
3968 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3969 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3970 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3971 ,p_ae_header_id => NULL
3972 );
3973 RETURN l_output_value;
3974 EXCEPTION
3975 WHEN xla_exceptions_pkg.application_exception THEN
3976 RAISE;
3977 WHEN OTHERS THEN
3978 xla_exceptions_pkg.raise_message
3979 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_24');
3980 END AcctDerRule_24;
3981 --
3982
3983 ---------------------------------------
3984 --
3985 -- PRIVATE FUNCTION
3986 -- AcctDerRule_25
3987 --
3988 ---------------------------------------
3989 FUNCTION AcctDerRule_25 (
3990 p_application_id IN NUMBER
3991 , p_ae_header_id IN NUMBER
3992 , p_side IN VARCHAR2
3993 --Automatic Offsets Value
3994 , p_source_16 IN VARCHAR2
3995 , p_source_16_meaning IN VARCHAR2
3996 --Purchase Order Rate Variance Gain Account
3997 , p_source_17 IN NUMBER
3998 --Invoice Distribution Ledger Amount
3999 , p_source_18 IN NUMBER
4000 --Destination Type of the PO Distribution
4001 , p_source_19 IN VARCHAR2
4002 , p_source_19_meaning IN VARCHAR2
4003 --Purchase Order Rate Variance Loss Account
4004 , p_source_20 IN NUMBER
4005 --Invoice Distribution Account
4006 , p_source_29 IN NUMBER
4010 , x_transaction_coa_id OUT NOCOPY NUMBER
4007 --Automatic Offsets Flag
4008 , p_source_42 IN VARCHAR2
4009 , p_source_42_meaning IN VARCHAR2
4011 , x_accounting_coa_id OUT NOCOPY NUMBER
4012 , x_value_type_code OUT NOCOPY VARCHAR2
4013 )
4014 RETURN NUMBER
4015 IS
4016 l_component_type VARCHAR2(80) ;
4017 l_component_code VARCHAR2(30) ;
4018 l_component_type_code VARCHAR2(1) ;
4019 l_component_appl_id INTEGER ;
4020 l_amb_context_code VARCHAR2(30) ;
4021 l_log_module VARCHAR2(240) ;
4022 l_output_value NUMBER ;
4023 BEGIN
4024 IF g_log_enabled THEN
4025 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
4026 END IF;
4027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4028 trace
4029 (p_msg => 'BEGIN of AcctDerRule_25'
4030 ,p_level => C_LEVEL_PROCEDURE
4031 ,p_module => l_log_module);
4032 END IF;
4033 --
4034 l_component_type := 'AMB_ADR';
4035 l_component_code := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
4036 l_component_type_code := 'S';
4037 l_component_appl_id := 200;
4038 l_amb_context_code := 'DEFAULT';
4039 x_transaction_coa_id := null;
4040 x_accounting_coa_id := null;
4041 --
4042
4043 IF NVL(p_source_19,'
4044 ') = 'EXPENSE' OR
4045 (NVL(p_source_19,'
4046 ') = 'INVENTORY' AND
4047 NVL(p_source_16,'
4048 ') = 'ACCOUNT_SEGMENT_VALUE')
4049 THEN
4050 --
4051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4052 trace
4053 (p_msg => 'END of AcctDerRule_25'
4054 ,p_level => C_LEVEL_PROCEDURE
4055 ,p_module => l_log_module);
4056 END IF;
4057 x_value_type_code := 'S';
4058 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
4059 RETURN l_output_value;
4060
4061 ELSIF NVL(p_source_19,'
4062 ') <> 'EXPENSE' AND
4063 p_source_18 <= 0 AND
4064 (NVL(p_source_42,'
4065 ') = 'N' OR
4066 NVL(p_source_16,'
4067 ') = 'BALANCING_SEGMENT')
4068 THEN
4069 --
4070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4071 trace
4072 (p_msg => 'END of AcctDerRule_25'
4073 ,p_level => C_LEVEL_PROCEDURE
4074 ,p_module => l_log_module);
4075 END IF;
4076 x_value_type_code := 'S';
4077 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
4078 RETURN l_output_value;
4079
4080 ELSIF NVL(p_source_19,'
4081 ') <> 'EXPENSE' AND
4082 p_source_18 > 0 AND
4083 (NVL(p_source_42,'
4084 ') = 'N' OR
4085 NVL(p_source_16,'
4086 ') = 'BALANCING_SEGMENT')
4087 THEN
4088 --
4089 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4090 trace
4091 (p_msg => 'END of AcctDerRule_25'
4092 ,p_level => C_LEVEL_PROCEDURE
4093 ,p_module => l_log_module);
4094 END IF;
4095 x_value_type_code := 'S';
4096 l_output_value := TO_NUMBER(TO_NUMBER(p_source_20));
4097 RETURN l_output_value;
4098
4099 END IF;
4100 --
4101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4102 trace
4103 (p_msg => 'END of AcctDerRule_25(invalid)'
4104 ,p_level => C_LEVEL_PROCEDURE
4105 ,p_module => l_log_module);
4106 END IF;
4107 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4108 x_value_type_code := null;
4109 l_output_value := null;
4110 xla_accounting_err_pkg.build_message
4111 (p_appli_s_name => 'XLA'
4112 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4113 ,p_token_1 => 'COMPONENT_NAME'
4114 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4115 l_component_type
4116 , l_component_code
4117 , l_component_type_code
4118 , l_component_appl_id
4119 , l_amb_context_code
4120 )
4121 ,p_token_2 => 'OWNER'
4122 ,p_value_2 => xla_lookups_pkg.get_meaning(
4123 'XLA_OWNER_TYPE'
4124 ,l_component_type_code
4125 )
4126 ,p_token_3 => 'PAD_NAME'
4127 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4128 ,p_token_4 => 'PAD_OWNER'
4129 ,p_value_4 => xla_lookups_pkg.get_meaning(
4130 'XLA_OWNER_TYPE'
4131 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4132 )
4133 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4134 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4135 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4139 EXCEPTION
4136 ,p_ae_header_id => NULL
4137 );
4138 RETURN l_output_value;
4140 WHEN xla_exceptions_pkg.application_exception THEN
4141 RAISE;
4142 WHEN OTHERS THEN
4143 xla_exceptions_pkg.raise_message
4144 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_25');
4145 END AcctDerRule_25;
4146 --
4147
4148 ---------------------------------------
4149 --
4150 -- PRIVATE FUNCTION
4151 -- AcctDerRule_26
4152 --
4153 ---------------------------------------
4154 FUNCTION AcctDerRule_26 (
4155 p_application_id IN NUMBER
4156 , p_ae_header_id IN NUMBER
4157 , p_side IN VARCHAR2
4158 --Automatic Offsets Value
4159 , p_source_16 IN VARCHAR2
4160 , p_source_16_meaning IN VARCHAR2
4161 --Bank Future Dated Payment Account
4162 , p_source_23 IN NUMBER
4163 --Future Dated Payment Account Source Option
4164 , p_source_24 IN VARCHAR2
4165 , p_source_24_meaning IN VARCHAR2
4166 --Financials Options Future Dated Payment Account
4167 , p_source_25 IN NUMBER
4168 --Supplier Site Future Dated Payment Account
4169 , p_source_26 IN NUMBER
4170 --Invoice Distribution Account
4171 , p_source_29 IN NUMBER
4172 , x_transaction_coa_id OUT NOCOPY NUMBER
4173 , x_accounting_coa_id OUT NOCOPY NUMBER
4174 , x_value_type_code OUT NOCOPY VARCHAR2
4175 )
4176 RETURN NUMBER
4177 IS
4178 l_component_type VARCHAR2(80) ;
4179 l_component_code VARCHAR2(30) ;
4180 l_component_type_code VARCHAR2(1) ;
4181 l_component_appl_id INTEGER ;
4182 l_amb_context_code VARCHAR2(30) ;
4183 l_log_module VARCHAR2(240) ;
4184 l_output_value NUMBER ;
4185 BEGIN
4186 IF g_log_enabled THEN
4187 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
4188 END IF;
4189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4190 trace
4191 (p_msg => 'BEGIN of AcctDerRule_26'
4192 ,p_level => C_LEVEL_PROCEDURE
4193 ,p_module => l_log_module);
4194 END IF;
4195 --
4196 l_component_type := 'AMB_ADR';
4197 l_component_code := 'AP_FUTURE_DATED_PMT';
4198 l_component_type_code := 'S';
4199 l_component_appl_id := 200;
4200 l_amb_context_code := 'DEFAULT';
4201 x_transaction_coa_id := null;
4202 x_accounting_coa_id := null;
4203 --
4204
4205 IF NVL(p_source_16,'
4206 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
4207 NVL(p_source_24,'
4208 ') = 'BANK ACCOUNT' AND
4209 TO_NUMBER(p_source_23) IS NOT NULL
4210 THEN
4211 --
4212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4213 trace
4214 (p_msg => 'END of AcctDerRule_26'
4215 ,p_level => C_LEVEL_PROCEDURE
4216 ,p_module => l_log_module);
4217 END IF;
4218 x_value_type_code := 'S';
4219 l_output_value := TO_NUMBER(TO_NUMBER(p_source_23));
4220 RETURN l_output_value;
4221
4222 ELSIF NVL(p_source_16,'
4223 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
4224 NVL(p_source_24,'
4225 ') = 'BANK ACCOUNT'
4226 THEN
4227 --
4228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4229 trace
4230 (p_msg => 'END of AcctDerRule_26'
4231 ,p_level => C_LEVEL_PROCEDURE
4232 ,p_module => l_log_module);
4233 END IF;
4234 x_value_type_code := 'S';
4235 l_output_value := TO_NUMBER(TO_NUMBER(p_source_25));
4236 RETURN l_output_value;
4237
4238 ELSIF NVL(p_source_16,'
4239 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
4240 NVL(p_source_24,'
4241 ') = 'SUPPLIER SITE' AND
4242 TO_NUMBER(p_source_26) IS NOT NULL
4243 THEN
4244 --
4245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4246 trace
4247 (p_msg => 'END of AcctDerRule_26'
4248 ,p_level => C_LEVEL_PROCEDURE
4249 ,p_module => l_log_module);
4250 END IF;
4251 x_value_type_code := 'S';
4252 l_output_value := TO_NUMBER(TO_NUMBER(p_source_26));
4253 RETURN l_output_value;
4254
4255 ELSIF NVL(p_source_16,'
4256 ') <> 'ACCOUNT_SEGMENT_VALUE' AND
4257 NVL(p_source_24,'
4258 ') = 'SUPPLIER SITE'
4259 THEN
4260 --
4261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4262 trace
4263 (p_msg => 'END of AcctDerRule_26'
4264 ,p_level => C_LEVEL_PROCEDURE
4265 ,p_module => l_log_module);
4266 END IF;
4267 x_value_type_code := 'S';
4268 l_output_value := TO_NUMBER(TO_NUMBER(p_source_25));
4269 RETURN l_output_value;
4270
4271 ELSIF NVL(p_source_16,'
4272 ') = 'ACCOUNT_SEGMENT_VALUE'
4273 THEN
4274 --
4275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4276 trace
4277 (p_msg => 'END of AcctDerRule_26'
4278 ,p_level => C_LEVEL_PROCEDURE
4279 ,p_module => l_log_module);
4280 END IF;
4281 x_value_type_code := 'S';
4282 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
4283 RETURN l_output_value;
4284
4285 END IF;
4286 --
4287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4288 trace
4289 (p_msg => 'END of AcctDerRule_26(invalid)'
4290 ,p_level => C_LEVEL_PROCEDURE
4291 ,p_module => l_log_module);
4295 l_output_value := null;
4292 END IF;
4293 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4294 x_value_type_code := null;
4296 xla_accounting_err_pkg.build_message
4297 (p_appli_s_name => 'XLA'
4298 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4299 ,p_token_1 => 'COMPONENT_NAME'
4300 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4301 l_component_type
4302 , l_component_code
4303 , l_component_type_code
4304 , l_component_appl_id
4305 , l_amb_context_code
4306 )
4307 ,p_token_2 => 'OWNER'
4308 ,p_value_2 => xla_lookups_pkg.get_meaning(
4309 'XLA_OWNER_TYPE'
4310 ,l_component_type_code
4311 )
4312 ,p_token_3 => 'PAD_NAME'
4313 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4314 ,p_token_4 => 'PAD_OWNER'
4315 ,p_value_4 => xla_lookups_pkg.get_meaning(
4316 'XLA_OWNER_TYPE'
4317 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4318 )
4319 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4320 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4321 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4322 ,p_ae_header_id => NULL
4323 );
4324 RETURN l_output_value;
4325 EXCEPTION
4326 WHEN xla_exceptions_pkg.application_exception THEN
4327 RAISE;
4328 WHEN OTHERS THEN
4329 xla_exceptions_pkg.raise_message
4330 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_26');
4331 END AcctDerRule_26;
4332 --
4333
4334 ---------------------------------------
4335 --
4336 -- PRIVATE FUNCTION
4337 -- AcctDerRule_27
4338 --
4339 ---------------------------------------
4340 FUNCTION AcctDerRule_27 (
4341 p_application_id IN NUMBER
4342 , p_ae_header_id IN NUMBER
4343 , p_side IN VARCHAR2
4344 --Interest Account
4345 , p_source_27 IN NUMBER
4346 --Prorate Interest Invoice Across Distributions Option
4347 , p_source_28 IN VARCHAR2
4348 --Invoice Distribution Account
4349 , p_source_29 IN NUMBER
4350 , x_transaction_coa_id OUT NOCOPY NUMBER
4351 , x_accounting_coa_id OUT NOCOPY NUMBER
4352 , x_value_type_code OUT NOCOPY VARCHAR2
4353 )
4354 RETURN NUMBER
4355 IS
4356 l_component_type VARCHAR2(80) ;
4357 l_component_code VARCHAR2(30) ;
4358 l_component_type_code VARCHAR2(1) ;
4359 l_component_appl_id INTEGER ;
4360 l_amb_context_code VARCHAR2(30) ;
4361 l_log_module VARCHAR2(240) ;
4362 l_output_value NUMBER ;
4363 BEGIN
4364 IF g_log_enabled THEN
4365 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
4366 END IF;
4367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4368 trace
4369 (p_msg => 'BEGIN of AcctDerRule_27'
4370 ,p_level => C_LEVEL_PROCEDURE
4371 ,p_module => l_log_module);
4372 END IF;
4373 --
4374 l_component_type := 'AMB_ADR';
4375 l_component_code := 'AP_INTEREST';
4376 l_component_type_code := 'S';
4377 l_component_appl_id := 200;
4378 l_amb_context_code := 'DEFAULT';
4379 x_transaction_coa_id := null;
4380 x_accounting_coa_id := null;
4381 --
4382
4383 IF NVL(p_source_28,'
4384 ') = 'N'
4385 THEN
4386 --
4387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4388 trace
4389 (p_msg => 'END of AcctDerRule_27'
4390 ,p_level => C_LEVEL_PROCEDURE
4391 ,p_module => l_log_module);
4392 END IF;
4393 x_value_type_code := 'S';
4394 l_output_value := TO_NUMBER(TO_NUMBER(p_source_27));
4395 RETURN l_output_value;
4396
4397 ELSIF NVL(p_source_28,'
4398 ') = 'Y'
4399 THEN
4400 --
4401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4402 trace
4403 (p_msg => 'END of AcctDerRule_27'
4404 ,p_level => C_LEVEL_PROCEDURE
4405 ,p_module => l_log_module);
4406 END IF;
4407 x_value_type_code := 'S';
4408 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
4409 RETURN l_output_value;
4410
4411 END IF;
4412 --
4413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4414 trace
4415 (p_msg => 'END of AcctDerRule_27(invalid)'
4416 ,p_level => C_LEVEL_PROCEDURE
4417 ,p_module => l_log_module);
4418 END IF;
4422 xla_accounting_err_pkg.build_message
4419 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4420 x_value_type_code := null;
4421 l_output_value := null;
4423 (p_appli_s_name => 'XLA'
4424 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4425 ,p_token_1 => 'COMPONENT_NAME'
4426 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4427 l_component_type
4428 , l_component_code
4429 , l_component_type_code
4430 , l_component_appl_id
4431 , l_amb_context_code
4432 )
4433 ,p_token_2 => 'OWNER'
4434 ,p_value_2 => xla_lookups_pkg.get_meaning(
4435 'XLA_OWNER_TYPE'
4436 ,l_component_type_code
4437 )
4438 ,p_token_3 => 'PAD_NAME'
4439 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4440 ,p_token_4 => 'PAD_OWNER'
4441 ,p_value_4 => xla_lookups_pkg.get_meaning(
4442 'XLA_OWNER_TYPE'
4443 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4444 )
4445 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4446 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4447 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4448 ,p_ae_header_id => NULL
4449 );
4450 RETURN l_output_value;
4451 EXCEPTION
4452 WHEN xla_exceptions_pkg.application_exception THEN
4453 RAISE;
4454 WHEN OTHERS THEN
4455 xla_exceptions_pkg.raise_message
4456 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_27');
4457 END AcctDerRule_27;
4458 --
4459
4460 ---------------------------------------
4461 --
4462 -- PRIVATE FUNCTION
4463 -- AcctDerRule_28
4464 --
4465 ---------------------------------------
4466 FUNCTION AcctDerRule_28 (
4467 p_application_id IN NUMBER
4468 , p_ae_header_id IN NUMBER
4469 , p_side IN VARCHAR2
4470 --Invoice Distribution Account
4471 , p_source_29 IN NUMBER
4472 , x_transaction_coa_id OUT NOCOPY NUMBER
4473 , x_accounting_coa_id OUT NOCOPY NUMBER
4474 , x_value_type_code OUT NOCOPY VARCHAR2
4475 )
4476 RETURN NUMBER
4477 IS
4478 l_component_type VARCHAR2(80) ;
4479 l_component_code VARCHAR2(30) ;
4480 l_component_type_code VARCHAR2(1) ;
4481 l_component_appl_id INTEGER ;
4482 l_amb_context_code VARCHAR2(30) ;
4483 l_log_module VARCHAR2(240) ;
4484 l_output_value NUMBER ;
4485 BEGIN
4486 IF g_log_enabled THEN
4487 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4488 END IF;
4489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4490 trace
4491 (p_msg => 'BEGIN of AcctDerRule_28'
4492 ,p_level => C_LEVEL_PROCEDURE
4493 ,p_module => l_log_module);
4494 END IF;
4495 --
4496 l_component_type := 'AMB_ADR';
4497 l_component_code := 'AP_INVOICE_DIST';
4498 l_component_type_code := 'S';
4499 l_component_appl_id := 200;
4500 l_amb_context_code := 'DEFAULT';
4501 x_transaction_coa_id := null;
4502 x_accounting_coa_id := null;
4503 --
4504
4505 --
4506 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4507 trace
4508 (p_msg => 'END of AcctDerRule_28'
4509 ,p_level => C_LEVEL_PROCEDURE
4510 ,p_module => l_log_module);
4511 END IF;
4512 x_value_type_code := 'S';
4513 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
4514 RETURN l_output_value;
4515
4516 --
4517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4518 trace
4519 (p_msg => 'END of AcctDerRule_28(invalid)'
4520 ,p_level => C_LEVEL_PROCEDURE
4521 ,p_module => l_log_module);
4522 END IF;
4523 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4524 x_value_type_code := null;
4525 l_output_value := null;
4526 xla_accounting_err_pkg.build_message
4527 (p_appli_s_name => 'XLA'
4528 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4529 ,p_token_1 => 'COMPONENT_NAME'
4530 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4531 l_component_type
4532 , l_component_code
4533 , l_component_type_code
4534 , l_component_appl_id
4538 ,p_value_2 => xla_lookups_pkg.get_meaning(
4535 , l_amb_context_code
4536 )
4537 ,p_token_2 => 'OWNER'
4539 'XLA_OWNER_TYPE'
4540 ,l_component_type_code
4541 )
4542 ,p_token_3 => 'PAD_NAME'
4543 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4544 ,p_token_4 => 'PAD_OWNER'
4545 ,p_value_4 => xla_lookups_pkg.get_meaning(
4546 'XLA_OWNER_TYPE'
4547 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4548 )
4549 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4550 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4551 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4552 ,p_ae_header_id => NULL
4553 );
4554 RETURN l_output_value;
4555 EXCEPTION
4556 WHEN xla_exceptions_pkg.application_exception THEN
4557 RAISE;
4558 WHEN OTHERS THEN
4559 xla_exceptions_pkg.raise_message
4560 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_28');
4561 END AcctDerRule_28;
4562 --
4563
4564 ---------------------------------------
4565 --
4566 -- PRIVATE FUNCTION
4567 -- AcctDerRule_29
4568 --
4569 ---------------------------------------
4570 FUNCTION AcctDerRule_29 (
4571 p_application_id IN NUMBER
4572 , p_ae_header_id IN NUMBER
4573 , p_side IN VARCHAR2
4574 --Payment Card Accrued Account
4575 , p_source_43 IN NUMBER
4576 , x_transaction_coa_id OUT NOCOPY NUMBER
4577 , x_accounting_coa_id OUT NOCOPY NUMBER
4578 , x_value_type_code OUT NOCOPY VARCHAR2
4579 )
4580 RETURN NUMBER
4581 IS
4582 l_component_type VARCHAR2(80) ;
4583 l_component_code VARCHAR2(30) ;
4584 l_component_type_code VARCHAR2(1) ;
4585 l_component_appl_id INTEGER ;
4586 l_amb_context_code VARCHAR2(30) ;
4587 l_log_module VARCHAR2(240) ;
4588 l_output_value NUMBER ;
4589 BEGIN
4590 IF g_log_enabled THEN
4591 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4592 END IF;
4593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4594 trace
4595 (p_msg => 'BEGIN of AcctDerRule_29'
4596 ,p_level => C_LEVEL_PROCEDURE
4597 ,p_module => l_log_module);
4598 END IF;
4599 --
4600 l_component_type := 'AMB_ADR';
4601 l_component_code := 'AP_PAYCARD_ACCRUED_ADR';
4602 l_component_type_code := 'S';
4603 l_component_appl_id := 200;
4604 l_amb_context_code := 'DEFAULT';
4605 x_transaction_coa_id := null;
4606 x_accounting_coa_id := null;
4607 --
4608
4609 --
4610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4611 trace
4612 (p_msg => 'END of AcctDerRule_29'
4613 ,p_level => C_LEVEL_PROCEDURE
4614 ,p_module => l_log_module);
4615 END IF;
4616 x_value_type_code := 'S';
4617 l_output_value := TO_NUMBER(TO_NUMBER(p_source_43));
4618 RETURN l_output_value;
4619
4620 --
4621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4622 trace
4623 (p_msg => 'END of AcctDerRule_29(invalid)'
4624 ,p_level => C_LEVEL_PROCEDURE
4625 ,p_module => l_log_module);
4626 END IF;
4627 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4628 x_value_type_code := null;
4629 l_output_value := null;
4630 xla_accounting_err_pkg.build_message
4631 (p_appli_s_name => 'XLA'
4632 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4633 ,p_token_1 => 'COMPONENT_NAME'
4634 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4635 l_component_type
4636 , l_component_code
4637 , l_component_type_code
4638 , l_component_appl_id
4639 , l_amb_context_code
4640 )
4641 ,p_token_2 => 'OWNER'
4642 ,p_value_2 => xla_lookups_pkg.get_meaning(
4643 'XLA_OWNER_TYPE'
4644 ,l_component_type_code
4645 )
4646 ,p_token_3 => 'PAD_NAME'
4647 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4648 ,p_token_4 => 'PAD_OWNER'
4649 ,p_value_4 => xla_lookups_pkg.get_meaning(
4653 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4650 'XLA_OWNER_TYPE'
4651 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4652 )
4654 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4655 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4656 ,p_ae_header_id => NULL
4657 );
4658 RETURN l_output_value;
4659 EXCEPTION
4660 WHEN xla_exceptions_pkg.application_exception THEN
4661 RAISE;
4662 WHEN OTHERS THEN
4663 xla_exceptions_pkg.raise_message
4664 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_29');
4665 END AcctDerRule_29;
4666 --
4667
4668 ---------------------------------------
4669 --
4670 -- PRIVATE FUNCTION
4671 -- AcctDerRule_30
4672 --
4673 ---------------------------------------
4674 FUNCTION AcctDerRule_30 (
4675 p_application_id IN NUMBER
4676 , p_ae_header_id IN NUMBER
4677 , p_side IN VARCHAR2
4678 --Bank Cash Clearing Account
4679 , p_source_33 IN NUMBER
4680 , x_transaction_coa_id OUT NOCOPY NUMBER
4681 , x_accounting_coa_id OUT NOCOPY NUMBER
4682 , x_value_type_code OUT NOCOPY VARCHAR2
4683 )
4684 RETURN NUMBER
4685 IS
4686 l_component_type VARCHAR2(80) ;
4687 l_component_code VARCHAR2(30) ;
4688 l_component_type_code VARCHAR2(1) ;
4689 l_component_appl_id INTEGER ;
4690 l_amb_context_code VARCHAR2(30) ;
4691 l_log_module VARCHAR2(240) ;
4692 l_output_value NUMBER ;
4693 BEGIN
4694 IF g_log_enabled THEN
4695 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4696 END IF;
4697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4698 trace
4699 (p_msg => 'BEGIN of AcctDerRule_30'
4700 ,p_level => C_LEVEL_PROCEDURE
4701 ,p_module => l_log_module);
4702 END IF;
4703 --
4704 l_component_type := 'AMB_ADR';
4705 l_component_code := 'AP_PMT_CASH_CLEAR';
4706 l_component_type_code := 'S';
4707 l_component_appl_id := 200;
4708 l_amb_context_code := 'DEFAULT';
4709 x_transaction_coa_id := null;
4710 x_accounting_coa_id := null;
4711 --
4712
4713 --
4714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4715 trace
4716 (p_msg => 'END of AcctDerRule_30'
4717 ,p_level => C_LEVEL_PROCEDURE
4718 ,p_module => l_log_module);
4719 END IF;
4720 x_value_type_code := 'S';
4721 l_output_value := TO_NUMBER(TO_NUMBER(p_source_33));
4722 RETURN l_output_value;
4723
4724 --
4725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4726 trace
4727 (p_msg => 'END of AcctDerRule_30(invalid)'
4728 ,p_level => C_LEVEL_PROCEDURE
4729 ,p_module => l_log_module);
4730 END IF;
4731 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4732 x_value_type_code := null;
4733 l_output_value := null;
4734 xla_accounting_err_pkg.build_message
4735 (p_appli_s_name => 'XLA'
4736 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4737 ,p_token_1 => 'COMPONENT_NAME'
4738 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4739 l_component_type
4740 , l_component_code
4741 , l_component_type_code
4742 , l_component_appl_id
4743 , l_amb_context_code
4744 )
4745 ,p_token_2 => 'OWNER'
4746 ,p_value_2 => xla_lookups_pkg.get_meaning(
4747 'XLA_OWNER_TYPE'
4748 ,l_component_type_code
4749 )
4750 ,p_token_3 => 'PAD_NAME'
4751 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4752 ,p_token_4 => 'PAD_OWNER'
4753 ,p_value_4 => xla_lookups_pkg.get_meaning(
4754 'XLA_OWNER_TYPE'
4755 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4756 )
4757 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4758 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4759 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4760 ,p_ae_header_id => NULL
4761 );
4762 RETURN l_output_value;
4763 EXCEPTION
4764 WHEN xla_exceptions_pkg.application_exception THEN
4765 RAISE;
4766 WHEN OTHERS THEN
4767 xla_exceptions_pkg.raise_message
4771
4768 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_30');
4769 END AcctDerRule_30;
4770 --
4772 ---------------------------------------
4773 --
4774 -- PRIVATE FUNCTION
4775 -- AcctDerRule_31
4776 --
4777 ---------------------------------------
4778 FUNCTION AcctDerRule_31 (
4779 p_application_id IN NUMBER
4780 , p_ae_header_id IN NUMBER
4781 , p_side IN VARCHAR2
4782 --Purchase Order Charge Account
4783 , p_source_40 IN NUMBER
4784 , x_transaction_coa_id OUT NOCOPY NUMBER
4785 , x_accounting_coa_id OUT NOCOPY NUMBER
4786 , x_value_type_code OUT NOCOPY VARCHAR2
4787 )
4788 RETURN NUMBER
4789 IS
4790 l_component_type VARCHAR2(80) ;
4791 l_component_code VARCHAR2(30) ;
4792 l_component_type_code VARCHAR2(1) ;
4793 l_component_appl_id INTEGER ;
4794 l_amb_context_code VARCHAR2(30) ;
4795 l_log_module VARCHAR2(240) ;
4796 l_output_value NUMBER ;
4797 BEGIN
4798 IF g_log_enabled THEN
4799 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4800 END IF;
4801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4802 trace
4803 (p_msg => 'BEGIN of AcctDerRule_31'
4804 ,p_level => C_LEVEL_PROCEDURE
4805 ,p_module => l_log_module);
4806 END IF;
4807 --
4808 l_component_type := 'AMB_ADR';
4809 l_component_code := 'AP_PO_CHARGE_ACCT';
4810 l_component_type_code := 'S';
4811 l_component_appl_id := 200;
4812 l_amb_context_code := 'DEFAULT';
4813 x_transaction_coa_id := null;
4814 x_accounting_coa_id := null;
4815 --
4816
4817 --
4818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4819 trace
4820 (p_msg => 'END of AcctDerRule_31'
4821 ,p_level => C_LEVEL_PROCEDURE
4822 ,p_module => l_log_module);
4823 END IF;
4824 x_value_type_code := 'S';
4825 l_output_value := TO_NUMBER(TO_NUMBER(p_source_40));
4826 RETURN l_output_value;
4827
4828 --
4829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4830 trace
4831 (p_msg => 'END of AcctDerRule_31(invalid)'
4832 ,p_level => C_LEVEL_PROCEDURE
4833 ,p_module => l_log_module);
4834 END IF;
4835 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4836 x_value_type_code := null;
4837 l_output_value := null;
4838 xla_accounting_err_pkg.build_message
4839 (p_appli_s_name => 'XLA'
4840 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4841 ,p_token_1 => 'COMPONENT_NAME'
4842 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4843 l_component_type
4844 , l_component_code
4845 , l_component_type_code
4846 , l_component_appl_id
4847 , l_amb_context_code
4848 )
4849 ,p_token_2 => 'OWNER'
4850 ,p_value_2 => xla_lookups_pkg.get_meaning(
4851 'XLA_OWNER_TYPE'
4852 ,l_component_type_code
4853 )
4854 ,p_token_3 => 'PAD_NAME'
4855 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4856 ,p_token_4 => 'PAD_OWNER'
4857 ,p_value_4 => xla_lookups_pkg.get_meaning(
4858 'XLA_OWNER_TYPE'
4859 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4860 )
4861 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4862 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4863 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4864 ,p_ae_header_id => NULL
4865 );
4866 RETURN l_output_value;
4867 EXCEPTION
4868 WHEN xla_exceptions_pkg.application_exception THEN
4869 RAISE;
4870 WHEN OTHERS THEN
4871 xla_exceptions_pkg.raise_message
4872 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_31');
4873 END AcctDerRule_31;
4874 --
4875
4876 ---------------------------------------
4877 --
4878 -- PRIVATE FUNCTION
4879 -- AcctDerRule_32
4880 --
4881 ---------------------------------------
4882 FUNCTION AcctDerRule_32 (
4883 p_application_id IN NUMBER
4884 , p_ae_header_id IN NUMBER
4885 , p_side IN VARCHAR2
4886 --Invoice Distribution Account
4887 , p_source_29 IN NUMBER
4888 --Prepaid Expense Account Source Option
4889 , p_source_30 IN VARCHAR2
4890 , p_source_30_meaning IN VARCHAR2
4891 --Purchase Order Number
4892 , p_source_31 IN VARCHAR2
4896 --Purchase Order Charge Account
4893 --Invoice Distribution Type
4894 , p_source_32 IN VARCHAR2
4895 , p_source_32_meaning IN VARCHAR2
4897 , p_source_40 IN NUMBER
4898 , x_transaction_coa_id OUT NOCOPY NUMBER
4899 , x_accounting_coa_id OUT NOCOPY NUMBER
4900 , x_value_type_code OUT NOCOPY VARCHAR2
4901 )
4902 RETURN NUMBER
4903 IS
4904 l_component_type VARCHAR2(80) ;
4905 l_component_code VARCHAR2(30) ;
4906 l_component_type_code VARCHAR2(1) ;
4907 l_component_appl_id INTEGER ;
4908 l_amb_context_code VARCHAR2(30) ;
4909 l_log_module VARCHAR2(240) ;
4910 l_output_value NUMBER ;
4911 BEGIN
4912 IF g_log_enabled THEN
4913 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4914 END IF;
4915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4916 trace
4917 (p_msg => 'BEGIN of AcctDerRule_32'
4918 ,p_level => C_LEVEL_PROCEDURE
4919 ,p_module => l_log_module);
4920 END IF;
4921 --
4922 l_component_type := 'AMB_ADR';
4923 l_component_code := 'AP_PREPAY_INVOICE_DIST';
4924 l_component_type_code := 'S';
4925 l_component_appl_id := 200;
4926 l_amb_context_code := 'DEFAULT';
4927 x_transaction_coa_id := null;
4928 x_accounting_coa_id := null;
4929 --
4930
4931 IF NVL(p_source_30,'
4932 ') <> 'Y' OR
4933 (NVL(p_source_30,'
4934 ') = 'Y' AND
4935 p_source_31 IS NULL )
4936 THEN
4937 --
4938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4939 trace
4940 (p_msg => 'END of AcctDerRule_32'
4941 ,p_level => C_LEVEL_PROCEDURE
4942 ,p_module => l_log_module);
4943 END IF;
4944 x_value_type_code := 'S';
4945 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
4946 RETURN l_output_value;
4947
4948 ELSIF NVL(p_source_30,'
4949 ') = 'Y' AND
4950 p_source_31 IS NOT NULL AND
4951 NVL(p_source_32,'
4952 ') = 'ITEM'
4953 THEN
4954 --
4955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4956 trace
4957 (p_msg => 'END of AcctDerRule_32'
4958 ,p_level => C_LEVEL_PROCEDURE
4959 ,p_module => l_log_module);
4960 END IF;
4961 x_value_type_code := 'S';
4962 l_output_value := TO_NUMBER(TO_NUMBER(p_source_40));
4963 RETURN l_output_value;
4964
4965 END IF;
4966 --
4967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4968 trace
4969 (p_msg => 'END of AcctDerRule_32(invalid)'
4970 ,p_level => C_LEVEL_PROCEDURE
4971 ,p_module => l_log_module);
4972 END IF;
4973 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4974 x_value_type_code := null;
4975 l_output_value := null;
4976 xla_accounting_err_pkg.build_message
4977 (p_appli_s_name => 'XLA'
4978 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4979 ,p_token_1 => 'COMPONENT_NAME'
4980 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4981 l_component_type
4982 , l_component_code
4983 , l_component_type_code
4984 , l_component_appl_id
4985 , l_amb_context_code
4986 )
4987 ,p_token_2 => 'OWNER'
4988 ,p_value_2 => xla_lookups_pkg.get_meaning(
4989 'XLA_OWNER_TYPE'
4990 ,l_component_type_code
4991 )
4992 ,p_token_3 => 'PAD_NAME'
4993 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4994 ,p_token_4 => 'PAD_OWNER'
4995 ,p_value_4 => xla_lookups_pkg.get_meaning(
4996 'XLA_OWNER_TYPE'
4997 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4998 )
4999 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5000 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5001 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5002 ,p_ae_header_id => NULL
5003 );
5004 RETURN l_output_value;
5005 EXCEPTION
5006 WHEN xla_exceptions_pkg.application_exception THEN
5007 RAISE;
5008 WHEN OTHERS THEN
5009 xla_exceptions_pkg.raise_message
5010 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_32');
5011 END AcctDerRule_32;
5012 --
5013
5014 ---------------------------------------
5015 --
5016 -- PRIVATE FUNCTION
5017 -- AcctDerRule_33
5018 --
5019 ---------------------------------------
5020 FUNCTION AcctDerRule_33 (
5021 p_application_id IN NUMBER
5022 , p_ae_header_id IN NUMBER
5026 , p_source_16_meaning IN VARCHAR2
5023 , p_side IN VARCHAR2
5024 --Automatic Offsets Value
5025 , p_source_16 IN VARCHAR2
5027 --Invoice Distribution Account
5028 , p_source_29 IN NUMBER
5029 --Internal Realized Gain Account
5030 , p_source_44 IN NUMBER
5031 --Bank Gain Account
5032 , p_source_45 IN NUMBER
5033 , x_transaction_coa_id OUT NOCOPY NUMBER
5034 , x_accounting_coa_id OUT NOCOPY NUMBER
5035 , x_value_type_code OUT NOCOPY VARCHAR2
5036 )
5037 RETURN NUMBER
5038 IS
5039 l_component_type VARCHAR2(80) ;
5040 l_component_code VARCHAR2(30) ;
5041 l_component_type_code VARCHAR2(1) ;
5042 l_component_appl_id INTEGER ;
5043 l_amb_context_code VARCHAR2(30) ;
5044 l_log_module VARCHAR2(240) ;
5045 l_output_value NUMBER ;
5046 BEGIN
5047 IF g_log_enabled THEN
5048 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
5049 END IF;
5050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5051 trace
5052 (p_msg => 'BEGIN of AcctDerRule_33'
5053 ,p_level => C_LEVEL_PROCEDURE
5054 ,p_module => l_log_module);
5055 END IF;
5056 --
5057 l_component_type := 'AMB_ADR';
5058 l_component_code := 'AP_REAL_GAIN';
5059 l_component_type_code := 'S';
5060 l_component_appl_id := 200;
5061 l_amb_context_code := 'DEFAULT';
5062 x_transaction_coa_id := null;
5063 x_accounting_coa_id := null;
5064 --
5065
5066 IF NVL(p_source_16,'
5067 ') <> 'ACCOUNT_SEGMENT_VALUE'
5068 THEN
5069 --
5070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5071 trace
5072 (p_msg => 'END of AcctDerRule_33'
5073 ,p_level => C_LEVEL_PROCEDURE
5074 ,p_module => l_log_module);
5075 END IF;
5076 x_value_type_code := 'S';
5077 l_output_value := TO_NUMBER(TO_NUMBER(p_source_44));
5078 RETURN l_output_value;
5079
5080 ELSIF NVL(p_source_16,'
5081 ') <> 'ACCOUNT_SEGMENT_VALUE'
5082 THEN
5083 --
5084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5085 trace
5086 (p_msg => 'END of AcctDerRule_33'
5087 ,p_level => C_LEVEL_PROCEDURE
5088 ,p_module => l_log_module);
5089 END IF;
5090 x_value_type_code := 'S';
5091 l_output_value := TO_NUMBER(TO_NUMBER(p_source_45));
5092 RETURN l_output_value;
5093
5094 ELSIF NVL(p_source_16,'
5095 ') = 'ACCOUNT_SEGMENT_VALUE'
5096 THEN
5097 --
5098 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5099 trace
5100 (p_msg => 'END of AcctDerRule_33'
5101 ,p_level => C_LEVEL_PROCEDURE
5102 ,p_module => l_log_module);
5103 END IF;
5104 x_value_type_code := 'S';
5105 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
5106 RETURN l_output_value;
5107
5108 END IF;
5109 --
5110 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5111 trace
5112 (p_msg => 'END of AcctDerRule_33(invalid)'
5113 ,p_level => C_LEVEL_PROCEDURE
5114 ,p_module => l_log_module);
5115 END IF;
5116 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5117 x_value_type_code := null;
5118 l_output_value := null;
5119 xla_accounting_err_pkg.build_message
5120 (p_appli_s_name => 'XLA'
5121 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5122 ,p_token_1 => 'COMPONENT_NAME'
5123 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5124 l_component_type
5125 , l_component_code
5126 , l_component_type_code
5127 , l_component_appl_id
5128 , l_amb_context_code
5129 )
5130 ,p_token_2 => 'OWNER'
5131 ,p_value_2 => xla_lookups_pkg.get_meaning(
5132 'XLA_OWNER_TYPE'
5133 ,l_component_type_code
5134 )
5135 ,p_token_3 => 'PAD_NAME'
5136 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5137 ,p_token_4 => 'PAD_OWNER'
5138 ,p_value_4 => xla_lookups_pkg.get_meaning(
5139 'XLA_OWNER_TYPE'
5140 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5141 )
5142 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5143 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5144 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5145 ,p_ae_header_id => NULL
5146 );
5147 RETURN l_output_value;
5148 EXCEPTION
5149 WHEN xla_exceptions_pkg.application_exception THEN
5153 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_33');
5150 RAISE;
5151 WHEN OTHERS THEN
5152 xla_exceptions_pkg.raise_message
5154 END AcctDerRule_33;
5155 --
5156
5157 ---------------------------------------
5158 --
5159 -- PRIVATE FUNCTION
5160 -- AcctDerRule_34
5161 --
5162 ---------------------------------------
5163 FUNCTION AcctDerRule_34 (
5164 p_application_id IN NUMBER
5165 , p_ae_header_id IN NUMBER
5166 , p_side IN VARCHAR2
5167 --Automatic Offsets Value
5168 , p_source_16 IN VARCHAR2
5169 , p_source_16_meaning IN VARCHAR2
5170 --Invoice Distribution Account
5171 , p_source_29 IN NUMBER
5172 --Internal Realized Loss Account
5173 , p_source_46 IN NUMBER
5174 --Bank Loss Account
5175 , p_source_47 IN NUMBER
5176 , x_transaction_coa_id OUT NOCOPY NUMBER
5177 , x_accounting_coa_id OUT NOCOPY NUMBER
5178 , x_value_type_code OUT NOCOPY VARCHAR2
5179 )
5180 RETURN NUMBER
5181 IS
5182 l_component_type VARCHAR2(80) ;
5183 l_component_code VARCHAR2(30) ;
5184 l_component_type_code VARCHAR2(1) ;
5185 l_component_appl_id INTEGER ;
5186 l_amb_context_code VARCHAR2(30) ;
5187 l_log_module VARCHAR2(240) ;
5188 l_output_value NUMBER ;
5189 BEGIN
5190 IF g_log_enabled THEN
5191 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
5192 END IF;
5193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5194 trace
5195 (p_msg => 'BEGIN of AcctDerRule_34'
5196 ,p_level => C_LEVEL_PROCEDURE
5197 ,p_module => l_log_module);
5198 END IF;
5199 --
5200 l_component_type := 'AMB_ADR';
5201 l_component_code := 'AP_REAL_LOSS';
5202 l_component_type_code := 'S';
5203 l_component_appl_id := 200;
5204 l_amb_context_code := 'DEFAULT';
5205 x_transaction_coa_id := null;
5206 x_accounting_coa_id := null;
5207 --
5208
5209 IF NVL(p_source_16,'
5210 ') <> 'ACCOUNT_SEGMENT_VALUE'
5211 THEN
5212 --
5213 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5214 trace
5215 (p_msg => 'END of AcctDerRule_34'
5216 ,p_level => C_LEVEL_PROCEDURE
5217 ,p_module => l_log_module);
5218 END IF;
5219 x_value_type_code := 'S';
5220 l_output_value := TO_NUMBER(TO_NUMBER(p_source_46));
5221 RETURN l_output_value;
5222
5223 ELSIF NVL(p_source_16,'
5224 ') <> 'ACCOUNT_SEGMENT_VALUE'
5225 THEN
5226 --
5227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5228 trace
5229 (p_msg => 'END of AcctDerRule_34'
5230 ,p_level => C_LEVEL_PROCEDURE
5231 ,p_module => l_log_module);
5232 END IF;
5233 x_value_type_code := 'S';
5234 l_output_value := TO_NUMBER(TO_NUMBER(p_source_47));
5235 RETURN l_output_value;
5236
5237 ELSIF NVL(p_source_16,'
5238 ') = 'ACCOUNT_SEGMENT_VALUE'
5239 THEN
5240 --
5241 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5242 trace
5243 (p_msg => 'END of AcctDerRule_34'
5244 ,p_level => C_LEVEL_PROCEDURE
5245 ,p_module => l_log_module);
5246 END IF;
5247 x_value_type_code := 'S';
5248 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
5249 RETURN l_output_value;
5250
5251 END IF;
5252 --
5253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5254 trace
5255 (p_msg => 'END of AcctDerRule_34(invalid)'
5256 ,p_level => C_LEVEL_PROCEDURE
5257 ,p_module => l_log_module);
5258 END IF;
5259 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5260 x_value_type_code := null;
5261 l_output_value := null;
5262 xla_accounting_err_pkg.build_message
5263 (p_appli_s_name => 'XLA'
5264 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5265 ,p_token_1 => 'COMPONENT_NAME'
5266 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5267 l_component_type
5268 , l_component_code
5269 , l_component_type_code
5270 , l_component_appl_id
5271 , l_amb_context_code
5272 )
5273 ,p_token_2 => 'OWNER'
5274 ,p_value_2 => xla_lookups_pkg.get_meaning(
5275 'XLA_OWNER_TYPE'
5276 ,l_component_type_code
5277 )
5278 ,p_token_3 => 'PAD_NAME'
5279 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5280 ,p_token_4 => 'PAD_OWNER'
5281 ,p_value_4 => xla_lookups_pkg.get_meaning(
5282 'XLA_OWNER_TYPE'
5286 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5283 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5284 )
5285 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5287 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5288 ,p_ae_header_id => NULL
5289 );
5290 RETURN l_output_value;
5291 EXCEPTION
5292 WHEN xla_exceptions_pkg.application_exception THEN
5293 RAISE;
5294 WHEN OTHERS THEN
5295 xla_exceptions_pkg.raise_message
5296 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_34');
5297 END AcctDerRule_34;
5298 --
5299
5300 ---------------------------------------
5301 --
5302 -- PRIVATE FUNCTION
5303 -- AcctDerRule_35
5304 --
5305 ---------------------------------------
5306 FUNCTION AcctDerRule_35 (
5307 p_application_id IN NUMBER
5308 , p_ae_header_id IN NUMBER
5309 , p_side IN VARCHAR2
5310 --Recipient Invoice Distribution Account
5311 , p_source_48 IN NUMBER
5312 , x_transaction_coa_id OUT NOCOPY NUMBER
5313 , x_accounting_coa_id OUT NOCOPY NUMBER
5314 , x_value_type_code OUT NOCOPY VARCHAR2
5315 )
5316 RETURN NUMBER
5317 IS
5318 l_component_type VARCHAR2(80) ;
5319 l_component_code VARCHAR2(30) ;
5320 l_component_type_code VARCHAR2(1) ;
5321 l_component_appl_id INTEGER ;
5322 l_amb_context_code VARCHAR2(30) ;
5323 l_log_module VARCHAR2(240) ;
5324 l_output_value NUMBER ;
5325 BEGIN
5326 IF g_log_enabled THEN
5327 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
5328 END IF;
5329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5330 trace
5331 (p_msg => 'BEGIN of AcctDerRule_35'
5332 ,p_level => C_LEVEL_PROCEDURE
5333 ,p_module => l_log_module);
5334 END IF;
5335 --
5336 l_component_type := 'AMB_ADR';
5337 l_component_code := 'AP_RECP_INV_DIST';
5338 l_component_type_code := 'S';
5339 l_component_appl_id := 200;
5340 l_amb_context_code := 'DEFAULT';
5341 x_transaction_coa_id := null;
5342 x_accounting_coa_id := null;
5343 --
5344
5345 --
5346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5347 trace
5348 (p_msg => 'END of AcctDerRule_35'
5349 ,p_level => C_LEVEL_PROCEDURE
5350 ,p_module => l_log_module);
5351 END IF;
5352 x_value_type_code := 'S';
5353 l_output_value := TO_NUMBER(TO_NUMBER(p_source_48));
5354 RETURN l_output_value;
5355
5356 --
5357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5358 trace
5359 (p_msg => 'END of AcctDerRule_35(invalid)'
5360 ,p_level => C_LEVEL_PROCEDURE
5361 ,p_module => l_log_module);
5362 END IF;
5363 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5364 x_value_type_code := null;
5365 l_output_value := null;
5366 xla_accounting_err_pkg.build_message
5367 (p_appli_s_name => 'XLA'
5368 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5369 ,p_token_1 => 'COMPONENT_NAME'
5370 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5371 l_component_type
5372 , l_component_code
5373 , l_component_type_code
5374 , l_component_appl_id
5375 , l_amb_context_code
5376 )
5377 ,p_token_2 => 'OWNER'
5378 ,p_value_2 => xla_lookups_pkg.get_meaning(
5379 'XLA_OWNER_TYPE'
5380 ,l_component_type_code
5381 )
5382 ,p_token_3 => 'PAD_NAME'
5383 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5384 ,p_token_4 => 'PAD_OWNER'
5385 ,p_value_4 => xla_lookups_pkg.get_meaning(
5386 'XLA_OWNER_TYPE'
5387 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5388 )
5389 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5390 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5391 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5392 ,p_ae_header_id => NULL
5393 );
5394 RETURN l_output_value;
5395 EXCEPTION
5396 WHEN xla_exceptions_pkg.application_exception THEN
5397 RAISE;
5398 WHEN OTHERS THEN
5399 xla_exceptions_pkg.raise_message
5403
5400 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_35');
5401 END AcctDerRule_35;
5402 --
5404 ---------------------------------------
5405 --
5406 -- PRIVATE FUNCTION
5407 -- AcctDerRule_36
5408 --
5409 ---------------------------------------
5410 FUNCTION AcctDerRule_36 (
5411 p_application_id IN NUMBER
5412 , p_ae_header_id IN NUMBER
5413 , p_side IN VARCHAR2
5414 --Automatic Offsets Value
5415 , p_source_16 IN VARCHAR2
5416 , p_source_16_meaning IN VARCHAR2
5417 --Invoice Distribution Account
5418 , p_source_29 IN NUMBER
5419 --Retainage Related Item Distribution Account
5420 , p_source_35 IN NUMBER
5421 , x_transaction_coa_id OUT NOCOPY NUMBER
5422 , x_accounting_coa_id OUT NOCOPY NUMBER
5423 , x_value_type_code OUT NOCOPY VARCHAR2
5424 )
5425 RETURN NUMBER
5426 IS
5427 l_component_type VARCHAR2(80) ;
5428 l_component_code VARCHAR2(30) ;
5429 l_component_type_code VARCHAR2(1) ;
5430 l_component_appl_id INTEGER ;
5431 l_amb_context_code VARCHAR2(30) ;
5432 l_log_module VARCHAR2(240) ;
5433 l_output_value NUMBER ;
5434 BEGIN
5435 IF g_log_enabled THEN
5436 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5437 END IF;
5438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5439 trace
5440 (p_msg => 'BEGIN of AcctDerRule_36'
5441 ,p_level => C_LEVEL_PROCEDURE
5442 ,p_module => l_log_module);
5443 END IF;
5444 --
5445 l_component_type := 'AMB_ADR';
5446 l_component_code := 'AP_RETAINAGE';
5447 l_component_type_code := 'S';
5448 l_component_appl_id := 200;
5449 l_amb_context_code := 'DEFAULT';
5450 x_transaction_coa_id := null;
5451 x_accounting_coa_id := null;
5452 --
5453
5454 IF NVL(p_source_16,'
5455 ') <> 'ACCOUNT_SEGMENT_VALUE'
5456 THEN
5457 --
5458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5459 trace
5460 (p_msg => 'END of AcctDerRule_36'
5461 ,p_level => C_LEVEL_PROCEDURE
5462 ,p_module => l_log_module);
5463 END IF;
5464 x_value_type_code := 'S';
5465 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
5466 RETURN l_output_value;
5467
5468 ELSIF NVL(p_source_16,'
5469 ') = 'ACCOUNT_SEGMENT_VALUE'
5470 THEN
5471 --
5472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5473 trace
5474 (p_msg => 'END of AcctDerRule_36'
5475 ,p_level => C_LEVEL_PROCEDURE
5476 ,p_module => l_log_module);
5477 END IF;
5478 x_value_type_code := 'S';
5479 l_output_value := TO_NUMBER(TO_NUMBER(p_source_35));
5480 RETURN l_output_value;
5481
5482 END IF;
5483 --
5484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5485 trace
5486 (p_msg => 'END of AcctDerRule_36(invalid)'
5487 ,p_level => C_LEVEL_PROCEDURE
5488 ,p_module => l_log_module);
5489 END IF;
5490 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5491 x_value_type_code := null;
5492 l_output_value := null;
5493 xla_accounting_err_pkg.build_message
5494 (p_appli_s_name => 'XLA'
5495 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5496 ,p_token_1 => 'COMPONENT_NAME'
5497 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5498 l_component_type
5499 , l_component_code
5500 , l_component_type_code
5501 , l_component_appl_id
5502 , l_amb_context_code
5503 )
5504 ,p_token_2 => 'OWNER'
5505 ,p_value_2 => xla_lookups_pkg.get_meaning(
5506 'XLA_OWNER_TYPE'
5507 ,l_component_type_code
5508 )
5509 ,p_token_3 => 'PAD_NAME'
5510 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5511 ,p_token_4 => 'PAD_OWNER'
5512 ,p_value_4 => xla_lookups_pkg.get_meaning(
5513 'XLA_OWNER_TYPE'
5514 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5515 )
5516 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5517 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5518 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5519 ,p_ae_header_id => NULL
5520 );
5521 RETURN l_output_value;
5522 EXCEPTION
5523 WHEN xla_exceptions_pkg.application_exception THEN
5524 RAISE;
5525 WHEN OTHERS THEN
5526 xla_exceptions_pkg.raise_message
5527 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_36');
5528 END AcctDerRule_36;
5529 --
5533 -- PRIVATE FUNCTION
5530
5531 ---------------------------------------
5532 --
5534 -- AcctDerRule_37
5535 --
5536 ---------------------------------------
5537 FUNCTION AcctDerRule_37 (
5538 p_application_id IN NUMBER
5539 , p_ae_header_id IN NUMBER
5540 , p_side IN VARCHAR2
5541 --Automatic Offsets Value
5542 , p_source_16 IN VARCHAR2
5543 , p_source_16_meaning IN VARCHAR2
5544 --Invoice Distribution Account
5545 , p_source_29 IN NUMBER
5546 --Payables Options Rounding Account
5547 , p_source_49 IN NUMBER
5548 , x_transaction_coa_id OUT NOCOPY NUMBER
5549 , x_accounting_coa_id OUT NOCOPY NUMBER
5550 , x_value_type_code OUT NOCOPY VARCHAR2
5551 )
5552 RETURN NUMBER
5553 IS
5554 l_component_type VARCHAR2(80) ;
5555 l_component_code VARCHAR2(30) ;
5556 l_component_type_code VARCHAR2(1) ;
5557 l_component_appl_id INTEGER ;
5558 l_amb_context_code VARCHAR2(30) ;
5559 l_log_module VARCHAR2(240) ;
5560 l_output_value NUMBER ;
5561 BEGIN
5562 IF g_log_enabled THEN
5563 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5564 END IF;
5565 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5566 trace
5567 (p_msg => 'BEGIN of AcctDerRule_37'
5568 ,p_level => C_LEVEL_PROCEDURE
5569 ,p_module => l_log_module);
5570 END IF;
5571 --
5572 l_component_type := 'AMB_ADR';
5573 l_component_code := 'AP_ROUNDING';
5574 l_component_type_code := 'S';
5575 l_component_appl_id := 200;
5576 l_amb_context_code := 'DEFAULT';
5577 x_transaction_coa_id := null;
5578 x_accounting_coa_id := null;
5579 --
5580
5581 IF NVL(p_source_16,'
5582 ') <> 'ACCOUNT_SEGMENT_VALUE'
5583 THEN
5584 --
5585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5586 trace
5587 (p_msg => 'END of AcctDerRule_37'
5588 ,p_level => C_LEVEL_PROCEDURE
5589 ,p_module => l_log_module);
5590 END IF;
5591 x_value_type_code := 'S';
5592 l_output_value := TO_NUMBER(TO_NUMBER(p_source_49));
5593 RETURN l_output_value;
5594
5595 ELSIF NVL(p_source_16,'
5596 ') = 'ACCOUNT_SEGMENT_VALUE'
5597 THEN
5598 --
5599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5600 trace
5601 (p_msg => 'END of AcctDerRule_37'
5602 ,p_level => C_LEVEL_PROCEDURE
5603 ,p_module => l_log_module);
5604 END IF;
5605 x_value_type_code := 'S';
5606 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
5607 RETURN l_output_value;
5608
5609 END IF;
5610 --
5611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5612 trace
5613 (p_msg => 'END of AcctDerRule_37(invalid)'
5614 ,p_level => C_LEVEL_PROCEDURE
5615 ,p_module => l_log_module);
5616 END IF;
5617 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5618 x_value_type_code := null;
5619 l_output_value := null;
5620 xla_accounting_err_pkg.build_message
5621 (p_appli_s_name => 'XLA'
5622 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5623 ,p_token_1 => 'COMPONENT_NAME'
5624 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5625 l_component_type
5626 , l_component_code
5627 , l_component_type_code
5628 , l_component_appl_id
5629 , l_amb_context_code
5630 )
5631 ,p_token_2 => 'OWNER'
5632 ,p_value_2 => xla_lookups_pkg.get_meaning(
5633 'XLA_OWNER_TYPE'
5634 ,l_component_type_code
5635 )
5636 ,p_token_3 => 'PAD_NAME'
5637 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5638 ,p_token_4 => 'PAD_OWNER'
5639 ,p_value_4 => xla_lookups_pkg.get_meaning(
5640 'XLA_OWNER_TYPE'
5641 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5642 )
5643 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5644 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5645 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5646 ,p_ae_header_id => NULL
5647 );
5648 RETURN l_output_value;
5649 EXCEPTION
5650 WHEN xla_exceptions_pkg.application_exception THEN
5651 RAISE;
5652 WHEN OTHERS THEN
5653 xla_exceptions_pkg.raise_message
5657
5654 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_37');
5655 END AcctDerRule_37;
5656 --
5658 ---------------------------------------
5659 --
5660 -- PRIVATE FUNCTION
5661 -- AcctDerRule_38
5662 --
5663 ---------------------------------------
5664 FUNCTION AcctDerRule_38 (
5665 p_application_id IN NUMBER
5666 , p_ae_header_id IN NUMBER
5667 , p_side IN VARCHAR2
5668 --Automatic Offsets Value
5669 , p_source_16 IN VARCHAR2
5670 , p_source_16_meaning IN VARCHAR2
5671 --Invoice Distribution Account
5672 , p_source_29 IN NUMBER
5673 --Withholding Related Distribution Account
5674 , p_source_36 IN NUMBER
5675 , x_transaction_coa_id OUT NOCOPY NUMBER
5676 , x_accounting_coa_id OUT NOCOPY NUMBER
5677 , x_value_type_code OUT NOCOPY VARCHAR2
5678 )
5679 RETURN NUMBER
5680 IS
5681 l_component_type VARCHAR2(80) ;
5682 l_component_code VARCHAR2(30) ;
5683 l_component_type_code VARCHAR2(1) ;
5684 l_component_appl_id INTEGER ;
5685 l_amb_context_code VARCHAR2(30) ;
5686 l_log_module VARCHAR2(240) ;
5687 l_output_value NUMBER ;
5688 BEGIN
5689 IF g_log_enabled THEN
5690 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5691 END IF;
5692 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5693 trace
5694 (p_msg => 'BEGIN of AcctDerRule_38'
5695 ,p_level => C_LEVEL_PROCEDURE
5696 ,p_module => l_log_module);
5697 END IF;
5698 --
5699 l_component_type := 'AMB_ADR';
5700 l_component_code := 'AP_WH_DIST_ACCT';
5701 l_component_type_code := 'S';
5702 l_component_appl_id := 200;
5703 l_amb_context_code := 'DEFAULT';
5704 x_transaction_coa_id := null;
5705 x_accounting_coa_id := null;
5706 --
5707
5708 IF NVL(p_source_16,'
5709 ') <> 'ACCOUNT_SEGMENT_VALUE'
5710 THEN
5711 --
5712 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5713 trace
5714 (p_msg => 'END of AcctDerRule_38'
5715 ,p_level => C_LEVEL_PROCEDURE
5716 ,p_module => l_log_module);
5717 END IF;
5718 x_value_type_code := 'S';
5719 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
5720 RETURN l_output_value;
5721
5722 ELSIF NVL(p_source_16,'
5723 ') = 'ACCOUNT_SEGMENT_VALUE'
5724 THEN
5725 --
5726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5727 trace
5728 (p_msg => 'END of AcctDerRule_38'
5729 ,p_level => C_LEVEL_PROCEDURE
5730 ,p_module => l_log_module);
5731 END IF;
5732 x_value_type_code := 'S';
5733 l_output_value := TO_NUMBER(TO_NUMBER(p_source_36));
5734 RETURN l_output_value;
5735
5736 END IF;
5737 --
5738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5739 trace
5740 (p_msg => 'END of AcctDerRule_38(invalid)'
5741 ,p_level => C_LEVEL_PROCEDURE
5742 ,p_module => l_log_module);
5743 END IF;
5744 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
5745 x_value_type_code := null;
5746 l_output_value := null;
5747 xla_accounting_err_pkg.build_message
5748 (p_appli_s_name => 'XLA'
5749 ,p_msg_name => 'XLA_AP_INVALID_ADR'
5750 ,p_token_1 => 'COMPONENT_NAME'
5751 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
5752 l_component_type
5753 , l_component_code
5754 , l_component_type_code
5755 , l_component_appl_id
5756 , l_amb_context_code
5757 )
5758 ,p_token_2 => 'OWNER'
5759 ,p_value_2 => xla_lookups_pkg.get_meaning(
5760 'XLA_OWNER_TYPE'
5761 ,l_component_type_code
5762 )
5763 ,p_token_3 => 'PAD_NAME'
5764 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5765 ,p_token_4 => 'PAD_OWNER'
5766 ,p_value_4 => xla_lookups_pkg.get_meaning(
5767 'XLA_OWNER_TYPE'
5768 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5769 )
5770 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5771 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
5772 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5773 ,p_ae_header_id => NULL
5774 );
5775 RETURN l_output_value;
5776 EXCEPTION
5777 WHEN xla_exceptions_pkg.application_exception THEN
5778 RAISE;
5779 WHEN OTHERS THEN
5783 --
5780 xla_exceptions_pkg.raise_message
5781 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctDerRule_38');
5782 END AcctDerRule_38;
5784
5785 ---------------------------------------
5786 --
5787 -- PRIVATE FUNCTION
5788 -- AcctLineType_39
5789 --
5790 ---------------------------------------
5791 PROCEDURE AcctLineType_39 (
5792 p_application_id IN NUMBER
5793 ,p_event_id IN NUMBER
5794 ,p_calculate_acctd_flag IN VARCHAR2
5795 ,p_calculate_g_l_flag IN VARCHAR2
5796 ,p_actual_flag IN OUT VARCHAR2
5797 ,p_balance_type_code OUT VARCHAR2
5798 ,p_gain_or_loss_ref OUT VARCHAR2
5799
5800 --Payment Currency Code
5801 , p_source_12 IN VARCHAR2
5802 --Payment Distribution (Cleared Rate) Ledger Amount
5803 , p_source_22 IN NUMBER
5804 --Invoice Distribution Type
5805 , p_source_32 IN VARCHAR2
5806 , p_source_32_meaning IN VARCHAR2
5807 --Purchase Order Charge Account
5808 , p_source_40 IN NUMBER
5809 --When to Account for Payment Option
5810 , p_source_50 IN VARCHAR2
5811 --Payment Distribution Type
5812 , p_source_51 IN VARCHAR2
5813 , p_source_51_meaning IN VARCHAR2
5814 --Accounting Reversal Indicator
5815 , p_source_52 IN VARCHAR2
5816 --Payment Distribution Amount
5817 , p_source_53 IN NUMBER
5818 --Business Flow Accounts Payable Application Identifier
5819 , p_source_54 IN NUMBER
5820 --Business Flow Payment Distribution Type
5821 , p_source_55 IN VARCHAR2
5822 --Business Flow Payment Entity Code
5823 , p_source_56 IN VARCHAR2
5824 --Business Flow Payment Distribution Identifier
5825 , p_source_57 IN NUMBER
5826 --Business Flow Payment Identifier
5827 , p_source_58 IN NUMBER
5828 --Payment Distribution Identifier
5829 , p_source_59 IN NUMBER
5830 --Distribution Link Type
5831 , p_source_60 IN VARCHAR2
5832 --Purchase Order Exchange Rate Date
5833 , p_source_61 IN DATE
5834 --Purchase Order Exchange Rate
5835 , p_source_62 IN NUMBER
5836 --Purchase Order Exchange Rate Type
5837 , p_source_63 IN VARCHAR2
5838 --Override Accounted Amount Indicator
5839 , p_source_64 IN VARCHAR2
5840 , p_source_64_meaning IN VARCHAR2
5841 --Payment Supplier Identifier
5842 , p_source_65 IN NUMBER
5843 --Payment Supplier Site Identifier
5844 , p_source_66 IN NUMBER
5845 --Third Party Type
5846 , p_source_67 IN VARCHAR2
5847 --Payment Distribution Reversed Identifier
5848 , p_source_68 IN NUMBER
5849 --Invoice Distribution Tax Line Identifier
5850 , p_source_69 IN NUMBER
5851 --Invoice Distribution Summary Tax Line Identifier
5852 , p_source_70 IN NUMBER
5853 )
5854 IS
5855
5856 l_component_type VARCHAR2(80);
5857 l_component_code VARCHAR2(30);
5858 l_component_type_code VARCHAR2(1);
5859 l_component_appl_id INTEGER;
5860 l_amb_context_code VARCHAR2(30);
5861 l_entity_code VARCHAR2(30);
5862 l_event_class_code VARCHAR2(30);
5863 l_ae_header_id NUMBER;
5864 l_event_type_code VARCHAR2(30);
5865 l_line_definition_code VARCHAR2(30);
5866 l_line_definition_owner_code VARCHAR2(1);
5867 --
5868 -- adr variables
5869 l_segment VARCHAR2(30);
5870 l_ccid NUMBER;
5871 l_adr_transaction_coa_id NUMBER;
5872 l_adr_accounting_coa_id NUMBER;
5873 l_adr_flexfield_segment_code VARCHAR2(30);
5874 l_adr_flex_value_set_id NUMBER;
5875 l_adr_value_type_code VARCHAR2(30);
5876 l_adr_value_combination_id NUMBER;
5877 l_adr_value_segment_code VARCHAR2(30);
5878
5879 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5880 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5881 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5882 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5883
5884 -- 4262811 Variables ------------------------------------------------------------------------------------------
5885 l_entered_amt_idx NUMBER;
5886 l_accted_amt_idx NUMBER;
5887 l_acc_rev_flag VARCHAR2(1);
5888 l_accrual_line_num NUMBER;
5889 l_tmp_amt NUMBER;
5890 l_acc_rev_natural_side_code VARCHAR2(1);
5891
5892 l_num_entries NUMBER;
5893 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5894 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5895 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5896 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5897 l_recog_line_1 NUMBER;
5898 l_recog_line_2 NUMBER;
5899
5900 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5901 l_bflow_applied_to_amt NUMBER; -- 5132302
5902 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5903
5904 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5905
5906 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5910
5907 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5908
5909 ---------------------------------------------------------------------------------------------------------------
5911
5912 --
5913 -- bulk performance
5914 --
5915 l_balance_type_code VARCHAR2(1);
5916 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5917 l_log_module VARCHAR2(240);
5918
5919 --
5920 -- Upgrade strategy
5921 --
5922 l_actual_upg_option VARCHAR2(1);
5923 l_enc_upg_option VARCHAR2(1);
5924
5925 --
5926 BEGIN
5927 --
5928 IF g_log_enabled THEN
5929 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
5930 END IF;
5931 --
5932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5933
5934 trace
5935 (p_msg => 'BEGIN of AcctLineType_39'
5936 ,p_level => C_LEVEL_PROCEDURE
5937 ,p_module => l_log_module);
5938
5939 END IF;
5940 --
5941 l_component_type := 'AMB_JLT';
5942 l_component_code := 'AP_ACCRUAL_CLEAR';
5943 l_component_type_code := 'S';
5944 l_component_appl_id := 200;
5945 l_amb_context_code := 'DEFAULT';
5946 l_entity_code := 'AP_PAYMENTS';
5947 l_event_class_code := 'RECONCILED PAYMENTS';
5948 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
5949 l_line_definition_owner_code := 'S';
5950 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
5951 --
5952 l_balance_type_code := 'A';
5953 l_segment := NULL;
5954 l_ccid := NULL;
5955 l_adr_transaction_coa_id := NULL;
5956 l_adr_accounting_coa_id := NULL;
5957 l_adr_flexfield_segment_code := NULL;
5958 l_adr_flex_value_set_id := NULL;
5959 l_adr_value_type_code := NULL;
5960 l_adr_value_combination_id := NULL;
5961 l_adr_value_segment_code := NULL;
5962
5963 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5964 l_bflow_class_code := ''; -- 4219869 Business Flow
5965 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5966 l_budgetary_control_flag := 'N';
5967
5968 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5969 l_bflow_applied_to_amt := NULL; -- 5132302
5970 l_entered_amt_idx := NULL; -- 4262811
5971 l_accted_amt_idx := NULL; -- 4262811
5972 l_acc_rev_flag := NULL; -- 4262811
5973 l_accrual_line_num := NULL; -- 4262811
5974 l_tmp_amt := NULL; -- 4262811
5975 --
5976
5977 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5978 l_balance_type_code <> 'B' THEN
5979 IF NVL(p_source_50,'
5980 ') = 'CLEAR_CLEAR' AND
5981 (NVL(p_source_32,'
5982 ') = 'ACCRUAL' OR
5983 NVL(p_source_32,'
5984 ') = 'RETROACCRUAL') AND
5985 (NVL(p_source_51,'
5986 ') = 'CASH' OR
5987 NVL(p_source_51,'
5988 ') = 'AWT' OR
5989 NVL(p_source_51,'
5990 ') = 'DISCOUNT')
5991 THEN
5992
5993 --
5994 XLA_AE_LINES_PKG.SetNewLine;
5995
5996 p_balance_type_code := l_balance_type_code;
5997 -- set the flag so later we will know whether the gain loss line needs to be created
5998
5999 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6000 p_actual_flag :='A';
6001 END IF;
6002
6003 --
6004 -- bulk performance
6005 --
6006 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6007 p_header_num => 0); -- 4262811
6008 --
6009 -- set accounting line options
6010 --
6011 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6012 p_natural_side_code => 'D'
6013 , p_gain_or_loss_flag => 'N'
6014 , p_gl_transfer_mode_code => 'S'
6015 , p_acct_entry_type_code => 'A'
6016 , p_switch_side_flag => 'Y'
6017 , p_merge_duplicate_code => 'A'
6018 );
6019 --
6020 l_acc_rev_natural_side_code := 'C'; -- 4262811
6021 --
6022 --
6023 -- set accounting line type info
6024 --
6025 xla_ae_lines_pkg.SetAcctLineType
6026 (p_component_type => l_component_type
6027 ,p_event_type_code => l_event_type_code
6028 ,p_line_definition_owner_code => l_line_definition_owner_code
6029 ,p_line_definition_code => l_line_definition_code
6030 ,p_accounting_line_code => l_component_code
6031 ,p_accounting_line_type_code => l_component_type_code
6032 ,p_accounting_line_appl_id => l_component_appl_id
6033 ,p_amb_context_code => l_amb_context_code
6034 ,p_entity_code => l_entity_code
6035 ,p_event_class_code => l_event_class_code);
6036 --
6037 -- set accounting class
6038 --
6039 xla_ae_lines_pkg.SetAcctClass(
6040 p_accounting_class_code => 'ACCRUAL'
6041 , p_ae_header_id => l_ae_header_id
6042 );
6043
6044 --
6045 -- set rounding class
6046 --
6047 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6048 'ACCRUAL';
6049
6050 --
6051 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6055 --
6052 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6053 --
6054 -- bulk performance
6056 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6057
6058 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6059 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6060
6061 -- 4955764
6062 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6063 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6064
6065 -- 4458381 Public Sector Enh
6066
6067 --
6068 -- set accounting attributes for the line type
6069 --
6070 l_entered_amt_idx := 10;
6071 l_accted_amt_idx := 15;
6072 l_bflow_applied_to_amt_idx := 2; -- 5132302
6073 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6074 l_rec_acct_attrs.array_char_value(1) := p_source_52;
6075 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6076 l_rec_acct_attrs.array_num_value(2) := p_source_53;
6077 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6078 l_rec_acct_attrs.array_num_value(3) := p_source_54;
6079 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6080 l_rec_acct_attrs.array_char_value(4) := p_source_55;
6081 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6082 l_rec_acct_attrs.array_char_value(5) := p_source_56;
6083 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6084 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
6085 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6086 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
6087 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6088 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
6089 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6090 l_rec_acct_attrs.array_char_value(9) := p_source_60;
6091 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6092 l_rec_acct_attrs.array_num_value(10) := p_source_53;
6093 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6094 l_rec_acct_attrs.array_char_value(11) := p_source_12;
6095 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6096 l_rec_acct_attrs.array_date_value(12) := p_source_61;
6097 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6098 l_rec_acct_attrs.array_num_value(13) := p_source_62;
6099 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6100 l_rec_acct_attrs.array_char_value(14) := p_source_63;
6101 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6102 l_rec_acct_attrs.array_num_value(15) := p_source_22;
6103 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6104 l_rec_acct_attrs.array_char_value(16) := p_source_64;
6105 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6106 l_rec_acct_attrs.array_num_value(17) := p_source_65;
6107 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6108 l_rec_acct_attrs.array_num_value(18) := p_source_66;
6109 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6110 l_rec_acct_attrs.array_char_value(19) := p_source_67;
6111 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6112 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
6113 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6114 l_rec_acct_attrs.array_char_value(21) := p_source_60;
6115 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6116 l_rec_acct_attrs.array_num_value(22) := p_source_69;
6117 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6118 l_rec_acct_attrs.array_num_value(23) := p_source_69;
6119 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6120 l_rec_acct_attrs.array_num_value(24) := p_source_70;
6121
6122 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6123 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6124
6125 ---------------------------------------------------------------------------------------------------------------
6126 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6127 ---------------------------------------------------------------------------------------------------------------
6128 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6129
6130 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6131 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6132
6133 IF xla_accounting_cache_pkg.GetValueChar
6134 (p_source_code => 'LEDGER_CATEGORY_CODE'
6135 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6136 AND l_bflow_method_code = 'PRIOR_ENTRY'
6137 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6138 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6139 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6140 )
6141 THEN
6142 xla_ae_lines_pkg.BflowUpgEntry
6143 (p_business_method_code => l_bflow_method_code
6144 ,p_business_class_code => l_bflow_class_code
6145 ,p_balance_type => l_balance_type_code);
6146 ELSE
6147 NULL;
6148 -- No business flow processing for business flow method of NONE.
6149 END IF;
6153 --
6150
6151 --
6152 -- call analytical criteria
6154
6155 --
6156 -- call description
6157 --
6158 -- No description or it is inherited.
6159 --
6160 -- call ADRs
6161 -- Bug 4922099
6162 --
6163 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6164 (NVL(l_actual_upg_option, 'N') = 'O') OR
6165 (NVL(l_enc_upg_option, 'N') = 'O')
6166 )
6167 THEN
6168 NULL;
6169 --
6170 --
6171
6172 l_ccid := AcctDerRule_31(
6173 p_application_id => p_application_id
6174 , p_ae_header_id => l_ae_header_id
6175 , p_source_40 => p_source_40
6176 , x_transaction_coa_id => l_adr_transaction_coa_id
6177 , x_accounting_coa_id => l_adr_accounting_coa_id
6178 , x_value_type_code => l_adr_value_type_code
6179 , p_side => 'NA'
6180 );
6181
6182 xla_ae_lines_pkg.set_ccid(
6183 p_code_combination_id => l_ccid
6184 , p_value_type_code => l_adr_value_type_code
6185 , p_transaction_coa_id => l_adr_transaction_coa_id
6186 , p_accounting_coa_id => l_adr_accounting_coa_id
6187 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6188 , p_adr_type_code => 'S'
6189 , p_component_type => l_component_type
6190 , p_component_code => l_component_code
6191 , p_component_type_code => l_component_type_code
6192 , p_component_appl_id => l_component_appl_id
6193 , p_amb_context_code => l_amb_context_code
6194 , p_side => 'NA'
6195 );
6196
6197
6198 --
6199 --
6200 END IF;
6201 --
6202 -- Bug 4922099
6203 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6204 (NVL(l_enc_upg_option, 'N') = 'O')
6205 ) AND
6206 (l_bflow_method_code = 'PRIOR_ENTRY')
6207 )
6208 THEN
6209 IF
6210 --
6211 1 = 2
6212 --
6213 THEN
6214 xla_accounting_err_pkg.build_message
6215 (p_appli_s_name => 'XLA'
6216 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6217 ,p_token_1 => 'LINE_NUMBER'
6218 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6219 ,p_token_2 => 'LINE_TYPE_NAME'
6220 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6221 l_component_type
6222 ,l_component_code
6223 ,l_component_type_code
6224 ,l_component_appl_id
6225 ,l_amb_context_code
6226 ,l_entity_code
6227 ,l_event_class_code
6228 )
6229 ,p_token_3 => 'OWNER'
6230 ,p_value_3 => xla_lookups_pkg.get_meaning(
6231 p_lookup_type => 'XLA_OWNER_TYPE'
6232 ,p_lookup_code => l_component_type_code
6233 )
6234 ,p_token_4 => 'PRODUCT_NAME'
6235 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6236 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6237 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6238 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6239 ,p_ae_header_id => NULL
6240 );
6241
6242 IF (C_LEVEL_ERROR>= g_log_level) THEN
6243 trace
6244 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6245 ,p_level => C_LEVEL_ERROR
6246 ,p_module => l_log_module);
6247 END IF;
6248 END IF;
6249 END IF;
6250 --
6251 --
6252 ------------------------------------------------------------------------------------------------
6253 -- 4219869 Business Flow
6254 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6255 -- Prior Entry. Currently, the following code is always generated.
6256 ------------------------------------------------------------------------------------------------
6257 XLA_AE_LINES_PKG.ValidateCurrentLine;
6258
6259 ------------------------------------------------------------------------------------
6260 -- 4219869 Business Flow
6264
6261 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6262 ------------------------------------------------------------------------------------
6263 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6265 ----------------------------------------------------------------------------------
6266 -- 4219869 Business Flow
6267 -- Update journal entry status -- Need to generate this within IF <condition>
6268 ----------------------------------------------------------------------------------
6269 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6270 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6271 ,p_balance_type_code => l_balance_type_code
6272 );
6273
6274 -------------------------------------------------------------------------------------------
6275 -- 4262811 - Generate the Accrual Reversal lines
6276 -------------------------------------------------------------------------------------------
6277 BEGIN
6278 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6279 (g_array_event(p_event_id).array_value_num('header_index'));
6280 IF l_acc_rev_flag IS NULL THEN
6281 l_acc_rev_flag := 'N';
6282 END IF;
6283 EXCEPTION
6284 WHEN OTHERS THEN
6285 l_acc_rev_flag := 'N';
6286 END;
6287 --
6288 IF (l_acc_rev_flag = 'Y') THEN
6289
6290 -- 4645092 ------------------------------------------------------------------------------
6291 -- To allow MPA report to determine if it should generate report process
6292 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6293 ------------------------------------------------------------------------------------------
6294
6295 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6296 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6297 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6298 -- call ADRs
6299 -- Bug 4922099
6300 --
6301 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6302 (NVL(l_actual_upg_option, 'N') = 'O') OR
6303 (NVL(l_enc_upg_option, 'N') = 'O')
6304 )
6305 THEN
6306 NULL;
6307 --
6308 --
6309
6310 l_ccid := AcctDerRule_31(
6311 p_application_id => p_application_id
6312 , p_ae_header_id => l_ae_header_id
6313 , p_source_40 => p_source_40
6314 , x_transaction_coa_id => l_adr_transaction_coa_id
6315 , x_accounting_coa_id => l_adr_accounting_coa_id
6316 , x_value_type_code => l_adr_value_type_code
6317 , p_side => 'NA'
6318 );
6319
6320 xla_ae_lines_pkg.set_ccid(
6321 p_code_combination_id => l_ccid
6322 , p_value_type_code => l_adr_value_type_code
6323 , p_transaction_coa_id => l_adr_transaction_coa_id
6324 , p_accounting_coa_id => l_adr_accounting_coa_id
6325 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6326 , p_adr_type_code => 'S'
6327 , p_component_type => l_component_type
6328 , p_component_code => l_component_code
6329 , p_component_type_code => l_component_type_code
6330 , p_component_appl_id => l_component_appl_id
6331 , p_amb_context_code => l_amb_context_code
6332 , p_side => 'NA'
6333 );
6334
6335
6336 --
6337 --
6338 END IF;
6339
6340 --
6341 -- Update the line information that should be overwritten
6342 --
6343 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6344 p_header_num => 1);
6345 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6346
6347 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6348
6349 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6350 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6351 END IF;
6352
6353 --
6354 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6355 --
6356 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6357 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6358 ELSE
6359 ---------------------------------------------------------------------------------------------------
6360 -- 4262811a Switch Sign
6361 ---------------------------------------------------------------------------------------------------
6362 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6363 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6365 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6366 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6367 -- 5132302
6368 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6369 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6373 -- 4955764
6370
6371 END IF;
6372
6374 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6375 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6376
6377
6378 XLA_AE_LINES_PKG.ValidateCurrentLine;
6379 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6380
6381 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6382 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6383 ,p_balance_type_code => l_balance_type_code);
6384
6385 END IF;
6386
6387 -----------------------------------------------------------------------------------------
6388 -- 4262811 Multiperiod Accounting
6389 -----------------------------------------------------------------------------------------
6390 -- No MPA option is assigned.
6391
6392
6393 END IF;
6394 END IF;
6395 --
6396
6397 --
6398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6399 trace
6400 (p_msg => 'END of AcctLineType_39'
6401 ,p_level => C_LEVEL_PROCEDURE
6402 ,p_module => l_log_module);
6403 END IF;
6404 --
6405 EXCEPTION
6406 WHEN xla_exceptions_pkg.application_exception THEN
6407 RAISE;
6408 WHEN OTHERS THEN
6409 xla_exceptions_pkg.raise_message
6410 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_39');
6411 END AcctLineType_39;
6412 --
6413
6414 ---------------------------------------
6415 --
6416 -- PRIVATE FUNCTION
6417 -- AcctLineType_40
6418 --
6419 ---------------------------------------
6420 PROCEDURE AcctLineType_40 (
6421 p_application_id IN NUMBER
6422 ,p_event_id IN NUMBER
6423 ,p_calculate_acctd_flag IN VARCHAR2
6424 ,p_calculate_g_l_flag IN VARCHAR2
6425 ,p_actual_flag IN OUT VARCHAR2
6426 ,p_balance_type_code OUT VARCHAR2
6427 ,p_gain_or_loss_ref OUT VARCHAR2
6428
6429 --Payment Currency Code
6430 , p_source_12 IN VARCHAR2
6431 --Payment Distribution (Payment Rate) Ledger Amount
6432 , p_source_21 IN NUMBER
6433 --Invoice Distribution Type
6434 , p_source_32 IN VARCHAR2
6435 , p_source_32_meaning IN VARCHAR2
6436 --Purchase Order Charge Account
6437 , p_source_40 IN NUMBER
6438 --When to Account for Payment Option
6439 , p_source_50 IN VARCHAR2
6440 --Payment Distribution Type
6441 , p_source_51 IN VARCHAR2
6442 , p_source_51_meaning IN VARCHAR2
6443 --Accounting Reversal Indicator
6444 , p_source_52 IN VARCHAR2
6445 --Payment Distribution Amount
6446 , p_source_53 IN NUMBER
6447 --Business Flow Accounts Payable Application Identifier
6448 , p_source_54 IN NUMBER
6449 --Payment Distribution Identifier
6450 , p_source_59 IN NUMBER
6451 --Distribution Link Type
6452 , p_source_60 IN VARCHAR2
6453 --Purchase Order Exchange Rate Date
6454 , p_source_61 IN DATE
6455 --Purchase Order Exchange Rate
6456 , p_source_62 IN NUMBER
6457 --Purchase Order Exchange Rate Type
6458 , p_source_63 IN VARCHAR2
6459 --Override Accounted Amount Indicator
6460 , p_source_64 IN VARCHAR2
6461 , p_source_64_meaning IN VARCHAR2
6462 --Payment Supplier Identifier
6463 , p_source_65 IN NUMBER
6464 --Payment Supplier Site Identifier
6465 , p_source_66 IN NUMBER
6466 --Third Party Type
6467 , p_source_67 IN VARCHAR2
6468 --Payment Distribution Reversed Identifier
6469 , p_source_68 IN NUMBER
6470 --Invoice Distribution Tax Line Identifier
6471 , p_source_69 IN NUMBER
6472 --Invoice Distribution Summary Tax Line Identifier
6473 , p_source_70 IN NUMBER
6474 --Payment Type
6475 , p_source_71 IN VARCHAR2
6476 , p_source_71_meaning IN VARCHAR2
6477 --Invoice Distribution Amount of the Payment Distribution
6478 , p_source_72 IN NUMBER
6479 --Business Flow Invoice Distribution Type
6480 , p_source_73 IN VARCHAR2
6481 --Business Flow Invoice Entity Code
6482 , p_source_74 IN VARCHAR2
6483 --Business Flow Invoice Distribution Identifier
6484 , p_source_75 IN NUMBER
6485 --Business Flow Invoice Identifier
6486 , p_source_76 IN NUMBER
6487 --Invoice Distribution Tax Distribution Identifier from Tax
6488 , p_source_77 IN NUMBER
6489 )
6490 IS
6491
6492 l_component_type VARCHAR2(80);
6493 l_component_code VARCHAR2(30);
6494 l_component_type_code VARCHAR2(1);
6495 l_component_appl_id INTEGER;
6496 l_amb_context_code VARCHAR2(30);
6497 l_entity_code VARCHAR2(30);
6498 l_event_class_code VARCHAR2(30);
6499 l_ae_header_id NUMBER;
6500 l_event_type_code VARCHAR2(30);
6501 l_line_definition_code VARCHAR2(30);
6502 l_line_definition_owner_code VARCHAR2(1);
6503 --
6504 -- adr variables
6505 l_segment VARCHAR2(30);
6506 l_ccid NUMBER;
6507 l_adr_transaction_coa_id NUMBER;
6508 l_adr_accounting_coa_id NUMBER;
6509 l_adr_flexfield_segment_code VARCHAR2(30);
6510 l_adr_flex_value_set_id NUMBER;
6514
6511 l_adr_value_type_code VARCHAR2(30);
6512 l_adr_value_combination_id NUMBER;
6513 l_adr_value_segment_code VARCHAR2(30);
6515 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6516 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6517 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6518 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6519
6520 -- 4262811 Variables ------------------------------------------------------------------------------------------
6521 l_entered_amt_idx NUMBER;
6522 l_accted_amt_idx NUMBER;
6523 l_acc_rev_flag VARCHAR2(1);
6524 l_accrual_line_num NUMBER;
6525 l_tmp_amt NUMBER;
6526 l_acc_rev_natural_side_code VARCHAR2(1);
6527
6528 l_num_entries NUMBER;
6529 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6530 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6531 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6532 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6533 l_recog_line_1 NUMBER;
6534 l_recog_line_2 NUMBER;
6535
6536 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6537 l_bflow_applied_to_amt NUMBER; -- 5132302
6538 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6539
6540 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6541
6542 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6543 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6544
6545 ---------------------------------------------------------------------------------------------------------------
6546
6547
6548 --
6549 -- bulk performance
6550 --
6551 l_balance_type_code VARCHAR2(1);
6552 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6553 l_log_module VARCHAR2(240);
6554
6555 --
6556 -- Upgrade strategy
6557 --
6558 l_actual_upg_option VARCHAR2(1);
6559 l_enc_upg_option VARCHAR2(1);
6560
6561 --
6562 BEGIN
6563 --
6564 IF g_log_enabled THEN
6565 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
6566 END IF;
6567 --
6568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6569
6570 trace
6571 (p_msg => 'BEGIN of AcctLineType_40'
6572 ,p_level => C_LEVEL_PROCEDURE
6573 ,p_module => l_log_module);
6574
6575 END IF;
6576 --
6577 l_component_type := 'AMB_JLT';
6578 l_component_code := 'AP_ACCRUAL_PMT';
6579 l_component_type_code := 'S';
6580 l_component_appl_id := 200;
6581 l_amb_context_code := 'DEFAULT';
6582 l_entity_code := 'AP_PAYMENTS';
6583 l_event_class_code := 'PAYMENTS';
6584 l_event_type_code := 'PAYMENTS_ALL';
6585 l_line_definition_owner_code := 'S';
6586 l_line_definition_code := 'CASH_PAYMENTS_ALL';
6587 --
6588 l_balance_type_code := 'A';
6589 l_segment := NULL;
6590 l_ccid := NULL;
6591 l_adr_transaction_coa_id := NULL;
6592 l_adr_accounting_coa_id := NULL;
6593 l_adr_flexfield_segment_code := NULL;
6594 l_adr_flex_value_set_id := NULL;
6595 l_adr_value_type_code := NULL;
6596 l_adr_value_combination_id := NULL;
6597 l_adr_value_segment_code := NULL;
6598
6599 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6600 l_bflow_class_code := ''; -- 4219869 Business Flow
6601 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6602 l_budgetary_control_flag := 'N';
6603
6604 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6605 l_bflow_applied_to_amt := NULL; -- 5132302
6606 l_entered_amt_idx := NULL; -- 4262811
6607 l_accted_amt_idx := NULL; -- 4262811
6608 l_acc_rev_flag := NULL; -- 4262811
6609 l_accrual_line_num := NULL; -- 4262811
6610 l_tmp_amt := NULL; -- 4262811
6611 --
6612
6613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6614 l_balance_type_code <> 'B' THEN
6615 IF NVL(p_source_50,'
6616 ') <> 'CLEAR_CLEAR' AND
6617 (NVL(p_source_32,'
6618 ') = 'ACCRUAL' OR
6619 NVL(p_source_32,'
6620 ') = 'RETROACCRUAL') AND
6621 (NVL(p_source_51,'
6622 ') = 'CASH' OR
6623 NVL(p_source_51,'
6624 ') = 'AWT' OR
6625 NVL(p_source_51,'
6626 ') = 'DISCOUNT') AND
6627 NVL(p_source_71,'
6628 ') <> 'R'
6629 THEN
6630
6631 --
6632 XLA_AE_LINES_PKG.SetNewLine;
6633
6634 p_balance_type_code := l_balance_type_code;
6635 -- set the flag so later we will know whether the gain loss line needs to be created
6636
6637 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6638 p_actual_flag :='A';
6639 END IF;
6640
6641 --
6642 -- bulk performance
6643 --
6644 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6648 --
6645 p_header_num => 0); -- 4262811
6646 --
6647 -- set accounting line options
6649 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6650 p_natural_side_code => 'D'
6651 , p_gain_or_loss_flag => 'N'
6652 , p_gl_transfer_mode_code => 'S'
6653 , p_acct_entry_type_code => 'A'
6654 , p_switch_side_flag => 'Y'
6655 , p_merge_duplicate_code => 'A'
6656 );
6657 --
6658 l_acc_rev_natural_side_code := 'C'; -- 4262811
6659 --
6660 --
6661 -- set accounting line type info
6662 --
6663 xla_ae_lines_pkg.SetAcctLineType
6664 (p_component_type => l_component_type
6665 ,p_event_type_code => l_event_type_code
6666 ,p_line_definition_owner_code => l_line_definition_owner_code
6667 ,p_line_definition_code => l_line_definition_code
6668 ,p_accounting_line_code => l_component_code
6669 ,p_accounting_line_type_code => l_component_type_code
6670 ,p_accounting_line_appl_id => l_component_appl_id
6671 ,p_amb_context_code => l_amb_context_code
6672 ,p_entity_code => l_entity_code
6673 ,p_event_class_code => l_event_class_code);
6674 --
6675 -- set accounting class
6676 --
6677 xla_ae_lines_pkg.SetAcctClass(
6678 p_accounting_class_code => 'ACCRUAL'
6679 , p_ae_header_id => l_ae_header_id
6680 );
6681
6682 --
6683 -- set rounding class
6684 --
6685 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6686 'ACCRUAL';
6687
6688 --
6689 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6690 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6691 --
6692 -- bulk performance
6693 --
6694 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6695
6696 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6697 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6698
6699 -- 4955764
6700 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6701 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6702
6703 -- 4458381 Public Sector Enh
6704
6705 --
6706 -- set accounting attributes for the line type
6707 --
6708 l_entered_amt_idx := 10;
6709 l_accted_amt_idx := 15;
6710 l_bflow_applied_to_amt_idx := 2; -- 5132302
6711 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6712 l_rec_acct_attrs.array_char_value(1) := p_source_52;
6713 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6714 l_rec_acct_attrs.array_num_value(2) := p_source_72;
6715 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6716 l_rec_acct_attrs.array_num_value(3) := p_source_54;
6717 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6718 l_rec_acct_attrs.array_char_value(4) := p_source_73;
6719 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6720 l_rec_acct_attrs.array_char_value(5) := p_source_74;
6721 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6722 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
6723 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6724 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
6725 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6726 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
6727 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6728 l_rec_acct_attrs.array_char_value(9) := p_source_60;
6729 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6730 l_rec_acct_attrs.array_num_value(10) := p_source_53;
6731 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6732 l_rec_acct_attrs.array_char_value(11) := p_source_12;
6733 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6734 l_rec_acct_attrs.array_date_value(12) := p_source_61;
6735 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6736 l_rec_acct_attrs.array_num_value(13) := p_source_62;
6737 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6738 l_rec_acct_attrs.array_char_value(14) := p_source_63;
6739 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6740 l_rec_acct_attrs.array_num_value(15) := p_source_21;
6741 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6742 l_rec_acct_attrs.array_char_value(16) := p_source_64;
6743 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6744 l_rec_acct_attrs.array_num_value(17) := p_source_65;
6745 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6746 l_rec_acct_attrs.array_num_value(18) := p_source_66;
6747 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6748 l_rec_acct_attrs.array_char_value(19) := p_source_67;
6749 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6750 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
6751 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6755 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6752 l_rec_acct_attrs.array_char_value(21) := p_source_60;
6753 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6754 l_rec_acct_attrs.array_num_value(22) := p_source_69;
6756 l_rec_acct_attrs.array_num_value(23) := p_source_77;
6757 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6758 l_rec_acct_attrs.array_num_value(24) := p_source_70;
6759
6760 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6761 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6762
6763 ---------------------------------------------------------------------------------------------------------------
6764 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6765 ---------------------------------------------------------------------------------------------------------------
6766 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6767
6768 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6769 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6770
6771 IF xla_accounting_cache_pkg.GetValueChar
6772 (p_source_code => 'LEDGER_CATEGORY_CODE'
6773 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6774 AND l_bflow_method_code = 'PRIOR_ENTRY'
6775 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6776 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6777 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6778 )
6779 THEN
6780 xla_ae_lines_pkg.BflowUpgEntry
6781 (p_business_method_code => l_bflow_method_code
6782 ,p_business_class_code => l_bflow_class_code
6783 ,p_balance_type => l_balance_type_code);
6784 ELSE
6785 NULL;
6786 -- No business flow processing for business flow method of NONE.
6787 END IF;
6788
6789 --
6790 -- call analytical criteria
6791 --
6792
6793 --
6794 -- call description
6795 --
6796 -- No description or it is inherited.
6797 --
6798 -- call ADRs
6799 -- Bug 4922099
6800 --
6801 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6802 (NVL(l_actual_upg_option, 'N') = 'O') OR
6803 (NVL(l_enc_upg_option, 'N') = 'O')
6804 )
6805 THEN
6806 NULL;
6807 --
6808 --
6809
6810 l_ccid := AcctDerRule_31(
6811 p_application_id => p_application_id
6812 , p_ae_header_id => l_ae_header_id
6813 , p_source_40 => p_source_40
6814 , x_transaction_coa_id => l_adr_transaction_coa_id
6815 , x_accounting_coa_id => l_adr_accounting_coa_id
6816 , x_value_type_code => l_adr_value_type_code
6817 , p_side => 'NA'
6818 );
6819
6820 xla_ae_lines_pkg.set_ccid(
6821 p_code_combination_id => l_ccid
6822 , p_value_type_code => l_adr_value_type_code
6823 , p_transaction_coa_id => l_adr_transaction_coa_id
6824 , p_accounting_coa_id => l_adr_accounting_coa_id
6825 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6826 , p_adr_type_code => 'S'
6827 , p_component_type => l_component_type
6828 , p_component_code => l_component_code
6829 , p_component_type_code => l_component_type_code
6830 , p_component_appl_id => l_component_appl_id
6831 , p_amb_context_code => l_amb_context_code
6832 , p_side => 'NA'
6833 );
6834
6835
6836 --
6837 --
6838 END IF;
6839 --
6840 -- Bug 4922099
6841 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6842 (NVL(l_enc_upg_option, 'N') = 'O')
6843 ) AND
6844 (l_bflow_method_code = 'PRIOR_ENTRY')
6845 )
6846 THEN
6847 IF
6848 --
6849 1 = 2
6850 --
6851 THEN
6852 xla_accounting_err_pkg.build_message
6853 (p_appli_s_name => 'XLA'
6854 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6855 ,p_token_1 => 'LINE_NUMBER'
6856 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6857 ,p_token_2 => 'LINE_TYPE_NAME'
6858 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6859 l_component_type
6860 ,l_component_code
6861 ,l_component_type_code
6862 ,l_component_appl_id
6863 ,l_amb_context_code
6864 ,l_entity_code
6865 ,l_event_class_code
6869 p_lookup_type => 'XLA_OWNER_TYPE'
6866 )
6867 ,p_token_3 => 'OWNER'
6868 ,p_value_3 => xla_lookups_pkg.get_meaning(
6870 ,p_lookup_code => l_component_type_code
6871 )
6872 ,p_token_4 => 'PRODUCT_NAME'
6873 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6874 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6875 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6876 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6877 ,p_ae_header_id => NULL
6878 );
6879
6880 IF (C_LEVEL_ERROR>= g_log_level) THEN
6881 trace
6882 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6883 ,p_level => C_LEVEL_ERROR
6884 ,p_module => l_log_module);
6885 END IF;
6886 END IF;
6887 END IF;
6888 --
6889 --
6890 ------------------------------------------------------------------------------------------------
6891 -- 4219869 Business Flow
6892 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6893 -- Prior Entry. Currently, the following code is always generated.
6894 ------------------------------------------------------------------------------------------------
6895 XLA_AE_LINES_PKG.ValidateCurrentLine;
6896
6897 ------------------------------------------------------------------------------------
6898 -- 4219869 Business Flow
6899 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6900 ------------------------------------------------------------------------------------
6901 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6902
6903 ----------------------------------------------------------------------------------
6904 -- 4219869 Business Flow
6905 -- Update journal entry status -- Need to generate this within IF <condition>
6906 ----------------------------------------------------------------------------------
6907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6908 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6909 ,p_balance_type_code => l_balance_type_code
6910 );
6911
6912 -------------------------------------------------------------------------------------------
6913 -- 4262811 - Generate the Accrual Reversal lines
6914 -------------------------------------------------------------------------------------------
6915 BEGIN
6916 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6917 (g_array_event(p_event_id).array_value_num('header_index'));
6918 IF l_acc_rev_flag IS NULL THEN
6919 l_acc_rev_flag := 'N';
6920 END IF;
6921 EXCEPTION
6922 WHEN OTHERS THEN
6923 l_acc_rev_flag := 'N';
6924 END;
6925 --
6926 IF (l_acc_rev_flag = 'Y') THEN
6927
6928 -- 4645092 ------------------------------------------------------------------------------
6929 -- To allow MPA report to determine if it should generate report process
6930 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6931 ------------------------------------------------------------------------------------------
6932
6933 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6934 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6935 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6936 -- call ADRs
6937 -- Bug 4922099
6938 --
6939 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6940 (NVL(l_actual_upg_option, 'N') = 'O') OR
6941 (NVL(l_enc_upg_option, 'N') = 'O')
6942 )
6943 THEN
6944 NULL;
6945 --
6946 --
6947
6948 l_ccid := AcctDerRule_31(
6949 p_application_id => p_application_id
6950 , p_ae_header_id => l_ae_header_id
6951 , p_source_40 => p_source_40
6952 , x_transaction_coa_id => l_adr_transaction_coa_id
6953 , x_accounting_coa_id => l_adr_accounting_coa_id
6954 , x_value_type_code => l_adr_value_type_code
6955 , p_side => 'NA'
6956 );
6957
6958 xla_ae_lines_pkg.set_ccid(
6959 p_code_combination_id => l_ccid
6960 , p_value_type_code => l_adr_value_type_code
6961 , p_transaction_coa_id => l_adr_transaction_coa_id
6962 , p_accounting_coa_id => l_adr_accounting_coa_id
6963 , p_adr_code => 'AP_PO_CHARGE_ACCT'
6964 , p_adr_type_code => 'S'
6965 , p_component_type => l_component_type
6966 , p_component_code => l_component_code
6967 , p_component_type_code => l_component_type_code
6971 );
6968 , p_component_appl_id => l_component_appl_id
6969 , p_amb_context_code => l_amb_context_code
6970 , p_side => 'NA'
6972
6973
6974 --
6975 --
6976 END IF;
6977
6978 --
6979 -- Update the line information that should be overwritten
6980 --
6981 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6982 p_header_num => 1);
6983 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6984
6985 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6986
6987 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6988 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6989 END IF;
6990
6991 --
6992 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6993 --
6994 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6995 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6996 ELSE
6997 ---------------------------------------------------------------------------------------------------
6998 -- 4262811a Switch Sign
6999 ---------------------------------------------------------------------------------------------------
7000 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7001 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7002 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7003 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7004 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7005 -- 5132302
7006 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7007 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7008
7009 END IF;
7010
7011 -- 4955764
7012 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7013 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7014
7015
7016 XLA_AE_LINES_PKG.ValidateCurrentLine;
7017 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7018
7019 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7020 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7021 ,p_balance_type_code => l_balance_type_code);
7022
7023 END IF;
7024
7025 -----------------------------------------------------------------------------------------
7026 -- 4262811 Multiperiod Accounting
7027 -----------------------------------------------------------------------------------------
7028 -- No MPA option is assigned.
7029
7030
7031 END IF;
7032 END IF;
7033 --
7034
7035 --
7036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7037 trace
7038 (p_msg => 'END of AcctLineType_40'
7039 ,p_level => C_LEVEL_PROCEDURE
7040 ,p_module => l_log_module);
7041 END IF;
7042 --
7043 EXCEPTION
7044 WHEN xla_exceptions_pkg.application_exception THEN
7045 RAISE;
7046 WHEN OTHERS THEN
7047 xla_exceptions_pkg.raise_message
7048 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_40');
7049 END AcctLineType_40;
7050 --
7051
7052 ---------------------------------------
7053 --
7054 -- PRIVATE FUNCTION
7055 -- AcctLineType_41
7056 --
7057 ---------------------------------------
7058 PROCEDURE AcctLineType_41 (
7059 p_application_id IN NUMBER
7060 ,p_event_id IN NUMBER
7061 ,p_calculate_acctd_flag IN VARCHAR2
7062 ,p_calculate_g_l_flag IN VARCHAR2
7063 ,p_actual_flag IN OUT VARCHAR2
7064 ,p_balance_type_code OUT VARCHAR2
7065 ,p_gain_or_loss_ref OUT VARCHAR2
7066
7067 --Payment Currency Code
7068 , p_source_12 IN VARCHAR2
7069 --Payment Distribution (Payment Rate) Ledger Amount
7070 , p_source_21 IN NUMBER
7071 --Invoice Distribution Type
7072 , p_source_32 IN VARCHAR2
7073 , p_source_32_meaning IN VARCHAR2
7074 --Purchase Order Charge Account
7075 , p_source_40 IN NUMBER
7076 --When to Account for Payment Option
7077 , p_source_50 IN VARCHAR2
7078 --Payment Distribution Type
7079 , p_source_51 IN VARCHAR2
7080 , p_source_51_meaning IN VARCHAR2
7081 --Accounting Reversal Indicator
7082 , p_source_52 IN VARCHAR2
7083 --Payment Distribution Amount
7084 , p_source_53 IN NUMBER
7085 --Business Flow Accounts Payable Application Identifier
7086 , p_source_54 IN NUMBER
7087 --Payment Distribution Identifier
7088 , p_source_59 IN NUMBER
7089 --Distribution Link Type
7090 , p_source_60 IN VARCHAR2
7091 --Purchase Order Exchange Rate Date
7092 , p_source_61 IN DATE
7093 --Purchase Order Exchange Rate
7097 --Override Accounted Amount Indicator
7094 , p_source_62 IN NUMBER
7095 --Purchase Order Exchange Rate Type
7096 , p_source_63 IN VARCHAR2
7098 , p_source_64 IN VARCHAR2
7099 , p_source_64_meaning IN VARCHAR2
7100 --Payment Supplier Identifier
7101 , p_source_65 IN NUMBER
7102 --Payment Supplier Site Identifier
7103 , p_source_66 IN NUMBER
7104 --Third Party Type
7105 , p_source_67 IN VARCHAR2
7106 --Payment Distribution Reversed Identifier
7107 , p_source_68 IN NUMBER
7108 --Invoice Distribution Tax Line Identifier
7109 , p_source_69 IN NUMBER
7110 --Invoice Distribution Summary Tax Line Identifier
7111 , p_source_70 IN NUMBER
7112 --Payment Type
7113 , p_source_71 IN VARCHAR2
7114 , p_source_71_meaning IN VARCHAR2
7115 --Business Flow Invoice Distribution Type
7116 , p_source_73 IN VARCHAR2
7117 --Business Flow Invoice Entity Code
7118 , p_source_74 IN VARCHAR2
7119 --Business Flow Invoice Distribution Identifier
7120 , p_source_75 IN NUMBER
7121 --Business Flow Invoice Identifier
7122 , p_source_76 IN NUMBER
7123 --Invoice Distribution Tax Distribution Identifier from Tax
7124 , p_source_77 IN NUMBER
7125 )
7126 IS
7127
7128 l_component_type VARCHAR2(80);
7129 l_component_code VARCHAR2(30);
7130 l_component_type_code VARCHAR2(1);
7131 l_component_appl_id INTEGER;
7132 l_amb_context_code VARCHAR2(30);
7133 l_entity_code VARCHAR2(30);
7134 l_event_class_code VARCHAR2(30);
7135 l_ae_header_id NUMBER;
7136 l_event_type_code VARCHAR2(30);
7137 l_line_definition_code VARCHAR2(30);
7138 l_line_definition_owner_code VARCHAR2(1);
7139 --
7140 -- adr variables
7141 l_segment VARCHAR2(30);
7142 l_ccid NUMBER;
7143 l_adr_transaction_coa_id NUMBER;
7144 l_adr_accounting_coa_id NUMBER;
7145 l_adr_flexfield_segment_code VARCHAR2(30);
7146 l_adr_flex_value_set_id NUMBER;
7147 l_adr_value_type_code VARCHAR2(30);
7148 l_adr_value_combination_id NUMBER;
7149 l_adr_value_segment_code VARCHAR2(30);
7150
7151 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7152 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7153 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7154 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7155
7156 -- 4262811 Variables ------------------------------------------------------------------------------------------
7157 l_entered_amt_idx NUMBER;
7158 l_accted_amt_idx NUMBER;
7159 l_acc_rev_flag VARCHAR2(1);
7160 l_accrual_line_num NUMBER;
7161 l_tmp_amt NUMBER;
7162 l_acc_rev_natural_side_code VARCHAR2(1);
7163
7164 l_num_entries NUMBER;
7165 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7166 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7167 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7168 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7169 l_recog_line_1 NUMBER;
7170 l_recog_line_2 NUMBER;
7171
7172 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7173 l_bflow_applied_to_amt NUMBER; -- 5132302
7174 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7175
7176 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7177
7178 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7179 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7180
7181 ---------------------------------------------------------------------------------------------------------------
7182
7183
7184 --
7185 -- bulk performance
7186 --
7187 l_balance_type_code VARCHAR2(1);
7188 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7189 l_log_module VARCHAR2(240);
7190
7191 --
7192 -- Upgrade strategy
7193 --
7194 l_actual_upg_option VARCHAR2(1);
7195 l_enc_upg_option VARCHAR2(1);
7196
7197 --
7198 BEGIN
7199 --
7200 IF g_log_enabled THEN
7201 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
7202 END IF;
7203 --
7204 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7205
7206 trace
7207 (p_msg => 'BEGIN of AcctLineType_41'
7208 ,p_level => C_LEVEL_PROCEDURE
7209 ,p_module => l_log_module);
7210
7211 END IF;
7212 --
7213 l_component_type := 'AMB_JLT';
7214 l_component_code := 'AP_ACCRUAL_REF';
7215 l_component_type_code := 'S';
7216 l_component_appl_id := 200;
7217 l_amb_context_code := 'DEFAULT';
7218 l_entity_code := 'AP_PAYMENTS';
7219 l_event_class_code := 'REFUNDS';
7220 l_event_type_code := 'REFUNDS_ALL';
7221 l_line_definition_owner_code := 'S';
7222 l_line_definition_code := 'CASH_REFUNDS_ALL';
7223 --
7224 l_balance_type_code := 'A';
7225 l_segment := NULL;
7229 l_adr_flexfield_segment_code := NULL;
7226 l_ccid := NULL;
7227 l_adr_transaction_coa_id := NULL;
7228 l_adr_accounting_coa_id := NULL;
7230 l_adr_flex_value_set_id := NULL;
7231 l_adr_value_type_code := NULL;
7232 l_adr_value_combination_id := NULL;
7233 l_adr_value_segment_code := NULL;
7234
7235 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7236 l_bflow_class_code := ''; -- 4219869 Business Flow
7237 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7238 l_budgetary_control_flag := 'N';
7239
7240 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7241 l_bflow_applied_to_amt := NULL; -- 5132302
7242 l_entered_amt_idx := NULL; -- 4262811
7243 l_accted_amt_idx := NULL; -- 4262811
7244 l_acc_rev_flag := NULL; -- 4262811
7245 l_accrual_line_num := NULL; -- 4262811
7246 l_tmp_amt := NULL; -- 4262811
7247 --
7248
7249 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7250 l_balance_type_code <> 'B' THEN
7251 IF NVL(p_source_50,'
7252 ') <> 'CLEAR_CLEAR' AND
7253 (NVL(p_source_32,'
7254 ') = 'ACCRUAL' OR
7255 NVL(p_source_32,'
7256 ') = 'RETROACCRUAL') AND
7257 (NVL(p_source_51,'
7258 ') = 'CASH' OR
7259 NVL(p_source_51,'
7260 ') = 'DISCOUNT') AND
7261 NVL(p_source_71,'
7262 ') = 'R'
7263 THEN
7264
7265 --
7266 XLA_AE_LINES_PKG.SetNewLine;
7267
7268 p_balance_type_code := l_balance_type_code;
7269 -- set the flag so later we will know whether the gain loss line needs to be created
7270
7271 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7272 p_actual_flag :='A';
7273 END IF;
7274
7275 --
7276 -- bulk performance
7277 --
7278 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7279 p_header_num => 0); -- 4262811
7280 --
7281 -- set accounting line options
7282 --
7283 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7284 p_natural_side_code => 'D'
7285 , p_gain_or_loss_flag => 'N'
7286 , p_gl_transfer_mode_code => 'S'
7287 , p_acct_entry_type_code => 'A'
7288 , p_switch_side_flag => 'Y'
7289 , p_merge_duplicate_code => 'A'
7290 );
7291 --
7292 l_acc_rev_natural_side_code := 'C'; -- 4262811
7293 --
7294 --
7295 -- set accounting line type info
7296 --
7297 xla_ae_lines_pkg.SetAcctLineType
7298 (p_component_type => l_component_type
7299 ,p_event_type_code => l_event_type_code
7300 ,p_line_definition_owner_code => l_line_definition_owner_code
7301 ,p_line_definition_code => l_line_definition_code
7302 ,p_accounting_line_code => l_component_code
7303 ,p_accounting_line_type_code => l_component_type_code
7304 ,p_accounting_line_appl_id => l_component_appl_id
7305 ,p_amb_context_code => l_amb_context_code
7306 ,p_entity_code => l_entity_code
7307 ,p_event_class_code => l_event_class_code);
7308 --
7309 -- set accounting class
7310 --
7311 xla_ae_lines_pkg.SetAcctClass(
7312 p_accounting_class_code => 'ACCRUAL'
7313 , p_ae_header_id => l_ae_header_id
7314 );
7315
7316 --
7317 -- set rounding class
7318 --
7319 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7320 'ACCRUAL';
7321
7322 --
7323 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7324 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7325 --
7326 -- bulk performance
7327 --
7328 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7329
7330 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7331 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7332
7333 -- 4955764
7334 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7335 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7336
7337 -- 4458381 Public Sector Enh
7338
7339 --
7340 -- set accounting attributes for the line type
7341 --
7342 l_entered_amt_idx := 9;
7343 l_accted_amt_idx := 14;
7344 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7345 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7346 l_rec_acct_attrs.array_char_value(1) := p_source_52;
7347 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
7348 l_rec_acct_attrs.array_num_value(2) := p_source_54;
7349 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7350 l_rec_acct_attrs.array_char_value(3) := p_source_73;
7351 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
7352 l_rec_acct_attrs.array_char_value(4) := p_source_74;
7353 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
7357 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
7354 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
7355 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7356 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
7358 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
7359 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
7360 l_rec_acct_attrs.array_char_value(8) := p_source_60;
7361 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
7362 l_rec_acct_attrs.array_num_value(9) := p_source_53;
7363 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
7364 l_rec_acct_attrs.array_char_value(10) := p_source_12;
7365 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
7366 l_rec_acct_attrs.array_date_value(11) := p_source_61;
7367 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
7368 l_rec_acct_attrs.array_num_value(12) := p_source_62;
7369 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
7370 l_rec_acct_attrs.array_char_value(13) := p_source_63;
7371 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
7372 l_rec_acct_attrs.array_num_value(14) := p_source_21;
7373 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
7374 l_rec_acct_attrs.array_char_value(15) := p_source_64;
7375 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
7376 l_rec_acct_attrs.array_num_value(16) := p_source_65;
7377 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
7378 l_rec_acct_attrs.array_num_value(17) := p_source_66;
7379 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
7380 l_rec_acct_attrs.array_char_value(18) := p_source_67;
7381 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
7382 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
7383 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
7384 l_rec_acct_attrs.array_char_value(20) := p_source_60;
7385 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
7386 l_rec_acct_attrs.array_num_value(21) := p_source_69;
7387 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
7388 l_rec_acct_attrs.array_num_value(22) := p_source_77;
7389 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
7390 l_rec_acct_attrs.array_num_value(23) := p_source_70;
7391
7392 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7393 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7394
7395 ---------------------------------------------------------------------------------------------------------------
7396 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7397 ---------------------------------------------------------------------------------------------------------------
7398 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7399
7400 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7401 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7402
7403 IF xla_accounting_cache_pkg.GetValueChar
7404 (p_source_code => 'LEDGER_CATEGORY_CODE'
7405 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7406 AND l_bflow_method_code = 'PRIOR_ENTRY'
7407 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7408 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7409 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7410 )
7411 THEN
7412 xla_ae_lines_pkg.BflowUpgEntry
7413 (p_business_method_code => l_bflow_method_code
7414 ,p_business_class_code => l_bflow_class_code
7415 ,p_balance_type => l_balance_type_code);
7416 ELSE
7417 NULL;
7418 -- No business flow processing for business flow method of NONE.
7419 END IF;
7420
7421 --
7422 -- call analytical criteria
7423 --
7424
7425 --
7426 -- call description
7427 --
7428 -- No description or it is inherited.
7429 --
7430 -- call ADRs
7431 -- Bug 4922099
7432 --
7433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7434 (NVL(l_actual_upg_option, 'N') = 'O') OR
7435 (NVL(l_enc_upg_option, 'N') = 'O')
7436 )
7437 THEN
7438 NULL;
7439 --
7440 --
7441
7442 l_ccid := AcctDerRule_31(
7443 p_application_id => p_application_id
7444 , p_ae_header_id => l_ae_header_id
7445 , p_source_40 => p_source_40
7446 , x_transaction_coa_id => l_adr_transaction_coa_id
7447 , x_accounting_coa_id => l_adr_accounting_coa_id
7448 , x_value_type_code => l_adr_value_type_code
7449 , p_side => 'NA'
7450 );
7451
7452 xla_ae_lines_pkg.set_ccid(
7453 p_code_combination_id => l_ccid
7454 , p_value_type_code => l_adr_value_type_code
7455 , p_transaction_coa_id => l_adr_transaction_coa_id
7456 , p_accounting_coa_id => l_adr_accounting_coa_id
7457 , p_adr_code => 'AP_PO_CHARGE_ACCT'
7458 , p_adr_type_code => 'S'
7462 , p_component_appl_id => l_component_appl_id
7459 , p_component_type => l_component_type
7460 , p_component_code => l_component_code
7461 , p_component_type_code => l_component_type_code
7463 , p_amb_context_code => l_amb_context_code
7464 , p_side => 'NA'
7465 );
7466
7467
7468 --
7469 --
7470 END IF;
7471 --
7472 -- Bug 4922099
7473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7474 (NVL(l_enc_upg_option, 'N') = 'O')
7475 ) AND
7476 (l_bflow_method_code = 'PRIOR_ENTRY')
7477 )
7478 THEN
7479 IF
7480 --
7481 1 = 2
7482 --
7483 THEN
7484 xla_accounting_err_pkg.build_message
7485 (p_appli_s_name => 'XLA'
7486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7487 ,p_token_1 => 'LINE_NUMBER'
7488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7489 ,p_token_2 => 'LINE_TYPE_NAME'
7490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7491 l_component_type
7492 ,l_component_code
7493 ,l_component_type_code
7494 ,l_component_appl_id
7495 ,l_amb_context_code
7496 ,l_entity_code
7497 ,l_event_class_code
7498 )
7499 ,p_token_3 => 'OWNER'
7500 ,p_value_3 => xla_lookups_pkg.get_meaning(
7501 p_lookup_type => 'XLA_OWNER_TYPE'
7502 ,p_lookup_code => l_component_type_code
7503 )
7504 ,p_token_4 => 'PRODUCT_NAME'
7505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7509 ,p_ae_header_id => NULL
7510 );
7511
7512 IF (C_LEVEL_ERROR>= g_log_level) THEN
7513 trace
7514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7515 ,p_level => C_LEVEL_ERROR
7516 ,p_module => l_log_module);
7517 END IF;
7518 END IF;
7519 END IF;
7520 --
7521 --
7522 ------------------------------------------------------------------------------------------------
7523 -- 4219869 Business Flow
7524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7525 -- Prior Entry. Currently, the following code is always generated.
7526 ------------------------------------------------------------------------------------------------
7527 XLA_AE_LINES_PKG.ValidateCurrentLine;
7528
7529 ------------------------------------------------------------------------------------
7530 -- 4219869 Business Flow
7531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7532 ------------------------------------------------------------------------------------
7533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7534
7535 ----------------------------------------------------------------------------------
7536 -- 4219869 Business Flow
7537 -- Update journal entry status -- Need to generate this within IF <condition>
7538 ----------------------------------------------------------------------------------
7539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7541 ,p_balance_type_code => l_balance_type_code
7542 );
7543
7544 -------------------------------------------------------------------------------------------
7545 -- 4262811 - Generate the Accrual Reversal lines
7546 -------------------------------------------------------------------------------------------
7547 BEGIN
7548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7549 (g_array_event(p_event_id).array_value_num('header_index'));
7550 IF l_acc_rev_flag IS NULL THEN
7551 l_acc_rev_flag := 'N';
7552 END IF;
7553 EXCEPTION
7554 WHEN OTHERS THEN
7555 l_acc_rev_flag := 'N';
7556 END;
7557 --
7558 IF (l_acc_rev_flag = 'Y') THEN
7559
7563 ------------------------------------------------------------------------------------------
7560 -- 4645092 ------------------------------------------------------------------------------
7561 -- To allow MPA report to determine if it should generate report process
7562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7564
7565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7567 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7568 -- call ADRs
7569 -- Bug 4922099
7570 --
7571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7572 (NVL(l_actual_upg_option, 'N') = 'O') OR
7573 (NVL(l_enc_upg_option, 'N') = 'O')
7574 )
7575 THEN
7576 NULL;
7577 --
7578 --
7579
7580 l_ccid := AcctDerRule_31(
7581 p_application_id => p_application_id
7582 , p_ae_header_id => l_ae_header_id
7583 , p_source_40 => p_source_40
7584 , x_transaction_coa_id => l_adr_transaction_coa_id
7585 , x_accounting_coa_id => l_adr_accounting_coa_id
7586 , x_value_type_code => l_adr_value_type_code
7587 , p_side => 'NA'
7588 );
7589
7590 xla_ae_lines_pkg.set_ccid(
7591 p_code_combination_id => l_ccid
7592 , p_value_type_code => l_adr_value_type_code
7593 , p_transaction_coa_id => l_adr_transaction_coa_id
7594 , p_accounting_coa_id => l_adr_accounting_coa_id
7595 , p_adr_code => 'AP_PO_CHARGE_ACCT'
7596 , p_adr_type_code => 'S'
7597 , p_component_type => l_component_type
7598 , p_component_code => l_component_code
7599 , p_component_type_code => l_component_type_code
7600 , p_component_appl_id => l_component_appl_id
7601 , p_amb_context_code => l_amb_context_code
7602 , p_side => 'NA'
7603 );
7604
7605
7606 --
7607 --
7608 END IF;
7609
7610 --
7611 -- Update the line information that should be overwritten
7612 --
7613 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7614 p_header_num => 1);
7615 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7616
7617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7618
7619 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7620 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7621 END IF;
7622
7623 --
7624 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7625 --
7626 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7627 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7628 ELSE
7629 ---------------------------------------------------------------------------------------------------
7630 -- 4262811a Switch Sign
7631 ---------------------------------------------------------------------------------------------------
7632 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7637 -- 5132302
7638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7640
7641 END IF;
7642
7643 -- 4955764
7644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7646
7647
7648 XLA_AE_LINES_PKG.ValidateCurrentLine;
7649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7650
7651 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7652 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7653 ,p_balance_type_code => l_balance_type_code);
7654
7655 END IF;
7656
7657 -----------------------------------------------------------------------------------------
7658 -- 4262811 Multiperiod Accounting
7659 -----------------------------------------------------------------------------------------
7660 -- No MPA option is assigned.
7661
7662
7663 END IF;
7664 END IF;
7665 --
7666
7667 --
7668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7669 trace
7670 (p_msg => 'END of AcctLineType_41'
7671 ,p_level => C_LEVEL_PROCEDURE
7672 ,p_module => l_log_module);
7673 END IF;
7674 --
7675 EXCEPTION
7676 WHEN xla_exceptions_pkg.application_exception THEN
7680 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_41');
7677 RAISE;
7678 WHEN OTHERS THEN
7679 xla_exceptions_pkg.raise_message
7681 END AcctLineType_41;
7682 --
7683
7684 ---------------------------------------
7685 --
7686 -- PRIVATE FUNCTION
7687 -- AcctLineType_42
7688 --
7689 ---------------------------------------
7690 PROCEDURE AcctLineType_42 (
7691 p_application_id IN NUMBER
7692 ,p_event_id IN NUMBER
7693 ,p_calculate_acctd_flag IN VARCHAR2
7694 ,p_calculate_g_l_flag IN VARCHAR2
7695 ,p_actual_flag IN OUT VARCHAR2
7696 ,p_balance_type_code OUT VARCHAR2
7697 ,p_gain_or_loss_ref OUT VARCHAR2
7698
7699 --Invoice Distribution Account
7700 , p_source_29 IN NUMBER
7701 --When to Account for Payment Option
7702 , p_source_50 IN VARCHAR2
7703 --Accounting Reversal Indicator
7704 , p_source_52 IN VARCHAR2
7705 --Business Flow Accounts Payable Application Identifier
7706 , p_source_54 IN NUMBER
7707 --Distribution Link Type
7708 , p_source_60 IN VARCHAR2
7709 --Purchase Order Exchange Rate Date
7710 , p_source_61 IN DATE
7711 --Purchase Order Exchange Rate
7712 , p_source_62 IN NUMBER
7713 --Purchase Order Exchange Rate Type
7714 , p_source_63 IN VARCHAR2
7715 --Override Accounted Amount Indicator
7716 , p_source_64 IN VARCHAR2
7717 , p_source_64_meaning IN VARCHAR2
7718 --Third Party Type
7719 , p_source_67 IN VARCHAR2
7720 --Invoice Distribution Tax Line Identifier
7721 , p_source_69 IN NUMBER
7722 --Invoice Distribution Summary Tax Line Identifier
7723 , p_source_70 IN NUMBER
7724 --Invoice Distribution Tax Distribution Identifier from Tax
7725 , p_source_77 IN NUMBER
7726 --Prepayment Distribution Type
7727 , p_source_78 IN VARCHAR2
7728 --Recipient Invoice Distribution Type
7729 , p_source_79 IN VARCHAR2
7730 , p_source_79_meaning IN VARCHAR2
7731 --Prepayment Application Distribution Identifier
7732 , p_source_82 IN NUMBER
7733 --Invoice Identifier
7734 , p_source_83 IN NUMBER
7735 --Business Flow Prepayment Invoice Distribution Type
7736 , p_source_84 IN VARCHAR2
7737 --Business Flow Prepayment Invoice Entity Code
7738 , p_source_85 IN VARCHAR2
7739 --Business Flow Prepayment Invoice Distribution Identifier
7740 , p_source_86 IN NUMBER
7741 --Business Flow Prepayment Invoice Identifier
7742 , p_source_87 IN NUMBER
7743 --Upgrade Encumbrance Credit Account Class
7744 , p_source_88 IN VARCHAR2
7745 --Payables Encumbrance Upgrade Credit Account
7746 , p_source_89 IN NUMBER
7747 --Payables Encumbrance Upgrade Credit Amount
7748 , p_source_90 IN NUMBER
7749 --Invoice Currency Code
7750 , p_source_91 IN VARCHAR2
7751 --Payables Encumbrance Upgrade Credit Base Amount
7752 , p_source_92 IN NUMBER
7753 --Upgrade Encumbrance Debit Account Class
7754 , p_source_93 IN VARCHAR2
7755 --Payables Encumbrance Upgrade Debit Account
7756 , p_source_94 IN NUMBER
7757 --Payables Encumbrance Upgrade Debit Amount
7758 , p_source_95 IN NUMBER
7759 --Payables Encumbrance Upgrade Debit Base Amount
7760 , p_source_96 IN NUMBER
7761 --Payables Encumbrance Upgrade Option
7762 , p_source_97 IN VARCHAR2
7763 --Prepayment Distribution Amount
7764 , p_source_98 IN NUMBER
7765 --Prepayment Clearing Currency Code
7766 , p_source_99 IN VARCHAR2
7767 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
7768 , p_source_100 IN NUMBER
7769 --Deferred Accounting End Date
7770 , p_source_101 IN DATE
7771 --Deferred Accounting Option
7772 , p_source_102 IN VARCHAR2
7773 --Deferred Accounting Start Date
7774 , p_source_103 IN DATE
7775 --Invoice Supplier Identifier
7776 , p_source_104 IN NUMBER
7777 --Invoice Supplier Site Identifier
7778 , p_source_105 IN NUMBER
7779 --Identifier of the Prepayment Application Reversed
7780 , p_source_106 IN NUMBER
7781 --Payables Upgrade Credit Encumbrance Type Identifier
7782 , p_source_107 IN NUMBER
7783 --Payables Upgrade Debit Encumbrance Type Identifier
7784 , p_source_108 IN NUMBER
7785 )
7786 IS
7787
7788 l_component_type VARCHAR2(80);
7789 l_component_code VARCHAR2(30);
7790 l_component_type_code VARCHAR2(1);
7791 l_component_appl_id INTEGER;
7792 l_amb_context_code VARCHAR2(30);
7793 l_entity_code VARCHAR2(30);
7794 l_event_class_code VARCHAR2(30);
7795 l_ae_header_id NUMBER;
7796 l_event_type_code VARCHAR2(30);
7797 l_line_definition_code VARCHAR2(30);
7798 l_line_definition_owner_code VARCHAR2(1);
7799 --
7800 -- adr variables
7801 l_segment VARCHAR2(30);
7802 l_ccid NUMBER;
7803 l_adr_transaction_coa_id NUMBER;
7804 l_adr_accounting_coa_id NUMBER;
7805 l_adr_flexfield_segment_code VARCHAR2(30);
7806 l_adr_flex_value_set_id NUMBER;
7807 l_adr_value_type_code VARCHAR2(30);
7808 l_adr_value_combination_id NUMBER;
7812 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7809 l_adr_value_segment_code VARCHAR2(30);
7810
7811 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7813 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7814 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7815
7816 -- 4262811 Variables ------------------------------------------------------------------------------------------
7817 l_entered_amt_idx NUMBER;
7818 l_accted_amt_idx NUMBER;
7819 l_acc_rev_flag VARCHAR2(1);
7820 l_accrual_line_num NUMBER;
7821 l_tmp_amt NUMBER;
7822 l_acc_rev_natural_side_code VARCHAR2(1);
7823
7824 l_num_entries NUMBER;
7825 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7826 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7827 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7828 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7829 l_recog_line_1 NUMBER;
7830 l_recog_line_2 NUMBER;
7831
7832 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7833 l_bflow_applied_to_amt NUMBER; -- 5132302
7834 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7835
7836 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7837
7838 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7839 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7840
7841 ---------------------------------------------------------------------------------------------------------------
7842
7843
7844 --
7845 -- bulk performance
7846 --
7847 l_balance_type_code VARCHAR2(1);
7848 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7849 l_log_module VARCHAR2(240);
7850
7851 --
7852 -- Upgrade strategy
7853 --
7854 l_actual_upg_option VARCHAR2(1);
7855 l_enc_upg_option VARCHAR2(1);
7856
7857 --
7858 BEGIN
7859 --
7860 IF g_log_enabled THEN
7861 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
7862 END IF;
7863 --
7864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7865
7866 trace
7867 (p_msg => 'BEGIN of AcctLineType_42'
7868 ,p_level => C_LEVEL_PROCEDURE
7869 ,p_module => l_log_module);
7870
7871 END IF;
7872 --
7873 l_component_type := 'AMB_JLT';
7874 l_component_code := 'AP_ACCR_PREPAY_CLR_RATE_APP';
7875 l_component_type_code := 'S';
7876 l_component_appl_id := 200;
7877 l_amb_context_code := 'DEFAULT';
7878 l_entity_code := 'AP_INVOICES';
7879 l_event_class_code := 'PREPAYMENT APPLICATIONS';
7880 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
7881 l_line_definition_owner_code := 'S';
7882 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
7883 --
7884 l_balance_type_code := 'A';
7885 l_segment := NULL;
7886 l_ccid := NULL;
7887 l_adr_transaction_coa_id := NULL;
7888 l_adr_accounting_coa_id := NULL;
7889 l_adr_flexfield_segment_code := NULL;
7890 l_adr_flex_value_set_id := NULL;
7891 l_adr_value_type_code := NULL;
7892 l_adr_value_combination_id := NULL;
7893 l_adr_value_segment_code := NULL;
7894
7895 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7896 l_bflow_class_code := ''; -- 4219869 Business Flow
7897 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7898 l_budgetary_control_flag := 'N';
7899
7900 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7901 l_bflow_applied_to_amt := NULL; -- 5132302
7902 l_entered_amt_idx := NULL; -- 4262811
7903 l_accted_amt_idx := NULL; -- 4262811
7904 l_acc_rev_flag := NULL; -- 4262811
7905 l_accrual_line_num := NULL; -- 4262811
7906 l_tmp_amt := NULL; -- 4262811
7907 --
7908
7909 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7910 l_balance_type_code <> 'B' THEN
7911 IF NVL(p_source_50,'
7912 ') = 'CLEAR_CLEAR' AND
7913 (NVL(p_source_78,'
7914 ') = 'PREPAY APPL' OR
7915 NVL(p_source_78,'
7916 ') = 'PREPAY APPL NONREC TAX' OR
7917 NVL(p_source_78,'
7918 ') = 'PREPAY APPL REC TAX') AND
7919 (NVL(p_source_79,'
7920 ') = 'ACCRUAL' OR
7921 NVL(p_source_79,'
7922 ') = 'RETROACCRUAL')
7923 THEN
7924
7925 --
7926 XLA_AE_LINES_PKG.SetNewLine;
7927
7928 p_balance_type_code := l_balance_type_code;
7929 -- set the flag so later we will know whether the gain loss line needs to be created
7930
7931 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7932 p_actual_flag :='A';
7933 END IF;
7934
7935 --
7936 -- bulk performance
7937 --
7938 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7939 p_header_num => 0); -- 4262811
7940 --
7941 -- set accounting line options
7942 --
7946 , p_gl_transfer_mode_code => 'S'
7943 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7944 p_natural_side_code => 'C'
7945 , p_gain_or_loss_flag => 'N'
7947 , p_acct_entry_type_code => 'A'
7948 , p_switch_side_flag => 'Y'
7949 , p_merge_duplicate_code => 'A'
7950 );
7951 --
7952 l_acc_rev_natural_side_code := 'D'; -- 4262811
7953 --
7954 --
7955 -- set accounting line type info
7956 --
7957 xla_ae_lines_pkg.SetAcctLineType
7958 (p_component_type => l_component_type
7959 ,p_event_type_code => l_event_type_code
7960 ,p_line_definition_owner_code => l_line_definition_owner_code
7961 ,p_line_definition_code => l_line_definition_code
7962 ,p_accounting_line_code => l_component_code
7963 ,p_accounting_line_type_code => l_component_type_code
7964 ,p_accounting_line_appl_id => l_component_appl_id
7965 ,p_amb_context_code => l_amb_context_code
7966 ,p_entity_code => l_entity_code
7967 ,p_event_class_code => l_event_class_code);
7968 --
7969 -- set accounting class
7970 --
7971 xla_ae_lines_pkg.SetAcctClass(
7972 p_accounting_class_code => 'ACCRUAL'
7973 , p_ae_header_id => l_ae_header_id
7974 );
7975
7976 --
7977 -- set rounding class
7978 --
7979 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7980 'ACCRUAL';
7981
7982 --
7983 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7984 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7985 --
7986 -- bulk performance
7987 --
7988 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7989
7990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7991 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7992
7993 -- 4955764
7994 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7995 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7996
7997 -- 4458381 Public Sector Enh
7998
7999 --
8000 -- set accounting attributes for the line type
8001 --
8002 l_entered_amt_idx := 25;
8003 l_accted_amt_idx := 30;
8004 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8005 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8006 l_rec_acct_attrs.array_char_value(1) := p_source_52;
8007 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8008 l_rec_acct_attrs.array_num_value(2) :=
8009 xla_ae_sources_pkg.GetSystemSourceNum(
8010 p_source_code => 'XLA_EVENT_APPL_ID'
8011 , p_source_type_code => 'Y'
8012 , p_source_application_id => 602
8013 );
8014 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8015 l_rec_acct_attrs.array_char_value(3) := p_source_60;
8016 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8017 l_rec_acct_attrs.array_char_value(4) :=
8018 xla_ae_sources_pkg.GetSystemSourceChar(
8019 p_source_code => 'XLA_ENTITY_CODE'
8020 , p_source_type_code => 'Y'
8021 , p_source_application_id => 602
8022 );
8023 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8024 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
8025 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8026 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
8027 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8028 l_rec_acct_attrs.array_num_value(7) := p_source_54;
8029 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8030 l_rec_acct_attrs.array_char_value(8) := p_source_84;
8031 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8032 l_rec_acct_attrs.array_char_value(9) := p_source_85;
8033 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8034 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
8035 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8036 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
8037 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8038 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
8039 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8040 l_rec_acct_attrs.array_char_value(13) := p_source_60;
8041 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8042 l_rec_acct_attrs.array_char_value(14) := p_source_88;
8043 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8044 l_rec_acct_attrs.array_num_value(15) := p_source_89;
8045 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8046 l_rec_acct_attrs.array_num_value(16) := p_source_90;
8047 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8048 l_rec_acct_attrs.array_char_value(17) := p_source_91;
8049 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8050 l_rec_acct_attrs.array_num_value(18) := p_source_92;
8054 l_rec_acct_attrs.array_num_value(20) := p_source_94;
8051 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8052 l_rec_acct_attrs.array_char_value(19) := p_source_93;
8053 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8055 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8056 l_rec_acct_attrs.array_num_value(21) := p_source_95;
8057 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8058 l_rec_acct_attrs.array_char_value(22) := p_source_91;
8059 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8060 l_rec_acct_attrs.array_num_value(23) := p_source_96;
8061 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8062 l_rec_acct_attrs.array_char_value(24) := p_source_97;
8063 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8064 l_rec_acct_attrs.array_num_value(25) := p_source_98;
8065 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8066 l_rec_acct_attrs.array_char_value(26) := p_source_99;
8067 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8068 l_rec_acct_attrs.array_date_value(27) := p_source_61;
8069 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8070 l_rec_acct_attrs.array_num_value(28) := p_source_62;
8071 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8072 l_rec_acct_attrs.array_char_value(29) := p_source_63;
8073 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8074 l_rec_acct_attrs.array_num_value(30) := p_source_100;
8075 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8076 l_rec_acct_attrs.array_date_value(31) := p_source_101;
8077 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8078 l_rec_acct_attrs.array_char_value(32) := p_source_102;
8079 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8080 l_rec_acct_attrs.array_date_value(33) := p_source_103;
8081 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8082 l_rec_acct_attrs.array_char_value(34) := p_source_64;
8083 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8084 l_rec_acct_attrs.array_num_value(35) := p_source_104;
8085 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8086 l_rec_acct_attrs.array_num_value(36) := p_source_105;
8087 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8088 l_rec_acct_attrs.array_char_value(37) := p_source_67;
8089 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8090 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
8091 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8092 l_rec_acct_attrs.array_char_value(39) := p_source_60;
8093 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8094 l_rec_acct_attrs.array_num_value(40) := p_source_69;
8095 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8096 l_rec_acct_attrs.array_num_value(41) := p_source_77;
8097 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8098 l_rec_acct_attrs.array_num_value(42) := p_source_70;
8099 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8100 l_rec_acct_attrs.array_num_value(43) := p_source_107;
8101 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8102 l_rec_acct_attrs.array_num_value(44) := p_source_108;
8103
8104 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8105 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8106
8107 ---------------------------------------------------------------------------------------------------------------
8108 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8109 ---------------------------------------------------------------------------------------------------------------
8110 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8111
8112 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8113 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8114
8115 IF xla_accounting_cache_pkg.GetValueChar
8116 (p_source_code => 'LEDGER_CATEGORY_CODE'
8117 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8118 AND l_bflow_method_code = 'PRIOR_ENTRY'
8119 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8120 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8121 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8122 )
8123 THEN
8124 xla_ae_lines_pkg.BflowUpgEntry
8125 (p_business_method_code => l_bflow_method_code
8126 ,p_business_class_code => l_bflow_class_code
8127 ,p_balance_type => l_balance_type_code);
8128 ELSE
8129 NULL;
8130 -- No business flow processing for business flow method of NONE.
8131 END IF;
8132
8133 --
8134 -- call analytical criteria
8135 --
8136
8137 --
8138 -- call description
8139 --
8140 -- No description or it is inherited.
8141 --
8142 -- call ADRs
8143 -- Bug 4922099
8144 --
8145 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8146 (NVL(l_actual_upg_option, 'N') = 'O') OR
8147 (NVL(l_enc_upg_option, 'N') = 'O')
8148 )
8152 --
8149 THEN
8150 NULL;
8151 --
8153
8154 l_ccid := AcctDerRule_28(
8155 p_application_id => p_application_id
8156 , p_ae_header_id => l_ae_header_id
8157 , p_source_29 => p_source_29
8158 , x_transaction_coa_id => l_adr_transaction_coa_id
8159 , x_accounting_coa_id => l_adr_accounting_coa_id
8160 , x_value_type_code => l_adr_value_type_code
8161 , p_side => 'NA'
8162 );
8163
8164 xla_ae_lines_pkg.set_ccid(
8165 p_code_combination_id => l_ccid
8166 , p_value_type_code => l_adr_value_type_code
8167 , p_transaction_coa_id => l_adr_transaction_coa_id
8168 , p_accounting_coa_id => l_adr_accounting_coa_id
8169 , p_adr_code => 'AP_INVOICE_DIST'
8170 , p_adr_type_code => 'S'
8171 , p_component_type => l_component_type
8172 , p_component_code => l_component_code
8173 , p_component_type_code => l_component_type_code
8174 , p_component_appl_id => l_component_appl_id
8175 , p_amb_context_code => l_amb_context_code
8176 , p_side => 'NA'
8177 );
8178
8179
8180 --
8181 --
8182 END IF;
8183 --
8184 -- Bug 4922099
8185 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8186 (NVL(l_enc_upg_option, 'N') = 'O')
8187 ) AND
8188 (l_bflow_method_code = 'PRIOR_ENTRY')
8189 )
8190 THEN
8191 IF
8192 --
8193 1 = 2
8194 --
8195 THEN
8196 xla_accounting_err_pkg.build_message
8197 (p_appli_s_name => 'XLA'
8198 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8199 ,p_token_1 => 'LINE_NUMBER'
8200 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8201 ,p_token_2 => 'LINE_TYPE_NAME'
8202 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8203 l_component_type
8204 ,l_component_code
8205 ,l_component_type_code
8206 ,l_component_appl_id
8207 ,l_amb_context_code
8208 ,l_entity_code
8209 ,l_event_class_code
8210 )
8211 ,p_token_3 => 'OWNER'
8212 ,p_value_3 => xla_lookups_pkg.get_meaning(
8213 p_lookup_type => 'XLA_OWNER_TYPE'
8214 ,p_lookup_code => l_component_type_code
8215 )
8216 ,p_token_4 => 'PRODUCT_NAME'
8217 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8218 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8219 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8220 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8221 ,p_ae_header_id => NULL
8222 );
8223
8224 IF (C_LEVEL_ERROR>= g_log_level) THEN
8225 trace
8226 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8227 ,p_level => C_LEVEL_ERROR
8228 ,p_module => l_log_module);
8229 END IF;
8230 END IF;
8231 END IF;
8232 --
8233 --
8234 ------------------------------------------------------------------------------------------------
8235 -- 4219869 Business Flow
8236 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8237 -- Prior Entry. Currently, the following code is always generated.
8238 ------------------------------------------------------------------------------------------------
8239 XLA_AE_LINES_PKG.ValidateCurrentLine;
8240
8241 ------------------------------------------------------------------------------------
8242 -- 4219869 Business Flow
8243 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8244 ------------------------------------------------------------------------------------
8245 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8246
8247 ----------------------------------------------------------------------------------
8248 -- 4219869 Business Flow
8249 -- Update journal entry status -- Need to generate this within IF <condition>
8250 ----------------------------------------------------------------------------------
8254 );
8251 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8252 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8253 ,p_balance_type_code => l_balance_type_code
8255
8256 -------------------------------------------------------------------------------------------
8257 -- 4262811 - Generate the Accrual Reversal lines
8258 -------------------------------------------------------------------------------------------
8259 BEGIN
8260 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8261 (g_array_event(p_event_id).array_value_num('header_index'));
8262 IF l_acc_rev_flag IS NULL THEN
8263 l_acc_rev_flag := 'N';
8264 END IF;
8265 EXCEPTION
8266 WHEN OTHERS THEN
8267 l_acc_rev_flag := 'N';
8268 END;
8269 --
8270 IF (l_acc_rev_flag = 'Y') THEN
8271
8272 -- 4645092 ------------------------------------------------------------------------------
8273 -- To allow MPA report to determine if it should generate report process
8274 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8275 ------------------------------------------------------------------------------------------
8276
8277 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8278 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8279 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8280 -- call ADRs
8281 -- Bug 4922099
8282 --
8283 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8284 (NVL(l_actual_upg_option, 'N') = 'O') OR
8285 (NVL(l_enc_upg_option, 'N') = 'O')
8286 )
8287 THEN
8288 NULL;
8289 --
8290 --
8291
8292 l_ccid := AcctDerRule_28(
8293 p_application_id => p_application_id
8294 , p_ae_header_id => l_ae_header_id
8295 , p_source_29 => p_source_29
8296 , x_transaction_coa_id => l_adr_transaction_coa_id
8297 , x_accounting_coa_id => l_adr_accounting_coa_id
8298 , x_value_type_code => l_adr_value_type_code
8299 , p_side => 'NA'
8300 );
8301
8302 xla_ae_lines_pkg.set_ccid(
8303 p_code_combination_id => l_ccid
8304 , p_value_type_code => l_adr_value_type_code
8305 , p_transaction_coa_id => l_adr_transaction_coa_id
8306 , p_accounting_coa_id => l_adr_accounting_coa_id
8307 , p_adr_code => 'AP_INVOICE_DIST'
8308 , p_adr_type_code => 'S'
8309 , p_component_type => l_component_type
8310 , p_component_code => l_component_code
8311 , p_component_type_code => l_component_type_code
8312 , p_component_appl_id => l_component_appl_id
8313 , p_amb_context_code => l_amb_context_code
8314 , p_side => 'NA'
8315 );
8316
8317
8318 --
8319 --
8320 END IF;
8321
8322 --
8323 -- Update the line information that should be overwritten
8324 --
8325 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8326 p_header_num => 1);
8327 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8328
8329 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8330
8331 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8332 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8333 END IF;
8334
8335 --
8336 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8337 --
8338 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8339 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8340 ELSE
8341 ---------------------------------------------------------------------------------------------------
8342 -- 4262811a Switch Sign
8343 ---------------------------------------------------------------------------------------------------
8344 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8345 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8346 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8347 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8348 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8349 -- 5132302
8350 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8351 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8352
8353 END IF;
8354
8355 -- 4955764
8356 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8357 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8358
8359
8360 XLA_AE_LINES_PKG.ValidateCurrentLine;
8361 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8362
8366
8363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8365 ,p_balance_type_code => l_balance_type_code);
8367 END IF;
8368
8369 -----------------------------------------------------------------------------------------
8370 -- 4262811 Multiperiod Accounting
8371 -----------------------------------------------------------------------------------------
8372 -- No MPA option is assigned.
8373
8374
8375 END IF;
8376 END IF;
8377 --
8378
8379 --
8380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8381 trace
8382 (p_msg => 'END of AcctLineType_42'
8383 ,p_level => C_LEVEL_PROCEDURE
8384 ,p_module => l_log_module);
8385 END IF;
8386 --
8387 EXCEPTION
8388 WHEN xla_exceptions_pkg.application_exception THEN
8389 RAISE;
8390 WHEN OTHERS THEN
8391 xla_exceptions_pkg.raise_message
8392 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_42');
8393 END AcctLineType_42;
8394 --
8395
8396 ---------------------------------------
8397 --
8398 -- PRIVATE FUNCTION
8399 -- AcctLineType_43
8400 --
8401 ---------------------------------------
8402 PROCEDURE AcctLineType_43 (
8403 p_application_id IN NUMBER
8404 ,p_event_id IN NUMBER
8405 ,p_calculate_acctd_flag IN VARCHAR2
8406 ,p_calculate_g_l_flag IN VARCHAR2
8407 ,p_actual_flag IN OUT VARCHAR2
8408 ,p_balance_type_code OUT VARCHAR2
8409 ,p_gain_or_loss_ref OUT VARCHAR2
8410
8411 --Invoice Distribution Account
8412 , p_source_29 IN NUMBER
8413 --When to Account for Payment Option
8414 , p_source_50 IN VARCHAR2
8415 --Accounting Reversal Indicator
8416 , p_source_52 IN VARCHAR2
8417 --Business Flow Accounts Payable Application Identifier
8418 , p_source_54 IN NUMBER
8419 --Distribution Link Type
8420 , p_source_60 IN VARCHAR2
8421 --Purchase Order Exchange Rate Date
8422 , p_source_61 IN DATE
8423 --Purchase Order Exchange Rate
8424 , p_source_62 IN NUMBER
8425 --Purchase Order Exchange Rate Type
8426 , p_source_63 IN VARCHAR2
8427 --Override Accounted Amount Indicator
8428 , p_source_64 IN VARCHAR2
8429 , p_source_64_meaning IN VARCHAR2
8430 --Third Party Type
8431 , p_source_67 IN VARCHAR2
8432 --Invoice Distribution Tax Line Identifier
8433 , p_source_69 IN NUMBER
8434 --Invoice Distribution Summary Tax Line Identifier
8435 , p_source_70 IN NUMBER
8436 --Invoice Distribution Tax Distribution Identifier from Tax
8437 , p_source_77 IN NUMBER
8438 --Prepayment Distribution Type
8439 , p_source_78 IN VARCHAR2
8440 --Recipient Invoice Distribution Type
8441 , p_source_79 IN VARCHAR2
8442 , p_source_79_meaning IN VARCHAR2
8443 --Prepayment Application Distribution Identifier
8444 , p_source_82 IN NUMBER
8445 --Invoice Identifier
8446 , p_source_83 IN NUMBER
8447 --Business Flow Prepayment Invoice Distribution Type
8448 , p_source_84 IN VARCHAR2
8449 --Business Flow Prepayment Invoice Entity Code
8450 , p_source_85 IN VARCHAR2
8451 --Business Flow Prepayment Invoice Distribution Identifier
8452 , p_source_86 IN NUMBER
8453 --Business Flow Prepayment Invoice Identifier
8454 , p_source_87 IN NUMBER
8455 --Upgrade Encumbrance Credit Account Class
8456 , p_source_88 IN VARCHAR2
8457 --Payables Encumbrance Upgrade Credit Account
8458 , p_source_89 IN NUMBER
8459 --Payables Encumbrance Upgrade Credit Amount
8460 , p_source_90 IN NUMBER
8461 --Invoice Currency Code
8462 , p_source_91 IN VARCHAR2
8463 --Payables Encumbrance Upgrade Credit Base Amount
8464 , p_source_92 IN NUMBER
8465 --Upgrade Encumbrance Debit Account Class
8466 , p_source_93 IN VARCHAR2
8467 --Payables Encumbrance Upgrade Debit Account
8468 , p_source_94 IN NUMBER
8469 --Payables Encumbrance Upgrade Debit Amount
8470 , p_source_95 IN NUMBER
8471 --Payables Encumbrance Upgrade Debit Base Amount
8472 , p_source_96 IN NUMBER
8473 --Payables Encumbrance Upgrade Option
8474 , p_source_97 IN VARCHAR2
8475 --Prepayment Distribution Amount
8476 , p_source_98 IN NUMBER
8477 --Deferred Accounting End Date
8478 , p_source_101 IN DATE
8479 --Deferred Accounting Option
8480 , p_source_102 IN VARCHAR2
8481 --Deferred Accounting Start Date
8482 , p_source_103 IN DATE
8483 --Invoice Supplier Identifier
8484 , p_source_104 IN NUMBER
8485 --Invoice Supplier Site Identifier
8486 , p_source_105 IN NUMBER
8487 --Identifier of the Prepayment Application Reversed
8488 , p_source_106 IN NUMBER
8489 --Payables Upgrade Credit Encumbrance Type Identifier
8490 , p_source_107 IN NUMBER
8491 --Payables Upgrade Debit Encumbrance Type Identifier
8492 , p_source_108 IN NUMBER
8493 --Prepayment Payment Currency Code
8494 , p_source_109 IN VARCHAR2
8495 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
8496 , p_source_110 IN NUMBER
8497 )
8498 IS
8499
8503 l_component_appl_id INTEGER;
8500 l_component_type VARCHAR2(80);
8501 l_component_code VARCHAR2(30);
8502 l_component_type_code VARCHAR2(1);
8504 l_amb_context_code VARCHAR2(30);
8505 l_entity_code VARCHAR2(30);
8506 l_event_class_code VARCHAR2(30);
8507 l_ae_header_id NUMBER;
8508 l_event_type_code VARCHAR2(30);
8509 l_line_definition_code VARCHAR2(30);
8510 l_line_definition_owner_code VARCHAR2(1);
8511 --
8512 -- adr variables
8513 l_segment VARCHAR2(30);
8514 l_ccid NUMBER;
8515 l_adr_transaction_coa_id NUMBER;
8516 l_adr_accounting_coa_id NUMBER;
8517 l_adr_flexfield_segment_code VARCHAR2(30);
8518 l_adr_flex_value_set_id NUMBER;
8519 l_adr_value_type_code VARCHAR2(30);
8520 l_adr_value_combination_id NUMBER;
8521 l_adr_value_segment_code VARCHAR2(30);
8522
8523 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8524 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8525 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8526 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8527
8528 -- 4262811 Variables ------------------------------------------------------------------------------------------
8529 l_entered_amt_idx NUMBER;
8530 l_accted_amt_idx NUMBER;
8531 l_acc_rev_flag VARCHAR2(1);
8532 l_accrual_line_num NUMBER;
8533 l_tmp_amt NUMBER;
8534 l_acc_rev_natural_side_code VARCHAR2(1);
8535
8536 l_num_entries NUMBER;
8537 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8538 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8539 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8540 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8541 l_recog_line_1 NUMBER;
8542 l_recog_line_2 NUMBER;
8543
8544 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8545 l_bflow_applied_to_amt NUMBER; -- 5132302
8546 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8547
8548 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8549
8550 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8551 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8552
8553 ---------------------------------------------------------------------------------------------------------------
8554
8555
8556 --
8557 -- bulk performance
8558 --
8559 l_balance_type_code VARCHAR2(1);
8560 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8561 l_log_module VARCHAR2(240);
8562
8563 --
8564 -- Upgrade strategy
8565 --
8566 l_actual_upg_option VARCHAR2(1);
8567 l_enc_upg_option VARCHAR2(1);
8568
8569 --
8570 BEGIN
8571 --
8572 IF g_log_enabled THEN
8573 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
8574 END IF;
8575 --
8576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8577
8578 trace
8579 (p_msg => 'BEGIN of AcctLineType_43'
8580 ,p_level => C_LEVEL_PROCEDURE
8581 ,p_module => l_log_module);
8582
8583 END IF;
8584 --
8585 l_component_type := 'AMB_JLT';
8586 l_component_code := 'AP_ACCR_PREPAY_PAY_RATE_APP';
8587 l_component_type_code := 'S';
8588 l_component_appl_id := 200;
8589 l_amb_context_code := 'DEFAULT';
8590 l_entity_code := 'AP_INVOICES';
8591 l_event_class_code := 'PREPAYMENT APPLICATIONS';
8592 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
8593 l_line_definition_owner_code := 'S';
8594 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
8595 --
8596 l_balance_type_code := 'A';
8597 l_segment := NULL;
8598 l_ccid := NULL;
8599 l_adr_transaction_coa_id := NULL;
8600 l_adr_accounting_coa_id := NULL;
8601 l_adr_flexfield_segment_code := NULL;
8602 l_adr_flex_value_set_id := NULL;
8603 l_adr_value_type_code := NULL;
8604 l_adr_value_combination_id := NULL;
8605 l_adr_value_segment_code := NULL;
8606
8607 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8608 l_bflow_class_code := ''; -- 4219869 Business Flow
8609 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8610 l_budgetary_control_flag := 'N';
8611
8612 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8613 l_bflow_applied_to_amt := NULL; -- 5132302
8614 l_entered_amt_idx := NULL; -- 4262811
8615 l_accted_amt_idx := NULL; -- 4262811
8616 l_acc_rev_flag := NULL; -- 4262811
8617 l_accrual_line_num := NULL; -- 4262811
8618 l_tmp_amt := NULL; -- 4262811
8619 --
8620
8621 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8622 l_balance_type_code <> 'B' THEN
8623 IF NVL(p_source_50,'
8624 ') <> 'CLEAR_CLEAR' AND
8625 (NVL(p_source_78,'
8626 ') = 'PREPAY APPL' OR
8630 ') = 'PREPAY APPL REC TAX') AND
8627 NVL(p_source_78,'
8628 ') = 'PREPAY APPL NONREC TAX' OR
8629 NVL(p_source_78,'
8631 (NVL(p_source_79,'
8632 ') = 'ACCRUAL' OR
8633 NVL(p_source_79,'
8634 ') = 'RETROACCRUAL')
8635 THEN
8636
8637 --
8638 XLA_AE_LINES_PKG.SetNewLine;
8639
8640 p_balance_type_code := l_balance_type_code;
8641 -- set the flag so later we will know whether the gain loss line needs to be created
8642
8643 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8644 p_actual_flag :='A';
8645 END IF;
8646
8647 --
8648 -- bulk performance
8649 --
8650 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8651 p_header_num => 0); -- 4262811
8652 --
8653 -- set accounting line options
8654 --
8655 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8656 p_natural_side_code => 'C'
8657 , p_gain_or_loss_flag => 'N'
8658 , p_gl_transfer_mode_code => 'S'
8659 , p_acct_entry_type_code => 'A'
8660 , p_switch_side_flag => 'Y'
8661 , p_merge_duplicate_code => 'A'
8662 );
8663 --
8664 l_acc_rev_natural_side_code := 'D'; -- 4262811
8665 --
8666 --
8667 -- set accounting line type info
8668 --
8669 xla_ae_lines_pkg.SetAcctLineType
8670 (p_component_type => l_component_type
8671 ,p_event_type_code => l_event_type_code
8672 ,p_line_definition_owner_code => l_line_definition_owner_code
8673 ,p_line_definition_code => l_line_definition_code
8674 ,p_accounting_line_code => l_component_code
8675 ,p_accounting_line_type_code => l_component_type_code
8676 ,p_accounting_line_appl_id => l_component_appl_id
8677 ,p_amb_context_code => l_amb_context_code
8678 ,p_entity_code => l_entity_code
8679 ,p_event_class_code => l_event_class_code);
8680 --
8681 -- set accounting class
8682 --
8683 xla_ae_lines_pkg.SetAcctClass(
8684 p_accounting_class_code => 'ACCRUAL'
8685 , p_ae_header_id => l_ae_header_id
8686 );
8687
8688 --
8689 -- set rounding class
8690 --
8691 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8692 'ACCRUAL';
8693
8694 --
8695 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8696 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8697 --
8698 -- bulk performance
8699 --
8700 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8701
8702 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8703 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8704
8705 -- 4955764
8706 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8707 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8708
8709 -- 4458381 Public Sector Enh
8710
8711 --
8712 -- set accounting attributes for the line type
8713 --
8714 l_entered_amt_idx := 25;
8715 l_accted_amt_idx := 30;
8716 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8717 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8718 l_rec_acct_attrs.array_char_value(1) := p_source_52;
8719 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8720 l_rec_acct_attrs.array_num_value(2) :=
8721 xla_ae_sources_pkg.GetSystemSourceNum(
8722 p_source_code => 'XLA_EVENT_APPL_ID'
8723 , p_source_type_code => 'Y'
8724 , p_source_application_id => 602
8725 );
8726 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8727 l_rec_acct_attrs.array_char_value(3) := p_source_60;
8728 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8729 l_rec_acct_attrs.array_char_value(4) :=
8730 xla_ae_sources_pkg.GetSystemSourceChar(
8731 p_source_code => 'XLA_ENTITY_CODE'
8732 , p_source_type_code => 'Y'
8733 , p_source_application_id => 602
8734 );
8735 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8736 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
8737 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8738 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
8739 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8740 l_rec_acct_attrs.array_num_value(7) := p_source_54;
8741 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8742 l_rec_acct_attrs.array_char_value(8) := p_source_84;
8743 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8744 l_rec_acct_attrs.array_char_value(9) := p_source_85;
8745 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8746 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
8747 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8748 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
8749 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8753 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8750 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
8751 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8752 l_rec_acct_attrs.array_char_value(13) := p_source_60;
8754 l_rec_acct_attrs.array_char_value(14) := p_source_88;
8755 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8756 l_rec_acct_attrs.array_num_value(15) := p_source_89;
8757 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8758 l_rec_acct_attrs.array_num_value(16) := p_source_90;
8759 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8760 l_rec_acct_attrs.array_char_value(17) := p_source_91;
8761 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8762 l_rec_acct_attrs.array_num_value(18) := p_source_92;
8763 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8764 l_rec_acct_attrs.array_char_value(19) := p_source_93;
8765 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8766 l_rec_acct_attrs.array_num_value(20) := p_source_94;
8767 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8768 l_rec_acct_attrs.array_num_value(21) := p_source_95;
8769 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8770 l_rec_acct_attrs.array_char_value(22) := p_source_91;
8771 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8772 l_rec_acct_attrs.array_num_value(23) := p_source_96;
8773 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8774 l_rec_acct_attrs.array_char_value(24) := p_source_97;
8775 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8776 l_rec_acct_attrs.array_num_value(25) := p_source_98;
8777 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8778 l_rec_acct_attrs.array_char_value(26) := p_source_109;
8779 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8780 l_rec_acct_attrs.array_date_value(27) := p_source_61;
8781 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8782 l_rec_acct_attrs.array_num_value(28) := p_source_62;
8783 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8784 l_rec_acct_attrs.array_char_value(29) := p_source_63;
8785 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8786 l_rec_acct_attrs.array_num_value(30) := p_source_110;
8787 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8788 l_rec_acct_attrs.array_date_value(31) := p_source_101;
8789 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8790 l_rec_acct_attrs.array_char_value(32) := p_source_102;
8791 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8792 l_rec_acct_attrs.array_date_value(33) := p_source_103;
8793 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8794 l_rec_acct_attrs.array_char_value(34) := p_source_64;
8795 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8796 l_rec_acct_attrs.array_num_value(35) := p_source_104;
8797 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8798 l_rec_acct_attrs.array_num_value(36) := p_source_105;
8799 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8800 l_rec_acct_attrs.array_char_value(37) := p_source_67;
8801 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8802 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
8803 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8804 l_rec_acct_attrs.array_char_value(39) := p_source_60;
8805 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8806 l_rec_acct_attrs.array_num_value(40) := p_source_69;
8807 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8808 l_rec_acct_attrs.array_num_value(41) := p_source_77;
8809 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8810 l_rec_acct_attrs.array_num_value(42) := p_source_70;
8811 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8812 l_rec_acct_attrs.array_num_value(43) := p_source_107;
8813 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8814 l_rec_acct_attrs.array_num_value(44) := p_source_108;
8815
8816 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8817 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8818
8819 ---------------------------------------------------------------------------------------------------------------
8820 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8821 ---------------------------------------------------------------------------------------------------------------
8822 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8823
8824 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8825 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8826
8827 IF xla_accounting_cache_pkg.GetValueChar
8828 (p_source_code => 'LEDGER_CATEGORY_CODE'
8829 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8830 AND l_bflow_method_code = 'PRIOR_ENTRY'
8831 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8832 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8833 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8834 )
8838 ,p_business_class_code => l_bflow_class_code
8835 THEN
8836 xla_ae_lines_pkg.BflowUpgEntry
8837 (p_business_method_code => l_bflow_method_code
8839 ,p_balance_type => l_balance_type_code);
8840 ELSE
8841 NULL;
8842 -- No business flow processing for business flow method of NONE.
8843 END IF;
8844
8845 --
8846 -- call analytical criteria
8847 --
8848
8849 --
8850 -- call description
8851 --
8852 -- No description or it is inherited.
8853 --
8854 -- call ADRs
8855 -- Bug 4922099
8856 --
8857 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8858 (NVL(l_actual_upg_option, 'N') = 'O') OR
8859 (NVL(l_enc_upg_option, 'N') = 'O')
8860 )
8861 THEN
8862 NULL;
8863 --
8864 --
8865
8866 l_ccid := AcctDerRule_28(
8867 p_application_id => p_application_id
8868 , p_ae_header_id => l_ae_header_id
8869 , p_source_29 => p_source_29
8870 , x_transaction_coa_id => l_adr_transaction_coa_id
8871 , x_accounting_coa_id => l_adr_accounting_coa_id
8872 , x_value_type_code => l_adr_value_type_code
8873 , p_side => 'NA'
8874 );
8875
8876 xla_ae_lines_pkg.set_ccid(
8877 p_code_combination_id => l_ccid
8878 , p_value_type_code => l_adr_value_type_code
8879 , p_transaction_coa_id => l_adr_transaction_coa_id
8880 , p_accounting_coa_id => l_adr_accounting_coa_id
8881 , p_adr_code => 'AP_INVOICE_DIST'
8882 , p_adr_type_code => 'S'
8883 , p_component_type => l_component_type
8884 , p_component_code => l_component_code
8885 , p_component_type_code => l_component_type_code
8886 , p_component_appl_id => l_component_appl_id
8887 , p_amb_context_code => l_amb_context_code
8888 , p_side => 'NA'
8889 );
8890
8891
8892 --
8893 --
8894 END IF;
8895 --
8896 -- Bug 4922099
8897 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8898 (NVL(l_enc_upg_option, 'N') = 'O')
8899 ) AND
8900 (l_bflow_method_code = 'PRIOR_ENTRY')
8901 )
8902 THEN
8903 IF
8904 --
8905 1 = 2
8906 --
8907 THEN
8908 xla_accounting_err_pkg.build_message
8909 (p_appli_s_name => 'XLA'
8910 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8911 ,p_token_1 => 'LINE_NUMBER'
8912 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8913 ,p_token_2 => 'LINE_TYPE_NAME'
8914 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8915 l_component_type
8916 ,l_component_code
8917 ,l_component_type_code
8918 ,l_component_appl_id
8919 ,l_amb_context_code
8920 ,l_entity_code
8921 ,l_event_class_code
8922 )
8923 ,p_token_3 => 'OWNER'
8924 ,p_value_3 => xla_lookups_pkg.get_meaning(
8925 p_lookup_type => 'XLA_OWNER_TYPE'
8926 ,p_lookup_code => l_component_type_code
8927 )
8928 ,p_token_4 => 'PRODUCT_NAME'
8929 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8930 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8931 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8932 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8933 ,p_ae_header_id => NULL
8934 );
8935
8936 IF (C_LEVEL_ERROR>= g_log_level) THEN
8937 trace
8938 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8939 ,p_level => C_LEVEL_ERROR
8940 ,p_module => l_log_module);
8941 END IF;
8942 END IF;
8943 END IF;
8944 --
8945 --
8946 ------------------------------------------------------------------------------------------------
8947 -- 4219869 Business Flow
8948 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8949 -- Prior Entry. Currently, the following code is always generated.
8953 ------------------------------------------------------------------------------------
8950 ------------------------------------------------------------------------------------------------
8951 XLA_AE_LINES_PKG.ValidateCurrentLine;
8952
8954 -- 4219869 Business Flow
8955 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8956 ------------------------------------------------------------------------------------
8957 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8958
8959 ----------------------------------------------------------------------------------
8960 -- 4219869 Business Flow
8961 -- Update journal entry status -- Need to generate this within IF <condition>
8962 ----------------------------------------------------------------------------------
8963 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8964 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8965 ,p_balance_type_code => l_balance_type_code
8966 );
8967
8968 -------------------------------------------------------------------------------------------
8969 -- 4262811 - Generate the Accrual Reversal lines
8970 -------------------------------------------------------------------------------------------
8971 BEGIN
8972 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8973 (g_array_event(p_event_id).array_value_num('header_index'));
8974 IF l_acc_rev_flag IS NULL THEN
8975 l_acc_rev_flag := 'N';
8976 END IF;
8977 EXCEPTION
8978 WHEN OTHERS THEN
8979 l_acc_rev_flag := 'N';
8980 END;
8981 --
8982 IF (l_acc_rev_flag = 'Y') THEN
8983
8984 -- 4645092 ------------------------------------------------------------------------------
8985 -- To allow MPA report to determine if it should generate report process
8986 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8987 ------------------------------------------------------------------------------------------
8988
8989 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8990 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8991 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8992 -- call ADRs
8993 -- Bug 4922099
8994 --
8995 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8996 (NVL(l_actual_upg_option, 'N') = 'O') OR
8997 (NVL(l_enc_upg_option, 'N') = 'O')
8998 )
8999 THEN
9000 NULL;
9001 --
9002 --
9003
9004 l_ccid := AcctDerRule_28(
9005 p_application_id => p_application_id
9006 , p_ae_header_id => l_ae_header_id
9007 , p_source_29 => p_source_29
9008 , x_transaction_coa_id => l_adr_transaction_coa_id
9009 , x_accounting_coa_id => l_adr_accounting_coa_id
9010 , x_value_type_code => l_adr_value_type_code
9011 , p_side => 'NA'
9012 );
9013
9014 xla_ae_lines_pkg.set_ccid(
9015 p_code_combination_id => l_ccid
9016 , p_value_type_code => l_adr_value_type_code
9017 , p_transaction_coa_id => l_adr_transaction_coa_id
9018 , p_accounting_coa_id => l_adr_accounting_coa_id
9019 , p_adr_code => 'AP_INVOICE_DIST'
9020 , p_adr_type_code => 'S'
9021 , p_component_type => l_component_type
9022 , p_component_code => l_component_code
9023 , p_component_type_code => l_component_type_code
9024 , p_component_appl_id => l_component_appl_id
9025 , p_amb_context_code => l_amb_context_code
9026 , p_side => 'NA'
9027 );
9028
9029
9030 --
9031 --
9032 END IF;
9033
9034 --
9035 -- Update the line information that should be overwritten
9036 --
9037 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9038 p_header_num => 1);
9039 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9040
9041 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9042
9043 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9044 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9045 END IF;
9046
9047 --
9048 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9049 --
9050 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9051 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9052 ELSE
9053 ---------------------------------------------------------------------------------------------------
9054 -- 4262811a Switch Sign
9055 ---------------------------------------------------------------------------------------------------
9056 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9057 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9058 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9062 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9059 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9060 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9061 -- 5132302
9063 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9064
9065 END IF;
9066
9067 -- 4955764
9068 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9069 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9070
9071
9072 XLA_AE_LINES_PKG.ValidateCurrentLine;
9073 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9074
9075 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9076 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9077 ,p_balance_type_code => l_balance_type_code);
9078
9079 END IF;
9080
9081 -----------------------------------------------------------------------------------------
9082 -- 4262811 Multiperiod Accounting
9083 -----------------------------------------------------------------------------------------
9084 -- No MPA option is assigned.
9085
9086
9087 END IF;
9088 END IF;
9089 --
9090
9091 --
9092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9093 trace
9094 (p_msg => 'END of AcctLineType_43'
9095 ,p_level => C_LEVEL_PROCEDURE
9096 ,p_module => l_log_module);
9097 END IF;
9098 --
9099 EXCEPTION
9100 WHEN xla_exceptions_pkg.application_exception THEN
9101 RAISE;
9102 WHEN OTHERS THEN
9103 xla_exceptions_pkg.raise_message
9104 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_43');
9105 END AcctLineType_43;
9106 --
9107
9108 ---------------------------------------
9109 --
9110 -- PRIVATE FUNCTION
9111 -- AcctLineType_44
9112 --
9113 ---------------------------------------
9114 PROCEDURE AcctLineType_44 (
9115 p_application_id IN NUMBER
9116 ,p_event_id IN NUMBER
9117 ,p_calculate_acctd_flag IN VARCHAR2
9118 ,p_calculate_g_l_flag IN VARCHAR2
9119 ,p_actual_flag IN OUT VARCHAR2
9120 ,p_balance_type_code OUT VARCHAR2
9121 ,p_gain_or_loss_ref OUT VARCHAR2
9122
9123 --Automatic Offsets Value
9124 , p_source_16 IN VARCHAR2
9125 , p_source_16_meaning IN VARCHAR2
9126 --Purchase Order Rate Variance Gain Account
9127 , p_source_17 IN NUMBER
9128 --Destination Type of the PO Distribution
9129 , p_source_19 IN VARCHAR2
9130 , p_source_19_meaning IN VARCHAR2
9131 --Purchase Order Rate Variance Loss Account
9132 , p_source_20 IN NUMBER
9133 --Payment Distribution (Payment Rate) Ledger Amount
9134 , p_source_21 IN NUMBER
9135 --Payment Distribution (Cleared Rate) Ledger Amount
9136 , p_source_22 IN NUMBER
9137 --Invoice Distribution Account
9138 , p_source_29 IN NUMBER
9139 --Invoice Distribution Type
9140 , p_source_32 IN VARCHAR2
9141 , p_source_32_meaning IN VARCHAR2
9142 --Automatic Offsets Flag
9143 , p_source_42 IN VARCHAR2
9144 , p_source_42_meaning IN VARCHAR2
9145 --When to Account for Payment Option
9146 , p_source_50 IN VARCHAR2
9147 --Payment Distribution Type
9148 , p_source_51 IN VARCHAR2
9149 , p_source_51_meaning IN VARCHAR2
9150 --Accounting Reversal Indicator
9151 , p_source_52 IN VARCHAR2
9152 --Payment Distribution Amount
9153 , p_source_53 IN NUMBER
9154 --Business Flow Accounts Payable Application Identifier
9155 , p_source_54 IN NUMBER
9156 --Business Flow Payment Distribution Type
9157 , p_source_55 IN VARCHAR2
9158 --Business Flow Payment Entity Code
9159 , p_source_56 IN VARCHAR2
9160 --Business Flow Payment Distribution Identifier
9161 , p_source_57 IN NUMBER
9162 --Business Flow Payment Identifier
9163 , p_source_58 IN NUMBER
9164 --Payment Distribution Identifier
9165 , p_source_59 IN NUMBER
9166 --Distribution Link Type
9167 , p_source_60 IN VARCHAR2
9168 --Override Accounted Amount Indicator
9169 , p_source_64 IN VARCHAR2
9170 , p_source_64_meaning IN VARCHAR2
9171 --Payment Supplier Identifier
9172 , p_source_65 IN NUMBER
9173 --Payment Supplier Site Identifier
9174 , p_source_66 IN NUMBER
9175 --Third Party Type
9176 , p_source_67 IN VARCHAR2
9177 --Payment Distribution Reversed Identifier
9178 , p_source_68 IN NUMBER
9179 --Invoice Distribution Tax Line Identifier
9180 , p_source_69 IN NUMBER
9181 --Invoice Distribution Summary Tax Line Identifier
9182 , p_source_70 IN NUMBER
9183 )
9184 IS
9185
9186 l_component_type VARCHAR2(80);
9187 l_component_code VARCHAR2(30);
9188 l_component_type_code VARCHAR2(1);
9189 l_component_appl_id INTEGER;
9190 l_amb_context_code VARCHAR2(30);
9191 l_entity_code VARCHAR2(30);
9195 l_line_definition_code VARCHAR2(30);
9192 l_event_class_code VARCHAR2(30);
9193 l_ae_header_id NUMBER;
9194 l_event_type_code VARCHAR2(30);
9196 l_line_definition_owner_code VARCHAR2(1);
9197 --
9198 -- adr variables
9199 l_segment VARCHAR2(30);
9200 l_ccid NUMBER;
9201 l_adr_transaction_coa_id NUMBER;
9202 l_adr_accounting_coa_id NUMBER;
9203 l_adr_flexfield_segment_code VARCHAR2(30);
9204 l_adr_flex_value_set_id NUMBER;
9205 l_adr_value_type_code VARCHAR2(30);
9206 l_adr_value_combination_id NUMBER;
9207 l_adr_value_segment_code VARCHAR2(30);
9208
9209 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9210 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9211 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9212 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9213
9214 -- 4262811 Variables ------------------------------------------------------------------------------------------
9215 l_entered_amt_idx NUMBER;
9216 l_accted_amt_idx NUMBER;
9217 l_acc_rev_flag VARCHAR2(1);
9218 l_accrual_line_num NUMBER;
9219 l_tmp_amt NUMBER;
9220 l_acc_rev_natural_side_code VARCHAR2(1);
9221
9222 l_num_entries NUMBER;
9223 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9224 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9225 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9226 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9227 l_recog_line_1 NUMBER;
9228 l_recog_line_2 NUMBER;
9229
9230 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9231 l_bflow_applied_to_amt NUMBER; -- 5132302
9232 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9233
9234 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9235
9236 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9237 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9238
9239 ---------------------------------------------------------------------------------------------------------------
9240
9241
9242 --
9243 -- bulk performance
9244 --
9245 l_balance_type_code VARCHAR2(1);
9246 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9247 l_log_module VARCHAR2(240);
9248
9249 --
9250 -- Upgrade strategy
9251 --
9252 l_actual_upg_option VARCHAR2(1);
9253 l_enc_upg_option VARCHAR2(1);
9254
9255 --
9256 BEGIN
9257 --
9258 IF g_log_enabled THEN
9259 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
9260 END IF;
9261 --
9262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9263
9264 trace
9265 (p_msg => 'BEGIN of AcctLineType_44'
9266 ,p_level => C_LEVEL_PROCEDURE
9267 ,p_module => l_log_module);
9268
9269 END IF;
9270 --
9271 l_component_type := 'AMB_JLT';
9272 l_component_code := 'AP_ALC_EX_RATE_VAR_CLEAR';
9273 l_component_type_code := 'S';
9274 l_component_appl_id := 200;
9275 l_amb_context_code := 'DEFAULT';
9276 l_entity_code := 'AP_PAYMENTS';
9277 l_event_class_code := 'RECONCILED PAYMENTS';
9278 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
9279 l_line_definition_owner_code := 'S';
9280 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
9281 --
9282 l_balance_type_code := 'A';
9283 l_segment := NULL;
9284 l_ccid := NULL;
9285 l_adr_transaction_coa_id := NULL;
9286 l_adr_accounting_coa_id := NULL;
9287 l_adr_flexfield_segment_code := NULL;
9288 l_adr_flex_value_set_id := NULL;
9289 l_adr_value_type_code := NULL;
9290 l_adr_value_combination_id := NULL;
9291 l_adr_value_segment_code := NULL;
9292
9293 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9294 l_bflow_class_code := ''; -- 4219869 Business Flow
9295 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9296 l_budgetary_control_flag := 'N';
9297
9298 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9299 l_bflow_applied_to_amt := NULL; -- 5132302
9300 l_entered_amt_idx := NULL; -- 4262811
9301 l_accted_amt_idx := NULL; -- 4262811
9302 l_acc_rev_flag := NULL; -- 4262811
9303 l_accrual_line_num := NULL; -- 4262811
9304 l_tmp_amt := NULL; -- 4262811
9305 --
9306 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9307 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
9308 return;
9309 END IF;
9310
9311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9312 l_balance_type_code <> 'B' THEN
9313 IF NVL(p_source_50,'
9314 ') = 'CLEAR_CLEAR' AND
9315 NVL(p_source_32,'
9316 ') = 'ACCRUAL' AND
9317 (NVL(p_source_51,'
9318 ') = 'CASH' OR
9322
9319 NVL(p_source_51,'
9320 ') = 'DISCOUNT')
9321 THEN
9323 --
9324 XLA_AE_LINES_PKG.SetNewLine;
9325
9326 p_balance_type_code := l_balance_type_code;
9327 -- set the flag so later we will know whether the gain loss line needs to be created
9328
9329 IF(l_balance_type_code = 'A' ) THEN
9330 p_actual_flag :='G';
9331 END IF;
9332
9333 --
9334 -- bulk performance
9335 --
9336 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9337 p_header_num => 0); -- 4262811
9338 --
9339 -- set accounting line options
9340 --
9341 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9342 p_natural_side_code => 'G'
9343 , p_gain_or_loss_flag => 'N'
9344 , p_gl_transfer_mode_code => 'S'
9345 , p_acct_entry_type_code => 'A'
9346 , p_switch_side_flag => ''
9347 , p_merge_duplicate_code => 'A'
9348 );
9349 --
9350 l_acc_rev_natural_side_code := 'C'; -- 4262811
9351 --
9352 --
9353 -- set accounting line type info
9354 --
9355 xla_ae_lines_pkg.SetAcctLineType
9356 (p_component_type => l_component_type
9357 ,p_event_type_code => l_event_type_code
9358 ,p_line_definition_owner_code => l_line_definition_owner_code
9359 ,p_line_definition_code => l_line_definition_code
9360 ,p_accounting_line_code => l_component_code
9361 ,p_accounting_line_type_code => l_component_type_code
9362 ,p_accounting_line_appl_id => l_component_appl_id
9363 ,p_amb_context_code => l_amb_context_code
9364 ,p_entity_code => l_entity_code
9365 ,p_event_class_code => l_event_class_code);
9366 --
9367 -- set accounting class
9368 --
9369 xla_ae_lines_pkg.SetAcctClass(
9370 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
9371 , p_ae_header_id => l_ae_header_id
9372 );
9373
9374 --
9375 -- set rounding class
9376 --
9377 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9378 'EXCHANGE_RATE_VARIANCE';
9379
9380 --
9381 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9382 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9383 --
9384 -- bulk performance
9385 --
9386 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9387
9388 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9389 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9390
9391 -- 4955764
9392 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9393 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9394
9395 -- 4458381 Public Sector Enh
9396
9397 --
9398 -- set accounting attributes for the line type
9399 --
9400 l_entered_amt_idx := NULL;
9401 l_accted_amt_idx := 10;
9402 l_bflow_applied_to_amt_idx := 2; -- 5132302
9403 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9404 l_rec_acct_attrs.array_char_value(1) := p_source_52;
9405 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
9406 l_rec_acct_attrs.array_num_value(2) := p_source_53;
9407 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
9408 l_rec_acct_attrs.array_num_value(3) := p_source_54;
9409 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9410 l_rec_acct_attrs.array_char_value(4) := p_source_55;
9411 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
9412 l_rec_acct_attrs.array_char_value(5) := p_source_56;
9413 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
9414 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
9415 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9416 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
9417 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
9418 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
9419 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
9420 l_rec_acct_attrs.array_char_value(9) := p_source_60;
9421 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
9422 l_rec_acct_attrs.array_num_value(10) := p_source_22;
9423 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
9424 l_rec_acct_attrs.array_char_value(11) := p_source_64;
9425 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
9426 l_rec_acct_attrs.array_num_value(12) := p_source_65;
9427 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
9428 l_rec_acct_attrs.array_num_value(13) := p_source_66;
9429 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
9430 l_rec_acct_attrs.array_char_value(14) := p_source_67;
9431 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
9432 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
9436 l_rec_acct_attrs.array_num_value(17) := p_source_69;
9433 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
9434 l_rec_acct_attrs.array_char_value(16) := p_source_60;
9435 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
9437 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
9438 l_rec_acct_attrs.array_num_value(18) := p_source_69;
9439 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
9440 l_rec_acct_attrs.array_num_value(19) := p_source_70;
9441
9442 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9443 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9444
9445 ---------------------------------------------------------------------------------------------------------------
9446 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9447 ---------------------------------------------------------------------------------------------------------------
9448 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9449
9450 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9451 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9452
9453 IF xla_accounting_cache_pkg.GetValueChar
9454 (p_source_code => 'LEDGER_CATEGORY_CODE'
9455 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9456 AND l_bflow_method_code = 'PRIOR_ENTRY'
9457 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9458 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9459 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9460 )
9461 THEN
9462 xla_ae_lines_pkg.BflowUpgEntry
9463 (p_business_method_code => l_bflow_method_code
9464 ,p_business_class_code => l_bflow_class_code
9465 ,p_balance_type => l_balance_type_code);
9466 ELSE
9467 NULL;
9468 -- No business flow processing for business flow method of NONE.
9469 END IF;
9470
9471 --
9472 -- call analytical criteria
9473 --
9474
9475 --
9476 -- call description
9477 --
9478 -- No description or it is inherited.
9479 --
9480 -- call ADRs
9481 -- Bug 4922099
9482 --
9483 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9484 (NVL(l_actual_upg_option, 'N') = 'O') OR
9485 (NVL(l_enc_upg_option, 'N') = 'O')
9486 )
9487 THEN
9488 NULL;
9489 --
9490 --
9491
9492 l_ccid := AcctDerRule_24(
9493 p_application_id => p_application_id
9494 , p_ae_header_id => l_ae_header_id
9495 , p_source_16 => p_source_16
9496 , p_source_16_meaning => p_source_16_meaning
9497 , p_source_17 => p_source_17
9498 , p_source_19 => p_source_19
9499 , p_source_19_meaning => p_source_19_meaning
9500 , p_source_20 => p_source_20
9501 , p_source_21 => p_source_21
9502 , p_source_22 => p_source_22
9503 , p_source_29 => p_source_29
9504 , p_source_42 => p_source_42
9505 , p_source_42_meaning => p_source_42_meaning
9506 , x_transaction_coa_id => l_adr_transaction_coa_id
9507 , x_accounting_coa_id => l_adr_accounting_coa_id
9508 , x_value_type_code => l_adr_value_type_code
9509 , p_side => 'ALL'
9510 );
9511
9512 xla_ae_lines_pkg.set_ccid(
9513 p_code_combination_id => l_ccid
9514 , p_value_type_code => l_adr_value_type_code
9515 , p_transaction_coa_id => l_adr_transaction_coa_id
9516 , p_accounting_coa_id => l_adr_accounting_coa_id
9517 , p_adr_code => 'AP_ERV_TAXERV_CASH'
9518 , p_adr_type_code => 'S'
9519 , p_component_type => l_component_type
9520 , p_component_code => l_component_code
9521 , p_component_type_code => l_component_type_code
9522 , p_component_appl_id => l_component_appl_id
9523 , p_amb_context_code => l_amb_context_code
9524 , p_side => 'ALL'
9525 );
9526
9527
9528 l_segment := AcctDerRule_7(
9529 p_application_id => p_application_id
9530 , p_ae_header_id => l_ae_header_id
9531 , p_source_16 => p_source_16
9532 , p_source_16_meaning => p_source_16_meaning
9533 , p_source_17 => p_source_17
9534 , p_source_19 => p_source_19
9535 , p_source_19_meaning => p_source_19_meaning
9536 , x_transaction_coa_id => l_adr_transaction_coa_id
9537 , x_accounting_coa_id => l_adr_accounting_coa_id
9538 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9539 , x_flex_value_set_id => l_adr_flex_value_set_id
9540 , x_value_type_code => l_adr_value_type_code
9541 , x_value_combination_id => l_adr_value_combination_id
9542 , x_value_segment_code => l_adr_value_segment_code
9543 , p_side => 'CREDIT'
9544 , p_override_seg_flag => 'Y'
9545 );
9546
9547 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9548
9549 xla_ae_lines_pkg.set_segment(
9550 p_to_segment_code => 'GL_ACCOUNT'
9554 , p_value_type_code => l_adr_value_type_code
9551 , p_segment_value => l_segment
9552 , p_from_segment_code => l_adr_value_segment_code
9553 , p_from_combination_id => l_adr_value_combination_id
9555 , p_transaction_coa_id => l_adr_transaction_coa_id
9556 , p_accounting_coa_id => l_adr_accounting_coa_id
9557 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9558 , p_flex_value_set_id => l_adr_flex_value_set_id
9559 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9560 , p_adr_type_code => 'S'
9561 , p_component_type => l_component_type
9562 , p_component_code => l_component_code
9563 , p_component_type_code => l_component_type_code
9564 , p_component_appl_id => l_component_appl_id
9565 , p_amb_context_code => l_amb_context_code
9566 , p_entity_code => 'AP_PAYMENTS'
9567 , p_event_class_code => 'RECONCILED PAYMENTS'
9568 , p_side => 'CREDIT'
9569 );
9570
9571 END IF;
9572
9573 l_segment := AcctDerRule_8(
9574 p_application_id => p_application_id
9575 , p_ae_header_id => l_ae_header_id
9576 , p_source_16 => p_source_16
9577 , p_source_16_meaning => p_source_16_meaning
9578 , p_source_19 => p_source_19
9579 , p_source_19_meaning => p_source_19_meaning
9580 , p_source_20 => p_source_20
9581 , x_transaction_coa_id => l_adr_transaction_coa_id
9582 , x_accounting_coa_id => l_adr_accounting_coa_id
9583 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9584 , x_flex_value_set_id => l_adr_flex_value_set_id
9585 , x_value_type_code => l_adr_value_type_code
9586 , x_value_combination_id => l_adr_value_combination_id
9587 , x_value_segment_code => l_adr_value_segment_code
9588 , p_side => 'DEBIT'
9589 , p_override_seg_flag => 'Y'
9590 );
9591
9592 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9593
9594 xla_ae_lines_pkg.set_segment(
9595 p_to_segment_code => 'GL_ACCOUNT'
9596 , p_segment_value => l_segment
9597 , p_from_segment_code => l_adr_value_segment_code
9598 , p_from_combination_id => l_adr_value_combination_id
9599 , p_value_type_code => l_adr_value_type_code
9600 , p_transaction_coa_id => l_adr_transaction_coa_id
9601 , p_accounting_coa_id => l_adr_accounting_coa_id
9602 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9603 , p_flex_value_set_id => l_adr_flex_value_set_id
9604 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9605 , p_adr_type_code => 'S'
9606 , p_component_type => l_component_type
9607 , p_component_code => l_component_code
9608 , p_component_type_code => l_component_type_code
9609 , p_component_appl_id => l_component_appl_id
9610 , p_amb_context_code => l_amb_context_code
9611 , p_entity_code => 'AP_PAYMENTS'
9612 , p_event_class_code => 'RECONCILED PAYMENTS'
9613 , p_side => 'DEBIT'
9614 );
9615
9616 END IF;
9617
9618 l_segment := AcctDerRule_17(
9619 p_application_id => p_application_id
9620 , p_ae_header_id => l_ae_header_id
9621 , p_source_16 => p_source_16
9622 , p_source_16_meaning => p_source_16_meaning
9623 , p_source_19 => p_source_19
9624 , p_source_19_meaning => p_source_19_meaning
9625 , p_source_29 => p_source_29
9626 , x_transaction_coa_id => l_adr_transaction_coa_id
9627 , x_accounting_coa_id => l_adr_accounting_coa_id
9628 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9629 , x_flex_value_set_id => l_adr_flex_value_set_id
9630 , x_value_type_code => l_adr_value_type_code
9631 , x_value_combination_id => l_adr_value_combination_id
9632 , x_value_segment_code => l_adr_value_segment_code
9633 , p_side => 'ALL'
9634 , p_override_seg_flag => 'Y'
9635 );
9636
9637 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9638
9639 xla_ae_lines_pkg.set_segment(
9640 p_to_segment_code => 'GL_BALANCING'
9641 , p_segment_value => l_segment
9642 , p_from_segment_code => l_adr_value_segment_code
9643 , p_from_combination_id => l_adr_value_combination_id
9644 , p_value_type_code => l_adr_value_type_code
9645 , p_transaction_coa_id => l_adr_transaction_coa_id
9646 , p_accounting_coa_id => l_adr_accounting_coa_id
9647 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9648 , p_flex_value_set_id => l_adr_flex_value_set_id
9649 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
9650 , p_adr_type_code => 'S'
9651 , p_component_type => l_component_type
9652 , p_component_code => l_component_code
9653 , p_component_type_code => l_component_type_code
9654 , p_component_appl_id => l_component_appl_id
9655 , p_amb_context_code => l_amb_context_code
9659 );
9656 , p_entity_code => 'AP_PAYMENTS'
9657 , p_event_class_code => 'RECONCILED PAYMENTS'
9658 , p_side => 'ALL'
9660
9661 END IF;
9662
9663 --
9664 --
9665 END IF;
9666 --
9667 -- Bug 4922099
9668 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9669 (NVL(l_enc_upg_option, 'N') = 'O')
9670 ) AND
9671 (l_bflow_method_code = 'PRIOR_ENTRY')
9672 )
9673 THEN
9674 IF
9675 --
9676 1 = 2
9677 --
9678 THEN
9679 xla_accounting_err_pkg.build_message
9680 (p_appli_s_name => 'XLA'
9681 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9682 ,p_token_1 => 'LINE_NUMBER'
9683 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9684 ,p_token_2 => 'LINE_TYPE_NAME'
9685 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9686 l_component_type
9687 ,l_component_code
9688 ,l_component_type_code
9689 ,l_component_appl_id
9690 ,l_amb_context_code
9691 ,l_entity_code
9692 ,l_event_class_code
9693 )
9694 ,p_token_3 => 'OWNER'
9695 ,p_value_3 => xla_lookups_pkg.get_meaning(
9696 p_lookup_type => 'XLA_OWNER_TYPE'
9697 ,p_lookup_code => l_component_type_code
9698 )
9699 ,p_token_4 => 'PRODUCT_NAME'
9700 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9701 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9702 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9703 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9704 ,p_ae_header_id => NULL
9705 );
9706
9707 IF (C_LEVEL_ERROR>= g_log_level) THEN
9708 trace
9709 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9710 ,p_level => C_LEVEL_ERROR
9711 ,p_module => l_log_module);
9712 END IF;
9713 END IF;
9714 END IF;
9715 --
9716 --
9717 ------------------------------------------------------------------------------------------------
9718 -- 4219869 Business Flow
9719 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9720 -- Prior Entry. Currently, the following code is always generated.
9721 ------------------------------------------------------------------------------------------------
9722 XLA_AE_LINES_PKG.ValidateCurrentLine;
9723
9724 ------------------------------------------------------------------------------------
9725 -- 4219869 Business Flow
9726 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9727 ------------------------------------------------------------------------------------
9728 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9729
9730 ----------------------------------------------------------------------------------
9731 -- 4219869 Business Flow
9732 -- Update journal entry status -- Need to generate this within IF <condition>
9733 ----------------------------------------------------------------------------------
9734 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9735 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9736 ,p_balance_type_code => l_balance_type_code
9737 );
9738
9739 -------------------------------------------------------------------------------------------
9740 -- 4262811 - Generate the Accrual Reversal lines
9741 -------------------------------------------------------------------------------------------
9742 BEGIN
9743 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9744 (g_array_event(p_event_id).array_value_num('header_index'));
9745 IF l_acc_rev_flag IS NULL THEN
9746 l_acc_rev_flag := 'N';
9747 END IF;
9748 EXCEPTION
9749 WHEN OTHERS THEN
9750 l_acc_rev_flag := 'N';
9751 END;
9752 --
9753 IF (l_acc_rev_flag = 'Y') THEN
9754
9755 -- 4645092 ------------------------------------------------------------------------------
9756 -- To allow MPA report to determine if it should generate report process
9757 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9761 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9758 ------------------------------------------------------------------------------------------
9759
9760 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9762 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9763 -- call ADRs
9764 -- Bug 4922099
9765 --
9766 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9767 (NVL(l_actual_upg_option, 'N') = 'O') OR
9768 (NVL(l_enc_upg_option, 'N') = 'O')
9769 )
9770 THEN
9771 NULL;
9772 --
9773 --
9774
9775 l_ccid := AcctDerRule_24(
9776 p_application_id => p_application_id
9777 , p_ae_header_id => l_ae_header_id
9778 , p_source_16 => p_source_16
9779 , p_source_16_meaning => p_source_16_meaning
9780 , p_source_17 => p_source_17
9781 , p_source_19 => p_source_19
9782 , p_source_19_meaning => p_source_19_meaning
9783 , p_source_20 => p_source_20
9784 , p_source_21 => p_source_21
9785 , p_source_22 => p_source_22
9786 , p_source_29 => p_source_29
9787 , p_source_42 => p_source_42
9788 , p_source_42_meaning => p_source_42_meaning
9789 , x_transaction_coa_id => l_adr_transaction_coa_id
9790 , x_accounting_coa_id => l_adr_accounting_coa_id
9791 , x_value_type_code => l_adr_value_type_code
9792 , p_side => 'ALL'
9793 );
9794
9795 xla_ae_lines_pkg.set_ccid(
9796 p_code_combination_id => l_ccid
9797 , p_value_type_code => l_adr_value_type_code
9798 , p_transaction_coa_id => l_adr_transaction_coa_id
9799 , p_accounting_coa_id => l_adr_accounting_coa_id
9800 , p_adr_code => 'AP_ERV_TAXERV_CASH'
9801 , p_adr_type_code => 'S'
9802 , p_component_type => l_component_type
9803 , p_component_code => l_component_code
9804 , p_component_type_code => l_component_type_code
9805 , p_component_appl_id => l_component_appl_id
9806 , p_amb_context_code => l_amb_context_code
9807 , p_side => 'ALL'
9808 );
9809
9810
9811 l_segment := AcctDerRule_7(
9812 p_application_id => p_application_id
9813 , p_ae_header_id => l_ae_header_id
9814 , p_source_16 => p_source_16
9815 , p_source_16_meaning => p_source_16_meaning
9816 , p_source_17 => p_source_17
9817 , p_source_19 => p_source_19
9818 , p_source_19_meaning => p_source_19_meaning
9819 , x_transaction_coa_id => l_adr_transaction_coa_id
9820 , x_accounting_coa_id => l_adr_accounting_coa_id
9821 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9822 , x_flex_value_set_id => l_adr_flex_value_set_id
9823 , x_value_type_code => l_adr_value_type_code
9824 , x_value_combination_id => l_adr_value_combination_id
9825 , x_value_segment_code => l_adr_value_segment_code
9826 , p_side => 'CREDIT'
9827 , p_override_seg_flag => 'Y'
9828 );
9829
9830 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9831
9832 xla_ae_lines_pkg.set_segment(
9833 p_to_segment_code => 'GL_ACCOUNT'
9834 , p_segment_value => l_segment
9835 , p_from_segment_code => l_adr_value_segment_code
9836 , p_from_combination_id => l_adr_value_combination_id
9837 , p_value_type_code => l_adr_value_type_code
9838 , p_transaction_coa_id => l_adr_transaction_coa_id
9839 , p_accounting_coa_id => l_adr_accounting_coa_id
9840 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9841 , p_flex_value_set_id => l_adr_flex_value_set_id
9842 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9843 , p_adr_type_code => 'S'
9844 , p_component_type => l_component_type
9845 , p_component_code => l_component_code
9846 , p_component_type_code => l_component_type_code
9847 , p_component_appl_id => l_component_appl_id
9848 , p_amb_context_code => l_amb_context_code
9849 , p_entity_code => 'AP_PAYMENTS'
9850 , p_event_class_code => 'RECONCILED PAYMENTS'
9851 , p_side => 'CREDIT'
9852 );
9853
9854 END IF;
9855
9856 l_segment := AcctDerRule_8(
9857 p_application_id => p_application_id
9858 , p_ae_header_id => l_ae_header_id
9859 , p_source_16 => p_source_16
9860 , p_source_16_meaning => p_source_16_meaning
9861 , p_source_19 => p_source_19
9862 , p_source_19_meaning => p_source_19_meaning
9863 , p_source_20 => p_source_20
9864 , x_transaction_coa_id => l_adr_transaction_coa_id
9865 , x_accounting_coa_id => l_adr_accounting_coa_id
9866 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9867 , x_flex_value_set_id => l_adr_flex_value_set_id
9868 , x_value_type_code => l_adr_value_type_code
9869 , x_value_combination_id => l_adr_value_combination_id
9870 , x_value_segment_code => l_adr_value_segment_code
9871 , p_side => 'DEBIT'
9872 , p_override_seg_flag => 'Y'
9873 );
9874
9875 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9876
9877 xla_ae_lines_pkg.set_segment(
9878 p_to_segment_code => 'GL_ACCOUNT'
9879 , p_segment_value => l_segment
9883 , p_transaction_coa_id => l_adr_transaction_coa_id
9880 , p_from_segment_code => l_adr_value_segment_code
9881 , p_from_combination_id => l_adr_value_combination_id
9882 , p_value_type_code => l_adr_value_type_code
9884 , p_accounting_coa_id => l_adr_accounting_coa_id
9885 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9886 , p_flex_value_set_id => l_adr_flex_value_set_id
9887 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9888 , p_adr_type_code => 'S'
9889 , p_component_type => l_component_type
9890 , p_component_code => l_component_code
9891 , p_component_type_code => l_component_type_code
9892 , p_component_appl_id => l_component_appl_id
9893 , p_amb_context_code => l_amb_context_code
9894 , p_entity_code => 'AP_PAYMENTS'
9895 , p_event_class_code => 'RECONCILED PAYMENTS'
9896 , p_side => 'DEBIT'
9897 );
9898
9899 END IF;
9900
9901 l_segment := AcctDerRule_17(
9902 p_application_id => p_application_id
9903 , p_ae_header_id => l_ae_header_id
9904 , p_source_16 => p_source_16
9905 , p_source_16_meaning => p_source_16_meaning
9906 , p_source_19 => p_source_19
9907 , p_source_19_meaning => p_source_19_meaning
9908 , p_source_29 => p_source_29
9909 , x_transaction_coa_id => l_adr_transaction_coa_id
9910 , x_accounting_coa_id => l_adr_accounting_coa_id
9911 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9912 , x_flex_value_set_id => l_adr_flex_value_set_id
9913 , x_value_type_code => l_adr_value_type_code
9914 , x_value_combination_id => l_adr_value_combination_id
9915 , x_value_segment_code => l_adr_value_segment_code
9916 , p_side => 'ALL'
9917 , p_override_seg_flag => 'Y'
9918 );
9919
9920 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9921
9922 xla_ae_lines_pkg.set_segment(
9923 p_to_segment_code => 'GL_BALANCING'
9924 , p_segment_value => l_segment
9925 , p_from_segment_code => l_adr_value_segment_code
9926 , p_from_combination_id => l_adr_value_combination_id
9927 , p_value_type_code => l_adr_value_type_code
9928 , p_transaction_coa_id => l_adr_transaction_coa_id
9929 , p_accounting_coa_id => l_adr_accounting_coa_id
9930 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9931 , p_flex_value_set_id => l_adr_flex_value_set_id
9932 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
9933 , p_adr_type_code => 'S'
9934 , p_component_type => l_component_type
9935 , p_component_code => l_component_code
9936 , p_component_type_code => l_component_type_code
9937 , p_component_appl_id => l_component_appl_id
9938 , p_amb_context_code => l_amb_context_code
9939 , p_entity_code => 'AP_PAYMENTS'
9940 , p_event_class_code => 'RECONCILED PAYMENTS'
9941 , p_side => 'ALL'
9942 );
9943
9944 END IF;
9945
9946 --
9947 --
9948 END IF;
9949
9950 --
9951 -- Update the line information that should be overwritten
9952 --
9953 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9954 p_header_num => 1);
9955 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9956
9957 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9958
9959 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9960 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9961 END IF;
9962
9963 --
9964 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9965 --
9966 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9967 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9968 ELSE
9969 ---------------------------------------------------------------------------------------------------
9970 -- 4262811a Switch Sign
9971 ---------------------------------------------------------------------------------------------------
9972 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9974 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9975 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9976 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9977 -- 5132302
9978 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9979 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9980
9981 END IF;
9982
9983 -- 4955764
9987
9984 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9985 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9986
9988 XLA_AE_LINES_PKG.ValidateCurrentLine;
9989 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9990
9991 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9992 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9993 ,p_balance_type_code => l_balance_type_code);
9994
9995 END IF;
9996
9997 -----------------------------------------------------------------------------------------
9998 -- 4262811 Multiperiod Accounting
9999 -----------------------------------------------------------------------------------------
10000 -- No MPA option is assigned.
10001
10002
10003 END IF;
10004 END IF;
10005 --
10006
10007 --
10008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10009 trace
10010 (p_msg => 'END of AcctLineType_44'
10011 ,p_level => C_LEVEL_PROCEDURE
10012 ,p_module => l_log_module);
10013 END IF;
10014 --
10015 EXCEPTION
10016 WHEN xla_exceptions_pkg.application_exception THEN
10017 RAISE;
10018 WHEN OTHERS THEN
10019 xla_exceptions_pkg.raise_message
10020 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_44');
10021 END AcctLineType_44;
10022 --
10023
10024 ---------------------------------------
10025 --
10026 -- PRIVATE FUNCTION
10027 -- AcctLineType_45
10028 --
10029 ---------------------------------------
10030 PROCEDURE AcctLineType_45 (
10031 p_application_id IN NUMBER
10032 ,p_event_id IN NUMBER
10033 ,p_calculate_acctd_flag IN VARCHAR2
10034 ,p_calculate_g_l_flag IN VARCHAR2
10035 ,p_actual_flag IN OUT VARCHAR2
10036 ,p_balance_type_code OUT VARCHAR2
10037 ,p_gain_or_loss_ref OUT VARCHAR2
10038
10039 --Automatic Offsets Value
10040 , p_source_16 IN VARCHAR2
10041 , p_source_16_meaning IN VARCHAR2
10042 --Purchase Order Rate Variance Gain Account
10043 , p_source_17 IN NUMBER
10044 --Destination Type of the PO Distribution
10045 , p_source_19 IN VARCHAR2
10046 , p_source_19_meaning IN VARCHAR2
10047 --Purchase Order Rate Variance Loss Account
10048 , p_source_20 IN NUMBER
10049 --Payment Distribution (Payment Rate) Ledger Amount
10050 , p_source_21 IN NUMBER
10051 --Payment Distribution (Cleared Rate) Ledger Amount
10052 , p_source_22 IN NUMBER
10053 --Invoice Distribution Account
10054 , p_source_29 IN NUMBER
10055 --Invoice Distribution Type
10056 , p_source_32 IN VARCHAR2
10057 , p_source_32_meaning IN VARCHAR2
10058 --Automatic Offsets Flag
10059 , p_source_42 IN VARCHAR2
10060 , p_source_42_meaning IN VARCHAR2
10061 --When to Account for Payment Option
10062 , p_source_50 IN VARCHAR2
10063 --Accounting Reversal Indicator
10064 , p_source_52 IN VARCHAR2
10065 --Business Flow Accounts Payable Application Identifier
10066 , p_source_54 IN NUMBER
10067 --Payment Distribution Identifier
10068 , p_source_59 IN NUMBER
10069 --Distribution Link Type
10070 , p_source_60 IN VARCHAR2
10071 --Override Accounted Amount Indicator
10072 , p_source_64 IN VARCHAR2
10073 , p_source_64_meaning IN VARCHAR2
10074 --Payment Supplier Identifier
10075 , p_source_65 IN NUMBER
10076 --Payment Supplier Site Identifier
10077 , p_source_66 IN NUMBER
10078 --Third Party Type
10079 , p_source_67 IN VARCHAR2
10080 --Payment Distribution Reversed Identifier
10081 , p_source_68 IN NUMBER
10082 --Invoice Distribution Tax Line Identifier
10083 , p_source_69 IN NUMBER
10084 --Invoice Distribution Summary Tax Line Identifier
10085 , p_source_70 IN NUMBER
10086 --Payment Type
10087 , p_source_71 IN VARCHAR2
10088 , p_source_71_meaning IN VARCHAR2
10089 --Invoice Distribution Amount of the Payment Distribution
10090 , p_source_72 IN NUMBER
10091 --Business Flow Invoice Distribution Type
10092 , p_source_73 IN VARCHAR2
10093 --Business Flow Invoice Entity Code
10094 , p_source_74 IN VARCHAR2
10095 --Business Flow Invoice Distribution Identifier
10096 , p_source_75 IN NUMBER
10097 --Business Flow Invoice Identifier
10098 , p_source_76 IN NUMBER
10099 --Invoice Distribution Tax Distribution Identifier from Tax
10100 , p_source_77 IN NUMBER
10101 )
10102 IS
10103
10104 l_component_type VARCHAR2(80);
10105 l_component_code VARCHAR2(30);
10106 l_component_type_code VARCHAR2(1);
10107 l_component_appl_id INTEGER;
10108 l_amb_context_code VARCHAR2(30);
10109 l_entity_code VARCHAR2(30);
10110 l_event_class_code VARCHAR2(30);
10111 l_ae_header_id NUMBER;
10112 l_event_type_code VARCHAR2(30);
10113 l_line_definition_code VARCHAR2(30);
10114 l_line_definition_owner_code VARCHAR2(1);
10115 --
10116 -- adr variables
10117 l_segment VARCHAR2(30);
10118 l_ccid NUMBER;
10119 l_adr_transaction_coa_id NUMBER;
10120 l_adr_accounting_coa_id NUMBER;
10121 l_adr_flexfield_segment_code VARCHAR2(30);
10125 l_adr_value_segment_code VARCHAR2(30);
10122 l_adr_flex_value_set_id NUMBER;
10123 l_adr_value_type_code VARCHAR2(30);
10124 l_adr_value_combination_id NUMBER;
10126
10127 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10128 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10129 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10130 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10131
10132 -- 4262811 Variables ------------------------------------------------------------------------------------------
10133 l_entered_amt_idx NUMBER;
10134 l_accted_amt_idx NUMBER;
10135 l_acc_rev_flag VARCHAR2(1);
10136 l_accrual_line_num NUMBER;
10137 l_tmp_amt NUMBER;
10138 l_acc_rev_natural_side_code VARCHAR2(1);
10139
10140 l_num_entries NUMBER;
10141 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10142 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10143 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10144 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10145 l_recog_line_1 NUMBER;
10146 l_recog_line_2 NUMBER;
10147
10148 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10149 l_bflow_applied_to_amt NUMBER; -- 5132302
10150 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10151
10152 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10153
10154 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10155 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10156
10157 ---------------------------------------------------------------------------------------------------------------
10158
10159
10160 --
10161 -- bulk performance
10162 --
10163 l_balance_type_code VARCHAR2(1);
10164 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10165 l_log_module VARCHAR2(240);
10166
10167 --
10168 -- Upgrade strategy
10169 --
10170 l_actual_upg_option VARCHAR2(1);
10171 l_enc_upg_option VARCHAR2(1);
10172
10173 --
10174 BEGIN
10175 --
10176 IF g_log_enabled THEN
10177 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
10178 END IF;
10179 --
10180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10181
10182 trace
10183 (p_msg => 'BEGIN of AcctLineType_45'
10184 ,p_level => C_LEVEL_PROCEDURE
10185 ,p_module => l_log_module);
10186
10187 END IF;
10188 --
10189 l_component_type := 'AMB_JLT';
10190 l_component_code := 'AP_ALC_EX_RATE_VAR_PMT';
10191 l_component_type_code := 'S';
10192 l_component_appl_id := 200;
10193 l_amb_context_code := 'DEFAULT';
10194 l_entity_code := 'AP_PAYMENTS';
10195 l_event_class_code := 'PAYMENTS';
10196 l_event_type_code := 'PAYMENTS_ALL';
10197 l_line_definition_owner_code := 'S';
10198 l_line_definition_code := 'CASH_PAYMENTS_ALL';
10199 --
10200 l_balance_type_code := 'A';
10201 l_segment := NULL;
10202 l_ccid := NULL;
10203 l_adr_transaction_coa_id := NULL;
10204 l_adr_accounting_coa_id := NULL;
10205 l_adr_flexfield_segment_code := NULL;
10206 l_adr_flex_value_set_id := NULL;
10207 l_adr_value_type_code := NULL;
10208 l_adr_value_combination_id := NULL;
10209 l_adr_value_segment_code := NULL;
10210
10211 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10212 l_bflow_class_code := ''; -- 4219869 Business Flow
10213 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10214 l_budgetary_control_flag := 'N';
10215
10216 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10217 l_bflow_applied_to_amt := NULL; -- 5132302
10218 l_entered_amt_idx := NULL; -- 4262811
10219 l_accted_amt_idx := NULL; -- 4262811
10220 l_acc_rev_flag := NULL; -- 4262811
10221 l_accrual_line_num := NULL; -- 4262811
10222 l_tmp_amt := NULL; -- 4262811
10223 --
10224 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10225 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
10226 return;
10227 END IF;
10228
10229 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10230 l_balance_type_code <> 'B' THEN
10231 IF NVL(p_source_50,'
10232 ') <> 'CLEAR_CLEAR' AND
10233 NVL(p_source_32,'
10234 ') = 'ACCRUAL' AND
10235 NVL(p_source_71,'
10236 ') <> 'R'
10237 THEN
10238
10239 --
10240 XLA_AE_LINES_PKG.SetNewLine;
10241
10242 p_balance_type_code := l_balance_type_code;
10243 -- set the flag so later we will know whether the gain loss line needs to be created
10244
10245 IF(l_balance_type_code = 'A' ) THEN
10246 p_actual_flag :='G';
10247 END IF;
10248
10249 --
10253 p_header_num => 0); -- 4262811
10250 -- bulk performance
10251 --
10252 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10254 --
10255 -- set accounting line options
10256 --
10257 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10258 p_natural_side_code => 'G'
10259 , p_gain_or_loss_flag => 'N'
10260 , p_gl_transfer_mode_code => 'S'
10261 , p_acct_entry_type_code => 'A'
10262 , p_switch_side_flag => ''
10263 , p_merge_duplicate_code => 'A'
10264 );
10265 --
10266 l_acc_rev_natural_side_code := 'C'; -- 4262811
10267 --
10268 --
10269 -- set accounting line type info
10270 --
10271 xla_ae_lines_pkg.SetAcctLineType
10272 (p_component_type => l_component_type
10273 ,p_event_type_code => l_event_type_code
10274 ,p_line_definition_owner_code => l_line_definition_owner_code
10275 ,p_line_definition_code => l_line_definition_code
10276 ,p_accounting_line_code => l_component_code
10277 ,p_accounting_line_type_code => l_component_type_code
10278 ,p_accounting_line_appl_id => l_component_appl_id
10279 ,p_amb_context_code => l_amb_context_code
10280 ,p_entity_code => l_entity_code
10281 ,p_event_class_code => l_event_class_code);
10282 --
10283 -- set accounting class
10284 --
10285 xla_ae_lines_pkg.SetAcctClass(
10286 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
10287 , p_ae_header_id => l_ae_header_id
10288 );
10289
10290 --
10291 -- set rounding class
10292 --
10293 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10294 'EXCHANGE_RATE_VARIANCE';
10295
10296 --
10297 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10298 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10299 --
10300 -- bulk performance
10301 --
10302 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10303
10304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10305 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10306
10307 -- 4955764
10308 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10309 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10310
10311 -- 4458381 Public Sector Enh
10312
10313 --
10314 -- set accounting attributes for the line type
10315 --
10316 l_entered_amt_idx := NULL;
10317 l_accted_amt_idx := 10;
10318 l_bflow_applied_to_amt_idx := 2; -- 5132302
10319 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10320 l_rec_acct_attrs.array_char_value(1) := p_source_52;
10321 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
10322 l_rec_acct_attrs.array_num_value(2) := p_source_72;
10323 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
10324 l_rec_acct_attrs.array_num_value(3) := p_source_54;
10325 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10326 l_rec_acct_attrs.array_char_value(4) := p_source_73;
10327 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
10328 l_rec_acct_attrs.array_char_value(5) := p_source_74;
10329 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
10330 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
10331 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10332 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
10333 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
10334 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
10335 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
10336 l_rec_acct_attrs.array_char_value(9) := p_source_60;
10337 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
10338 l_rec_acct_attrs.array_num_value(10) := p_source_21;
10339 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
10340 l_rec_acct_attrs.array_char_value(11) := p_source_64;
10341 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
10342 l_rec_acct_attrs.array_num_value(12) := p_source_65;
10343 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
10344 l_rec_acct_attrs.array_num_value(13) := p_source_66;
10345 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
10346 l_rec_acct_attrs.array_char_value(14) := p_source_67;
10347 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
10348 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
10349 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
10350 l_rec_acct_attrs.array_char_value(16) := p_source_60;
10351 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
10352 l_rec_acct_attrs.array_num_value(17) := p_source_69;
10353 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
10354 l_rec_acct_attrs.array_num_value(18) := p_source_77;
10355 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
10359 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10356 l_rec_acct_attrs.array_num_value(19) := p_source_70;
10357
10358 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10360
10361 ---------------------------------------------------------------------------------------------------------------
10362 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10363 ---------------------------------------------------------------------------------------------------------------
10364 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10365
10366 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10367 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10368
10369 IF xla_accounting_cache_pkg.GetValueChar
10370 (p_source_code => 'LEDGER_CATEGORY_CODE'
10371 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10372 AND l_bflow_method_code = 'PRIOR_ENTRY'
10373 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10374 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10375 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10376 )
10377 THEN
10378 xla_ae_lines_pkg.BflowUpgEntry
10379 (p_business_method_code => l_bflow_method_code
10380 ,p_business_class_code => l_bflow_class_code
10381 ,p_balance_type => l_balance_type_code);
10382 ELSE
10383 NULL;
10384 -- No business flow processing for business flow method of NONE.
10385 END IF;
10386
10387 --
10388 -- call analytical criteria
10389 --
10390
10391 --
10392 -- call description
10393 --
10394 -- No description or it is inherited.
10395 --
10396 -- call ADRs
10397 -- Bug 4922099
10398 --
10399 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10400 (NVL(l_actual_upg_option, 'N') = 'O') OR
10401 (NVL(l_enc_upg_option, 'N') = 'O')
10402 )
10403 THEN
10404 NULL;
10405 --
10406 --
10407
10408 l_ccid := AcctDerRule_24(
10409 p_application_id => p_application_id
10410 , p_ae_header_id => l_ae_header_id
10411 , p_source_16 => p_source_16
10412 , p_source_16_meaning => p_source_16_meaning
10413 , p_source_17 => p_source_17
10414 , p_source_19 => p_source_19
10415 , p_source_19_meaning => p_source_19_meaning
10416 , p_source_20 => p_source_20
10417 , p_source_21 => p_source_21
10418 , p_source_22 => p_source_22
10419 , p_source_29 => p_source_29
10420 , p_source_42 => p_source_42
10421 , p_source_42_meaning => p_source_42_meaning
10422 , x_transaction_coa_id => l_adr_transaction_coa_id
10423 , x_accounting_coa_id => l_adr_accounting_coa_id
10424 , x_value_type_code => l_adr_value_type_code
10425 , p_side => 'ALL'
10426 );
10427
10428 xla_ae_lines_pkg.set_ccid(
10429 p_code_combination_id => l_ccid
10430 , p_value_type_code => l_adr_value_type_code
10431 , p_transaction_coa_id => l_adr_transaction_coa_id
10432 , p_accounting_coa_id => l_adr_accounting_coa_id
10433 , p_adr_code => 'AP_ERV_TAXERV_CASH'
10434 , p_adr_type_code => 'S'
10435 , p_component_type => l_component_type
10436 , p_component_code => l_component_code
10437 , p_component_type_code => l_component_type_code
10438 , p_component_appl_id => l_component_appl_id
10439 , p_amb_context_code => l_amb_context_code
10440 , p_side => 'ALL'
10441 );
10442
10443
10444 l_segment := AcctDerRule_7(
10445 p_application_id => p_application_id
10446 , p_ae_header_id => l_ae_header_id
10447 , p_source_16 => p_source_16
10448 , p_source_16_meaning => p_source_16_meaning
10449 , p_source_17 => p_source_17
10450 , p_source_19 => p_source_19
10451 , p_source_19_meaning => p_source_19_meaning
10452 , x_transaction_coa_id => l_adr_transaction_coa_id
10453 , x_accounting_coa_id => l_adr_accounting_coa_id
10454 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10455 , x_flex_value_set_id => l_adr_flex_value_set_id
10456 , x_value_type_code => l_adr_value_type_code
10457 , x_value_combination_id => l_adr_value_combination_id
10458 , x_value_segment_code => l_adr_value_segment_code
10459 , p_side => 'CREDIT'
10460 , p_override_seg_flag => 'Y'
10461 );
10462
10463 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10464
10465 xla_ae_lines_pkg.set_segment(
10466 p_to_segment_code => 'GL_ACCOUNT'
10467 , p_segment_value => l_segment
10468 , p_from_segment_code => l_adr_value_segment_code
10469 , p_from_combination_id => l_adr_value_combination_id
10470 , p_value_type_code => l_adr_value_type_code
10471 , p_transaction_coa_id => l_adr_transaction_coa_id
10472 , p_accounting_coa_id => l_adr_accounting_coa_id
10476 , p_adr_type_code => 'S'
10473 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10474 , p_flex_value_set_id => l_adr_flex_value_set_id
10475 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10477 , p_component_type => l_component_type
10478 , p_component_code => l_component_code
10479 , p_component_type_code => l_component_type_code
10480 , p_component_appl_id => l_component_appl_id
10481 , p_amb_context_code => l_amb_context_code
10482 , p_entity_code => 'AP_PAYMENTS'
10483 , p_event_class_code => 'PAYMENTS'
10484 , p_side => 'CREDIT'
10485 );
10486
10487 END IF;
10488
10489 l_segment := AcctDerRule_8(
10490 p_application_id => p_application_id
10491 , p_ae_header_id => l_ae_header_id
10492 , p_source_16 => p_source_16
10493 , p_source_16_meaning => p_source_16_meaning
10494 , p_source_19 => p_source_19
10495 , p_source_19_meaning => p_source_19_meaning
10496 , p_source_20 => p_source_20
10497 , x_transaction_coa_id => l_adr_transaction_coa_id
10498 , x_accounting_coa_id => l_adr_accounting_coa_id
10499 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10500 , x_flex_value_set_id => l_adr_flex_value_set_id
10501 , x_value_type_code => l_adr_value_type_code
10502 , x_value_combination_id => l_adr_value_combination_id
10503 , x_value_segment_code => l_adr_value_segment_code
10504 , p_side => 'DEBIT'
10505 , p_override_seg_flag => 'Y'
10506 );
10507
10508 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10509
10510 xla_ae_lines_pkg.set_segment(
10511 p_to_segment_code => 'GL_ACCOUNT'
10512 , p_segment_value => l_segment
10513 , p_from_segment_code => l_adr_value_segment_code
10514 , p_from_combination_id => l_adr_value_combination_id
10515 , p_value_type_code => l_adr_value_type_code
10516 , p_transaction_coa_id => l_adr_transaction_coa_id
10517 , p_accounting_coa_id => l_adr_accounting_coa_id
10518 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10519 , p_flex_value_set_id => l_adr_flex_value_set_id
10520 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10521 , p_adr_type_code => 'S'
10522 , p_component_type => l_component_type
10523 , p_component_code => l_component_code
10524 , p_component_type_code => l_component_type_code
10525 , p_component_appl_id => l_component_appl_id
10526 , p_amb_context_code => l_amb_context_code
10527 , p_entity_code => 'AP_PAYMENTS'
10528 , p_event_class_code => 'PAYMENTS'
10529 , p_side => 'DEBIT'
10530 );
10531
10532 END IF;
10533
10534 l_segment := AcctDerRule_17(
10535 p_application_id => p_application_id
10536 , p_ae_header_id => l_ae_header_id
10537 , p_source_16 => p_source_16
10538 , p_source_16_meaning => p_source_16_meaning
10539 , p_source_19 => p_source_19
10540 , p_source_19_meaning => p_source_19_meaning
10541 , p_source_29 => p_source_29
10542 , x_transaction_coa_id => l_adr_transaction_coa_id
10543 , x_accounting_coa_id => l_adr_accounting_coa_id
10544 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10545 , x_flex_value_set_id => l_adr_flex_value_set_id
10546 , x_value_type_code => l_adr_value_type_code
10547 , x_value_combination_id => l_adr_value_combination_id
10548 , x_value_segment_code => l_adr_value_segment_code
10549 , p_side => 'ALL'
10550 , p_override_seg_flag => 'Y'
10551 );
10552
10553 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10554
10555 xla_ae_lines_pkg.set_segment(
10556 p_to_segment_code => 'GL_BALANCING'
10557 , p_segment_value => l_segment
10558 , p_from_segment_code => l_adr_value_segment_code
10559 , p_from_combination_id => l_adr_value_combination_id
10560 , p_value_type_code => l_adr_value_type_code
10561 , p_transaction_coa_id => l_adr_transaction_coa_id
10562 , p_accounting_coa_id => l_adr_accounting_coa_id
10563 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10564 , p_flex_value_set_id => l_adr_flex_value_set_id
10565 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
10566 , p_adr_type_code => 'S'
10567 , p_component_type => l_component_type
10568 , p_component_code => l_component_code
10569 , p_component_type_code => l_component_type_code
10570 , p_component_appl_id => l_component_appl_id
10571 , p_amb_context_code => l_amb_context_code
10572 , p_entity_code => 'AP_PAYMENTS'
10573 , p_event_class_code => 'PAYMENTS'
10574 , p_side => 'ALL'
10575 );
10576
10577 END IF;
10578
10579 --
10580 --
10581 END IF;
10582 --
10583 -- Bug 4922099
10587 (l_bflow_method_code = 'PRIOR_ENTRY')
10584 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10585 (NVL(l_enc_upg_option, 'N') = 'O')
10586 ) AND
10588 )
10589 THEN
10590 IF
10591 --
10592 1 = 2
10593 --
10594 THEN
10595 xla_accounting_err_pkg.build_message
10596 (p_appli_s_name => 'XLA'
10597 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10598 ,p_token_1 => 'LINE_NUMBER'
10599 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10600 ,p_token_2 => 'LINE_TYPE_NAME'
10601 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10602 l_component_type
10603 ,l_component_code
10604 ,l_component_type_code
10605 ,l_component_appl_id
10606 ,l_amb_context_code
10607 ,l_entity_code
10608 ,l_event_class_code
10609 )
10610 ,p_token_3 => 'OWNER'
10611 ,p_value_3 => xla_lookups_pkg.get_meaning(
10612 p_lookup_type => 'XLA_OWNER_TYPE'
10613 ,p_lookup_code => l_component_type_code
10614 )
10615 ,p_token_4 => 'PRODUCT_NAME'
10616 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10617 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10618 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10619 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10620 ,p_ae_header_id => NULL
10621 );
10622
10623 IF (C_LEVEL_ERROR>= g_log_level) THEN
10624 trace
10625 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10626 ,p_level => C_LEVEL_ERROR
10627 ,p_module => l_log_module);
10628 END IF;
10629 END IF;
10630 END IF;
10631 --
10632 --
10633 ------------------------------------------------------------------------------------------------
10634 -- 4219869 Business Flow
10635 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10636 -- Prior Entry. Currently, the following code is always generated.
10637 ------------------------------------------------------------------------------------------------
10638 XLA_AE_LINES_PKG.ValidateCurrentLine;
10639
10640 ------------------------------------------------------------------------------------
10641 -- 4219869 Business Flow
10642 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10643 ------------------------------------------------------------------------------------
10644 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10645
10646 ----------------------------------------------------------------------------------
10647 -- 4219869 Business Flow
10648 -- Update journal entry status -- Need to generate this within IF <condition>
10649 ----------------------------------------------------------------------------------
10650 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10651 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10652 ,p_balance_type_code => l_balance_type_code
10653 );
10654
10655 -------------------------------------------------------------------------------------------
10656 -- 4262811 - Generate the Accrual Reversal lines
10657 -------------------------------------------------------------------------------------------
10658 BEGIN
10659 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10660 (g_array_event(p_event_id).array_value_num('header_index'));
10661 IF l_acc_rev_flag IS NULL THEN
10662 l_acc_rev_flag := 'N';
10663 END IF;
10664 EXCEPTION
10665 WHEN OTHERS THEN
10666 l_acc_rev_flag := 'N';
10667 END;
10668 --
10669 IF (l_acc_rev_flag = 'Y') THEN
10670
10671 -- 4645092 ------------------------------------------------------------------------------
10672 -- To allow MPA report to determine if it should generate report process
10673 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10677 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10674 ------------------------------------------------------------------------------------------
10675
10676 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10678 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10679 -- call ADRs
10680 -- Bug 4922099
10681 --
10682 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10683 (NVL(l_actual_upg_option, 'N') = 'O') OR
10684 (NVL(l_enc_upg_option, 'N') = 'O')
10685 )
10686 THEN
10687 NULL;
10688 --
10689 --
10690
10691 l_ccid := AcctDerRule_24(
10692 p_application_id => p_application_id
10693 , p_ae_header_id => l_ae_header_id
10694 , p_source_16 => p_source_16
10695 , p_source_16_meaning => p_source_16_meaning
10696 , p_source_17 => p_source_17
10697 , p_source_19 => p_source_19
10698 , p_source_19_meaning => p_source_19_meaning
10699 , p_source_20 => p_source_20
10700 , p_source_21 => p_source_21
10701 , p_source_22 => p_source_22
10702 , p_source_29 => p_source_29
10703 , p_source_42 => p_source_42
10704 , p_source_42_meaning => p_source_42_meaning
10705 , x_transaction_coa_id => l_adr_transaction_coa_id
10706 , x_accounting_coa_id => l_adr_accounting_coa_id
10707 , x_value_type_code => l_adr_value_type_code
10708 , p_side => 'ALL'
10709 );
10710
10711 xla_ae_lines_pkg.set_ccid(
10712 p_code_combination_id => l_ccid
10713 , p_value_type_code => l_adr_value_type_code
10714 , p_transaction_coa_id => l_adr_transaction_coa_id
10715 , p_accounting_coa_id => l_adr_accounting_coa_id
10716 , p_adr_code => 'AP_ERV_TAXERV_CASH'
10717 , p_adr_type_code => 'S'
10718 , p_component_type => l_component_type
10719 , p_component_code => l_component_code
10720 , p_component_type_code => l_component_type_code
10721 , p_component_appl_id => l_component_appl_id
10722 , p_amb_context_code => l_amb_context_code
10723 , p_side => 'ALL'
10724 );
10725
10726
10727 l_segment := AcctDerRule_7(
10728 p_application_id => p_application_id
10729 , p_ae_header_id => l_ae_header_id
10730 , p_source_16 => p_source_16
10731 , p_source_16_meaning => p_source_16_meaning
10732 , p_source_17 => p_source_17
10733 , p_source_19 => p_source_19
10734 , p_source_19_meaning => p_source_19_meaning
10735 , x_transaction_coa_id => l_adr_transaction_coa_id
10736 , x_accounting_coa_id => l_adr_accounting_coa_id
10737 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10738 , x_flex_value_set_id => l_adr_flex_value_set_id
10739 , x_value_type_code => l_adr_value_type_code
10740 , x_value_combination_id => l_adr_value_combination_id
10741 , x_value_segment_code => l_adr_value_segment_code
10742 , p_side => 'CREDIT'
10743 , p_override_seg_flag => 'Y'
10744 );
10745
10746 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10747
10748 xla_ae_lines_pkg.set_segment(
10749 p_to_segment_code => 'GL_ACCOUNT'
10750 , p_segment_value => l_segment
10751 , p_from_segment_code => l_adr_value_segment_code
10752 , p_from_combination_id => l_adr_value_combination_id
10753 , p_value_type_code => l_adr_value_type_code
10754 , p_transaction_coa_id => l_adr_transaction_coa_id
10755 , p_accounting_coa_id => l_adr_accounting_coa_id
10756 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10757 , p_flex_value_set_id => l_adr_flex_value_set_id
10758 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10759 , p_adr_type_code => 'S'
10760 , p_component_type => l_component_type
10761 , p_component_code => l_component_code
10762 , p_component_type_code => l_component_type_code
10763 , p_component_appl_id => l_component_appl_id
10764 , p_amb_context_code => l_amb_context_code
10765 , p_entity_code => 'AP_PAYMENTS'
10766 , p_event_class_code => 'PAYMENTS'
10767 , p_side => 'CREDIT'
10768 );
10769
10770 END IF;
10771
10772 l_segment := AcctDerRule_8(
10773 p_application_id => p_application_id
10774 , p_ae_header_id => l_ae_header_id
10775 , p_source_16 => p_source_16
10776 , p_source_16_meaning => p_source_16_meaning
10777 , p_source_19 => p_source_19
10778 , p_source_19_meaning => p_source_19_meaning
10779 , p_source_20 => p_source_20
10780 , x_transaction_coa_id => l_adr_transaction_coa_id
10781 , x_accounting_coa_id => l_adr_accounting_coa_id
10782 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10783 , x_flex_value_set_id => l_adr_flex_value_set_id
10784 , x_value_type_code => l_adr_value_type_code
10785 , x_value_combination_id => l_adr_value_combination_id
10786 , x_value_segment_code => l_adr_value_segment_code
10790
10787 , p_side => 'DEBIT'
10788 , p_override_seg_flag => 'Y'
10789 );
10791 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10792
10793 xla_ae_lines_pkg.set_segment(
10794 p_to_segment_code => 'GL_ACCOUNT'
10795 , p_segment_value => l_segment
10796 , p_from_segment_code => l_adr_value_segment_code
10797 , p_from_combination_id => l_adr_value_combination_id
10798 , p_value_type_code => l_adr_value_type_code
10799 , p_transaction_coa_id => l_adr_transaction_coa_id
10800 , p_accounting_coa_id => l_adr_accounting_coa_id
10801 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10802 , p_flex_value_set_id => l_adr_flex_value_set_id
10803 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10804 , p_adr_type_code => 'S'
10805 , p_component_type => l_component_type
10806 , p_component_code => l_component_code
10807 , p_component_type_code => l_component_type_code
10808 , p_component_appl_id => l_component_appl_id
10809 , p_amb_context_code => l_amb_context_code
10810 , p_entity_code => 'AP_PAYMENTS'
10811 , p_event_class_code => 'PAYMENTS'
10812 , p_side => 'DEBIT'
10813 );
10814
10815 END IF;
10816
10817 l_segment := AcctDerRule_17(
10818 p_application_id => p_application_id
10819 , p_ae_header_id => l_ae_header_id
10820 , p_source_16 => p_source_16
10821 , p_source_16_meaning => p_source_16_meaning
10822 , p_source_19 => p_source_19
10823 , p_source_19_meaning => p_source_19_meaning
10824 , p_source_29 => p_source_29
10825 , x_transaction_coa_id => l_adr_transaction_coa_id
10826 , x_accounting_coa_id => l_adr_accounting_coa_id
10827 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10828 , x_flex_value_set_id => l_adr_flex_value_set_id
10829 , x_value_type_code => l_adr_value_type_code
10830 , x_value_combination_id => l_adr_value_combination_id
10831 , x_value_segment_code => l_adr_value_segment_code
10832 , p_side => 'ALL'
10833 , p_override_seg_flag => 'Y'
10834 );
10835
10836 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10837
10838 xla_ae_lines_pkg.set_segment(
10839 p_to_segment_code => 'GL_BALANCING'
10840 , p_segment_value => l_segment
10841 , p_from_segment_code => l_adr_value_segment_code
10842 , p_from_combination_id => l_adr_value_combination_id
10843 , p_value_type_code => l_adr_value_type_code
10844 , p_transaction_coa_id => l_adr_transaction_coa_id
10845 , p_accounting_coa_id => l_adr_accounting_coa_id
10846 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10847 , p_flex_value_set_id => l_adr_flex_value_set_id
10848 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
10849 , p_adr_type_code => 'S'
10850 , p_component_type => l_component_type
10851 , p_component_code => l_component_code
10852 , p_component_type_code => l_component_type_code
10853 , p_component_appl_id => l_component_appl_id
10854 , p_amb_context_code => l_amb_context_code
10855 , p_entity_code => 'AP_PAYMENTS'
10856 , p_event_class_code => 'PAYMENTS'
10857 , p_side => 'ALL'
10858 );
10859
10860 END IF;
10861
10862 --
10863 --
10864 END IF;
10865
10866 --
10867 -- Update the line information that should be overwritten
10868 --
10869 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10870 p_header_num => 1);
10871 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10872
10873 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10874
10875 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10876 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10877 END IF;
10878
10879 --
10880 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10881 --
10882 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10883 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10884 ELSE
10885 ---------------------------------------------------------------------------------------------------
10886 -- 4262811a Switch Sign
10887 ---------------------------------------------------------------------------------------------------
10888 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10893 -- 5132302
10894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10896
10897 END IF;
10898
10899 -- 4955764
10900 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10901 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10902
10903
10904 XLA_AE_LINES_PKG.ValidateCurrentLine;
10905 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10906
10907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10908 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10909 ,p_balance_type_code => l_balance_type_code);
10910
10911 END IF;
10912
10913 -----------------------------------------------------------------------------------------
10914 -- 4262811 Multiperiod Accounting
10915 -----------------------------------------------------------------------------------------
10916 -- No MPA option is assigned.
10917
10918
10919 END IF;
10920 END IF;
10921 --
10922
10923 --
10924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10925 trace
10926 (p_msg => 'END of AcctLineType_45'
10927 ,p_level => C_LEVEL_PROCEDURE
10928 ,p_module => l_log_module);
10929 END IF;
10930 --
10931 EXCEPTION
10932 WHEN xla_exceptions_pkg.application_exception THEN
10933 RAISE;
10934 WHEN OTHERS THEN
10935 xla_exceptions_pkg.raise_message
10936 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_45');
10937 END AcctLineType_45;
10938 --
10939
10940 ---------------------------------------
10941 --
10942 -- PRIVATE FUNCTION
10943 -- AcctLineType_46
10944 --
10945 ---------------------------------------
10946 PROCEDURE AcctLineType_46 (
10947 p_application_id IN NUMBER
10948 ,p_event_id IN NUMBER
10949 ,p_calculate_acctd_flag IN VARCHAR2
10950 ,p_calculate_g_l_flag IN VARCHAR2
10951 ,p_actual_flag IN OUT VARCHAR2
10952 ,p_balance_type_code OUT VARCHAR2
10953 ,p_gain_or_loss_ref OUT VARCHAR2
10954
10955 --Automatic Offsets Value
10956 , p_source_16 IN VARCHAR2
10957 , p_source_16_meaning IN VARCHAR2
10958 --Purchase Order Rate Variance Gain Account
10959 , p_source_17 IN NUMBER
10960 --Invoice Distribution Ledger Amount
10961 , p_source_18 IN NUMBER
10962 --Destination Type of the PO Distribution
10963 , p_source_19 IN VARCHAR2
10964 , p_source_19_meaning IN VARCHAR2
10965 --Purchase Order Rate Variance Loss Account
10966 , p_source_20 IN NUMBER
10967 --Invoice Distribution Account
10968 , p_source_29 IN NUMBER
10969 --Automatic Offsets Flag
10970 , p_source_42 IN VARCHAR2
10971 , p_source_42_meaning IN VARCHAR2
10972 --Accounting Reversal Indicator
10973 , p_source_52 IN VARCHAR2
10974 --Business Flow Accounts Payable Application Identifier
10975 , p_source_54 IN NUMBER
10976 --Distribution Link Type
10977 , p_source_60 IN VARCHAR2
10978 --Override Accounted Amount Indicator
10979 , p_source_64 IN VARCHAR2
10980 , p_source_64_meaning IN VARCHAR2
10981 --Third Party Type
10982 , p_source_67 IN VARCHAR2
10983 --Invoice Distribution Tax Line Identifier
10984 , p_source_69 IN NUMBER
10985 --Invoice Distribution Summary Tax Line Identifier
10986 , p_source_70 IN NUMBER
10987 --Invoice Distribution Tax Distribution Identifier from Tax
10988 , p_source_77 IN NUMBER
10989 --Prepayment Distribution Type
10990 , p_source_78 IN VARCHAR2
10991 --Recipient Invoice Distribution Type
10992 , p_source_79 IN VARCHAR2
10993 , p_source_79_meaning IN VARCHAR2
10994 --Prepayment Application Distribution Identifier
10995 , p_source_82 IN NUMBER
10996 --Invoice Identifier
10997 , p_source_83 IN NUMBER
10998 --Business Flow Prepayment Invoice Distribution Type
10999 , p_source_84 IN VARCHAR2
11000 --Business Flow Prepayment Invoice Entity Code
11001 , p_source_85 IN VARCHAR2
11002 --Business Flow Prepayment Invoice Distribution Identifier
11003 , p_source_86 IN NUMBER
11004 --Business Flow Prepayment Invoice Identifier
11005 , p_source_87 IN NUMBER
11006 --Upgrade Encumbrance Credit Account Class
11007 , p_source_88 IN VARCHAR2
11008 --Payables Encumbrance Upgrade Credit Account
11009 , p_source_89 IN NUMBER
11010 --Payables Encumbrance Upgrade Credit Amount
11011 , p_source_90 IN NUMBER
11012 --Invoice Currency Code
11013 , p_source_91 IN VARCHAR2
11014 --Payables Encumbrance Upgrade Credit Base Amount
11015 , p_source_92 IN NUMBER
11016 --Upgrade Encumbrance Debit Account Class
11017 , p_source_93 IN VARCHAR2
11018 --Payables Encumbrance Upgrade Debit Account
11019 , p_source_94 IN NUMBER
11020 --Payables Encumbrance Upgrade Debit Amount
11021 , p_source_95 IN NUMBER
11022 --Payables Encumbrance Upgrade Debit Base Amount
11026 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
11023 , p_source_96 IN NUMBER
11024 --Payables Encumbrance Upgrade Option
11025 , p_source_97 IN VARCHAR2
11027 , p_source_100 IN NUMBER
11028 --Deferred Accounting End Date
11029 , p_source_101 IN DATE
11030 --Deferred Accounting Option
11031 , p_source_102 IN VARCHAR2
11032 --Deferred Accounting Start Date
11033 , p_source_103 IN DATE
11034 --Invoice Supplier Identifier
11035 , p_source_104 IN NUMBER
11036 --Invoice Supplier Site Identifier
11037 , p_source_105 IN NUMBER
11038 --Identifier of the Prepayment Application Reversed
11039 , p_source_106 IN NUMBER
11040 --Payables Upgrade Credit Encumbrance Type Identifier
11041 , p_source_107 IN NUMBER
11042 --Payables Upgrade Debit Encumbrance Type Identifier
11043 , p_source_108 IN NUMBER
11044 )
11045 IS
11046
11047 l_component_type VARCHAR2(80);
11048 l_component_code VARCHAR2(30);
11049 l_component_type_code VARCHAR2(1);
11050 l_component_appl_id INTEGER;
11051 l_amb_context_code VARCHAR2(30);
11052 l_entity_code VARCHAR2(30);
11053 l_event_class_code VARCHAR2(30);
11054 l_ae_header_id NUMBER;
11055 l_event_type_code VARCHAR2(30);
11056 l_line_definition_code VARCHAR2(30);
11057 l_line_definition_owner_code VARCHAR2(1);
11058 --
11059 -- adr variables
11060 l_segment VARCHAR2(30);
11061 l_ccid NUMBER;
11062 l_adr_transaction_coa_id NUMBER;
11063 l_adr_accounting_coa_id NUMBER;
11064 l_adr_flexfield_segment_code VARCHAR2(30);
11065 l_adr_flex_value_set_id NUMBER;
11066 l_adr_value_type_code VARCHAR2(30);
11067 l_adr_value_combination_id NUMBER;
11068 l_adr_value_segment_code VARCHAR2(30);
11069
11070 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11071 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11072 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11073 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11074
11075 -- 4262811 Variables ------------------------------------------------------------------------------------------
11076 l_entered_amt_idx NUMBER;
11077 l_accted_amt_idx NUMBER;
11078 l_acc_rev_flag VARCHAR2(1);
11079 l_accrual_line_num NUMBER;
11080 l_tmp_amt NUMBER;
11081 l_acc_rev_natural_side_code VARCHAR2(1);
11082
11083 l_num_entries NUMBER;
11084 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11085 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11086 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11087 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11088 l_recog_line_1 NUMBER;
11089 l_recog_line_2 NUMBER;
11090
11091 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11092 l_bflow_applied_to_amt NUMBER; -- 5132302
11093 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11094
11095 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11096
11097 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11098 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11099
11100 ---------------------------------------------------------------------------------------------------------------
11101
11102
11103 --
11104 -- bulk performance
11105 --
11106 l_balance_type_code VARCHAR2(1);
11107 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11108 l_log_module VARCHAR2(240);
11109
11110 --
11111 -- Upgrade strategy
11112 --
11113 l_actual_upg_option VARCHAR2(1);
11114 l_enc_upg_option VARCHAR2(1);
11115
11116 --
11117 BEGIN
11118 --
11119 IF g_log_enabled THEN
11120 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
11121 END IF;
11122 --
11123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11124
11125 trace
11126 (p_msg => 'BEGIN of AcctLineType_46'
11127 ,p_level => C_LEVEL_PROCEDURE
11128 ,p_module => l_log_module);
11129
11130 END IF;
11131 --
11132 l_component_type := 'AMB_JLT';
11133 l_component_code := 'AP_ALC_EX_RATE_VAR_PREPAY_APP';
11134 l_component_type_code := 'S';
11135 l_component_appl_id := 200;
11136 l_amb_context_code := 'DEFAULT';
11137 l_entity_code := 'AP_INVOICES';
11138 l_event_class_code := 'PREPAYMENT APPLICATIONS';
11139 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
11140 l_line_definition_owner_code := 'S';
11141 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
11142 --
11143 l_balance_type_code := 'A';
11144 l_segment := NULL;
11145 l_ccid := NULL;
11146 l_adr_transaction_coa_id := NULL;
11147 l_adr_accounting_coa_id := NULL;
11148 l_adr_flexfield_segment_code := NULL;
11149 l_adr_flex_value_set_id := NULL;
11150 l_adr_value_type_code := NULL;
11154 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11151 l_adr_value_combination_id := NULL;
11152 l_adr_value_segment_code := NULL;
11153
11155 l_bflow_class_code := ''; -- 4219869 Business Flow
11156 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11157 l_budgetary_control_flag := 'N';
11158
11159 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11160 l_bflow_applied_to_amt := NULL; -- 5132302
11161 l_entered_amt_idx := NULL; -- 4262811
11162 l_accted_amt_idx := NULL; -- 4262811
11163 l_acc_rev_flag := NULL; -- 4262811
11164 l_accrual_line_num := NULL; -- 4262811
11165 l_tmp_amt := NULL; -- 4262811
11166 --
11167 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11168 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
11169 return;
11170 END IF;
11171
11172 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11173 l_balance_type_code <> 'B' THEN
11174 IF (NVL(p_source_78,'
11175 ') = 'PREPAY APPL' OR
11176 NVL(p_source_78,'
11177 ') = 'PREPAY APPL NONREC TAX' OR
11178 NVL(p_source_78,'
11179 ') = 'PREPAY APPL REC TAX') AND
11180 NVL(p_source_79,'
11181 ') = 'ACCRUAL'
11182 THEN
11183
11184 --
11185 XLA_AE_LINES_PKG.SetNewLine;
11186
11187 p_balance_type_code := l_balance_type_code;
11188 -- set the flag so later we will know whether the gain loss line needs to be created
11189
11190 IF(l_balance_type_code = 'A' ) THEN
11191 p_actual_flag :='G';
11192 END IF;
11193
11194 --
11195 -- bulk performance
11196 --
11197 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11198 p_header_num => 0); -- 4262811
11199 --
11200 -- set accounting line options
11201 --
11202 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11203 p_natural_side_code => 'G'
11204 , p_gain_or_loss_flag => 'N'
11205 , p_gl_transfer_mode_code => 'S'
11206 , p_acct_entry_type_code => 'A'
11207 , p_switch_side_flag => ''
11208 , p_merge_duplicate_code => 'A'
11209 );
11210 --
11211 l_acc_rev_natural_side_code := 'C'; -- 4262811
11212 --
11213 --
11214 -- set accounting line type info
11215 --
11216 xla_ae_lines_pkg.SetAcctLineType
11217 (p_component_type => l_component_type
11218 ,p_event_type_code => l_event_type_code
11219 ,p_line_definition_owner_code => l_line_definition_owner_code
11220 ,p_line_definition_code => l_line_definition_code
11221 ,p_accounting_line_code => l_component_code
11222 ,p_accounting_line_type_code => l_component_type_code
11223 ,p_accounting_line_appl_id => l_component_appl_id
11224 ,p_amb_context_code => l_amb_context_code
11225 ,p_entity_code => l_entity_code
11226 ,p_event_class_code => l_event_class_code);
11227 --
11228 -- set accounting class
11229 --
11230 xla_ae_lines_pkg.SetAcctClass(
11231 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
11232 , p_ae_header_id => l_ae_header_id
11233 );
11234
11235 --
11236 -- set rounding class
11237 --
11238 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11239 'EXCHANGE_RATE_VARIANCE';
11240
11241 --
11242 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11243 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11244 --
11245 -- bulk performance
11246 --
11247 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11248
11249 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11250 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11251
11252 -- 4955764
11253 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11254 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11255
11256 -- 4458381 Public Sector Enh
11257
11258 --
11259 -- set accounting attributes for the line type
11260 --
11261 l_entered_amt_idx := NULL;
11262 l_accted_amt_idx := 25;
11263 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11264 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11265 l_rec_acct_attrs.array_char_value(1) := p_source_52;
11266 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11267 l_rec_acct_attrs.array_num_value(2) :=
11268 xla_ae_sources_pkg.GetSystemSourceNum(
11269 p_source_code => 'XLA_EVENT_APPL_ID'
11270 , p_source_type_code => 'Y'
11271 , p_source_application_id => 602
11272 );
11273 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11277 xla_ae_sources_pkg.GetSystemSourceChar(
11274 l_rec_acct_attrs.array_char_value(3) := p_source_60;
11275 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11276 l_rec_acct_attrs.array_char_value(4) :=
11278 p_source_code => 'XLA_ENTITY_CODE'
11279 , p_source_type_code => 'Y'
11280 , p_source_application_id => 602
11281 );
11282 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11283 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
11284 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11285 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
11286 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11287 l_rec_acct_attrs.array_num_value(7) := p_source_54;
11288 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11289 l_rec_acct_attrs.array_char_value(8) := p_source_84;
11290 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11291 l_rec_acct_attrs.array_char_value(9) := p_source_85;
11292 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11293 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
11294 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11295 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
11296 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11297 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
11298 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11299 l_rec_acct_attrs.array_char_value(13) := p_source_60;
11300 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
11301 l_rec_acct_attrs.array_char_value(14) := p_source_88;
11302 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
11303 l_rec_acct_attrs.array_num_value(15) := p_source_89;
11304 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
11305 l_rec_acct_attrs.array_num_value(16) := p_source_90;
11306 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
11307 l_rec_acct_attrs.array_char_value(17) := p_source_91;
11308 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
11309 l_rec_acct_attrs.array_num_value(18) := p_source_92;
11310 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
11311 l_rec_acct_attrs.array_char_value(19) := p_source_93;
11312 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
11313 l_rec_acct_attrs.array_num_value(20) := p_source_94;
11314 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
11315 l_rec_acct_attrs.array_num_value(21) := p_source_95;
11316 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
11317 l_rec_acct_attrs.array_char_value(22) := p_source_91;
11318 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
11319 l_rec_acct_attrs.array_num_value(23) := p_source_96;
11320 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
11321 l_rec_acct_attrs.array_char_value(24) := p_source_97;
11322 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
11323 l_rec_acct_attrs.array_num_value(25) := p_source_100;
11324 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
11325 l_rec_acct_attrs.array_date_value(26) := p_source_101;
11326 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
11327 l_rec_acct_attrs.array_char_value(27) := p_source_102;
11328 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
11329 l_rec_acct_attrs.array_date_value(28) := p_source_103;
11330 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
11331 l_rec_acct_attrs.array_char_value(29) := p_source_64;
11332 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
11333 l_rec_acct_attrs.array_num_value(30) := p_source_104;
11334 l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
11335 l_rec_acct_attrs.array_num_value(31) := p_source_105;
11336 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
11337 l_rec_acct_attrs.array_char_value(32) := p_source_67;
11338 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
11339 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
11340 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
11341 l_rec_acct_attrs.array_char_value(34) := p_source_60;
11342 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
11343 l_rec_acct_attrs.array_num_value(35) := p_source_69;
11344 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
11345 l_rec_acct_attrs.array_num_value(36) := p_source_77;
11346 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
11347 l_rec_acct_attrs.array_num_value(37) := p_source_70;
11348 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
11349 l_rec_acct_attrs.array_num_value(38) := p_source_107;
11350 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
11351 l_rec_acct_attrs.array_num_value(39) := p_source_108;
11352
11353 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11354 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11355
11356 ---------------------------------------------------------------------------------------------------------------
11357 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11361 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11358 ---------------------------------------------------------------------------------------------------------------
11359 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11360
11362 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11363
11364 IF xla_accounting_cache_pkg.GetValueChar
11365 (p_source_code => 'LEDGER_CATEGORY_CODE'
11366 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11367 AND l_bflow_method_code = 'PRIOR_ENTRY'
11368 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11369 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11370 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11371 )
11372 THEN
11373 xla_ae_lines_pkg.BflowUpgEntry
11374 (p_business_method_code => l_bflow_method_code
11375 ,p_business_class_code => l_bflow_class_code
11376 ,p_balance_type => l_balance_type_code);
11377 ELSE
11378 NULL;
11379 -- No business flow processing for business flow method of NONE.
11380 END IF;
11381
11382 --
11383 -- call analytical criteria
11384 --
11385
11386 --
11387 -- call description
11388 --
11389 -- No description or it is inherited.
11390 --
11391 -- call ADRs
11392 -- Bug 4922099
11393 --
11394 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11395 (NVL(l_actual_upg_option, 'N') = 'O') OR
11396 (NVL(l_enc_upg_option, 'N') = 'O')
11397 )
11398 THEN
11399 NULL;
11400 --
11401 --
11402
11403 l_ccid := AcctDerRule_25(
11404 p_application_id => p_application_id
11405 , p_ae_header_id => l_ae_header_id
11406 , p_source_16 => p_source_16
11407 , p_source_16_meaning => p_source_16_meaning
11408 , p_source_17 => p_source_17
11409 , p_source_18 => p_source_18
11410 , p_source_19 => p_source_19
11411 , p_source_19_meaning => p_source_19_meaning
11412 , p_source_20 => p_source_20
11413 , p_source_29 => p_source_29
11414 , p_source_42 => p_source_42
11415 , p_source_42_meaning => p_source_42_meaning
11416 , x_transaction_coa_id => l_adr_transaction_coa_id
11417 , x_accounting_coa_id => l_adr_accounting_coa_id
11418 , x_value_type_code => l_adr_value_type_code
11419 , p_side => 'ALL'
11420 );
11421
11422 xla_ae_lines_pkg.set_ccid(
11423 p_code_combination_id => l_ccid
11424 , p_value_type_code => l_adr_value_type_code
11425 , p_transaction_coa_id => l_adr_transaction_coa_id
11426 , p_accounting_coa_id => l_adr_accounting_coa_id
11427 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11428 , p_adr_type_code => 'S'
11429 , p_component_type => l_component_type
11430 , p_component_code => l_component_code
11431 , p_component_type_code => l_component_type_code
11432 , p_component_appl_id => l_component_appl_id
11433 , p_amb_context_code => l_amb_context_code
11434 , p_side => 'ALL'
11435 );
11436
11437
11438 l_segment := AcctDerRule_7(
11439 p_application_id => p_application_id
11440 , p_ae_header_id => l_ae_header_id
11441 , p_source_16 => p_source_16
11442 , p_source_16_meaning => p_source_16_meaning
11443 , p_source_17 => p_source_17
11444 , p_source_19 => p_source_19
11445 , p_source_19_meaning => p_source_19_meaning
11446 , x_transaction_coa_id => l_adr_transaction_coa_id
11447 , x_accounting_coa_id => l_adr_accounting_coa_id
11448 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11449 , x_flex_value_set_id => l_adr_flex_value_set_id
11450 , x_value_type_code => l_adr_value_type_code
11451 , x_value_combination_id => l_adr_value_combination_id
11452 , x_value_segment_code => l_adr_value_segment_code
11453 , p_side => 'CREDIT'
11454 , p_override_seg_flag => 'Y'
11455 );
11456
11457 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11458
11459 xla_ae_lines_pkg.set_segment(
11460 p_to_segment_code => 'GL_ACCOUNT'
11461 , p_segment_value => l_segment
11462 , p_from_segment_code => l_adr_value_segment_code
11463 , p_from_combination_id => l_adr_value_combination_id
11464 , p_value_type_code => l_adr_value_type_code
11465 , p_transaction_coa_id => l_adr_transaction_coa_id
11466 , p_accounting_coa_id => l_adr_accounting_coa_id
11467 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11468 , p_flex_value_set_id => l_adr_flex_value_set_id
11469 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11470 , p_adr_type_code => 'S'
11471 , p_component_type => l_component_type
11472 , p_component_code => l_component_code
11473 , p_component_type_code => l_component_type_code
11474 , p_component_appl_id => l_component_appl_id
11478 , p_side => 'CREDIT'
11475 , p_amb_context_code => l_amb_context_code
11476 , p_entity_code => 'AP_INVOICES'
11477 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11479 );
11480
11481 END IF;
11482
11483 l_segment := AcctDerRule_8(
11484 p_application_id => p_application_id
11485 , p_ae_header_id => l_ae_header_id
11486 , p_source_16 => p_source_16
11487 , p_source_16_meaning => p_source_16_meaning
11488 , p_source_19 => p_source_19
11489 , p_source_19_meaning => p_source_19_meaning
11490 , p_source_20 => p_source_20
11491 , x_transaction_coa_id => l_adr_transaction_coa_id
11492 , x_accounting_coa_id => l_adr_accounting_coa_id
11493 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11494 , x_flex_value_set_id => l_adr_flex_value_set_id
11495 , x_value_type_code => l_adr_value_type_code
11496 , x_value_combination_id => l_adr_value_combination_id
11497 , x_value_segment_code => l_adr_value_segment_code
11498 , p_side => 'DEBIT'
11499 , p_override_seg_flag => 'Y'
11500 );
11501
11502 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11503
11504 xla_ae_lines_pkg.set_segment(
11505 p_to_segment_code => 'GL_ACCOUNT'
11506 , p_segment_value => l_segment
11507 , p_from_segment_code => l_adr_value_segment_code
11508 , p_from_combination_id => l_adr_value_combination_id
11509 , p_value_type_code => l_adr_value_type_code
11510 , p_transaction_coa_id => l_adr_transaction_coa_id
11511 , p_accounting_coa_id => l_adr_accounting_coa_id
11512 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11513 , p_flex_value_set_id => l_adr_flex_value_set_id
11514 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11515 , p_adr_type_code => 'S'
11516 , p_component_type => l_component_type
11517 , p_component_code => l_component_code
11518 , p_component_type_code => l_component_type_code
11519 , p_component_appl_id => l_component_appl_id
11520 , p_amb_context_code => l_amb_context_code
11521 , p_entity_code => 'AP_INVOICES'
11522 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11523 , p_side => 'DEBIT'
11524 );
11525
11526 END IF;
11527
11528 l_segment := AcctDerRule_17(
11529 p_application_id => p_application_id
11530 , p_ae_header_id => l_ae_header_id
11531 , p_source_16 => p_source_16
11532 , p_source_16_meaning => p_source_16_meaning
11533 , p_source_19 => p_source_19
11534 , p_source_19_meaning => p_source_19_meaning
11535 , p_source_29 => p_source_29
11536 , x_transaction_coa_id => l_adr_transaction_coa_id
11537 , x_accounting_coa_id => l_adr_accounting_coa_id
11538 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11539 , x_flex_value_set_id => l_adr_flex_value_set_id
11540 , x_value_type_code => l_adr_value_type_code
11541 , x_value_combination_id => l_adr_value_combination_id
11542 , x_value_segment_code => l_adr_value_segment_code
11543 , p_side => 'ALL'
11544 , p_override_seg_flag => 'Y'
11545 );
11546
11547 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11548
11549 xla_ae_lines_pkg.set_segment(
11550 p_to_segment_code => 'GL_BALANCING'
11551 , p_segment_value => l_segment
11552 , p_from_segment_code => l_adr_value_segment_code
11553 , p_from_combination_id => l_adr_value_combination_id
11554 , p_value_type_code => l_adr_value_type_code
11555 , p_transaction_coa_id => l_adr_transaction_coa_id
11556 , p_accounting_coa_id => l_adr_accounting_coa_id
11557 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11558 , p_flex_value_set_id => l_adr_flex_value_set_id
11559 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
11560 , p_adr_type_code => 'S'
11561 , p_component_type => l_component_type
11562 , p_component_code => l_component_code
11563 , p_component_type_code => l_component_type_code
11564 , p_component_appl_id => l_component_appl_id
11565 , p_amb_context_code => l_amb_context_code
11566 , p_entity_code => 'AP_INVOICES'
11567 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11568 , p_side => 'ALL'
11569 );
11570
11571 END IF;
11572
11573 --
11574 --
11575 END IF;
11576 --
11577 -- Bug 4922099
11578 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11579 (NVL(l_enc_upg_option, 'N') = 'O')
11580 ) AND
11581 (l_bflow_method_code = 'PRIOR_ENTRY')
11582 )
11583 THEN
11584 IF
11585 --
11586 1 = 2
11587 --
11588 THEN
11589 xla_accounting_err_pkg.build_message
11590 (p_appli_s_name => 'XLA'
11594 ,p_token_2 => 'LINE_TYPE_NAME'
11591 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11592 ,p_token_1 => 'LINE_NUMBER'
11593 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11595 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11596 l_component_type
11597 ,l_component_code
11598 ,l_component_type_code
11599 ,l_component_appl_id
11600 ,l_amb_context_code
11601 ,l_entity_code
11602 ,l_event_class_code
11603 )
11604 ,p_token_3 => 'OWNER'
11605 ,p_value_3 => xla_lookups_pkg.get_meaning(
11606 p_lookup_type => 'XLA_OWNER_TYPE'
11607 ,p_lookup_code => l_component_type_code
11608 )
11609 ,p_token_4 => 'PRODUCT_NAME'
11610 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11611 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11612 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11613 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11614 ,p_ae_header_id => NULL
11615 );
11616
11617 IF (C_LEVEL_ERROR>= g_log_level) THEN
11618 trace
11619 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11620 ,p_level => C_LEVEL_ERROR
11621 ,p_module => l_log_module);
11622 END IF;
11623 END IF;
11624 END IF;
11625 --
11626 --
11627 ------------------------------------------------------------------------------------------------
11628 -- 4219869 Business Flow
11629 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11630 -- Prior Entry. Currently, the following code is always generated.
11631 ------------------------------------------------------------------------------------------------
11632 XLA_AE_LINES_PKG.ValidateCurrentLine;
11633
11634 ------------------------------------------------------------------------------------
11635 -- 4219869 Business Flow
11636 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11637 ------------------------------------------------------------------------------------
11638 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11639
11640 ----------------------------------------------------------------------------------
11641 -- 4219869 Business Flow
11642 -- Update journal entry status -- Need to generate this within IF <condition>
11643 ----------------------------------------------------------------------------------
11644 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11645 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11646 ,p_balance_type_code => l_balance_type_code
11647 );
11648
11649 -------------------------------------------------------------------------------------------
11650 -- 4262811 - Generate the Accrual Reversal lines
11651 -------------------------------------------------------------------------------------------
11652 BEGIN
11653 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11654 (g_array_event(p_event_id).array_value_num('header_index'));
11655 IF l_acc_rev_flag IS NULL THEN
11656 l_acc_rev_flag := 'N';
11657 END IF;
11658 EXCEPTION
11659 WHEN OTHERS THEN
11660 l_acc_rev_flag := 'N';
11661 END;
11662 --
11663 IF (l_acc_rev_flag = 'Y') THEN
11664
11665 -- 4645092 ------------------------------------------------------------------------------
11666 -- To allow MPA report to determine if it should generate report process
11667 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11668 ------------------------------------------------------------------------------------------
11669
11670 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11671 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11672 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11673 -- call ADRs
11674 -- Bug 4922099
11675 --
11676 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11677 (NVL(l_actual_upg_option, 'N') = 'O') OR
11678 (NVL(l_enc_upg_option, 'N') = 'O')
11679 )
11680 THEN
11681 NULL;
11685 l_ccid := AcctDerRule_25(
11682 --
11683 --
11684
11686 p_application_id => p_application_id
11687 , p_ae_header_id => l_ae_header_id
11688 , p_source_16 => p_source_16
11689 , p_source_16_meaning => p_source_16_meaning
11690 , p_source_17 => p_source_17
11691 , p_source_18 => p_source_18
11692 , p_source_19 => p_source_19
11693 , p_source_19_meaning => p_source_19_meaning
11694 , p_source_20 => p_source_20
11695 , p_source_29 => p_source_29
11696 , p_source_42 => p_source_42
11697 , p_source_42_meaning => p_source_42_meaning
11698 , x_transaction_coa_id => l_adr_transaction_coa_id
11699 , x_accounting_coa_id => l_adr_accounting_coa_id
11700 , x_value_type_code => l_adr_value_type_code
11701 , p_side => 'ALL'
11702 );
11703
11704 xla_ae_lines_pkg.set_ccid(
11705 p_code_combination_id => l_ccid
11706 , p_value_type_code => l_adr_value_type_code
11707 , p_transaction_coa_id => l_adr_transaction_coa_id
11708 , p_accounting_coa_id => l_adr_accounting_coa_id
11709 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11710 , p_adr_type_code => 'S'
11711 , p_component_type => l_component_type
11712 , p_component_code => l_component_code
11713 , p_component_type_code => l_component_type_code
11714 , p_component_appl_id => l_component_appl_id
11715 , p_amb_context_code => l_amb_context_code
11716 , p_side => 'ALL'
11717 );
11718
11719
11720 l_segment := AcctDerRule_7(
11721 p_application_id => p_application_id
11722 , p_ae_header_id => l_ae_header_id
11723 , p_source_16 => p_source_16
11724 , p_source_16_meaning => p_source_16_meaning
11725 , p_source_17 => p_source_17
11726 , p_source_19 => p_source_19
11727 , p_source_19_meaning => p_source_19_meaning
11728 , x_transaction_coa_id => l_adr_transaction_coa_id
11729 , x_accounting_coa_id => l_adr_accounting_coa_id
11730 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11731 , x_flex_value_set_id => l_adr_flex_value_set_id
11732 , x_value_type_code => l_adr_value_type_code
11733 , x_value_combination_id => l_adr_value_combination_id
11734 , x_value_segment_code => l_adr_value_segment_code
11735 , p_side => 'CREDIT'
11736 , p_override_seg_flag => 'Y'
11737 );
11738
11739 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11740
11741 xla_ae_lines_pkg.set_segment(
11742 p_to_segment_code => 'GL_ACCOUNT'
11743 , p_segment_value => l_segment
11744 , p_from_segment_code => l_adr_value_segment_code
11745 , p_from_combination_id => l_adr_value_combination_id
11746 , p_value_type_code => l_adr_value_type_code
11747 , p_transaction_coa_id => l_adr_transaction_coa_id
11748 , p_accounting_coa_id => l_adr_accounting_coa_id
11749 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11750 , p_flex_value_set_id => l_adr_flex_value_set_id
11751 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11752 , p_adr_type_code => 'S'
11753 , p_component_type => l_component_type
11754 , p_component_code => l_component_code
11755 , p_component_type_code => l_component_type_code
11756 , p_component_appl_id => l_component_appl_id
11757 , p_amb_context_code => l_amb_context_code
11758 , p_entity_code => 'AP_INVOICES'
11759 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11760 , p_side => 'CREDIT'
11761 );
11762
11763 END IF;
11764
11765 l_segment := AcctDerRule_8(
11766 p_application_id => p_application_id
11767 , p_ae_header_id => l_ae_header_id
11768 , p_source_16 => p_source_16
11769 , p_source_16_meaning => p_source_16_meaning
11770 , p_source_19 => p_source_19
11771 , p_source_19_meaning => p_source_19_meaning
11772 , p_source_20 => p_source_20
11773 , x_transaction_coa_id => l_adr_transaction_coa_id
11774 , x_accounting_coa_id => l_adr_accounting_coa_id
11775 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11776 , x_flex_value_set_id => l_adr_flex_value_set_id
11777 , x_value_type_code => l_adr_value_type_code
11778 , x_value_combination_id => l_adr_value_combination_id
11779 , x_value_segment_code => l_adr_value_segment_code
11780 , p_side => 'DEBIT'
11781 , p_override_seg_flag => 'Y'
11782 );
11783
11784 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11785
11786 xla_ae_lines_pkg.set_segment(
11787 p_to_segment_code => 'GL_ACCOUNT'
11788 , p_segment_value => l_segment
11789 , p_from_segment_code => l_adr_value_segment_code
11790 , p_from_combination_id => l_adr_value_combination_id
11791 , p_value_type_code => l_adr_value_type_code
11792 , p_transaction_coa_id => l_adr_transaction_coa_id
11796 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11793 , p_accounting_coa_id => l_adr_accounting_coa_id
11794 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11795 , p_flex_value_set_id => l_adr_flex_value_set_id
11797 , p_adr_type_code => 'S'
11798 , p_component_type => l_component_type
11799 , p_component_code => l_component_code
11800 , p_component_type_code => l_component_type_code
11801 , p_component_appl_id => l_component_appl_id
11802 , p_amb_context_code => l_amb_context_code
11803 , p_entity_code => 'AP_INVOICES'
11804 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11805 , p_side => 'DEBIT'
11806 );
11807
11808 END IF;
11809
11810 l_segment := AcctDerRule_17(
11811 p_application_id => p_application_id
11812 , p_ae_header_id => l_ae_header_id
11813 , p_source_16 => p_source_16
11814 , p_source_16_meaning => p_source_16_meaning
11815 , p_source_19 => p_source_19
11816 , p_source_19_meaning => p_source_19_meaning
11817 , p_source_29 => p_source_29
11818 , x_transaction_coa_id => l_adr_transaction_coa_id
11819 , x_accounting_coa_id => l_adr_accounting_coa_id
11820 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11821 , x_flex_value_set_id => l_adr_flex_value_set_id
11822 , x_value_type_code => l_adr_value_type_code
11823 , x_value_combination_id => l_adr_value_combination_id
11824 , x_value_segment_code => l_adr_value_segment_code
11825 , p_side => 'ALL'
11826 , p_override_seg_flag => 'Y'
11827 );
11828
11829 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11830
11831 xla_ae_lines_pkg.set_segment(
11832 p_to_segment_code => 'GL_BALANCING'
11833 , p_segment_value => l_segment
11834 , p_from_segment_code => l_adr_value_segment_code
11835 , p_from_combination_id => l_adr_value_combination_id
11836 , p_value_type_code => l_adr_value_type_code
11837 , p_transaction_coa_id => l_adr_transaction_coa_id
11838 , p_accounting_coa_id => l_adr_accounting_coa_id
11839 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11840 , p_flex_value_set_id => l_adr_flex_value_set_id
11841 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
11842 , p_adr_type_code => 'S'
11843 , p_component_type => l_component_type
11844 , p_component_code => l_component_code
11845 , p_component_type_code => l_component_type_code
11846 , p_component_appl_id => l_component_appl_id
11847 , p_amb_context_code => l_amb_context_code
11848 , p_entity_code => 'AP_INVOICES'
11849 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
11850 , p_side => 'ALL'
11851 );
11852
11853 END IF;
11854
11855 --
11856 --
11857 END IF;
11858
11859 --
11860 -- Update the line information that should be overwritten
11861 --
11862 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11863 p_header_num => 1);
11864 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11865
11866 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11867
11868 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11869 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11870 END IF;
11871
11872 --
11873 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11874 --
11875 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11876 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11877 ELSE
11878 ---------------------------------------------------------------------------------------------------
11879 -- 4262811a Switch Sign
11880 ---------------------------------------------------------------------------------------------------
11881 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11883 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11884 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11885 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11886 -- 5132302
11887 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11888 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11889
11890 END IF;
11891
11892 -- 4955764
11893 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11894 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11895
11896
11897 XLA_AE_LINES_PKG.ValidateCurrentLine;
11899
11900 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11901 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11902 ,p_balance_type_code => l_balance_type_code);
11903
11904 END IF;
11905
11906 -----------------------------------------------------------------------------------------
11907 -- 4262811 Multiperiod Accounting
11908 -----------------------------------------------------------------------------------------
11909 -- No MPA option is assigned.
11910
11911
11912 END IF;
11913 END IF;
11914 --
11915
11916 --
11917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11918 trace
11919 (p_msg => 'END of AcctLineType_46'
11920 ,p_level => C_LEVEL_PROCEDURE
11921 ,p_module => l_log_module);
11922 END IF;
11923 --
11924 EXCEPTION
11925 WHEN xla_exceptions_pkg.application_exception THEN
11926 RAISE;
11927 WHEN OTHERS THEN
11928 xla_exceptions_pkg.raise_message
11929 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_46');
11930 END AcctLineType_46;
11931 --
11932
11933 ---------------------------------------
11934 --
11935 -- PRIVATE FUNCTION
11936 -- AcctLineType_47
11937 --
11938 ---------------------------------------
11939 PROCEDURE AcctLineType_47 (
11940 p_application_id IN NUMBER
11941 ,p_event_id IN NUMBER
11942 ,p_calculate_acctd_flag IN VARCHAR2
11943 ,p_calculate_g_l_flag IN VARCHAR2
11944 ,p_actual_flag IN OUT VARCHAR2
11945 ,p_balance_type_code OUT VARCHAR2
11946 ,p_gain_or_loss_ref OUT VARCHAR2
11947
11948 --Automatic Offsets Value
11949 , p_source_16 IN VARCHAR2
11950 , p_source_16_meaning IN VARCHAR2
11951 --Purchase Order Rate Variance Gain Account
11952 , p_source_17 IN NUMBER
11953 --Destination Type of the PO Distribution
11954 , p_source_19 IN VARCHAR2
11955 , p_source_19_meaning IN VARCHAR2
11956 --Purchase Order Rate Variance Loss Account
11957 , p_source_20 IN NUMBER
11958 --Payment Distribution (Payment Rate) Ledger Amount
11959 , p_source_21 IN NUMBER
11960 --Payment Distribution (Cleared Rate) Ledger Amount
11961 , p_source_22 IN NUMBER
11962 --Invoice Distribution Account
11963 , p_source_29 IN NUMBER
11964 --Invoice Distribution Type
11965 , p_source_32 IN VARCHAR2
11966 , p_source_32_meaning IN VARCHAR2
11967 --Automatic Offsets Flag
11968 , p_source_42 IN VARCHAR2
11969 , p_source_42_meaning IN VARCHAR2
11970 --When to Account for Payment Option
11971 , p_source_50 IN VARCHAR2
11972 --Accounting Reversal Indicator
11973 , p_source_52 IN VARCHAR2
11974 --Business Flow Accounts Payable Application Identifier
11975 , p_source_54 IN NUMBER
11976 --Payment Distribution Identifier
11977 , p_source_59 IN NUMBER
11978 --Distribution Link Type
11979 , p_source_60 IN VARCHAR2
11980 --Override Accounted Amount Indicator
11981 , p_source_64 IN VARCHAR2
11982 , p_source_64_meaning IN VARCHAR2
11983 --Payment Supplier Identifier
11984 , p_source_65 IN NUMBER
11985 --Payment Supplier Site Identifier
11986 , p_source_66 IN NUMBER
11987 --Third Party Type
11988 , p_source_67 IN VARCHAR2
11989 --Payment Distribution Reversed Identifier
11990 , p_source_68 IN NUMBER
11991 --Invoice Distribution Tax Line Identifier
11992 , p_source_69 IN NUMBER
11993 --Invoice Distribution Summary Tax Line Identifier
11994 , p_source_70 IN NUMBER
11995 --Payment Type
11996 , p_source_71 IN VARCHAR2
11997 , p_source_71_meaning IN VARCHAR2
11998 --Business Flow Invoice Distribution Type
11999 , p_source_73 IN VARCHAR2
12000 --Business Flow Invoice Entity Code
12001 , p_source_74 IN VARCHAR2
12002 --Business Flow Invoice Distribution Identifier
12003 , p_source_75 IN NUMBER
12004 --Business Flow Invoice Identifier
12005 , p_source_76 IN NUMBER
12006 --Invoice Distribution Tax Distribution Identifier from Tax
12007 , p_source_77 IN NUMBER
12008 )
12009 IS
12010
12011 l_component_type VARCHAR2(80);
12012 l_component_code VARCHAR2(30);
12013 l_component_type_code VARCHAR2(1);
12014 l_component_appl_id INTEGER;
12015 l_amb_context_code VARCHAR2(30);
12016 l_entity_code VARCHAR2(30);
12017 l_event_class_code VARCHAR2(30);
12018 l_ae_header_id NUMBER;
12019 l_event_type_code VARCHAR2(30);
12020 l_line_definition_code VARCHAR2(30);
12021 l_line_definition_owner_code VARCHAR2(1);
12022 --
12023 -- adr variables
12024 l_segment VARCHAR2(30);
12025 l_ccid NUMBER;
12026 l_adr_transaction_coa_id NUMBER;
12027 l_adr_accounting_coa_id NUMBER;
12028 l_adr_flexfield_segment_code VARCHAR2(30);
12029 l_adr_flex_value_set_id NUMBER;
12030 l_adr_value_type_code VARCHAR2(30);
12031 l_adr_value_combination_id NUMBER;
12032 l_adr_value_segment_code VARCHAR2(30);
12033
12037 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12034 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12035 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12036 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12038
12039 -- 4262811 Variables ------------------------------------------------------------------------------------------
12040 l_entered_amt_idx NUMBER;
12041 l_accted_amt_idx NUMBER;
12042 l_acc_rev_flag VARCHAR2(1);
12043 l_accrual_line_num NUMBER;
12044 l_tmp_amt NUMBER;
12045 l_acc_rev_natural_side_code VARCHAR2(1);
12046
12047 l_num_entries NUMBER;
12048 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12049 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12050 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12051 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12052 l_recog_line_1 NUMBER;
12053 l_recog_line_2 NUMBER;
12054
12055 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12056 l_bflow_applied_to_amt NUMBER; -- 5132302
12057 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12058
12059 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12060
12061 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12062 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12063
12064 ---------------------------------------------------------------------------------------------------------------
12065
12066
12067 --
12068 -- bulk performance
12069 --
12070 l_balance_type_code VARCHAR2(1);
12071 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12072 l_log_module VARCHAR2(240);
12073
12074 --
12075 -- Upgrade strategy
12076 --
12077 l_actual_upg_option VARCHAR2(1);
12078 l_enc_upg_option VARCHAR2(1);
12079
12080 --
12081 BEGIN
12082 --
12083 IF g_log_enabled THEN
12084 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
12085 END IF;
12086 --
12087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12088
12089 trace
12090 (p_msg => 'BEGIN of AcctLineType_47'
12091 ,p_level => C_LEVEL_PROCEDURE
12092 ,p_module => l_log_module);
12093
12094 END IF;
12095 --
12096 l_component_type := 'AMB_JLT';
12097 l_component_code := 'AP_ALC_EX_RATE_VAR_REF';
12098 l_component_type_code := 'S';
12099 l_component_appl_id := 200;
12100 l_amb_context_code := 'DEFAULT';
12101 l_entity_code := 'AP_PAYMENTS';
12102 l_event_class_code := 'REFUNDS';
12103 l_event_type_code := 'REFUNDS_ALL';
12104 l_line_definition_owner_code := 'S';
12105 l_line_definition_code := 'CASH_REFUNDS_ALL';
12106 --
12107 l_balance_type_code := 'A';
12108 l_segment := NULL;
12109 l_ccid := NULL;
12110 l_adr_transaction_coa_id := NULL;
12111 l_adr_accounting_coa_id := NULL;
12112 l_adr_flexfield_segment_code := NULL;
12113 l_adr_flex_value_set_id := NULL;
12114 l_adr_value_type_code := NULL;
12115 l_adr_value_combination_id := NULL;
12116 l_adr_value_segment_code := NULL;
12117
12118 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12119 l_bflow_class_code := ''; -- 4219869 Business Flow
12120 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12121 l_budgetary_control_flag := 'N';
12122
12123 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12124 l_bflow_applied_to_amt := NULL; -- 5132302
12125 l_entered_amt_idx := NULL; -- 4262811
12126 l_accted_amt_idx := NULL; -- 4262811
12127 l_acc_rev_flag := NULL; -- 4262811
12128 l_accrual_line_num := NULL; -- 4262811
12129 l_tmp_amt := NULL; -- 4262811
12130 --
12131 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12132 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
12133 return;
12134 END IF;
12135
12136 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12137 l_balance_type_code <> 'B' THEN
12138 IF NVL(p_source_50,'
12139 ') <> 'CLEAR_CLEAR' AND
12140 NVL(p_source_32,'
12141 ') = 'ACCRUAL' AND
12142 NVL(p_source_71,'
12143 ') = 'R'
12144 THEN
12145
12146 --
12147 XLA_AE_LINES_PKG.SetNewLine;
12148
12149 p_balance_type_code := l_balance_type_code;
12150 -- set the flag so later we will know whether the gain loss line needs to be created
12151
12152 IF(l_balance_type_code = 'A' ) THEN
12153 p_actual_flag :='G';
12154 END IF;
12155
12156 --
12157 -- bulk performance
12158 --
12159 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12160 p_header_num => 0); -- 4262811
12161 --
12165 p_natural_side_code => 'G'
12162 -- set accounting line options
12163 --
12164 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12166 , p_gain_or_loss_flag => 'N'
12167 , p_gl_transfer_mode_code => 'S'
12168 , p_acct_entry_type_code => 'A'
12169 , p_switch_side_flag => ''
12170 , p_merge_duplicate_code => 'A'
12171 );
12172 --
12173 l_acc_rev_natural_side_code := 'C'; -- 4262811
12174 --
12175 --
12176 -- set accounting line type info
12177 --
12178 xla_ae_lines_pkg.SetAcctLineType
12179 (p_component_type => l_component_type
12180 ,p_event_type_code => l_event_type_code
12181 ,p_line_definition_owner_code => l_line_definition_owner_code
12182 ,p_line_definition_code => l_line_definition_code
12183 ,p_accounting_line_code => l_component_code
12184 ,p_accounting_line_type_code => l_component_type_code
12185 ,p_accounting_line_appl_id => l_component_appl_id
12186 ,p_amb_context_code => l_amb_context_code
12187 ,p_entity_code => l_entity_code
12188 ,p_event_class_code => l_event_class_code);
12189 --
12190 -- set accounting class
12191 --
12192 xla_ae_lines_pkg.SetAcctClass(
12193 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
12194 , p_ae_header_id => l_ae_header_id
12195 );
12196
12197 --
12198 -- set rounding class
12199 --
12200 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12201 'EXCHANGE_RATE_VARIANCE';
12202
12203 --
12204 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12205 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12206 --
12207 -- bulk performance
12208 --
12209 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12210
12211 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12212 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12213
12214 -- 4955764
12215 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12216 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12217
12218 -- 4458381 Public Sector Enh
12219
12220 --
12221 -- set accounting attributes for the line type
12222 --
12223 l_entered_amt_idx := NULL;
12224 l_accted_amt_idx := 9;
12225 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12226 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12227 l_rec_acct_attrs.array_char_value(1) := p_source_52;
12228 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
12229 l_rec_acct_attrs.array_num_value(2) := p_source_54;
12230 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12231 l_rec_acct_attrs.array_char_value(3) := p_source_73;
12232 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
12233 l_rec_acct_attrs.array_char_value(4) := p_source_74;
12234 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
12235 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
12236 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12237 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
12238 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
12239 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
12240 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
12241 l_rec_acct_attrs.array_char_value(8) := p_source_60;
12242 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
12243 l_rec_acct_attrs.array_num_value(9) := p_source_21;
12244 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
12245 l_rec_acct_attrs.array_char_value(10) := p_source_64;
12246 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
12247 l_rec_acct_attrs.array_num_value(11) := p_source_65;
12248 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
12249 l_rec_acct_attrs.array_num_value(12) := p_source_66;
12250 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
12251 l_rec_acct_attrs.array_char_value(13) := p_source_67;
12252 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
12253 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_68);
12254 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
12255 l_rec_acct_attrs.array_char_value(15) := p_source_60;
12256 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
12257 l_rec_acct_attrs.array_num_value(16) := p_source_69;
12258 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
12259 l_rec_acct_attrs.array_num_value(17) := p_source_77;
12260 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
12261 l_rec_acct_attrs.array_num_value(18) := p_source_70;
12262
12263 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12264 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12265
12266 ---------------------------------------------------------------------------------------------------------------
12270
12267 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12268 ---------------------------------------------------------------------------------------------------------------
12269 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12271 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12272 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12273
12274 IF xla_accounting_cache_pkg.GetValueChar
12275 (p_source_code => 'LEDGER_CATEGORY_CODE'
12276 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12277 AND l_bflow_method_code = 'PRIOR_ENTRY'
12278 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12279 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12280 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12281 )
12282 THEN
12283 xla_ae_lines_pkg.BflowUpgEntry
12284 (p_business_method_code => l_bflow_method_code
12285 ,p_business_class_code => l_bflow_class_code
12286 ,p_balance_type => l_balance_type_code);
12287 ELSE
12288 NULL;
12289 -- No business flow processing for business flow method of NONE.
12290 END IF;
12291
12292 --
12293 -- call analytical criteria
12294 --
12295
12296 --
12297 -- call description
12298 --
12299 -- No description or it is inherited.
12300 --
12301 -- call ADRs
12302 -- Bug 4922099
12303 --
12304 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12305 (NVL(l_actual_upg_option, 'N') = 'O') OR
12306 (NVL(l_enc_upg_option, 'N') = 'O')
12307 )
12308 THEN
12309 NULL;
12310 --
12311 --
12312
12313 l_ccid := AcctDerRule_24(
12314 p_application_id => p_application_id
12315 , p_ae_header_id => l_ae_header_id
12316 , p_source_16 => p_source_16
12317 , p_source_16_meaning => p_source_16_meaning
12318 , p_source_17 => p_source_17
12319 , p_source_19 => p_source_19
12320 , p_source_19_meaning => p_source_19_meaning
12321 , p_source_20 => p_source_20
12322 , p_source_21 => p_source_21
12323 , p_source_22 => p_source_22
12324 , p_source_29 => p_source_29
12325 , p_source_42 => p_source_42
12326 , p_source_42_meaning => p_source_42_meaning
12327 , x_transaction_coa_id => l_adr_transaction_coa_id
12328 , x_accounting_coa_id => l_adr_accounting_coa_id
12329 , x_value_type_code => l_adr_value_type_code
12330 , p_side => 'ALL'
12331 );
12332
12333 xla_ae_lines_pkg.set_ccid(
12334 p_code_combination_id => l_ccid
12335 , p_value_type_code => l_adr_value_type_code
12336 , p_transaction_coa_id => l_adr_transaction_coa_id
12337 , p_accounting_coa_id => l_adr_accounting_coa_id
12338 , p_adr_code => 'AP_ERV_TAXERV_CASH'
12339 , p_adr_type_code => 'S'
12340 , p_component_type => l_component_type
12341 , p_component_code => l_component_code
12342 , p_component_type_code => l_component_type_code
12343 , p_component_appl_id => l_component_appl_id
12344 , p_amb_context_code => l_amb_context_code
12345 , p_side => 'ALL'
12346 );
12347
12348
12349 l_segment := AcctDerRule_7(
12350 p_application_id => p_application_id
12351 , p_ae_header_id => l_ae_header_id
12352 , p_source_16 => p_source_16
12353 , p_source_16_meaning => p_source_16_meaning
12354 , p_source_17 => p_source_17
12355 , p_source_19 => p_source_19
12356 , p_source_19_meaning => p_source_19_meaning
12357 , x_transaction_coa_id => l_adr_transaction_coa_id
12358 , x_accounting_coa_id => l_adr_accounting_coa_id
12359 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12360 , x_flex_value_set_id => l_adr_flex_value_set_id
12361 , x_value_type_code => l_adr_value_type_code
12362 , x_value_combination_id => l_adr_value_combination_id
12363 , x_value_segment_code => l_adr_value_segment_code
12364 , p_side => 'CREDIT'
12365 , p_override_seg_flag => 'Y'
12366 );
12367
12368 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12369
12370 xla_ae_lines_pkg.set_segment(
12371 p_to_segment_code => 'GL_ACCOUNT'
12372 , p_segment_value => l_segment
12373 , p_from_segment_code => l_adr_value_segment_code
12374 , p_from_combination_id => l_adr_value_combination_id
12375 , p_value_type_code => l_adr_value_type_code
12376 , p_transaction_coa_id => l_adr_transaction_coa_id
12377 , p_accounting_coa_id => l_adr_accounting_coa_id
12378 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12379 , p_flex_value_set_id => l_adr_flex_value_set_id
12380 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12381 , p_adr_type_code => 'S'
12382 , p_component_type => l_component_type
12386 , p_amb_context_code => l_amb_context_code
12383 , p_component_code => l_component_code
12384 , p_component_type_code => l_component_type_code
12385 , p_component_appl_id => l_component_appl_id
12387 , p_entity_code => 'AP_PAYMENTS'
12388 , p_event_class_code => 'REFUNDS'
12389 , p_side => 'CREDIT'
12390 );
12391
12392 END IF;
12393
12394 l_segment := AcctDerRule_8(
12395 p_application_id => p_application_id
12396 , p_ae_header_id => l_ae_header_id
12397 , p_source_16 => p_source_16
12398 , p_source_16_meaning => p_source_16_meaning
12399 , p_source_19 => p_source_19
12400 , p_source_19_meaning => p_source_19_meaning
12401 , p_source_20 => p_source_20
12402 , x_transaction_coa_id => l_adr_transaction_coa_id
12403 , x_accounting_coa_id => l_adr_accounting_coa_id
12404 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12405 , x_flex_value_set_id => l_adr_flex_value_set_id
12406 , x_value_type_code => l_adr_value_type_code
12407 , x_value_combination_id => l_adr_value_combination_id
12408 , x_value_segment_code => l_adr_value_segment_code
12409 , p_side => 'DEBIT'
12410 , p_override_seg_flag => 'Y'
12411 );
12412
12413 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12414
12415 xla_ae_lines_pkg.set_segment(
12416 p_to_segment_code => 'GL_ACCOUNT'
12417 , p_segment_value => l_segment
12418 , p_from_segment_code => l_adr_value_segment_code
12419 , p_from_combination_id => l_adr_value_combination_id
12420 , p_value_type_code => l_adr_value_type_code
12421 , p_transaction_coa_id => l_adr_transaction_coa_id
12422 , p_accounting_coa_id => l_adr_accounting_coa_id
12423 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12424 , p_flex_value_set_id => l_adr_flex_value_set_id
12425 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12426 , p_adr_type_code => 'S'
12427 , p_component_type => l_component_type
12428 , p_component_code => l_component_code
12429 , p_component_type_code => l_component_type_code
12430 , p_component_appl_id => l_component_appl_id
12431 , p_amb_context_code => l_amb_context_code
12432 , p_entity_code => 'AP_PAYMENTS'
12433 , p_event_class_code => 'REFUNDS'
12434 , p_side => 'DEBIT'
12435 );
12436
12437 END IF;
12438
12439 l_segment := AcctDerRule_17(
12440 p_application_id => p_application_id
12441 , p_ae_header_id => l_ae_header_id
12442 , p_source_16 => p_source_16
12443 , p_source_16_meaning => p_source_16_meaning
12444 , p_source_19 => p_source_19
12445 , p_source_19_meaning => p_source_19_meaning
12446 , p_source_29 => p_source_29
12447 , x_transaction_coa_id => l_adr_transaction_coa_id
12448 , x_accounting_coa_id => l_adr_accounting_coa_id
12449 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12450 , x_flex_value_set_id => l_adr_flex_value_set_id
12451 , x_value_type_code => l_adr_value_type_code
12452 , x_value_combination_id => l_adr_value_combination_id
12453 , x_value_segment_code => l_adr_value_segment_code
12454 , p_side => 'ALL'
12455 , p_override_seg_flag => 'Y'
12456 );
12457
12458 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12459
12460 xla_ae_lines_pkg.set_segment(
12461 p_to_segment_code => 'GL_BALANCING'
12462 , p_segment_value => l_segment
12463 , p_from_segment_code => l_adr_value_segment_code
12464 , p_from_combination_id => l_adr_value_combination_id
12465 , p_value_type_code => l_adr_value_type_code
12466 , p_transaction_coa_id => l_adr_transaction_coa_id
12467 , p_accounting_coa_id => l_adr_accounting_coa_id
12468 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12469 , p_flex_value_set_id => l_adr_flex_value_set_id
12470 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
12471 , p_adr_type_code => 'S'
12472 , p_component_type => l_component_type
12473 , p_component_code => l_component_code
12474 , p_component_type_code => l_component_type_code
12475 , p_component_appl_id => l_component_appl_id
12476 , p_amb_context_code => l_amb_context_code
12477 , p_entity_code => 'AP_PAYMENTS'
12478 , p_event_class_code => 'REFUNDS'
12479 , p_side => 'ALL'
12480 );
12481
12482 END IF;
12483
12484 --
12485 --
12486 END IF;
12487 --
12488 -- Bug 4922099
12489 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12490 (NVL(l_enc_upg_option, 'N') = 'O')
12491 ) AND
12492 (l_bflow_method_code = 'PRIOR_ENTRY')
12493 )
12494 THEN
12495 IF
12496 --
12497 1 = 2
12501 (p_appli_s_name => 'XLA'
12498 --
12499 THEN
12500 xla_accounting_err_pkg.build_message
12502 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12503 ,p_token_1 => 'LINE_NUMBER'
12504 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12505 ,p_token_2 => 'LINE_TYPE_NAME'
12506 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12507 l_component_type
12508 ,l_component_code
12509 ,l_component_type_code
12510 ,l_component_appl_id
12511 ,l_amb_context_code
12512 ,l_entity_code
12513 ,l_event_class_code
12514 )
12515 ,p_token_3 => 'OWNER'
12516 ,p_value_3 => xla_lookups_pkg.get_meaning(
12517 p_lookup_type => 'XLA_OWNER_TYPE'
12518 ,p_lookup_code => l_component_type_code
12519 )
12520 ,p_token_4 => 'PRODUCT_NAME'
12521 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12522 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12523 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12524 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12525 ,p_ae_header_id => NULL
12526 );
12527
12528 IF (C_LEVEL_ERROR>= g_log_level) THEN
12529 trace
12530 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12531 ,p_level => C_LEVEL_ERROR
12532 ,p_module => l_log_module);
12533 END IF;
12534 END IF;
12535 END IF;
12536 --
12537 --
12538 ------------------------------------------------------------------------------------------------
12539 -- 4219869 Business Flow
12540 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12541 -- Prior Entry. Currently, the following code is always generated.
12542 ------------------------------------------------------------------------------------------------
12543 XLA_AE_LINES_PKG.ValidateCurrentLine;
12544
12545 ------------------------------------------------------------------------------------
12546 -- 4219869 Business Flow
12547 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12548 ------------------------------------------------------------------------------------
12549 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12550
12551 ----------------------------------------------------------------------------------
12552 -- 4219869 Business Flow
12553 -- Update journal entry status -- Need to generate this within IF <condition>
12554 ----------------------------------------------------------------------------------
12555 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12556 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12557 ,p_balance_type_code => l_balance_type_code
12558 );
12559
12560 -------------------------------------------------------------------------------------------
12561 -- 4262811 - Generate the Accrual Reversal lines
12562 -------------------------------------------------------------------------------------------
12563 BEGIN
12564 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12565 (g_array_event(p_event_id).array_value_num('header_index'));
12566 IF l_acc_rev_flag IS NULL THEN
12567 l_acc_rev_flag := 'N';
12568 END IF;
12569 EXCEPTION
12570 WHEN OTHERS THEN
12571 l_acc_rev_flag := 'N';
12572 END;
12573 --
12574 IF (l_acc_rev_flag = 'Y') THEN
12575
12576 -- 4645092 ------------------------------------------------------------------------------
12577 -- To allow MPA report to determine if it should generate report process
12578 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12579 ------------------------------------------------------------------------------------------
12580
12581 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12582 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12583 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12584 -- call ADRs
12585 -- Bug 4922099
12586 --
12587 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12588 (NVL(l_actual_upg_option, 'N') = 'O') OR
12589 (NVL(l_enc_upg_option, 'N') = 'O')
12590 )
12594 --
12591 THEN
12592 NULL;
12593 --
12595
12596 l_ccid := AcctDerRule_24(
12597 p_application_id => p_application_id
12598 , p_ae_header_id => l_ae_header_id
12599 , p_source_16 => p_source_16
12600 , p_source_16_meaning => p_source_16_meaning
12601 , p_source_17 => p_source_17
12602 , p_source_19 => p_source_19
12603 , p_source_19_meaning => p_source_19_meaning
12604 , p_source_20 => p_source_20
12605 , p_source_21 => p_source_21
12606 , p_source_22 => p_source_22
12607 , p_source_29 => p_source_29
12608 , p_source_42 => p_source_42
12609 , p_source_42_meaning => p_source_42_meaning
12610 , x_transaction_coa_id => l_adr_transaction_coa_id
12611 , x_accounting_coa_id => l_adr_accounting_coa_id
12612 , x_value_type_code => l_adr_value_type_code
12613 , p_side => 'ALL'
12614 );
12615
12616 xla_ae_lines_pkg.set_ccid(
12617 p_code_combination_id => l_ccid
12618 , p_value_type_code => l_adr_value_type_code
12619 , p_transaction_coa_id => l_adr_transaction_coa_id
12620 , p_accounting_coa_id => l_adr_accounting_coa_id
12621 , p_adr_code => 'AP_ERV_TAXERV_CASH'
12622 , p_adr_type_code => 'S'
12623 , p_component_type => l_component_type
12624 , p_component_code => l_component_code
12625 , p_component_type_code => l_component_type_code
12626 , p_component_appl_id => l_component_appl_id
12627 , p_amb_context_code => l_amb_context_code
12628 , p_side => 'ALL'
12629 );
12630
12631
12632 l_segment := AcctDerRule_7(
12633 p_application_id => p_application_id
12634 , p_ae_header_id => l_ae_header_id
12635 , p_source_16 => p_source_16
12636 , p_source_16_meaning => p_source_16_meaning
12637 , p_source_17 => p_source_17
12638 , p_source_19 => p_source_19
12639 , p_source_19_meaning => p_source_19_meaning
12640 , x_transaction_coa_id => l_adr_transaction_coa_id
12641 , x_accounting_coa_id => l_adr_accounting_coa_id
12642 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12643 , x_flex_value_set_id => l_adr_flex_value_set_id
12644 , x_value_type_code => l_adr_value_type_code
12645 , x_value_combination_id => l_adr_value_combination_id
12646 , x_value_segment_code => l_adr_value_segment_code
12647 , p_side => 'CREDIT'
12648 , p_override_seg_flag => 'Y'
12649 );
12650
12651 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12652
12653 xla_ae_lines_pkg.set_segment(
12654 p_to_segment_code => 'GL_ACCOUNT'
12655 , p_segment_value => l_segment
12656 , p_from_segment_code => l_adr_value_segment_code
12657 , p_from_combination_id => l_adr_value_combination_id
12658 , p_value_type_code => l_adr_value_type_code
12659 , p_transaction_coa_id => l_adr_transaction_coa_id
12660 , p_accounting_coa_id => l_adr_accounting_coa_id
12661 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12662 , p_flex_value_set_id => l_adr_flex_value_set_id
12663 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12664 , p_adr_type_code => 'S'
12665 , p_component_type => l_component_type
12666 , p_component_code => l_component_code
12667 , p_component_type_code => l_component_type_code
12668 , p_component_appl_id => l_component_appl_id
12669 , p_amb_context_code => l_amb_context_code
12670 , p_entity_code => 'AP_PAYMENTS'
12671 , p_event_class_code => 'REFUNDS'
12672 , p_side => 'CREDIT'
12673 );
12674
12675 END IF;
12676
12677 l_segment := AcctDerRule_8(
12678 p_application_id => p_application_id
12679 , p_ae_header_id => l_ae_header_id
12680 , p_source_16 => p_source_16
12681 , p_source_16_meaning => p_source_16_meaning
12682 , p_source_19 => p_source_19
12683 , p_source_19_meaning => p_source_19_meaning
12684 , p_source_20 => p_source_20
12685 , x_transaction_coa_id => l_adr_transaction_coa_id
12686 , x_accounting_coa_id => l_adr_accounting_coa_id
12687 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12688 , x_flex_value_set_id => l_adr_flex_value_set_id
12689 , x_value_type_code => l_adr_value_type_code
12690 , x_value_combination_id => l_adr_value_combination_id
12691 , x_value_segment_code => l_adr_value_segment_code
12692 , p_side => 'DEBIT'
12693 , p_override_seg_flag => 'Y'
12694 );
12695
12696 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12697
12698 xla_ae_lines_pkg.set_segment(
12699 p_to_segment_code => 'GL_ACCOUNT'
12700 , p_segment_value => l_segment
12701 , p_from_segment_code => l_adr_value_segment_code
12702 , p_from_combination_id => l_adr_value_combination_id
12703 , p_value_type_code => l_adr_value_type_code
12707 , p_flex_value_set_id => l_adr_flex_value_set_id
12704 , p_transaction_coa_id => l_adr_transaction_coa_id
12705 , p_accounting_coa_id => l_adr_accounting_coa_id
12706 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12708 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12709 , p_adr_type_code => 'S'
12710 , p_component_type => l_component_type
12711 , p_component_code => l_component_code
12712 , p_component_type_code => l_component_type_code
12713 , p_component_appl_id => l_component_appl_id
12714 , p_amb_context_code => l_amb_context_code
12715 , p_entity_code => 'AP_PAYMENTS'
12716 , p_event_class_code => 'REFUNDS'
12717 , p_side => 'DEBIT'
12718 );
12719
12720 END IF;
12721
12722 l_segment := AcctDerRule_17(
12723 p_application_id => p_application_id
12724 , p_ae_header_id => l_ae_header_id
12725 , p_source_16 => p_source_16
12726 , p_source_16_meaning => p_source_16_meaning
12727 , p_source_19 => p_source_19
12728 , p_source_19_meaning => p_source_19_meaning
12729 , p_source_29 => p_source_29
12730 , x_transaction_coa_id => l_adr_transaction_coa_id
12731 , x_accounting_coa_id => l_adr_accounting_coa_id
12732 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12733 , x_flex_value_set_id => l_adr_flex_value_set_id
12734 , x_value_type_code => l_adr_value_type_code
12735 , x_value_combination_id => l_adr_value_combination_id
12736 , x_value_segment_code => l_adr_value_segment_code
12737 , p_side => 'ALL'
12738 , p_override_seg_flag => 'Y'
12739 );
12740
12741 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12742
12743 xla_ae_lines_pkg.set_segment(
12744 p_to_segment_code => 'GL_BALANCING'
12745 , p_segment_value => l_segment
12746 , p_from_segment_code => l_adr_value_segment_code
12747 , p_from_combination_id => l_adr_value_combination_id
12748 , p_value_type_code => l_adr_value_type_code
12749 , p_transaction_coa_id => l_adr_transaction_coa_id
12750 , p_accounting_coa_id => l_adr_accounting_coa_id
12751 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12752 , p_flex_value_set_id => l_adr_flex_value_set_id
12753 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
12754 , p_adr_type_code => 'S'
12755 , p_component_type => l_component_type
12756 , p_component_code => l_component_code
12757 , p_component_type_code => l_component_type_code
12758 , p_component_appl_id => l_component_appl_id
12759 , p_amb_context_code => l_amb_context_code
12760 , p_entity_code => 'AP_PAYMENTS'
12761 , p_event_class_code => 'REFUNDS'
12762 , p_side => 'ALL'
12763 );
12764
12765 END IF;
12766
12767 --
12768 --
12769 END IF;
12770
12771 --
12772 -- Update the line information that should be overwritten
12773 --
12774 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12775 p_header_num => 1);
12776 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12777
12778 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12779
12780 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12781 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12782 END IF;
12783
12784 --
12785 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12786 --
12787 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12788 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12789 ELSE
12790 ---------------------------------------------------------------------------------------------------
12791 -- 4262811a Switch Sign
12792 ---------------------------------------------------------------------------------------------------
12793 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12796 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12797 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12798 -- 5132302
12799 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12800 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12801
12802 END IF;
12803
12804 -- 4955764
12805 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12809 XLA_AE_LINES_PKG.ValidateCurrentLine;
12806 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12807
12808
12810 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12811
12812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12813 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12814 ,p_balance_type_code => l_balance_type_code);
12815
12816 END IF;
12817
12818 -----------------------------------------------------------------------------------------
12819 -- 4262811 Multiperiod Accounting
12820 -----------------------------------------------------------------------------------------
12821 -- No MPA option is assigned.
12822
12823
12824 END IF;
12825 END IF;
12826 --
12827
12828 --
12829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12830 trace
12831 (p_msg => 'END of AcctLineType_47'
12832 ,p_level => C_LEVEL_PROCEDURE
12833 ,p_module => l_log_module);
12834 END IF;
12835 --
12836 EXCEPTION
12837 WHEN xla_exceptions_pkg.application_exception THEN
12838 RAISE;
12839 WHEN OTHERS THEN
12840 xla_exceptions_pkg.raise_message
12841 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_47');
12842 END AcctLineType_47;
12843 --
12844
12845 ---------------------------------------
12846 --
12847 -- PRIVATE FUNCTION
12848 -- AcctLineType_48
12849 --
12850 ---------------------------------------
12851 PROCEDURE AcctLineType_48 (
12852 p_application_id IN NUMBER
12853 ,p_event_id IN NUMBER
12854 ,p_calculate_acctd_flag IN VARCHAR2
12855 ,p_calculate_g_l_flag IN VARCHAR2
12856 ,p_actual_flag IN OUT VARCHAR2
12857 ,p_balance_type_code OUT VARCHAR2
12858 ,p_gain_or_loss_ref OUT VARCHAR2
12859
12860 --Automatic Offsets Value
12861 , p_source_16 IN VARCHAR2
12862 , p_source_16_meaning IN VARCHAR2
12863 --Purchase Order Rate Variance Gain Account
12864 , p_source_17 IN NUMBER
12865 --Destination Type of the PO Distribution
12866 , p_source_19 IN VARCHAR2
12867 , p_source_19_meaning IN VARCHAR2
12868 --Purchase Order Rate Variance Loss Account
12869 , p_source_20 IN NUMBER
12870 --Payment Distribution (Payment Rate) Ledger Amount
12871 , p_source_21 IN NUMBER
12872 --Payment Distribution (Cleared Rate) Ledger Amount
12873 , p_source_22 IN NUMBER
12874 --Invoice Distribution Account
12875 , p_source_29 IN NUMBER
12876 --Invoice Distribution Type
12877 , p_source_32 IN VARCHAR2
12878 , p_source_32_meaning IN VARCHAR2
12879 --Automatic Offsets Flag
12880 , p_source_42 IN VARCHAR2
12881 , p_source_42_meaning IN VARCHAR2
12882 --When to Account for Payment Option
12883 , p_source_50 IN VARCHAR2
12884 --Payment Distribution Type
12885 , p_source_51 IN VARCHAR2
12886 , p_source_51_meaning IN VARCHAR2
12887 --Accounting Reversal Indicator
12888 , p_source_52 IN VARCHAR2
12889 --Payment Distribution Amount
12890 , p_source_53 IN NUMBER
12891 --Business Flow Accounts Payable Application Identifier
12892 , p_source_54 IN NUMBER
12893 --Business Flow Payment Distribution Type
12894 , p_source_55 IN VARCHAR2
12895 --Business Flow Payment Entity Code
12896 , p_source_56 IN VARCHAR2
12897 --Business Flow Payment Distribution Identifier
12898 , p_source_57 IN NUMBER
12899 --Business Flow Payment Identifier
12900 , p_source_58 IN NUMBER
12901 --Payment Distribution Identifier
12902 , p_source_59 IN NUMBER
12903 --Distribution Link Type
12904 , p_source_60 IN VARCHAR2
12905 --Override Accounted Amount Indicator
12906 , p_source_64 IN VARCHAR2
12907 , p_source_64_meaning IN VARCHAR2
12908 --Payment Supplier Identifier
12909 , p_source_65 IN NUMBER
12910 --Payment Supplier Site Identifier
12911 , p_source_66 IN NUMBER
12912 --Third Party Type
12913 , p_source_67 IN VARCHAR2
12914 --Payment Distribution Reversed Identifier
12915 , p_source_68 IN NUMBER
12916 --Invoice Distribution Tax Line Identifier
12917 , p_source_69 IN NUMBER
12918 --Invoice Distribution Summary Tax Line Identifier
12919 , p_source_70 IN NUMBER
12920 --Accrue on Receipt Option
12921 , p_source_111 IN VARCHAR2
12922 , p_source_111_meaning IN VARCHAR2
12923 )
12924 IS
12925
12926 l_component_type VARCHAR2(80);
12927 l_component_code VARCHAR2(30);
12928 l_component_type_code VARCHAR2(1);
12929 l_component_appl_id INTEGER;
12930 l_amb_context_code VARCHAR2(30);
12931 l_entity_code VARCHAR2(30);
12932 l_event_class_code VARCHAR2(30);
12933 l_ae_header_id NUMBER;
12934 l_event_type_code VARCHAR2(30);
12935 l_line_definition_code VARCHAR2(30);
12936 l_line_definition_owner_code VARCHAR2(1);
12937 --
12938 -- adr variables
12939 l_segment VARCHAR2(30);
12940 l_ccid NUMBER;
12941 l_adr_transaction_coa_id NUMBER;
12942 l_adr_accounting_coa_id NUMBER;
12946 l_adr_value_combination_id NUMBER;
12943 l_adr_flexfield_segment_code VARCHAR2(30);
12944 l_adr_flex_value_set_id NUMBER;
12945 l_adr_value_type_code VARCHAR2(30);
12947 l_adr_value_segment_code VARCHAR2(30);
12948
12949 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12950 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12951 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12952 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12953
12954 -- 4262811 Variables ------------------------------------------------------------------------------------------
12955 l_entered_amt_idx NUMBER;
12956 l_accted_amt_idx NUMBER;
12957 l_acc_rev_flag VARCHAR2(1);
12958 l_accrual_line_num NUMBER;
12959 l_tmp_amt NUMBER;
12960 l_acc_rev_natural_side_code VARCHAR2(1);
12961
12962 l_num_entries NUMBER;
12963 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12964 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12965 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12966 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12967 l_recog_line_1 NUMBER;
12968 l_recog_line_2 NUMBER;
12969
12970 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12971 l_bflow_applied_to_amt NUMBER; -- 5132302
12972 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12973
12974 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12975
12976 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12977 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12978
12979 ---------------------------------------------------------------------------------------------------------------
12980
12981
12982 --
12983 -- bulk performance
12984 --
12985 l_balance_type_code VARCHAR2(1);
12986 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12987 l_log_module VARCHAR2(240);
12988
12989 --
12990 -- Upgrade strategy
12991 --
12992 l_actual_upg_option VARCHAR2(1);
12993 l_enc_upg_option VARCHAR2(1);
12994
12995 --
12996 BEGIN
12997 --
12998 IF g_log_enabled THEN
12999 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
13000 END IF;
13001 --
13002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13003
13004 trace
13005 (p_msg => 'BEGIN of AcctLineType_48'
13006 ,p_level => C_LEVEL_PROCEDURE
13007 ,p_module => l_log_module);
13008
13009 END IF;
13010 --
13011 l_component_type := 'AMB_JLT';
13012 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_CLEAR';
13013 l_component_type_code := 'S';
13014 l_component_appl_id := 200;
13015 l_amb_context_code := 'DEFAULT';
13016 l_entity_code := 'AP_PAYMENTS';
13017 l_event_class_code := 'RECONCILED PAYMENTS';
13018 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
13019 l_line_definition_owner_code := 'S';
13020 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
13021 --
13022 l_balance_type_code := 'A';
13023 l_segment := NULL;
13024 l_ccid := NULL;
13025 l_adr_transaction_coa_id := NULL;
13026 l_adr_accounting_coa_id := NULL;
13027 l_adr_flexfield_segment_code := NULL;
13028 l_adr_flex_value_set_id := NULL;
13029 l_adr_value_type_code := NULL;
13030 l_adr_value_combination_id := NULL;
13031 l_adr_value_segment_code := NULL;
13032
13033 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13034 l_bflow_class_code := ''; -- 4219869 Business Flow
13035 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13036 l_budgetary_control_flag := 'N';
13037
13038 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13039 l_bflow_applied_to_amt := NULL; -- 5132302
13040 l_entered_amt_idx := NULL; -- 4262811
13041 l_accted_amt_idx := NULL; -- 4262811
13042 l_acc_rev_flag := NULL; -- 4262811
13043 l_accrual_line_num := NULL; -- 4262811
13044 l_tmp_amt := NULL; -- 4262811
13045 --
13046 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13047 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
13048 return;
13049 END IF;
13050
13051 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13052 l_balance_type_code <> 'B' THEN
13053 IF NVL(p_source_50,'
13054 ') = 'CLEAR_CLEAR' AND
13055 NVL(p_source_32,'
13056 ') = 'NONREC_TAX' AND
13057 NVL(p_source_111,'
13058 ') = 'Y' AND
13059 (NVL(p_source_51,'
13060 ') = 'CASH' OR
13061 NVL(p_source_51,'
13062 ') = 'DISCOUNT')
13063 THEN
13064
13065 --
13066 XLA_AE_LINES_PKG.SetNewLine;
13067
13068 p_balance_type_code := l_balance_type_code;
13072 p_actual_flag :='G';
13069 -- set the flag so later we will know whether the gain loss line needs to be created
13070
13071 IF(l_balance_type_code = 'A' ) THEN
13073 END IF;
13074
13075 --
13076 -- bulk performance
13077 --
13078 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13079 p_header_num => 0); -- 4262811
13080 --
13081 -- set accounting line options
13082 --
13083 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13084 p_natural_side_code => 'G'
13085 , p_gain_or_loss_flag => 'N'
13086 , p_gl_transfer_mode_code => 'S'
13087 , p_acct_entry_type_code => 'A'
13088 , p_switch_side_flag => ''
13089 , p_merge_duplicate_code => 'A'
13090 );
13091 --
13092 l_acc_rev_natural_side_code := 'C'; -- 4262811
13093 --
13094 --
13095 -- set accounting line type info
13096 --
13097 xla_ae_lines_pkg.SetAcctLineType
13098 (p_component_type => l_component_type
13099 ,p_event_type_code => l_event_type_code
13100 ,p_line_definition_owner_code => l_line_definition_owner_code
13101 ,p_line_definition_code => l_line_definition_code
13102 ,p_accounting_line_code => l_component_code
13103 ,p_accounting_line_type_code => l_component_type_code
13104 ,p_accounting_line_appl_id => l_component_appl_id
13105 ,p_amb_context_code => l_amb_context_code
13106 ,p_entity_code => l_entity_code
13107 ,p_event_class_code => l_event_class_code);
13108 --
13109 -- set accounting class
13110 --
13111 xla_ae_lines_pkg.SetAcctClass(
13112 p_accounting_class_code => 'TERV'
13113 , p_ae_header_id => l_ae_header_id
13114 );
13115
13116 --
13117 -- set rounding class
13118 --
13119 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13120 'TERV';
13121
13122 --
13123 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13124 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13125 --
13126 -- bulk performance
13127 --
13128 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13129
13130 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13131 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13132
13133 -- 4955764
13134 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13135 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13136
13137 -- 4458381 Public Sector Enh
13138
13139 --
13140 -- set accounting attributes for the line type
13141 --
13142 l_entered_amt_idx := NULL;
13143 l_accted_amt_idx := 10;
13144 l_bflow_applied_to_amt_idx := 2; -- 5132302
13145 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13146 l_rec_acct_attrs.array_char_value(1) := p_source_52;
13147 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
13148 l_rec_acct_attrs.array_num_value(2) := p_source_53;
13149 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
13150 l_rec_acct_attrs.array_num_value(3) := p_source_54;
13151 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13152 l_rec_acct_attrs.array_char_value(4) := p_source_55;
13153 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
13154 l_rec_acct_attrs.array_char_value(5) := p_source_56;
13155 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
13156 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
13157 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13158 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
13159 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
13160 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
13161 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
13162 l_rec_acct_attrs.array_char_value(9) := p_source_60;
13163 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
13164 l_rec_acct_attrs.array_num_value(10) := p_source_22;
13165 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
13166 l_rec_acct_attrs.array_char_value(11) := p_source_64;
13167 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
13168 l_rec_acct_attrs.array_num_value(12) := p_source_65;
13169 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
13170 l_rec_acct_attrs.array_num_value(13) := p_source_66;
13171 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
13172 l_rec_acct_attrs.array_char_value(14) := p_source_67;
13173 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
13174 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
13175 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
13176 l_rec_acct_attrs.array_char_value(16) := p_source_60;
13177 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
13178 l_rec_acct_attrs.array_num_value(17) := p_source_69;
13179 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
13180 l_rec_acct_attrs.array_num_value(18) := p_source_69;
13181 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
13185 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13182 l_rec_acct_attrs.array_num_value(19) := p_source_70;
13183
13184 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13186
13187 ---------------------------------------------------------------------------------------------------------------
13188 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13189 ---------------------------------------------------------------------------------------------------------------
13190 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13191
13192 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13193 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13194
13195 IF xla_accounting_cache_pkg.GetValueChar
13196 (p_source_code => 'LEDGER_CATEGORY_CODE'
13197 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13198 AND l_bflow_method_code = 'PRIOR_ENTRY'
13199 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13200 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13201 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13202 )
13203 THEN
13204 xla_ae_lines_pkg.BflowUpgEntry
13205 (p_business_method_code => l_bflow_method_code
13206 ,p_business_class_code => l_bflow_class_code
13207 ,p_balance_type => l_balance_type_code);
13208 ELSE
13209 NULL;
13210 -- No business flow processing for business flow method of NONE.
13211 END IF;
13212
13213 --
13214 -- call analytical criteria
13215 --
13216
13217 --
13218 -- call description
13219 --
13220 -- No description or it is inherited.
13221 --
13222 -- call ADRs
13223 -- Bug 4922099
13224 --
13225 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13226 (NVL(l_actual_upg_option, 'N') = 'O') OR
13227 (NVL(l_enc_upg_option, 'N') = 'O')
13228 )
13229 THEN
13230 NULL;
13231 --
13232 --
13233
13234 l_ccid := AcctDerRule_24(
13235 p_application_id => p_application_id
13236 , p_ae_header_id => l_ae_header_id
13237 , p_source_16 => p_source_16
13238 , p_source_16_meaning => p_source_16_meaning
13239 , p_source_17 => p_source_17
13240 , p_source_19 => p_source_19
13241 , p_source_19_meaning => p_source_19_meaning
13242 , p_source_20 => p_source_20
13243 , p_source_21 => p_source_21
13244 , p_source_22 => p_source_22
13245 , p_source_29 => p_source_29
13246 , p_source_42 => p_source_42
13247 , p_source_42_meaning => p_source_42_meaning
13248 , x_transaction_coa_id => l_adr_transaction_coa_id
13249 , x_accounting_coa_id => l_adr_accounting_coa_id
13250 , x_value_type_code => l_adr_value_type_code
13251 , p_side => 'ALL'
13252 );
13253
13254 xla_ae_lines_pkg.set_ccid(
13255 p_code_combination_id => l_ccid
13256 , p_value_type_code => l_adr_value_type_code
13257 , p_transaction_coa_id => l_adr_transaction_coa_id
13258 , p_accounting_coa_id => l_adr_accounting_coa_id
13259 , p_adr_code => 'AP_ERV_TAXERV_CASH'
13260 , p_adr_type_code => 'S'
13261 , p_component_type => l_component_type
13262 , p_component_code => l_component_code
13263 , p_component_type_code => l_component_type_code
13264 , p_component_appl_id => l_component_appl_id
13265 , p_amb_context_code => l_amb_context_code
13266 , p_side => 'ALL'
13267 );
13268
13269
13270 l_segment := AcctDerRule_7(
13271 p_application_id => p_application_id
13272 , p_ae_header_id => l_ae_header_id
13273 , p_source_16 => p_source_16
13274 , p_source_16_meaning => p_source_16_meaning
13275 , p_source_17 => p_source_17
13276 , p_source_19 => p_source_19
13277 , p_source_19_meaning => p_source_19_meaning
13278 , x_transaction_coa_id => l_adr_transaction_coa_id
13279 , x_accounting_coa_id => l_adr_accounting_coa_id
13280 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13281 , x_flex_value_set_id => l_adr_flex_value_set_id
13282 , x_value_type_code => l_adr_value_type_code
13283 , x_value_combination_id => l_adr_value_combination_id
13284 , x_value_segment_code => l_adr_value_segment_code
13285 , p_side => 'CREDIT'
13286 , p_override_seg_flag => 'Y'
13287 );
13288
13289 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13290
13291 xla_ae_lines_pkg.set_segment(
13292 p_to_segment_code => 'GL_ACCOUNT'
13293 , p_segment_value => l_segment
13294 , p_from_segment_code => l_adr_value_segment_code
13295 , p_from_combination_id => l_adr_value_combination_id
13296 , p_value_type_code => l_adr_value_type_code
13297 , p_transaction_coa_id => l_adr_transaction_coa_id
13298 , p_accounting_coa_id => l_adr_accounting_coa_id
13299 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13300 , p_flex_value_set_id => l_adr_flex_value_set_id
13304 , p_component_code => l_component_code
13301 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13302 , p_adr_type_code => 'S'
13303 , p_component_type => l_component_type
13305 , p_component_type_code => l_component_type_code
13306 , p_component_appl_id => l_component_appl_id
13307 , p_amb_context_code => l_amb_context_code
13308 , p_entity_code => 'AP_PAYMENTS'
13309 , p_event_class_code => 'RECONCILED PAYMENTS'
13310 , p_side => 'CREDIT'
13311 );
13312
13313 END IF;
13314
13315 l_segment := AcctDerRule_8(
13316 p_application_id => p_application_id
13317 , p_ae_header_id => l_ae_header_id
13318 , p_source_16 => p_source_16
13319 , p_source_16_meaning => p_source_16_meaning
13320 , p_source_19 => p_source_19
13321 , p_source_19_meaning => p_source_19_meaning
13322 , p_source_20 => p_source_20
13323 , x_transaction_coa_id => l_adr_transaction_coa_id
13324 , x_accounting_coa_id => l_adr_accounting_coa_id
13325 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13326 , x_flex_value_set_id => l_adr_flex_value_set_id
13327 , x_value_type_code => l_adr_value_type_code
13328 , x_value_combination_id => l_adr_value_combination_id
13329 , x_value_segment_code => l_adr_value_segment_code
13330 , p_side => 'DEBIT'
13331 , p_override_seg_flag => 'Y'
13332 );
13333
13334 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13335
13336 xla_ae_lines_pkg.set_segment(
13337 p_to_segment_code => 'GL_ACCOUNT'
13338 , p_segment_value => l_segment
13339 , p_from_segment_code => l_adr_value_segment_code
13340 , p_from_combination_id => l_adr_value_combination_id
13341 , p_value_type_code => l_adr_value_type_code
13342 , p_transaction_coa_id => l_adr_transaction_coa_id
13343 , p_accounting_coa_id => l_adr_accounting_coa_id
13344 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13345 , p_flex_value_set_id => l_adr_flex_value_set_id
13346 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13347 , p_adr_type_code => 'S'
13348 , p_component_type => l_component_type
13349 , p_component_code => l_component_code
13350 , p_component_type_code => l_component_type_code
13351 , p_component_appl_id => l_component_appl_id
13352 , p_amb_context_code => l_amb_context_code
13353 , p_entity_code => 'AP_PAYMENTS'
13354 , p_event_class_code => 'RECONCILED PAYMENTS'
13355 , p_side => 'DEBIT'
13356 );
13357
13358 END IF;
13359
13360 l_segment := AcctDerRule_17(
13361 p_application_id => p_application_id
13362 , p_ae_header_id => l_ae_header_id
13363 , p_source_16 => p_source_16
13364 , p_source_16_meaning => p_source_16_meaning
13365 , p_source_19 => p_source_19
13366 , p_source_19_meaning => p_source_19_meaning
13367 , p_source_29 => p_source_29
13368 , x_transaction_coa_id => l_adr_transaction_coa_id
13369 , x_accounting_coa_id => l_adr_accounting_coa_id
13370 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13371 , x_flex_value_set_id => l_adr_flex_value_set_id
13372 , x_value_type_code => l_adr_value_type_code
13373 , x_value_combination_id => l_adr_value_combination_id
13374 , x_value_segment_code => l_adr_value_segment_code
13375 , p_side => 'ALL'
13376 , p_override_seg_flag => 'Y'
13377 );
13378
13379 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13380
13381 xla_ae_lines_pkg.set_segment(
13382 p_to_segment_code => 'GL_BALANCING'
13383 , p_segment_value => l_segment
13384 , p_from_segment_code => l_adr_value_segment_code
13385 , p_from_combination_id => l_adr_value_combination_id
13386 , p_value_type_code => l_adr_value_type_code
13387 , p_transaction_coa_id => l_adr_transaction_coa_id
13388 , p_accounting_coa_id => l_adr_accounting_coa_id
13389 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13390 , p_flex_value_set_id => l_adr_flex_value_set_id
13391 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
13392 , p_adr_type_code => 'S'
13393 , p_component_type => l_component_type
13394 , p_component_code => l_component_code
13395 , p_component_type_code => l_component_type_code
13396 , p_component_appl_id => l_component_appl_id
13397 , p_amb_context_code => l_amb_context_code
13398 , p_entity_code => 'AP_PAYMENTS'
13399 , p_event_class_code => 'RECONCILED PAYMENTS'
13400 , p_side => 'ALL'
13401 );
13402
13403 END IF;
13404
13405 --
13406 --
13407 END IF;
13408 --
13409 -- Bug 4922099
13410 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13414 )
13411 (NVL(l_enc_upg_option, 'N') = 'O')
13412 ) AND
13413 (l_bflow_method_code = 'PRIOR_ENTRY')
13415 THEN
13416 IF
13417 --
13418 1 = 2
13419 --
13420 THEN
13421 xla_accounting_err_pkg.build_message
13422 (p_appli_s_name => 'XLA'
13423 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13424 ,p_token_1 => 'LINE_NUMBER'
13425 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13426 ,p_token_2 => 'LINE_TYPE_NAME'
13427 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13428 l_component_type
13429 ,l_component_code
13430 ,l_component_type_code
13431 ,l_component_appl_id
13432 ,l_amb_context_code
13433 ,l_entity_code
13434 ,l_event_class_code
13435 )
13436 ,p_token_3 => 'OWNER'
13437 ,p_value_3 => xla_lookups_pkg.get_meaning(
13438 p_lookup_type => 'XLA_OWNER_TYPE'
13439 ,p_lookup_code => l_component_type_code
13440 )
13441 ,p_token_4 => 'PRODUCT_NAME'
13442 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13443 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13444 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13445 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13446 ,p_ae_header_id => NULL
13447 );
13448
13449 IF (C_LEVEL_ERROR>= g_log_level) THEN
13450 trace
13451 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13452 ,p_level => C_LEVEL_ERROR
13453 ,p_module => l_log_module);
13454 END IF;
13455 END IF;
13456 END IF;
13457 --
13458 --
13459 ------------------------------------------------------------------------------------------------
13460 -- 4219869 Business Flow
13461 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13462 -- Prior Entry. Currently, the following code is always generated.
13463 ------------------------------------------------------------------------------------------------
13464 XLA_AE_LINES_PKG.ValidateCurrentLine;
13465
13466 ------------------------------------------------------------------------------------
13467 -- 4219869 Business Flow
13468 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13469 ------------------------------------------------------------------------------------
13470 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13471
13472 ----------------------------------------------------------------------------------
13473 -- 4219869 Business Flow
13474 -- Update journal entry status -- Need to generate this within IF <condition>
13475 ----------------------------------------------------------------------------------
13476 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13477 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13478 ,p_balance_type_code => l_balance_type_code
13479 );
13480
13481 -------------------------------------------------------------------------------------------
13482 -- 4262811 - Generate the Accrual Reversal lines
13483 -------------------------------------------------------------------------------------------
13484 BEGIN
13485 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13486 (g_array_event(p_event_id).array_value_num('header_index'));
13487 IF l_acc_rev_flag IS NULL THEN
13488 l_acc_rev_flag := 'N';
13489 END IF;
13490 EXCEPTION
13491 WHEN OTHERS THEN
13492 l_acc_rev_flag := 'N';
13493 END;
13494 --
13495 IF (l_acc_rev_flag = 'Y') THEN
13496
13497 -- 4645092 ------------------------------------------------------------------------------
13498 -- To allow MPA report to determine if it should generate report process
13499 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13500 ------------------------------------------------------------------------------------------
13501
13502 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13503 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13507 --
13504 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13505 -- call ADRs
13506 -- Bug 4922099
13508 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13509 (NVL(l_actual_upg_option, 'N') = 'O') OR
13510 (NVL(l_enc_upg_option, 'N') = 'O')
13511 )
13512 THEN
13513 NULL;
13514 --
13515 --
13516
13517 l_ccid := AcctDerRule_24(
13518 p_application_id => p_application_id
13519 , p_ae_header_id => l_ae_header_id
13520 , p_source_16 => p_source_16
13521 , p_source_16_meaning => p_source_16_meaning
13522 , p_source_17 => p_source_17
13523 , p_source_19 => p_source_19
13524 , p_source_19_meaning => p_source_19_meaning
13525 , p_source_20 => p_source_20
13526 , p_source_21 => p_source_21
13527 , p_source_22 => p_source_22
13528 , p_source_29 => p_source_29
13529 , p_source_42 => p_source_42
13530 , p_source_42_meaning => p_source_42_meaning
13531 , x_transaction_coa_id => l_adr_transaction_coa_id
13532 , x_accounting_coa_id => l_adr_accounting_coa_id
13533 , x_value_type_code => l_adr_value_type_code
13534 , p_side => 'ALL'
13535 );
13536
13537 xla_ae_lines_pkg.set_ccid(
13538 p_code_combination_id => l_ccid
13539 , p_value_type_code => l_adr_value_type_code
13540 , p_transaction_coa_id => l_adr_transaction_coa_id
13541 , p_accounting_coa_id => l_adr_accounting_coa_id
13542 , p_adr_code => 'AP_ERV_TAXERV_CASH'
13543 , p_adr_type_code => 'S'
13544 , p_component_type => l_component_type
13545 , p_component_code => l_component_code
13546 , p_component_type_code => l_component_type_code
13547 , p_component_appl_id => l_component_appl_id
13548 , p_amb_context_code => l_amb_context_code
13549 , p_side => 'ALL'
13550 );
13551
13552
13553 l_segment := AcctDerRule_7(
13554 p_application_id => p_application_id
13555 , p_ae_header_id => l_ae_header_id
13556 , p_source_16 => p_source_16
13557 , p_source_16_meaning => p_source_16_meaning
13558 , p_source_17 => p_source_17
13559 , p_source_19 => p_source_19
13560 , p_source_19_meaning => p_source_19_meaning
13561 , x_transaction_coa_id => l_adr_transaction_coa_id
13562 , x_accounting_coa_id => l_adr_accounting_coa_id
13563 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13564 , x_flex_value_set_id => l_adr_flex_value_set_id
13565 , x_value_type_code => l_adr_value_type_code
13566 , x_value_combination_id => l_adr_value_combination_id
13567 , x_value_segment_code => l_adr_value_segment_code
13568 , p_side => 'CREDIT'
13569 , p_override_seg_flag => 'Y'
13570 );
13571
13572 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13573
13574 xla_ae_lines_pkg.set_segment(
13575 p_to_segment_code => 'GL_ACCOUNT'
13576 , p_segment_value => l_segment
13577 , p_from_segment_code => l_adr_value_segment_code
13578 , p_from_combination_id => l_adr_value_combination_id
13579 , p_value_type_code => l_adr_value_type_code
13580 , p_transaction_coa_id => l_adr_transaction_coa_id
13581 , p_accounting_coa_id => l_adr_accounting_coa_id
13582 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13583 , p_flex_value_set_id => l_adr_flex_value_set_id
13584 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13585 , p_adr_type_code => 'S'
13586 , p_component_type => l_component_type
13587 , p_component_code => l_component_code
13588 , p_component_type_code => l_component_type_code
13589 , p_component_appl_id => l_component_appl_id
13590 , p_amb_context_code => l_amb_context_code
13591 , p_entity_code => 'AP_PAYMENTS'
13592 , p_event_class_code => 'RECONCILED PAYMENTS'
13593 , p_side => 'CREDIT'
13594 );
13595
13596 END IF;
13597
13598 l_segment := AcctDerRule_8(
13599 p_application_id => p_application_id
13600 , p_ae_header_id => l_ae_header_id
13601 , p_source_16 => p_source_16
13602 , p_source_16_meaning => p_source_16_meaning
13603 , p_source_19 => p_source_19
13604 , p_source_19_meaning => p_source_19_meaning
13605 , p_source_20 => p_source_20
13606 , x_transaction_coa_id => l_adr_transaction_coa_id
13607 , x_accounting_coa_id => l_adr_accounting_coa_id
13608 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13609 , x_flex_value_set_id => l_adr_flex_value_set_id
13610 , x_value_type_code => l_adr_value_type_code
13611 , x_value_combination_id => l_adr_value_combination_id
13612 , x_value_segment_code => l_adr_value_segment_code
13613 , p_side => 'DEBIT'
13614 , p_override_seg_flag => 'Y'
13615 );
13616
13617 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13618
13619 xla_ae_lines_pkg.set_segment(
13623 , p_from_combination_id => l_adr_value_combination_id
13620 p_to_segment_code => 'GL_ACCOUNT'
13621 , p_segment_value => l_segment
13622 , p_from_segment_code => l_adr_value_segment_code
13624 , p_value_type_code => l_adr_value_type_code
13625 , p_transaction_coa_id => l_adr_transaction_coa_id
13626 , p_accounting_coa_id => l_adr_accounting_coa_id
13627 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13628 , p_flex_value_set_id => l_adr_flex_value_set_id
13629 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13630 , p_adr_type_code => 'S'
13631 , p_component_type => l_component_type
13632 , p_component_code => l_component_code
13633 , p_component_type_code => l_component_type_code
13634 , p_component_appl_id => l_component_appl_id
13635 , p_amb_context_code => l_amb_context_code
13636 , p_entity_code => 'AP_PAYMENTS'
13637 , p_event_class_code => 'RECONCILED PAYMENTS'
13638 , p_side => 'DEBIT'
13639 );
13640
13641 END IF;
13642
13643 l_segment := AcctDerRule_17(
13644 p_application_id => p_application_id
13645 , p_ae_header_id => l_ae_header_id
13646 , p_source_16 => p_source_16
13647 , p_source_16_meaning => p_source_16_meaning
13648 , p_source_19 => p_source_19
13649 , p_source_19_meaning => p_source_19_meaning
13650 , p_source_29 => p_source_29
13651 , x_transaction_coa_id => l_adr_transaction_coa_id
13652 , x_accounting_coa_id => l_adr_accounting_coa_id
13653 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13654 , x_flex_value_set_id => l_adr_flex_value_set_id
13655 , x_value_type_code => l_adr_value_type_code
13656 , x_value_combination_id => l_adr_value_combination_id
13657 , x_value_segment_code => l_adr_value_segment_code
13658 , p_side => 'ALL'
13659 , p_override_seg_flag => 'Y'
13660 );
13661
13662 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13663
13664 xla_ae_lines_pkg.set_segment(
13665 p_to_segment_code => 'GL_BALANCING'
13666 , p_segment_value => l_segment
13667 , p_from_segment_code => l_adr_value_segment_code
13668 , p_from_combination_id => l_adr_value_combination_id
13669 , p_value_type_code => l_adr_value_type_code
13670 , p_transaction_coa_id => l_adr_transaction_coa_id
13671 , p_accounting_coa_id => l_adr_accounting_coa_id
13672 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13673 , p_flex_value_set_id => l_adr_flex_value_set_id
13674 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
13675 , p_adr_type_code => 'S'
13676 , p_component_type => l_component_type
13677 , p_component_code => l_component_code
13678 , p_component_type_code => l_component_type_code
13679 , p_component_appl_id => l_component_appl_id
13680 , p_amb_context_code => l_amb_context_code
13681 , p_entity_code => 'AP_PAYMENTS'
13682 , p_event_class_code => 'RECONCILED PAYMENTS'
13683 , p_side => 'ALL'
13684 );
13685
13686 END IF;
13687
13688 --
13689 --
13690 END IF;
13691
13692 --
13693 -- Update the line information that should be overwritten
13694 --
13695 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13696 p_header_num => 1);
13697 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13698
13699 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13700
13701 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13702 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13703 END IF;
13704
13705 --
13706 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13707 --
13708 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13709 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13710 ELSE
13711 ---------------------------------------------------------------------------------------------------
13712 -- 4262811a Switch Sign
13713 ---------------------------------------------------------------------------------------------------
13714 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13715 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13716 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13717 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13718 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13719 -- 5132302
13723 END IF;
13720 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13721 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13722
13724
13725 -- 4955764
13726 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13727 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13728
13729
13730 XLA_AE_LINES_PKG.ValidateCurrentLine;
13731 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13732
13733 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13734 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13735 ,p_balance_type_code => l_balance_type_code);
13736
13737 END IF;
13738
13739 -----------------------------------------------------------------------------------------
13740 -- 4262811 Multiperiod Accounting
13741 -----------------------------------------------------------------------------------------
13742 -- No MPA option is assigned.
13743
13744
13745 END IF;
13746 END IF;
13747 --
13748
13749 --
13750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13751 trace
13752 (p_msg => 'END of AcctLineType_48'
13753 ,p_level => C_LEVEL_PROCEDURE
13754 ,p_module => l_log_module);
13755 END IF;
13756 --
13757 EXCEPTION
13758 WHEN xla_exceptions_pkg.application_exception THEN
13759 RAISE;
13760 WHEN OTHERS THEN
13761 xla_exceptions_pkg.raise_message
13762 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_48');
13763 END AcctLineType_48;
13764 --
13765
13766 ---------------------------------------
13767 --
13768 -- PRIVATE FUNCTION
13769 -- AcctLineType_49
13770 --
13771 ---------------------------------------
13772 PROCEDURE AcctLineType_49 (
13773 p_application_id IN NUMBER
13774 ,p_event_id IN NUMBER
13775 ,p_calculate_acctd_flag IN VARCHAR2
13776 ,p_calculate_g_l_flag IN VARCHAR2
13777 ,p_actual_flag IN OUT VARCHAR2
13778 ,p_balance_type_code OUT VARCHAR2
13779 ,p_gain_or_loss_ref OUT VARCHAR2
13780
13781 --Automatic Offsets Value
13782 , p_source_16 IN VARCHAR2
13783 , p_source_16_meaning IN VARCHAR2
13784 --Purchase Order Rate Variance Gain Account
13785 , p_source_17 IN NUMBER
13786 --Destination Type of the PO Distribution
13787 , p_source_19 IN VARCHAR2
13788 , p_source_19_meaning IN VARCHAR2
13789 --Purchase Order Rate Variance Loss Account
13790 , p_source_20 IN NUMBER
13791 --Payment Distribution (Payment Rate) Ledger Amount
13792 , p_source_21 IN NUMBER
13793 --Payment Distribution (Cleared Rate) Ledger Amount
13794 , p_source_22 IN NUMBER
13795 --Invoice Distribution Account
13796 , p_source_29 IN NUMBER
13797 --Invoice Distribution Type
13798 , p_source_32 IN VARCHAR2
13799 , p_source_32_meaning IN VARCHAR2
13800 --Automatic Offsets Flag
13801 , p_source_42 IN VARCHAR2
13802 , p_source_42_meaning IN VARCHAR2
13803 --When to Account for Payment Option
13804 , p_source_50 IN VARCHAR2
13805 --Payment Distribution Type
13806 , p_source_51 IN VARCHAR2
13807 , p_source_51_meaning IN VARCHAR2
13808 --Accounting Reversal Indicator
13809 , p_source_52 IN VARCHAR2
13810 --Business Flow Accounts Payable Application Identifier
13811 , p_source_54 IN NUMBER
13812 --Payment Distribution Identifier
13813 , p_source_59 IN NUMBER
13814 --Distribution Link Type
13815 , p_source_60 IN VARCHAR2
13816 --Override Accounted Amount Indicator
13817 , p_source_64 IN VARCHAR2
13818 , p_source_64_meaning IN VARCHAR2
13819 --Payment Supplier Identifier
13820 , p_source_65 IN NUMBER
13821 --Payment Supplier Site Identifier
13822 , p_source_66 IN NUMBER
13823 --Third Party Type
13824 , p_source_67 IN VARCHAR2
13825 --Payment Distribution Reversed Identifier
13826 , p_source_68 IN NUMBER
13827 --Invoice Distribution Tax Line Identifier
13828 , p_source_69 IN NUMBER
13829 --Invoice Distribution Summary Tax Line Identifier
13830 , p_source_70 IN NUMBER
13831 --Payment Type
13832 , p_source_71 IN VARCHAR2
13833 , p_source_71_meaning IN VARCHAR2
13834 --Invoice Distribution Amount of the Payment Distribution
13835 , p_source_72 IN NUMBER
13836 --Business Flow Invoice Distribution Type
13837 , p_source_73 IN VARCHAR2
13838 --Business Flow Invoice Entity Code
13839 , p_source_74 IN VARCHAR2
13840 --Business Flow Invoice Distribution Identifier
13841 , p_source_75 IN NUMBER
13842 --Business Flow Invoice Identifier
13843 , p_source_76 IN NUMBER
13844 --Invoice Distribution Tax Distribution Identifier from Tax
13845 , p_source_77 IN NUMBER
13846 --Accrue on Receipt Option
13847 , p_source_111 IN VARCHAR2
13848 , p_source_111_meaning IN VARCHAR2
13849 --Invoice Type Paid
13850 , p_source_112 IN VARCHAR2
13851 , p_source_112_meaning IN VARCHAR2
13852 )
13853 IS
13854
13855 l_component_type VARCHAR2(80);
13859 l_amb_context_code VARCHAR2(30);
13856 l_component_code VARCHAR2(30);
13857 l_component_type_code VARCHAR2(1);
13858 l_component_appl_id INTEGER;
13860 l_entity_code VARCHAR2(30);
13861 l_event_class_code VARCHAR2(30);
13862 l_ae_header_id NUMBER;
13863 l_event_type_code VARCHAR2(30);
13864 l_line_definition_code VARCHAR2(30);
13865 l_line_definition_owner_code VARCHAR2(1);
13866 --
13867 -- adr variables
13868 l_segment VARCHAR2(30);
13869 l_ccid NUMBER;
13870 l_adr_transaction_coa_id NUMBER;
13871 l_adr_accounting_coa_id NUMBER;
13872 l_adr_flexfield_segment_code VARCHAR2(30);
13873 l_adr_flex_value_set_id NUMBER;
13874 l_adr_value_type_code VARCHAR2(30);
13875 l_adr_value_combination_id NUMBER;
13876 l_adr_value_segment_code VARCHAR2(30);
13877
13878 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13879 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13880 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13881 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13882
13883 -- 4262811 Variables ------------------------------------------------------------------------------------------
13884 l_entered_amt_idx NUMBER;
13885 l_accted_amt_idx NUMBER;
13886 l_acc_rev_flag VARCHAR2(1);
13887 l_accrual_line_num NUMBER;
13888 l_tmp_amt NUMBER;
13889 l_acc_rev_natural_side_code VARCHAR2(1);
13890
13891 l_num_entries NUMBER;
13892 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13893 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13894 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13895 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13896 l_recog_line_1 NUMBER;
13897 l_recog_line_2 NUMBER;
13898
13899 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13900 l_bflow_applied_to_amt NUMBER; -- 5132302
13901 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13902
13903 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13904
13905 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13906 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13907
13908 ---------------------------------------------------------------------------------------------------------------
13909
13910
13911 --
13912 -- bulk performance
13913 --
13914 l_balance_type_code VARCHAR2(1);
13915 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13916 l_log_module VARCHAR2(240);
13917
13918 --
13919 -- Upgrade strategy
13920 --
13921 l_actual_upg_option VARCHAR2(1);
13922 l_enc_upg_option VARCHAR2(1);
13923
13924 --
13925 BEGIN
13926 --
13927 IF g_log_enabled THEN
13928 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
13929 END IF;
13930 --
13931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13932
13933 trace
13934 (p_msg => 'BEGIN of AcctLineType_49'
13935 ,p_level => C_LEVEL_PROCEDURE
13936 ,p_module => l_log_module);
13937
13938 END IF;
13939 --
13940 l_component_type := 'AMB_JLT';
13941 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_PMT';
13942 l_component_type_code := 'S';
13943 l_component_appl_id := 200;
13944 l_amb_context_code := 'DEFAULT';
13945 l_entity_code := 'AP_PAYMENTS';
13946 l_event_class_code := 'PAYMENTS';
13947 l_event_type_code := 'PAYMENTS_ALL';
13948 l_line_definition_owner_code := 'S';
13949 l_line_definition_code := 'CASH_PAYMENTS_ALL';
13950 --
13951 l_balance_type_code := 'A';
13952 l_segment := NULL;
13953 l_ccid := NULL;
13954 l_adr_transaction_coa_id := NULL;
13955 l_adr_accounting_coa_id := NULL;
13956 l_adr_flexfield_segment_code := NULL;
13957 l_adr_flex_value_set_id := NULL;
13958 l_adr_value_type_code := NULL;
13959 l_adr_value_combination_id := NULL;
13960 l_adr_value_segment_code := NULL;
13961
13962 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13963 l_bflow_class_code := ''; -- 4219869 Business Flow
13964 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13965 l_budgetary_control_flag := 'N';
13966
13967 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13968 l_bflow_applied_to_amt := NULL; -- 5132302
13969 l_entered_amt_idx := NULL; -- 4262811
13970 l_accted_amt_idx := NULL; -- 4262811
13971 l_acc_rev_flag := NULL; -- 4262811
13972 l_accrual_line_num := NULL; -- 4262811
13973 l_tmp_amt := NULL; -- 4262811
13974 --
13975 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13976 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
13980 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13977 return;
13978 END IF;
13979
13981 l_balance_type_code <> 'B' THEN
13982 IF NVL(p_source_50,'
13983 ') <> 'CLEAR_CLEAR' AND
13984 NVL(p_source_32,'
13985 ') = 'NONREC_TAX' AND
13986 NVL(p_source_111,'
13987 ') = 'Y' AND
13988 NVL(p_source_112,'
13989 ') <> 'INTEREST' AND
13990 (NVL(p_source_51,'
13991 ') = 'CASH' OR
13992 NVL(p_source_51,'
13993 ') = 'DISCOUNT') AND
13994 NVL(p_source_71,'
13995 ') <> 'R'
13996 THEN
13997
13998 --
13999 XLA_AE_LINES_PKG.SetNewLine;
14000
14001 p_balance_type_code := l_balance_type_code;
14002 -- set the flag so later we will know whether the gain loss line needs to be created
14003
14004 IF(l_balance_type_code = 'A' ) THEN
14005 p_actual_flag :='G';
14006 END IF;
14007
14008 --
14009 -- bulk performance
14010 --
14011 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14012 p_header_num => 0); -- 4262811
14013 --
14014 -- set accounting line options
14015 --
14016 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14017 p_natural_side_code => 'G'
14018 , p_gain_or_loss_flag => 'N'
14019 , p_gl_transfer_mode_code => 'S'
14020 , p_acct_entry_type_code => 'A'
14021 , p_switch_side_flag => ''
14022 , p_merge_duplicate_code => 'A'
14023 );
14024 --
14025 l_acc_rev_natural_side_code := 'C'; -- 4262811
14026 --
14027 --
14028 -- set accounting line type info
14029 --
14030 xla_ae_lines_pkg.SetAcctLineType
14031 (p_component_type => l_component_type
14032 ,p_event_type_code => l_event_type_code
14033 ,p_line_definition_owner_code => l_line_definition_owner_code
14034 ,p_line_definition_code => l_line_definition_code
14035 ,p_accounting_line_code => l_component_code
14036 ,p_accounting_line_type_code => l_component_type_code
14037 ,p_accounting_line_appl_id => l_component_appl_id
14038 ,p_amb_context_code => l_amb_context_code
14039 ,p_entity_code => l_entity_code
14040 ,p_event_class_code => l_event_class_code);
14041 --
14042 -- set accounting class
14043 --
14044 xla_ae_lines_pkg.SetAcctClass(
14045 p_accounting_class_code => 'TERV'
14046 , p_ae_header_id => l_ae_header_id
14047 );
14048
14049 --
14050 -- set rounding class
14051 --
14052 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14053 'TERV';
14054
14055 --
14056 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14057 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14058 --
14059 -- bulk performance
14060 --
14061 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14062
14063 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14064 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14065
14066 -- 4955764
14067 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14068 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14069
14070 -- 4458381 Public Sector Enh
14071
14072 --
14073 -- set accounting attributes for the line type
14074 --
14075 l_entered_amt_idx := NULL;
14076 l_accted_amt_idx := 10;
14077 l_bflow_applied_to_amt_idx := 2; -- 5132302
14078 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14079 l_rec_acct_attrs.array_char_value(1) := p_source_52;
14080 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
14081 l_rec_acct_attrs.array_num_value(2) := p_source_72;
14082 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
14083 l_rec_acct_attrs.array_num_value(3) := p_source_54;
14084 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14085 l_rec_acct_attrs.array_char_value(4) := p_source_73;
14086 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
14087 l_rec_acct_attrs.array_char_value(5) := p_source_74;
14088 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
14089 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
14090 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14091 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
14092 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
14093 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
14094 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
14095 l_rec_acct_attrs.array_char_value(9) := p_source_60;
14096 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
14097 l_rec_acct_attrs.array_num_value(10) := p_source_21;
14098 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
14102 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
14099 l_rec_acct_attrs.array_char_value(11) := p_source_64;
14100 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
14101 l_rec_acct_attrs.array_num_value(12) := p_source_65;
14103 l_rec_acct_attrs.array_num_value(13) := p_source_66;
14104 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
14105 l_rec_acct_attrs.array_char_value(14) := p_source_67;
14106 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
14107 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
14108 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
14109 l_rec_acct_attrs.array_char_value(16) := p_source_60;
14110 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
14111 l_rec_acct_attrs.array_num_value(17) := p_source_69;
14112 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
14113 l_rec_acct_attrs.array_num_value(18) := p_source_77;
14114 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
14115 l_rec_acct_attrs.array_num_value(19) := p_source_70;
14116
14117 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14118 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14119
14120 ---------------------------------------------------------------------------------------------------------------
14121 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14122 ---------------------------------------------------------------------------------------------------------------
14123 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14124
14125 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14126 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14127
14128 IF xla_accounting_cache_pkg.GetValueChar
14129 (p_source_code => 'LEDGER_CATEGORY_CODE'
14130 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14131 AND l_bflow_method_code = 'PRIOR_ENTRY'
14132 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14133 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14134 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14135 )
14136 THEN
14137 xla_ae_lines_pkg.BflowUpgEntry
14138 (p_business_method_code => l_bflow_method_code
14139 ,p_business_class_code => l_bflow_class_code
14140 ,p_balance_type => l_balance_type_code);
14141 ELSE
14142 NULL;
14143 -- No business flow processing for business flow method of NONE.
14144 END IF;
14145
14146 --
14147 -- call analytical criteria
14148 --
14149
14150 --
14151 -- call description
14152 --
14153 -- No description or it is inherited.
14154 --
14155 -- call ADRs
14156 -- Bug 4922099
14157 --
14158 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14159 (NVL(l_actual_upg_option, 'N') = 'O') OR
14160 (NVL(l_enc_upg_option, 'N') = 'O')
14161 )
14162 THEN
14163 NULL;
14164 --
14165 --
14166
14167 l_ccid := AcctDerRule_24(
14168 p_application_id => p_application_id
14169 , p_ae_header_id => l_ae_header_id
14170 , p_source_16 => p_source_16
14171 , p_source_16_meaning => p_source_16_meaning
14172 , p_source_17 => p_source_17
14173 , p_source_19 => p_source_19
14174 , p_source_19_meaning => p_source_19_meaning
14175 , p_source_20 => p_source_20
14176 , p_source_21 => p_source_21
14177 , p_source_22 => p_source_22
14178 , p_source_29 => p_source_29
14179 , p_source_42 => p_source_42
14180 , p_source_42_meaning => p_source_42_meaning
14181 , x_transaction_coa_id => l_adr_transaction_coa_id
14182 , x_accounting_coa_id => l_adr_accounting_coa_id
14183 , x_value_type_code => l_adr_value_type_code
14184 , p_side => 'ALL'
14185 );
14186
14187 xla_ae_lines_pkg.set_ccid(
14188 p_code_combination_id => l_ccid
14189 , p_value_type_code => l_adr_value_type_code
14190 , p_transaction_coa_id => l_adr_transaction_coa_id
14191 , p_accounting_coa_id => l_adr_accounting_coa_id
14192 , p_adr_code => 'AP_ERV_TAXERV_CASH'
14193 , p_adr_type_code => 'S'
14194 , p_component_type => l_component_type
14195 , p_component_code => l_component_code
14196 , p_component_type_code => l_component_type_code
14197 , p_component_appl_id => l_component_appl_id
14198 , p_amb_context_code => l_amb_context_code
14199 , p_side => 'ALL'
14200 );
14201
14202
14203 l_segment := AcctDerRule_7(
14204 p_application_id => p_application_id
14205 , p_ae_header_id => l_ae_header_id
14206 , p_source_16 => p_source_16
14207 , p_source_16_meaning => p_source_16_meaning
14208 , p_source_17 => p_source_17
14209 , p_source_19 => p_source_19
14210 , p_source_19_meaning => p_source_19_meaning
14211 , x_transaction_coa_id => l_adr_transaction_coa_id
14212 , x_accounting_coa_id => l_adr_accounting_coa_id
14216 , x_value_combination_id => l_adr_value_combination_id
14213 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14214 , x_flex_value_set_id => l_adr_flex_value_set_id
14215 , x_value_type_code => l_adr_value_type_code
14217 , x_value_segment_code => l_adr_value_segment_code
14218 , p_side => 'CREDIT'
14219 , p_override_seg_flag => 'Y'
14220 );
14221
14222 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14223
14224 xla_ae_lines_pkg.set_segment(
14225 p_to_segment_code => 'GL_ACCOUNT'
14226 , p_segment_value => l_segment
14227 , p_from_segment_code => l_adr_value_segment_code
14228 , p_from_combination_id => l_adr_value_combination_id
14229 , p_value_type_code => l_adr_value_type_code
14230 , p_transaction_coa_id => l_adr_transaction_coa_id
14231 , p_accounting_coa_id => l_adr_accounting_coa_id
14232 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14233 , p_flex_value_set_id => l_adr_flex_value_set_id
14234 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14235 , p_adr_type_code => 'S'
14236 , p_component_type => l_component_type
14237 , p_component_code => l_component_code
14238 , p_component_type_code => l_component_type_code
14239 , p_component_appl_id => l_component_appl_id
14240 , p_amb_context_code => l_amb_context_code
14241 , p_entity_code => 'AP_PAYMENTS'
14242 , p_event_class_code => 'PAYMENTS'
14243 , p_side => 'CREDIT'
14244 );
14245
14246 END IF;
14247
14248 l_segment := AcctDerRule_8(
14249 p_application_id => p_application_id
14250 , p_ae_header_id => l_ae_header_id
14251 , p_source_16 => p_source_16
14252 , p_source_16_meaning => p_source_16_meaning
14253 , p_source_19 => p_source_19
14254 , p_source_19_meaning => p_source_19_meaning
14255 , p_source_20 => p_source_20
14256 , x_transaction_coa_id => l_adr_transaction_coa_id
14257 , x_accounting_coa_id => l_adr_accounting_coa_id
14258 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14259 , x_flex_value_set_id => l_adr_flex_value_set_id
14260 , x_value_type_code => l_adr_value_type_code
14261 , x_value_combination_id => l_adr_value_combination_id
14262 , x_value_segment_code => l_adr_value_segment_code
14263 , p_side => 'DEBIT'
14264 , p_override_seg_flag => 'Y'
14265 );
14266
14267 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14268
14269 xla_ae_lines_pkg.set_segment(
14270 p_to_segment_code => 'GL_ACCOUNT'
14271 , p_segment_value => l_segment
14272 , p_from_segment_code => l_adr_value_segment_code
14273 , p_from_combination_id => l_adr_value_combination_id
14274 , p_value_type_code => l_adr_value_type_code
14275 , p_transaction_coa_id => l_adr_transaction_coa_id
14276 , p_accounting_coa_id => l_adr_accounting_coa_id
14277 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14278 , p_flex_value_set_id => l_adr_flex_value_set_id
14279 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14280 , p_adr_type_code => 'S'
14281 , p_component_type => l_component_type
14282 , p_component_code => l_component_code
14283 , p_component_type_code => l_component_type_code
14284 , p_component_appl_id => l_component_appl_id
14285 , p_amb_context_code => l_amb_context_code
14286 , p_entity_code => 'AP_PAYMENTS'
14287 , p_event_class_code => 'PAYMENTS'
14288 , p_side => 'DEBIT'
14289 );
14290
14291 END IF;
14292
14293 l_segment := AcctDerRule_17(
14294 p_application_id => p_application_id
14295 , p_ae_header_id => l_ae_header_id
14296 , p_source_16 => p_source_16
14297 , p_source_16_meaning => p_source_16_meaning
14298 , p_source_19 => p_source_19
14299 , p_source_19_meaning => p_source_19_meaning
14300 , p_source_29 => p_source_29
14301 , x_transaction_coa_id => l_adr_transaction_coa_id
14302 , x_accounting_coa_id => l_adr_accounting_coa_id
14303 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14304 , x_flex_value_set_id => l_adr_flex_value_set_id
14305 , x_value_type_code => l_adr_value_type_code
14306 , x_value_combination_id => l_adr_value_combination_id
14307 , x_value_segment_code => l_adr_value_segment_code
14308 , p_side => 'ALL'
14309 , p_override_seg_flag => 'Y'
14310 );
14311
14312 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14313
14314 xla_ae_lines_pkg.set_segment(
14315 p_to_segment_code => 'GL_BALANCING'
14316 , p_segment_value => l_segment
14317 , p_from_segment_code => l_adr_value_segment_code
14318 , p_from_combination_id => l_adr_value_combination_id
14322 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14319 , p_value_type_code => l_adr_value_type_code
14320 , p_transaction_coa_id => l_adr_transaction_coa_id
14321 , p_accounting_coa_id => l_adr_accounting_coa_id
14323 , p_flex_value_set_id => l_adr_flex_value_set_id
14324 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
14325 , p_adr_type_code => 'S'
14326 , p_component_type => l_component_type
14327 , p_component_code => l_component_code
14328 , p_component_type_code => l_component_type_code
14329 , p_component_appl_id => l_component_appl_id
14330 , p_amb_context_code => l_amb_context_code
14331 , p_entity_code => 'AP_PAYMENTS'
14332 , p_event_class_code => 'PAYMENTS'
14333 , p_side => 'ALL'
14334 );
14335
14336 END IF;
14337
14338 --
14339 --
14340 END IF;
14341 --
14342 -- Bug 4922099
14343 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14344 (NVL(l_enc_upg_option, 'N') = 'O')
14345 ) AND
14346 (l_bflow_method_code = 'PRIOR_ENTRY')
14347 )
14348 THEN
14349 IF
14350 --
14351 1 = 2
14352 --
14353 THEN
14354 xla_accounting_err_pkg.build_message
14355 (p_appli_s_name => 'XLA'
14356 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14357 ,p_token_1 => 'LINE_NUMBER'
14358 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14359 ,p_token_2 => 'LINE_TYPE_NAME'
14360 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14361 l_component_type
14362 ,l_component_code
14363 ,l_component_type_code
14364 ,l_component_appl_id
14365 ,l_amb_context_code
14366 ,l_entity_code
14367 ,l_event_class_code
14368 )
14369 ,p_token_3 => 'OWNER'
14370 ,p_value_3 => xla_lookups_pkg.get_meaning(
14371 p_lookup_type => 'XLA_OWNER_TYPE'
14372 ,p_lookup_code => l_component_type_code
14373 )
14374 ,p_token_4 => 'PRODUCT_NAME'
14375 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14376 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14377 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14378 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14379 ,p_ae_header_id => NULL
14380 );
14381
14382 IF (C_LEVEL_ERROR>= g_log_level) THEN
14383 trace
14384 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14385 ,p_level => C_LEVEL_ERROR
14386 ,p_module => l_log_module);
14387 END IF;
14388 END IF;
14389 END IF;
14390 --
14391 --
14392 ------------------------------------------------------------------------------------------------
14393 -- 4219869 Business Flow
14394 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14395 -- Prior Entry. Currently, the following code is always generated.
14396 ------------------------------------------------------------------------------------------------
14397 XLA_AE_LINES_PKG.ValidateCurrentLine;
14398
14399 ------------------------------------------------------------------------------------
14400 -- 4219869 Business Flow
14401 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14402 ------------------------------------------------------------------------------------
14403 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14404
14405 ----------------------------------------------------------------------------------
14406 -- 4219869 Business Flow
14407 -- Update journal entry status -- Need to generate this within IF <condition>
14408 ----------------------------------------------------------------------------------
14409 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14410 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14411 ,p_balance_type_code => l_balance_type_code
14412 );
14413
14417 BEGIN
14414 -------------------------------------------------------------------------------------------
14415 -- 4262811 - Generate the Accrual Reversal lines
14416 -------------------------------------------------------------------------------------------
14418 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14419 (g_array_event(p_event_id).array_value_num('header_index'));
14420 IF l_acc_rev_flag IS NULL THEN
14421 l_acc_rev_flag := 'N';
14422 END IF;
14423 EXCEPTION
14424 WHEN OTHERS THEN
14425 l_acc_rev_flag := 'N';
14426 END;
14427 --
14428 IF (l_acc_rev_flag = 'Y') THEN
14429
14430 -- 4645092 ------------------------------------------------------------------------------
14431 -- To allow MPA report to determine if it should generate report process
14432 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14433 ------------------------------------------------------------------------------------------
14434
14435 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14436 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14437 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14438 -- call ADRs
14439 -- Bug 4922099
14440 --
14441 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14442 (NVL(l_actual_upg_option, 'N') = 'O') OR
14443 (NVL(l_enc_upg_option, 'N') = 'O')
14444 )
14445 THEN
14446 NULL;
14447 --
14448 --
14449
14450 l_ccid := AcctDerRule_24(
14451 p_application_id => p_application_id
14452 , p_ae_header_id => l_ae_header_id
14453 , p_source_16 => p_source_16
14454 , p_source_16_meaning => p_source_16_meaning
14455 , p_source_17 => p_source_17
14456 , p_source_19 => p_source_19
14457 , p_source_19_meaning => p_source_19_meaning
14458 , p_source_20 => p_source_20
14459 , p_source_21 => p_source_21
14460 , p_source_22 => p_source_22
14461 , p_source_29 => p_source_29
14462 , p_source_42 => p_source_42
14463 , p_source_42_meaning => p_source_42_meaning
14464 , x_transaction_coa_id => l_adr_transaction_coa_id
14465 , x_accounting_coa_id => l_adr_accounting_coa_id
14466 , x_value_type_code => l_adr_value_type_code
14467 , p_side => 'ALL'
14468 );
14469
14470 xla_ae_lines_pkg.set_ccid(
14471 p_code_combination_id => l_ccid
14472 , p_value_type_code => l_adr_value_type_code
14473 , p_transaction_coa_id => l_adr_transaction_coa_id
14474 , p_accounting_coa_id => l_adr_accounting_coa_id
14475 , p_adr_code => 'AP_ERV_TAXERV_CASH'
14476 , p_adr_type_code => 'S'
14477 , p_component_type => l_component_type
14478 , p_component_code => l_component_code
14479 , p_component_type_code => l_component_type_code
14480 , p_component_appl_id => l_component_appl_id
14481 , p_amb_context_code => l_amb_context_code
14482 , p_side => 'ALL'
14483 );
14484
14485
14486 l_segment := AcctDerRule_7(
14487 p_application_id => p_application_id
14488 , p_ae_header_id => l_ae_header_id
14489 , p_source_16 => p_source_16
14490 , p_source_16_meaning => p_source_16_meaning
14491 , p_source_17 => p_source_17
14492 , p_source_19 => p_source_19
14493 , p_source_19_meaning => p_source_19_meaning
14494 , x_transaction_coa_id => l_adr_transaction_coa_id
14495 , x_accounting_coa_id => l_adr_accounting_coa_id
14496 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14497 , x_flex_value_set_id => l_adr_flex_value_set_id
14498 , x_value_type_code => l_adr_value_type_code
14499 , x_value_combination_id => l_adr_value_combination_id
14500 , x_value_segment_code => l_adr_value_segment_code
14501 , p_side => 'CREDIT'
14502 , p_override_seg_flag => 'Y'
14503 );
14504
14505 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14506
14507 xla_ae_lines_pkg.set_segment(
14508 p_to_segment_code => 'GL_ACCOUNT'
14509 , p_segment_value => l_segment
14510 , p_from_segment_code => l_adr_value_segment_code
14511 , p_from_combination_id => l_adr_value_combination_id
14512 , p_value_type_code => l_adr_value_type_code
14513 , p_transaction_coa_id => l_adr_transaction_coa_id
14514 , p_accounting_coa_id => l_adr_accounting_coa_id
14515 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14516 , p_flex_value_set_id => l_adr_flex_value_set_id
14517 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14518 , p_adr_type_code => 'S'
14519 , p_component_type => l_component_type
14520 , p_component_code => l_component_code
14521 , p_component_type_code => l_component_type_code
14522 , p_component_appl_id => l_component_appl_id
14523 , p_amb_context_code => l_amb_context_code
14524 , p_entity_code => 'AP_PAYMENTS'
14525 , p_event_class_code => 'PAYMENTS'
14526 , p_side => 'CREDIT'
14527 );
14528
14532 p_application_id => p_application_id
14529 END IF;
14530
14531 l_segment := AcctDerRule_8(
14533 , p_ae_header_id => l_ae_header_id
14534 , p_source_16 => p_source_16
14535 , p_source_16_meaning => p_source_16_meaning
14536 , p_source_19 => p_source_19
14537 , p_source_19_meaning => p_source_19_meaning
14538 , p_source_20 => p_source_20
14539 , x_transaction_coa_id => l_adr_transaction_coa_id
14540 , x_accounting_coa_id => l_adr_accounting_coa_id
14541 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14542 , x_flex_value_set_id => l_adr_flex_value_set_id
14543 , x_value_type_code => l_adr_value_type_code
14544 , x_value_combination_id => l_adr_value_combination_id
14545 , x_value_segment_code => l_adr_value_segment_code
14546 , p_side => 'DEBIT'
14547 , p_override_seg_flag => 'Y'
14548 );
14549
14550 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14551
14552 xla_ae_lines_pkg.set_segment(
14553 p_to_segment_code => 'GL_ACCOUNT'
14554 , p_segment_value => l_segment
14555 , p_from_segment_code => l_adr_value_segment_code
14556 , p_from_combination_id => l_adr_value_combination_id
14557 , p_value_type_code => l_adr_value_type_code
14558 , p_transaction_coa_id => l_adr_transaction_coa_id
14559 , p_accounting_coa_id => l_adr_accounting_coa_id
14560 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14561 , p_flex_value_set_id => l_adr_flex_value_set_id
14562 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14563 , p_adr_type_code => 'S'
14564 , p_component_type => l_component_type
14565 , p_component_code => l_component_code
14566 , p_component_type_code => l_component_type_code
14567 , p_component_appl_id => l_component_appl_id
14568 , p_amb_context_code => l_amb_context_code
14569 , p_entity_code => 'AP_PAYMENTS'
14570 , p_event_class_code => 'PAYMENTS'
14571 , p_side => 'DEBIT'
14572 );
14573
14574 END IF;
14575
14576 l_segment := AcctDerRule_17(
14577 p_application_id => p_application_id
14578 , p_ae_header_id => l_ae_header_id
14579 , p_source_16 => p_source_16
14580 , p_source_16_meaning => p_source_16_meaning
14581 , p_source_19 => p_source_19
14582 , p_source_19_meaning => p_source_19_meaning
14583 , p_source_29 => p_source_29
14584 , x_transaction_coa_id => l_adr_transaction_coa_id
14585 , x_accounting_coa_id => l_adr_accounting_coa_id
14586 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14587 , x_flex_value_set_id => l_adr_flex_value_set_id
14588 , x_value_type_code => l_adr_value_type_code
14589 , x_value_combination_id => l_adr_value_combination_id
14590 , x_value_segment_code => l_adr_value_segment_code
14591 , p_side => 'ALL'
14592 , p_override_seg_flag => 'Y'
14593 );
14594
14595 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14596
14597 xla_ae_lines_pkg.set_segment(
14598 p_to_segment_code => 'GL_BALANCING'
14599 , p_segment_value => l_segment
14600 , p_from_segment_code => l_adr_value_segment_code
14601 , p_from_combination_id => l_adr_value_combination_id
14602 , p_value_type_code => l_adr_value_type_code
14603 , p_transaction_coa_id => l_adr_transaction_coa_id
14604 , p_accounting_coa_id => l_adr_accounting_coa_id
14605 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14606 , p_flex_value_set_id => l_adr_flex_value_set_id
14607 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
14608 , p_adr_type_code => 'S'
14609 , p_component_type => l_component_type
14610 , p_component_code => l_component_code
14611 , p_component_type_code => l_component_type_code
14612 , p_component_appl_id => l_component_appl_id
14613 , p_amb_context_code => l_amb_context_code
14614 , p_entity_code => 'AP_PAYMENTS'
14615 , p_event_class_code => 'PAYMENTS'
14616 , p_side => 'ALL'
14617 );
14618
14619 END IF;
14620
14621 --
14622 --
14623 END IF;
14624
14625 --
14626 -- Update the line information that should be overwritten
14627 --
14628 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14629 p_header_num => 1);
14630 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14631
14632 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14633
14634 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14635 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14636 END IF;
14637
14638 --
14639 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14640 --
14644 ---------------------------------------------------------------------------------------------------
14641 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14642 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14643 ELSE
14645 -- 4262811a Switch Sign
14646 ---------------------------------------------------------------------------------------------------
14647 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14649 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14650 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14651 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14652 -- 5132302
14653 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14654 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14655
14656 END IF;
14657
14658 -- 4955764
14659 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14660 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14661
14662
14663 XLA_AE_LINES_PKG.ValidateCurrentLine;
14664 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14665
14666 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14667 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14668 ,p_balance_type_code => l_balance_type_code);
14669
14670 END IF;
14671
14672 -----------------------------------------------------------------------------------------
14673 -- 4262811 Multiperiod Accounting
14674 -----------------------------------------------------------------------------------------
14675 -- No MPA option is assigned.
14676
14677
14678 END IF;
14679 END IF;
14680 --
14681
14682 --
14683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14684 trace
14685 (p_msg => 'END of AcctLineType_49'
14686 ,p_level => C_LEVEL_PROCEDURE
14687 ,p_module => l_log_module);
14688 END IF;
14689 --
14690 EXCEPTION
14691 WHEN xla_exceptions_pkg.application_exception THEN
14692 RAISE;
14693 WHEN OTHERS THEN
14694 xla_exceptions_pkg.raise_message
14695 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_49');
14696 END AcctLineType_49;
14697 --
14698
14699 ---------------------------------------
14700 --
14701 -- PRIVATE FUNCTION
14702 -- AcctLineType_50
14703 --
14704 ---------------------------------------
14705 PROCEDURE AcctLineType_50 (
14706 p_application_id IN NUMBER
14707 ,p_event_id IN NUMBER
14708 ,p_calculate_acctd_flag IN VARCHAR2
14709 ,p_calculate_g_l_flag IN VARCHAR2
14710 ,p_actual_flag IN OUT VARCHAR2
14711 ,p_balance_type_code OUT VARCHAR2
14712 ,p_gain_or_loss_ref OUT VARCHAR2
14713
14714 --Automatic Offsets Value
14715 , p_source_16 IN VARCHAR2
14716 , p_source_16_meaning IN VARCHAR2
14717 --Purchase Order Rate Variance Gain Account
14718 , p_source_17 IN NUMBER
14719 --Destination Type of the PO Distribution
14720 , p_source_19 IN VARCHAR2
14721 , p_source_19_meaning IN VARCHAR2
14722 --Purchase Order Rate Variance Loss Account
14723 , p_source_20 IN NUMBER
14724 --Payment Distribution (Payment Rate) Ledger Amount
14725 , p_source_21 IN NUMBER
14726 --Payment Distribution (Cleared Rate) Ledger Amount
14727 , p_source_22 IN NUMBER
14728 --Invoice Distribution Account
14729 , p_source_29 IN NUMBER
14730 --Invoice Distribution Type
14731 , p_source_32 IN VARCHAR2
14732 , p_source_32_meaning IN VARCHAR2
14733 --Automatic Offsets Flag
14734 , p_source_42 IN VARCHAR2
14735 , p_source_42_meaning IN VARCHAR2
14736 --When to Account for Payment Option
14737 , p_source_50 IN VARCHAR2
14738 --Payment Distribution Type
14739 , p_source_51 IN VARCHAR2
14740 , p_source_51_meaning IN VARCHAR2
14741 --Accounting Reversal Indicator
14742 , p_source_52 IN VARCHAR2
14743 --Business Flow Accounts Payable Application Identifier
14744 , p_source_54 IN NUMBER
14745 --Payment Distribution Identifier
14746 , p_source_59 IN NUMBER
14747 --Distribution Link Type
14748 , p_source_60 IN VARCHAR2
14749 --Override Accounted Amount Indicator
14750 , p_source_64 IN VARCHAR2
14751 , p_source_64_meaning IN VARCHAR2
14752 --Payment Supplier Identifier
14753 , p_source_65 IN NUMBER
14754 --Payment Supplier Site Identifier
14755 , p_source_66 IN NUMBER
14756 --Third Party Type
14757 , p_source_67 IN VARCHAR2
14758 --Payment Distribution Reversed Identifier
14759 , p_source_68 IN NUMBER
14760 --Invoice Distribution Tax Line Identifier
14761 , p_source_69 IN NUMBER
14762 --Invoice Distribution Summary Tax Line Identifier
14766 , p_source_71_meaning IN VARCHAR2
14763 , p_source_70 IN NUMBER
14764 --Payment Type
14765 , p_source_71 IN VARCHAR2
14767 --Business Flow Invoice Distribution Type
14768 , p_source_73 IN VARCHAR2
14769 --Business Flow Invoice Entity Code
14770 , p_source_74 IN VARCHAR2
14771 --Business Flow Invoice Distribution Identifier
14772 , p_source_75 IN NUMBER
14773 --Business Flow Invoice Identifier
14774 , p_source_76 IN NUMBER
14775 --Invoice Distribution Tax Distribution Identifier from Tax
14776 , p_source_77 IN NUMBER
14777 --Accrue on Receipt Option
14778 , p_source_111 IN VARCHAR2
14779 , p_source_111_meaning IN VARCHAR2
14780 )
14781 IS
14782
14783 l_component_type VARCHAR2(80);
14784 l_component_code VARCHAR2(30);
14785 l_component_type_code VARCHAR2(1);
14786 l_component_appl_id INTEGER;
14787 l_amb_context_code VARCHAR2(30);
14788 l_entity_code VARCHAR2(30);
14789 l_event_class_code VARCHAR2(30);
14790 l_ae_header_id NUMBER;
14791 l_event_type_code VARCHAR2(30);
14792 l_line_definition_code VARCHAR2(30);
14793 l_line_definition_owner_code VARCHAR2(1);
14794 --
14795 -- adr variables
14796 l_segment VARCHAR2(30);
14797 l_ccid NUMBER;
14798 l_adr_transaction_coa_id NUMBER;
14799 l_adr_accounting_coa_id NUMBER;
14800 l_adr_flexfield_segment_code VARCHAR2(30);
14801 l_adr_flex_value_set_id NUMBER;
14802 l_adr_value_type_code VARCHAR2(30);
14803 l_adr_value_combination_id NUMBER;
14804 l_adr_value_segment_code VARCHAR2(30);
14805
14806 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14807 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14808 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14809 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14810
14811 -- 4262811 Variables ------------------------------------------------------------------------------------------
14812 l_entered_amt_idx NUMBER;
14813 l_accted_amt_idx NUMBER;
14814 l_acc_rev_flag VARCHAR2(1);
14815 l_accrual_line_num NUMBER;
14816 l_tmp_amt NUMBER;
14817 l_acc_rev_natural_side_code VARCHAR2(1);
14818
14819 l_num_entries NUMBER;
14820 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14821 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14822 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14823 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14824 l_recog_line_1 NUMBER;
14825 l_recog_line_2 NUMBER;
14826
14827 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14828 l_bflow_applied_to_amt NUMBER; -- 5132302
14829 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14830
14831 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14832
14833 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14834 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14835
14836 ---------------------------------------------------------------------------------------------------------------
14837
14838
14839 --
14840 -- bulk performance
14841 --
14842 l_balance_type_code VARCHAR2(1);
14843 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14844 l_log_module VARCHAR2(240);
14845
14846 --
14847 -- Upgrade strategy
14848 --
14849 l_actual_upg_option VARCHAR2(1);
14850 l_enc_upg_option VARCHAR2(1);
14851
14852 --
14853 BEGIN
14854 --
14855 IF g_log_enabled THEN
14856 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
14857 END IF;
14858 --
14859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14860
14861 trace
14862 (p_msg => 'BEGIN of AcctLineType_50'
14863 ,p_level => C_LEVEL_PROCEDURE
14864 ,p_module => l_log_module);
14865
14866 END IF;
14867 --
14868 l_component_type := 'AMB_JLT';
14869 l_component_code := 'AP_ALC_TAX_EX_RATE_VAR_REF';
14870 l_component_type_code := 'S';
14871 l_component_appl_id := 200;
14872 l_amb_context_code := 'DEFAULT';
14873 l_entity_code := 'AP_PAYMENTS';
14874 l_event_class_code := 'REFUNDS';
14875 l_event_type_code := 'REFUNDS_ALL';
14876 l_line_definition_owner_code := 'S';
14877 l_line_definition_code := 'CASH_REFUNDS_ALL';
14878 --
14879 l_balance_type_code := 'A';
14880 l_segment := NULL;
14881 l_ccid := NULL;
14882 l_adr_transaction_coa_id := NULL;
14883 l_adr_accounting_coa_id := NULL;
14884 l_adr_flexfield_segment_code := NULL;
14885 l_adr_flex_value_set_id := NULL;
14886 l_adr_value_type_code := NULL;
14887 l_adr_value_combination_id := NULL;
14888 l_adr_value_segment_code := NULL;
14889
14890 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14894
14891 l_bflow_class_code := ''; -- 4219869 Business Flow
14892 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14893 l_budgetary_control_flag := 'N';
14895 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14896 l_bflow_applied_to_amt := NULL; -- 5132302
14897 l_entered_amt_idx := NULL; -- 4262811
14898 l_accted_amt_idx := NULL; -- 4262811
14899 l_acc_rev_flag := NULL; -- 4262811
14900 l_accrual_line_num := NULL; -- 4262811
14901 l_tmp_amt := NULL; -- 4262811
14902 --
14903 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14904 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
14905 return;
14906 END IF;
14907
14908 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14909 l_balance_type_code <> 'B' THEN
14910 IF NVL(p_source_50,'
14911 ') <> 'CLEAR_CLEAR' AND
14912 NVL(p_source_32,'
14913 ') = 'NONREC_TAX' AND
14914 NVL(p_source_111,'
14915 ') = 'Y' AND
14916 (NVL(p_source_51,'
14917 ') = 'CASH' OR
14918 NVL(p_source_51,'
14919 ') = 'DISCOUNT') AND
14920 NVL(p_source_71,'
14921 ') = 'R'
14922 THEN
14923
14924 --
14925 XLA_AE_LINES_PKG.SetNewLine;
14926
14927 p_balance_type_code := l_balance_type_code;
14928 -- set the flag so later we will know whether the gain loss line needs to be created
14929
14930 IF(l_balance_type_code = 'A' ) THEN
14931 p_actual_flag :='G';
14932 END IF;
14933
14934 --
14935 -- bulk performance
14936 --
14937 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14938 p_header_num => 0); -- 4262811
14939 --
14940 -- set accounting line options
14941 --
14942 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14943 p_natural_side_code => 'G'
14944 , p_gain_or_loss_flag => 'N'
14945 , p_gl_transfer_mode_code => 'S'
14946 , p_acct_entry_type_code => 'A'
14947 , p_switch_side_flag => ''
14948 , p_merge_duplicate_code => 'A'
14949 );
14950 --
14951 l_acc_rev_natural_side_code := 'C'; -- 4262811
14952 --
14953 --
14954 -- set accounting line type info
14955 --
14956 xla_ae_lines_pkg.SetAcctLineType
14957 (p_component_type => l_component_type
14958 ,p_event_type_code => l_event_type_code
14959 ,p_line_definition_owner_code => l_line_definition_owner_code
14960 ,p_line_definition_code => l_line_definition_code
14961 ,p_accounting_line_code => l_component_code
14962 ,p_accounting_line_type_code => l_component_type_code
14963 ,p_accounting_line_appl_id => l_component_appl_id
14964 ,p_amb_context_code => l_amb_context_code
14965 ,p_entity_code => l_entity_code
14966 ,p_event_class_code => l_event_class_code);
14967 --
14968 -- set accounting class
14969 --
14970 xla_ae_lines_pkg.SetAcctClass(
14971 p_accounting_class_code => 'TERV'
14972 , p_ae_header_id => l_ae_header_id
14973 );
14974
14975 --
14976 -- set rounding class
14977 --
14978 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14979 'TERV';
14980
14981 --
14982 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14983 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14984 --
14985 -- bulk performance
14986 --
14987 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14988
14989 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14990 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14991
14992 -- 4955764
14993 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14994 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14995
14996 -- 4458381 Public Sector Enh
14997
14998 --
14999 -- set accounting attributes for the line type
15000 --
15001 l_entered_amt_idx := NULL;
15002 l_accted_amt_idx := 9;
15003 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15004 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15005 l_rec_acct_attrs.array_char_value(1) := p_source_52;
15006 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
15007 l_rec_acct_attrs.array_num_value(2) := p_source_54;
15008 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15009 l_rec_acct_attrs.array_char_value(3) := p_source_73;
15010 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
15011 l_rec_acct_attrs.array_char_value(4) := p_source_74;
15012 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
15013 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
15014 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15018 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
15015 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
15016 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
15017 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
15019 l_rec_acct_attrs.array_char_value(8) := p_source_60;
15020 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15021 l_rec_acct_attrs.array_num_value(9) := p_source_21;
15022 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
15023 l_rec_acct_attrs.array_char_value(10) := p_source_64;
15024 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
15025 l_rec_acct_attrs.array_num_value(11) := p_source_65;
15026 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
15027 l_rec_acct_attrs.array_num_value(12) := p_source_66;
15028 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
15029 l_rec_acct_attrs.array_char_value(13) := p_source_67;
15030 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
15031 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_68);
15032 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
15033 l_rec_acct_attrs.array_char_value(15) := p_source_60;
15034 l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
15035 l_rec_acct_attrs.array_num_value(16) := p_source_69;
15036 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
15037 l_rec_acct_attrs.array_num_value(17) := p_source_77;
15038 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
15039 l_rec_acct_attrs.array_num_value(18) := p_source_70;
15040
15041 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15042 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15043
15044 ---------------------------------------------------------------------------------------------------------------
15045 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15046 ---------------------------------------------------------------------------------------------------------------
15047 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15048
15049 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15050 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15051
15052 IF xla_accounting_cache_pkg.GetValueChar
15053 (p_source_code => 'LEDGER_CATEGORY_CODE'
15054 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15055 AND l_bflow_method_code = 'PRIOR_ENTRY'
15056 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15057 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15058 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15059 )
15060 THEN
15061 xla_ae_lines_pkg.BflowUpgEntry
15062 (p_business_method_code => l_bflow_method_code
15063 ,p_business_class_code => l_bflow_class_code
15064 ,p_balance_type => l_balance_type_code);
15065 ELSE
15066 NULL;
15067 -- No business flow processing for business flow method of NONE.
15068 END IF;
15069
15070 --
15071 -- call analytical criteria
15072 --
15073
15074 --
15075 -- call description
15076 --
15077 -- No description or it is inherited.
15078 --
15079 -- call ADRs
15080 -- Bug 4922099
15081 --
15082 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15083 (NVL(l_actual_upg_option, 'N') = 'O') OR
15084 (NVL(l_enc_upg_option, 'N') = 'O')
15085 )
15086 THEN
15087 NULL;
15088 --
15089 --
15090
15091 l_ccid := AcctDerRule_24(
15092 p_application_id => p_application_id
15093 , p_ae_header_id => l_ae_header_id
15094 , p_source_16 => p_source_16
15095 , p_source_16_meaning => p_source_16_meaning
15096 , p_source_17 => p_source_17
15097 , p_source_19 => p_source_19
15098 , p_source_19_meaning => p_source_19_meaning
15099 , p_source_20 => p_source_20
15100 , p_source_21 => p_source_21
15101 , p_source_22 => p_source_22
15102 , p_source_29 => p_source_29
15103 , p_source_42 => p_source_42
15104 , p_source_42_meaning => p_source_42_meaning
15105 , x_transaction_coa_id => l_adr_transaction_coa_id
15106 , x_accounting_coa_id => l_adr_accounting_coa_id
15107 , x_value_type_code => l_adr_value_type_code
15108 , p_side => 'ALL'
15109 );
15110
15111 xla_ae_lines_pkg.set_ccid(
15112 p_code_combination_id => l_ccid
15113 , p_value_type_code => l_adr_value_type_code
15114 , p_transaction_coa_id => l_adr_transaction_coa_id
15115 , p_accounting_coa_id => l_adr_accounting_coa_id
15116 , p_adr_code => 'AP_ERV_TAXERV_CASH'
15117 , p_adr_type_code => 'S'
15118 , p_component_type => l_component_type
15119 , p_component_code => l_component_code
15120 , p_component_type_code => l_component_type_code
15121 , p_component_appl_id => l_component_appl_id
15125
15122 , p_amb_context_code => l_amb_context_code
15123 , p_side => 'ALL'
15124 );
15126
15127 l_segment := AcctDerRule_7(
15128 p_application_id => p_application_id
15129 , p_ae_header_id => l_ae_header_id
15130 , p_source_16 => p_source_16
15131 , p_source_16_meaning => p_source_16_meaning
15132 , p_source_17 => p_source_17
15133 , p_source_19 => p_source_19
15134 , p_source_19_meaning => p_source_19_meaning
15135 , x_transaction_coa_id => l_adr_transaction_coa_id
15136 , x_accounting_coa_id => l_adr_accounting_coa_id
15137 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15138 , x_flex_value_set_id => l_adr_flex_value_set_id
15139 , x_value_type_code => l_adr_value_type_code
15140 , x_value_combination_id => l_adr_value_combination_id
15141 , x_value_segment_code => l_adr_value_segment_code
15142 , p_side => 'CREDIT'
15143 , p_override_seg_flag => 'Y'
15144 );
15145
15146 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15147
15148 xla_ae_lines_pkg.set_segment(
15149 p_to_segment_code => 'GL_ACCOUNT'
15150 , p_segment_value => l_segment
15151 , p_from_segment_code => l_adr_value_segment_code
15152 , p_from_combination_id => l_adr_value_combination_id
15153 , p_value_type_code => l_adr_value_type_code
15154 , p_transaction_coa_id => l_adr_transaction_coa_id
15155 , p_accounting_coa_id => l_adr_accounting_coa_id
15156 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15157 , p_flex_value_set_id => l_adr_flex_value_set_id
15158 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15159 , p_adr_type_code => 'S'
15160 , p_component_type => l_component_type
15161 , p_component_code => l_component_code
15162 , p_component_type_code => l_component_type_code
15163 , p_component_appl_id => l_component_appl_id
15164 , p_amb_context_code => l_amb_context_code
15165 , p_entity_code => 'AP_PAYMENTS'
15166 , p_event_class_code => 'REFUNDS'
15167 , p_side => 'CREDIT'
15168 );
15169
15170 END IF;
15171
15172 l_segment := AcctDerRule_8(
15173 p_application_id => p_application_id
15174 , p_ae_header_id => l_ae_header_id
15175 , p_source_16 => p_source_16
15176 , p_source_16_meaning => p_source_16_meaning
15177 , p_source_19 => p_source_19
15178 , p_source_19_meaning => p_source_19_meaning
15179 , p_source_20 => p_source_20
15180 , x_transaction_coa_id => l_adr_transaction_coa_id
15181 , x_accounting_coa_id => l_adr_accounting_coa_id
15182 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15183 , x_flex_value_set_id => l_adr_flex_value_set_id
15184 , x_value_type_code => l_adr_value_type_code
15185 , x_value_combination_id => l_adr_value_combination_id
15186 , x_value_segment_code => l_adr_value_segment_code
15187 , p_side => 'DEBIT'
15188 , p_override_seg_flag => 'Y'
15189 );
15190
15191 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15192
15193 xla_ae_lines_pkg.set_segment(
15194 p_to_segment_code => 'GL_ACCOUNT'
15195 , p_segment_value => l_segment
15196 , p_from_segment_code => l_adr_value_segment_code
15197 , p_from_combination_id => l_adr_value_combination_id
15198 , p_value_type_code => l_adr_value_type_code
15199 , p_transaction_coa_id => l_adr_transaction_coa_id
15200 , p_accounting_coa_id => l_adr_accounting_coa_id
15201 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15202 , p_flex_value_set_id => l_adr_flex_value_set_id
15203 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15204 , p_adr_type_code => 'S'
15205 , p_component_type => l_component_type
15206 , p_component_code => l_component_code
15207 , p_component_type_code => l_component_type_code
15208 , p_component_appl_id => l_component_appl_id
15209 , p_amb_context_code => l_amb_context_code
15210 , p_entity_code => 'AP_PAYMENTS'
15211 , p_event_class_code => 'REFUNDS'
15212 , p_side => 'DEBIT'
15213 );
15214
15215 END IF;
15216
15217 l_segment := AcctDerRule_17(
15218 p_application_id => p_application_id
15219 , p_ae_header_id => l_ae_header_id
15220 , p_source_16 => p_source_16
15221 , p_source_16_meaning => p_source_16_meaning
15222 , p_source_19 => p_source_19
15223 , p_source_19_meaning => p_source_19_meaning
15224 , p_source_29 => p_source_29
15225 , x_transaction_coa_id => l_adr_transaction_coa_id
15226 , x_accounting_coa_id => l_adr_accounting_coa_id
15227 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15228 , x_flex_value_set_id => l_adr_flex_value_set_id
15229 , x_value_type_code => l_adr_value_type_code
15233 , p_override_seg_flag => 'Y'
15230 , x_value_combination_id => l_adr_value_combination_id
15231 , x_value_segment_code => l_adr_value_segment_code
15232 , p_side => 'ALL'
15234 );
15235
15236 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15237
15238 xla_ae_lines_pkg.set_segment(
15239 p_to_segment_code => 'GL_BALANCING'
15240 , p_segment_value => l_segment
15241 , p_from_segment_code => l_adr_value_segment_code
15242 , p_from_combination_id => l_adr_value_combination_id
15243 , p_value_type_code => l_adr_value_type_code
15244 , p_transaction_coa_id => l_adr_transaction_coa_id
15245 , p_accounting_coa_id => l_adr_accounting_coa_id
15246 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15247 , p_flex_value_set_id => l_adr_flex_value_set_id
15248 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
15249 , p_adr_type_code => 'S'
15250 , p_component_type => l_component_type
15251 , p_component_code => l_component_code
15252 , p_component_type_code => l_component_type_code
15253 , p_component_appl_id => l_component_appl_id
15254 , p_amb_context_code => l_amb_context_code
15255 , p_entity_code => 'AP_PAYMENTS'
15256 , p_event_class_code => 'REFUNDS'
15257 , p_side => 'ALL'
15258 );
15259
15260 END IF;
15261
15262 --
15263 --
15264 END IF;
15265 --
15266 -- Bug 4922099
15267 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15268 (NVL(l_enc_upg_option, 'N') = 'O')
15269 ) AND
15270 (l_bflow_method_code = 'PRIOR_ENTRY')
15271 )
15272 THEN
15273 IF
15274 --
15275 1 = 2
15276 --
15277 THEN
15278 xla_accounting_err_pkg.build_message
15279 (p_appli_s_name => 'XLA'
15280 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15281 ,p_token_1 => 'LINE_NUMBER'
15282 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15283 ,p_token_2 => 'LINE_TYPE_NAME'
15284 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15285 l_component_type
15286 ,l_component_code
15287 ,l_component_type_code
15288 ,l_component_appl_id
15289 ,l_amb_context_code
15290 ,l_entity_code
15291 ,l_event_class_code
15292 )
15293 ,p_token_3 => 'OWNER'
15294 ,p_value_3 => xla_lookups_pkg.get_meaning(
15295 p_lookup_type => 'XLA_OWNER_TYPE'
15296 ,p_lookup_code => l_component_type_code
15297 )
15298 ,p_token_4 => 'PRODUCT_NAME'
15299 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15300 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15301 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15302 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15303 ,p_ae_header_id => NULL
15304 );
15305
15306 IF (C_LEVEL_ERROR>= g_log_level) THEN
15307 trace
15308 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15309 ,p_level => C_LEVEL_ERROR
15310 ,p_module => l_log_module);
15311 END IF;
15312 END IF;
15313 END IF;
15314 --
15315 --
15316 ------------------------------------------------------------------------------------------------
15317 -- 4219869 Business Flow
15318 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15319 -- Prior Entry. Currently, the following code is always generated.
15320 ------------------------------------------------------------------------------------------------
15321 XLA_AE_LINES_PKG.ValidateCurrentLine;
15322
15323 ------------------------------------------------------------------------------------
15324 -- 4219869 Business Flow
15325 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15326 ------------------------------------------------------------------------------------
15327 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15328
15332 ----------------------------------------------------------------------------------
15329 ----------------------------------------------------------------------------------
15330 -- 4219869 Business Flow
15331 -- Update journal entry status -- Need to generate this within IF <condition>
15333 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15334 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15335 ,p_balance_type_code => l_balance_type_code
15336 );
15337
15338 -------------------------------------------------------------------------------------------
15339 -- 4262811 - Generate the Accrual Reversal lines
15340 -------------------------------------------------------------------------------------------
15341 BEGIN
15342 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15343 (g_array_event(p_event_id).array_value_num('header_index'));
15344 IF l_acc_rev_flag IS NULL THEN
15345 l_acc_rev_flag := 'N';
15346 END IF;
15347 EXCEPTION
15348 WHEN OTHERS THEN
15349 l_acc_rev_flag := 'N';
15350 END;
15351 --
15352 IF (l_acc_rev_flag = 'Y') THEN
15353
15354 -- 4645092 ------------------------------------------------------------------------------
15355 -- To allow MPA report to determine if it should generate report process
15356 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15357 ------------------------------------------------------------------------------------------
15358
15359 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15360 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15361 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15362 -- call ADRs
15363 -- Bug 4922099
15364 --
15365 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15366 (NVL(l_actual_upg_option, 'N') = 'O') OR
15367 (NVL(l_enc_upg_option, 'N') = 'O')
15368 )
15369 THEN
15370 NULL;
15371 --
15372 --
15373
15374 l_ccid := AcctDerRule_24(
15375 p_application_id => p_application_id
15376 , p_ae_header_id => l_ae_header_id
15377 , p_source_16 => p_source_16
15378 , p_source_16_meaning => p_source_16_meaning
15379 , p_source_17 => p_source_17
15380 , p_source_19 => p_source_19
15381 , p_source_19_meaning => p_source_19_meaning
15382 , p_source_20 => p_source_20
15383 , p_source_21 => p_source_21
15384 , p_source_22 => p_source_22
15385 , p_source_29 => p_source_29
15386 , p_source_42 => p_source_42
15387 , p_source_42_meaning => p_source_42_meaning
15388 , x_transaction_coa_id => l_adr_transaction_coa_id
15389 , x_accounting_coa_id => l_adr_accounting_coa_id
15390 , x_value_type_code => l_adr_value_type_code
15391 , p_side => 'ALL'
15392 );
15393
15394 xla_ae_lines_pkg.set_ccid(
15395 p_code_combination_id => l_ccid
15396 , p_value_type_code => l_adr_value_type_code
15397 , p_transaction_coa_id => l_adr_transaction_coa_id
15398 , p_accounting_coa_id => l_adr_accounting_coa_id
15399 , p_adr_code => 'AP_ERV_TAXERV_CASH'
15400 , p_adr_type_code => 'S'
15401 , p_component_type => l_component_type
15402 , p_component_code => l_component_code
15403 , p_component_type_code => l_component_type_code
15404 , p_component_appl_id => l_component_appl_id
15405 , p_amb_context_code => l_amb_context_code
15406 , p_side => 'ALL'
15407 );
15408
15409
15410 l_segment := AcctDerRule_7(
15411 p_application_id => p_application_id
15412 , p_ae_header_id => l_ae_header_id
15413 , p_source_16 => p_source_16
15414 , p_source_16_meaning => p_source_16_meaning
15415 , p_source_17 => p_source_17
15416 , p_source_19 => p_source_19
15417 , p_source_19_meaning => p_source_19_meaning
15418 , x_transaction_coa_id => l_adr_transaction_coa_id
15419 , x_accounting_coa_id => l_adr_accounting_coa_id
15420 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15421 , x_flex_value_set_id => l_adr_flex_value_set_id
15422 , x_value_type_code => l_adr_value_type_code
15423 , x_value_combination_id => l_adr_value_combination_id
15424 , x_value_segment_code => l_adr_value_segment_code
15425 , p_side => 'CREDIT'
15426 , p_override_seg_flag => 'Y'
15427 );
15428
15429 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15430
15431 xla_ae_lines_pkg.set_segment(
15432 p_to_segment_code => 'GL_ACCOUNT'
15433 , p_segment_value => l_segment
15434 , p_from_segment_code => l_adr_value_segment_code
15435 , p_from_combination_id => l_adr_value_combination_id
15436 , p_value_type_code => l_adr_value_type_code
15437 , p_transaction_coa_id => l_adr_transaction_coa_id
15438 , p_accounting_coa_id => l_adr_accounting_coa_id
15439 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15440 , p_flex_value_set_id => l_adr_flex_value_set_id
15441 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15442 , p_adr_type_code => 'S'
15443 , p_component_type => l_component_type
15444 , p_component_code => l_component_code
15448 , p_entity_code => 'AP_PAYMENTS'
15445 , p_component_type_code => l_component_type_code
15446 , p_component_appl_id => l_component_appl_id
15447 , p_amb_context_code => l_amb_context_code
15449 , p_event_class_code => 'REFUNDS'
15450 , p_side => 'CREDIT'
15451 );
15452
15453 END IF;
15454
15455 l_segment := AcctDerRule_8(
15456 p_application_id => p_application_id
15457 , p_ae_header_id => l_ae_header_id
15458 , p_source_16 => p_source_16
15459 , p_source_16_meaning => p_source_16_meaning
15460 , p_source_19 => p_source_19
15461 , p_source_19_meaning => p_source_19_meaning
15462 , p_source_20 => p_source_20
15463 , x_transaction_coa_id => l_adr_transaction_coa_id
15464 , x_accounting_coa_id => l_adr_accounting_coa_id
15465 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15466 , x_flex_value_set_id => l_adr_flex_value_set_id
15467 , x_value_type_code => l_adr_value_type_code
15468 , x_value_combination_id => l_adr_value_combination_id
15469 , x_value_segment_code => l_adr_value_segment_code
15470 , p_side => 'DEBIT'
15471 , p_override_seg_flag => 'Y'
15472 );
15473
15474 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15475
15476 xla_ae_lines_pkg.set_segment(
15477 p_to_segment_code => 'GL_ACCOUNT'
15478 , p_segment_value => l_segment
15479 , p_from_segment_code => l_adr_value_segment_code
15480 , p_from_combination_id => l_adr_value_combination_id
15481 , p_value_type_code => l_adr_value_type_code
15482 , p_transaction_coa_id => l_adr_transaction_coa_id
15483 , p_accounting_coa_id => l_adr_accounting_coa_id
15484 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15485 , p_flex_value_set_id => l_adr_flex_value_set_id
15486 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15487 , p_adr_type_code => 'S'
15488 , p_component_type => l_component_type
15489 , p_component_code => l_component_code
15490 , p_component_type_code => l_component_type_code
15491 , p_component_appl_id => l_component_appl_id
15492 , p_amb_context_code => l_amb_context_code
15493 , p_entity_code => 'AP_PAYMENTS'
15494 , p_event_class_code => 'REFUNDS'
15495 , p_side => 'DEBIT'
15496 );
15497
15498 END IF;
15499
15500 l_segment := AcctDerRule_17(
15501 p_application_id => p_application_id
15502 , p_ae_header_id => l_ae_header_id
15503 , p_source_16 => p_source_16
15504 , p_source_16_meaning => p_source_16_meaning
15505 , p_source_19 => p_source_19
15506 , p_source_19_meaning => p_source_19_meaning
15507 , p_source_29 => p_source_29
15508 , x_transaction_coa_id => l_adr_transaction_coa_id
15509 , x_accounting_coa_id => l_adr_accounting_coa_id
15510 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15511 , x_flex_value_set_id => l_adr_flex_value_set_id
15512 , x_value_type_code => l_adr_value_type_code
15513 , x_value_combination_id => l_adr_value_combination_id
15514 , x_value_segment_code => l_adr_value_segment_code
15515 , p_side => 'ALL'
15516 , p_override_seg_flag => 'Y'
15517 );
15518
15519 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15520
15521 xla_ae_lines_pkg.set_segment(
15522 p_to_segment_code => 'GL_BALANCING'
15523 , p_segment_value => l_segment
15524 , p_from_segment_code => l_adr_value_segment_code
15525 , p_from_combination_id => l_adr_value_combination_id
15526 , p_value_type_code => l_adr_value_type_code
15527 , p_transaction_coa_id => l_adr_transaction_coa_id
15528 , p_accounting_coa_id => l_adr_accounting_coa_id
15529 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15530 , p_flex_value_set_id => l_adr_flex_value_set_id
15531 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
15532 , p_adr_type_code => 'S'
15533 , p_component_type => l_component_type
15534 , p_component_code => l_component_code
15535 , p_component_type_code => l_component_type_code
15536 , p_component_appl_id => l_component_appl_id
15537 , p_amb_context_code => l_amb_context_code
15538 , p_entity_code => 'AP_PAYMENTS'
15539 , p_event_class_code => 'REFUNDS'
15540 , p_side => 'ALL'
15541 );
15542
15543 END IF;
15544
15545 --
15546 --
15547 END IF;
15548
15549 --
15550 -- Update the line information that should be overwritten
15551 --
15552 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15553 p_header_num => 1);
15554 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15555
15559 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15556 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15557
15558 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15560 END IF;
15561
15562 --
15563 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15564 --
15565 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15566 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15567 ELSE
15568 ---------------------------------------------------------------------------------------------------
15569 -- 4262811a Switch Sign
15570 ---------------------------------------------------------------------------------------------------
15571 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15574 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15576 -- 5132302
15577 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15579
15580 END IF;
15581
15582 -- 4955764
15583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15585
15586
15587 XLA_AE_LINES_PKG.ValidateCurrentLine;
15588 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15589
15590 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15591 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15592 ,p_balance_type_code => l_balance_type_code);
15593
15594 END IF;
15595
15596 -----------------------------------------------------------------------------------------
15597 -- 4262811 Multiperiod Accounting
15598 -----------------------------------------------------------------------------------------
15599 -- No MPA option is assigned.
15600
15601
15602 END IF;
15603 END IF;
15604 --
15605
15606 --
15607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15608 trace
15609 (p_msg => 'END of AcctLineType_50'
15610 ,p_level => C_LEVEL_PROCEDURE
15611 ,p_module => l_log_module);
15612 END IF;
15613 --
15614 EXCEPTION
15615 WHEN xla_exceptions_pkg.application_exception THEN
15616 RAISE;
15617 WHEN OTHERS THEN
15618 xla_exceptions_pkg.raise_message
15619 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_50');
15620 END AcctLineType_50;
15621 --
15622
15623 ---------------------------------------
15624 --
15625 -- PRIVATE FUNCTION
15626 -- AcctLineType_51
15627 --
15628 ---------------------------------------
15629 PROCEDURE AcctLineType_51 (
15630 p_application_id IN NUMBER
15631 ,p_event_id IN NUMBER
15632 ,p_calculate_acctd_flag IN VARCHAR2
15633 ,p_calculate_g_l_flag IN VARCHAR2
15634 ,p_actual_flag IN OUT VARCHAR2
15635 ,p_balance_type_code OUT VARCHAR2
15636 ,p_gain_or_loss_ref OUT VARCHAR2
15637
15638 --Automatic Offsets Value
15639 , p_source_16 IN VARCHAR2
15640 , p_source_16_meaning IN VARCHAR2
15641 --Purchase Order Rate Variance Gain Account
15642 , p_source_17 IN NUMBER
15643 --Invoice Distribution Ledger Amount
15644 , p_source_18 IN NUMBER
15645 --Destination Type of the PO Distribution
15646 , p_source_19 IN VARCHAR2
15647 , p_source_19_meaning IN VARCHAR2
15648 --Purchase Order Rate Variance Loss Account
15649 , p_source_20 IN NUMBER
15650 --Invoice Distribution Account
15651 , p_source_29 IN NUMBER
15652 --Automatic Offsets Flag
15653 , p_source_42 IN VARCHAR2
15654 , p_source_42_meaning IN VARCHAR2
15655 --Accounting Reversal Indicator
15656 , p_source_52 IN VARCHAR2
15657 --Business Flow Accounts Payable Application Identifier
15658 , p_source_54 IN NUMBER
15659 --Distribution Link Type
15660 , p_source_60 IN VARCHAR2
15661 --Override Accounted Amount Indicator
15662 , p_source_64 IN VARCHAR2
15663 , p_source_64_meaning IN VARCHAR2
15664 --Third Party Type
15665 , p_source_67 IN VARCHAR2
15666 --Invoice Distribution Tax Line Identifier
15667 , p_source_69 IN NUMBER
15668 --Invoice Distribution Summary Tax Line Identifier
15669 , p_source_70 IN NUMBER
15670 --Invoice Distribution Tax Distribution Identifier from Tax
15671 , p_source_77 IN NUMBER
15672 --Prepayment Distribution Type
15673 , p_source_78 IN VARCHAR2
15674 --Recipient Invoice Distribution Type
15675 , p_source_79 IN VARCHAR2
15679 --Invoice Identifier
15676 , p_source_79_meaning IN VARCHAR2
15677 --Prepayment Application Distribution Identifier
15678 , p_source_82 IN NUMBER
15680 , p_source_83 IN NUMBER
15681 --Business Flow Prepayment Invoice Distribution Type
15682 , p_source_84 IN VARCHAR2
15683 --Business Flow Prepayment Invoice Entity Code
15684 , p_source_85 IN VARCHAR2
15685 --Business Flow Prepayment Invoice Distribution Identifier
15686 , p_source_86 IN NUMBER
15687 --Business Flow Prepayment Invoice Identifier
15688 , p_source_87 IN NUMBER
15689 --Upgrade Encumbrance Credit Account Class
15690 , p_source_88 IN VARCHAR2
15691 --Payables Encumbrance Upgrade Credit Account
15692 , p_source_89 IN NUMBER
15693 --Payables Encumbrance Upgrade Credit Amount
15694 , p_source_90 IN NUMBER
15695 --Invoice Currency Code
15696 , p_source_91 IN VARCHAR2
15697 --Payables Encumbrance Upgrade Credit Base Amount
15698 , p_source_92 IN NUMBER
15699 --Upgrade Encumbrance Debit Account Class
15700 , p_source_93 IN VARCHAR2
15701 --Payables Encumbrance Upgrade Debit Account
15702 , p_source_94 IN NUMBER
15703 --Payables Encumbrance Upgrade Debit Amount
15704 , p_source_95 IN NUMBER
15705 --Payables Encumbrance Upgrade Debit Base Amount
15706 , p_source_96 IN NUMBER
15707 --Payables Encumbrance Upgrade Option
15708 , p_source_97 IN VARCHAR2
15709 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
15710 , p_source_100 IN NUMBER
15711 --Deferred Accounting End Date
15712 , p_source_101 IN DATE
15713 --Deferred Accounting Option
15714 , p_source_102 IN VARCHAR2
15715 --Deferred Accounting Start Date
15716 , p_source_103 IN DATE
15717 --Invoice Supplier Identifier
15718 , p_source_104 IN NUMBER
15719 --Invoice Supplier Site Identifier
15720 , p_source_105 IN NUMBER
15721 --Identifier of the Prepayment Application Reversed
15722 , p_source_106 IN NUMBER
15723 --Payables Upgrade Credit Encumbrance Type Identifier
15724 , p_source_107 IN NUMBER
15725 --Payables Upgrade Debit Encumbrance Type Identifier
15726 , p_source_108 IN NUMBER
15727 --Accrue on Receipt Option
15728 , p_source_111 IN VARCHAR2
15729 , p_source_111_meaning IN VARCHAR2
15730 )
15731 IS
15732
15733 l_component_type VARCHAR2(80);
15734 l_component_code VARCHAR2(30);
15735 l_component_type_code VARCHAR2(1);
15736 l_component_appl_id INTEGER;
15737 l_amb_context_code VARCHAR2(30);
15738 l_entity_code VARCHAR2(30);
15739 l_event_class_code VARCHAR2(30);
15740 l_ae_header_id NUMBER;
15741 l_event_type_code VARCHAR2(30);
15742 l_line_definition_code VARCHAR2(30);
15743 l_line_definition_owner_code VARCHAR2(1);
15744 --
15745 -- adr variables
15746 l_segment VARCHAR2(30);
15747 l_ccid NUMBER;
15748 l_adr_transaction_coa_id NUMBER;
15749 l_adr_accounting_coa_id NUMBER;
15750 l_adr_flexfield_segment_code VARCHAR2(30);
15751 l_adr_flex_value_set_id NUMBER;
15752 l_adr_value_type_code VARCHAR2(30);
15753 l_adr_value_combination_id NUMBER;
15754 l_adr_value_segment_code VARCHAR2(30);
15755
15756 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15757 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15758 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15759 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15760
15761 -- 4262811 Variables ------------------------------------------------------------------------------------------
15762 l_entered_amt_idx NUMBER;
15763 l_accted_amt_idx NUMBER;
15764 l_acc_rev_flag VARCHAR2(1);
15765 l_accrual_line_num NUMBER;
15766 l_tmp_amt NUMBER;
15767 l_acc_rev_natural_side_code VARCHAR2(1);
15768
15769 l_num_entries NUMBER;
15770 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15771 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15772 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15773 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15774 l_recog_line_1 NUMBER;
15775 l_recog_line_2 NUMBER;
15776
15777 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15778 l_bflow_applied_to_amt NUMBER; -- 5132302
15779 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15780
15781 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15782
15783 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15784 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15785
15786 ---------------------------------------------------------------------------------------------------------------
15787
15788
15789 --
15790 -- bulk performance
15791 --
15792 l_balance_type_code VARCHAR2(1);
15793 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15794 l_log_module VARCHAR2(240);
15795
15796 --
15797 -- Upgrade strategy
15798 --
15802 --
15799 l_actual_upg_option VARCHAR2(1);
15800 l_enc_upg_option VARCHAR2(1);
15801
15803 BEGIN
15804 --
15805 IF g_log_enabled THEN
15806 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
15807 END IF;
15808 --
15809 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15810
15811 trace
15812 (p_msg => 'BEGIN of AcctLineType_51'
15813 ,p_level => C_LEVEL_PROCEDURE
15814 ,p_module => l_log_module);
15815
15816 END IF;
15817 --
15818 l_component_type := 'AMB_JLT';
15819 l_component_code := 'AP_ALC_TERV_PREPAY_APP';
15820 l_component_type_code := 'S';
15821 l_component_appl_id := 200;
15822 l_amb_context_code := 'DEFAULT';
15823 l_entity_code := 'AP_INVOICES';
15824 l_event_class_code := 'PREPAYMENT APPLICATIONS';
15825 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
15826 l_line_definition_owner_code := 'S';
15827 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
15828 --
15829 l_balance_type_code := 'A';
15830 l_segment := NULL;
15831 l_ccid := NULL;
15832 l_adr_transaction_coa_id := NULL;
15833 l_adr_accounting_coa_id := NULL;
15834 l_adr_flexfield_segment_code := NULL;
15835 l_adr_flex_value_set_id := NULL;
15836 l_adr_value_type_code := NULL;
15837 l_adr_value_combination_id := NULL;
15838 l_adr_value_segment_code := NULL;
15839
15840 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15841 l_bflow_class_code := ''; -- 4219869 Business Flow
15842 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15843 l_budgetary_control_flag := 'N';
15844
15845 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15846 l_bflow_applied_to_amt := NULL; -- 5132302
15847 l_entered_amt_idx := NULL; -- 4262811
15848 l_accted_amt_idx := NULL; -- 4262811
15849 l_acc_rev_flag := NULL; -- 4262811
15850 l_accrual_line_num := NULL; -- 4262811
15851 l_tmp_amt := NULL; -- 4262811
15852 --
15853 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15854 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
15855 return;
15856 END IF;
15857
15858 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15859 l_balance_type_code <> 'B' THEN
15860 IF (NVL(p_source_78,'
15861 ') = 'PREPAY APPL' OR
15862 NVL(p_source_78,'
15863 ') = 'PREPAY APPL NONREC TAX' OR
15864 NVL(p_source_78,'
15865 ') = 'PREPAY APPL REC TAX') AND
15866 NVL(p_source_79,'
15867 ') = 'NONREC_TAX' AND
15868 NVL(p_source_111,'
15869 ') = 'Y'
15870 THEN
15871
15872 --
15873 XLA_AE_LINES_PKG.SetNewLine;
15874
15875 p_balance_type_code := l_balance_type_code;
15876 -- set the flag so later we will know whether the gain loss line needs to be created
15877
15878 IF(l_balance_type_code = 'A' ) THEN
15879 p_actual_flag :='G';
15880 END IF;
15881
15882 --
15883 -- bulk performance
15884 --
15885 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15886 p_header_num => 0); -- 4262811
15887 --
15888 -- set accounting line options
15889 --
15890 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15891 p_natural_side_code => 'G'
15892 , p_gain_or_loss_flag => 'N'
15893 , p_gl_transfer_mode_code => 'S'
15894 , p_acct_entry_type_code => 'A'
15895 , p_switch_side_flag => ''
15896 , p_merge_duplicate_code => 'A'
15897 );
15898 --
15899 l_acc_rev_natural_side_code := 'C'; -- 4262811
15900 --
15901 --
15902 -- set accounting line type info
15903 --
15904 xla_ae_lines_pkg.SetAcctLineType
15905 (p_component_type => l_component_type
15906 ,p_event_type_code => l_event_type_code
15907 ,p_line_definition_owner_code => l_line_definition_owner_code
15908 ,p_line_definition_code => l_line_definition_code
15909 ,p_accounting_line_code => l_component_code
15910 ,p_accounting_line_type_code => l_component_type_code
15911 ,p_accounting_line_appl_id => l_component_appl_id
15912 ,p_amb_context_code => l_amb_context_code
15913 ,p_entity_code => l_entity_code
15914 ,p_event_class_code => l_event_class_code);
15915 --
15916 -- set accounting class
15917 --
15918 xla_ae_lines_pkg.SetAcctClass(
15919 p_accounting_class_code => 'TERV'
15920 , p_ae_header_id => l_ae_header_id
15921 );
15922
15923 --
15924 -- set rounding class
15925 --
15926 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15927 'TERV';
15928
15929 --
15930 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15934 --
15931 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15932 --
15933 -- bulk performance
15935 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15936
15937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15938 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15939
15940 -- 4955764
15941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15943
15944 -- 4458381 Public Sector Enh
15945
15946 --
15947 -- set accounting attributes for the line type
15948 --
15949 l_entered_amt_idx := NULL;
15950 l_accted_amt_idx := 25;
15951 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15952 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15953 l_rec_acct_attrs.array_char_value(1) := p_source_52;
15954 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15955 l_rec_acct_attrs.array_num_value(2) :=
15956 xla_ae_sources_pkg.GetSystemSourceNum(
15957 p_source_code => 'XLA_EVENT_APPL_ID'
15958 , p_source_type_code => 'Y'
15959 , p_source_application_id => 602
15960 );
15961 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15962 l_rec_acct_attrs.array_char_value(3) := p_source_60;
15963 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15964 l_rec_acct_attrs.array_char_value(4) :=
15965 xla_ae_sources_pkg.GetSystemSourceChar(
15966 p_source_code => 'XLA_ENTITY_CODE'
15967 , p_source_type_code => 'Y'
15968 , p_source_application_id => 602
15969 );
15970 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15971 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
15972 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15973 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
15974 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15975 l_rec_acct_attrs.array_num_value(7) := p_source_54;
15976 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15977 l_rec_acct_attrs.array_char_value(8) := p_source_84;
15978 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15979 l_rec_acct_attrs.array_char_value(9) := p_source_85;
15980 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15981 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
15982 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15983 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
15984 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15985 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
15986 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15987 l_rec_acct_attrs.array_char_value(13) := p_source_60;
15988 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
15989 l_rec_acct_attrs.array_char_value(14) := p_source_88;
15990 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15991 l_rec_acct_attrs.array_num_value(15) := p_source_89;
15992 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15993 l_rec_acct_attrs.array_num_value(16) := p_source_90;
15994 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15995 l_rec_acct_attrs.array_char_value(17) := p_source_91;
15996 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15997 l_rec_acct_attrs.array_num_value(18) := p_source_92;
15998 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
15999 l_rec_acct_attrs.array_char_value(19) := p_source_93;
16000 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
16001 l_rec_acct_attrs.array_num_value(20) := p_source_94;
16002 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
16003 l_rec_acct_attrs.array_num_value(21) := p_source_95;
16004 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
16005 l_rec_acct_attrs.array_char_value(22) := p_source_91;
16006 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
16007 l_rec_acct_attrs.array_num_value(23) := p_source_96;
16008 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
16009 l_rec_acct_attrs.array_char_value(24) := p_source_97;
16010 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
16011 l_rec_acct_attrs.array_num_value(25) := p_source_100;
16012 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
16013 l_rec_acct_attrs.array_date_value(26) := p_source_101;
16014 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
16015 l_rec_acct_attrs.array_char_value(27) := p_source_102;
16016 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
16017 l_rec_acct_attrs.array_date_value(28) := p_source_103;
16018 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
16019 l_rec_acct_attrs.array_char_value(29) := p_source_64;
16020 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
16021 l_rec_acct_attrs.array_num_value(30) := p_source_104;
16022 l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
16023 l_rec_acct_attrs.array_num_value(31) := p_source_105;
16024 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
16028 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
16025 l_rec_acct_attrs.array_char_value(32) := p_source_67;
16026 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
16027 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
16029 l_rec_acct_attrs.array_char_value(34) := p_source_60;
16030 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
16031 l_rec_acct_attrs.array_num_value(35) := p_source_69;
16032 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
16033 l_rec_acct_attrs.array_num_value(36) := p_source_77;
16034 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
16035 l_rec_acct_attrs.array_num_value(37) := p_source_70;
16036 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
16037 l_rec_acct_attrs.array_num_value(38) := p_source_107;
16038 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
16039 l_rec_acct_attrs.array_num_value(39) := p_source_108;
16040
16041 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16042 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16043
16044 ---------------------------------------------------------------------------------------------------------------
16045 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16046 ---------------------------------------------------------------------------------------------------------------
16047 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16048
16049 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16050 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16051
16052 IF xla_accounting_cache_pkg.GetValueChar
16053 (p_source_code => 'LEDGER_CATEGORY_CODE'
16054 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16055 AND l_bflow_method_code = 'PRIOR_ENTRY'
16056 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16057 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16058 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16059 )
16060 THEN
16061 xla_ae_lines_pkg.BflowUpgEntry
16062 (p_business_method_code => l_bflow_method_code
16063 ,p_business_class_code => l_bflow_class_code
16064 ,p_balance_type => l_balance_type_code);
16065 ELSE
16066 NULL;
16067 -- No business flow processing for business flow method of NONE.
16068 END IF;
16069
16070 --
16071 -- call analytical criteria
16072 --
16073
16074 --
16075 -- call description
16076 --
16077 -- No description or it is inherited.
16078 --
16079 -- call ADRs
16080 -- Bug 4922099
16081 --
16082 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16083 (NVL(l_actual_upg_option, 'N') = 'O') OR
16084 (NVL(l_enc_upg_option, 'N') = 'O')
16085 )
16086 THEN
16087 NULL;
16088 --
16089 --
16090
16091 l_ccid := AcctDerRule_25(
16092 p_application_id => p_application_id
16093 , p_ae_header_id => l_ae_header_id
16094 , p_source_16 => p_source_16
16095 , p_source_16_meaning => p_source_16_meaning
16096 , p_source_17 => p_source_17
16097 , p_source_18 => p_source_18
16098 , p_source_19 => p_source_19
16099 , p_source_19_meaning => p_source_19_meaning
16100 , p_source_20 => p_source_20
16101 , p_source_29 => p_source_29
16102 , p_source_42 => p_source_42
16103 , p_source_42_meaning => p_source_42_meaning
16104 , x_transaction_coa_id => l_adr_transaction_coa_id
16105 , x_accounting_coa_id => l_adr_accounting_coa_id
16106 , x_value_type_code => l_adr_value_type_code
16107 , p_side => 'ALL'
16108 );
16109
16110 xla_ae_lines_pkg.set_ccid(
16111 p_code_combination_id => l_ccid
16112 , p_value_type_code => l_adr_value_type_code
16113 , p_transaction_coa_id => l_adr_transaction_coa_id
16114 , p_accounting_coa_id => l_adr_accounting_coa_id
16115 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16116 , p_adr_type_code => 'S'
16117 , p_component_type => l_component_type
16118 , p_component_code => l_component_code
16119 , p_component_type_code => l_component_type_code
16120 , p_component_appl_id => l_component_appl_id
16121 , p_amb_context_code => l_amb_context_code
16122 , p_side => 'ALL'
16123 );
16124
16125
16126 l_segment := AcctDerRule_7(
16127 p_application_id => p_application_id
16128 , p_ae_header_id => l_ae_header_id
16129 , p_source_16 => p_source_16
16130 , p_source_16_meaning => p_source_16_meaning
16131 , p_source_17 => p_source_17
16132 , p_source_19 => p_source_19
16133 , p_source_19_meaning => p_source_19_meaning
16134 , x_transaction_coa_id => l_adr_transaction_coa_id
16135 , x_accounting_coa_id => l_adr_accounting_coa_id
16136 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16137 , x_flex_value_set_id => l_adr_flex_value_set_id
16141 , p_side => 'CREDIT'
16138 , x_value_type_code => l_adr_value_type_code
16139 , x_value_combination_id => l_adr_value_combination_id
16140 , x_value_segment_code => l_adr_value_segment_code
16142 , p_override_seg_flag => 'Y'
16143 );
16144
16145 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16146
16147 xla_ae_lines_pkg.set_segment(
16148 p_to_segment_code => 'GL_ACCOUNT'
16149 , p_segment_value => l_segment
16150 , p_from_segment_code => l_adr_value_segment_code
16151 , p_from_combination_id => l_adr_value_combination_id
16152 , p_value_type_code => l_adr_value_type_code
16153 , p_transaction_coa_id => l_adr_transaction_coa_id
16154 , p_accounting_coa_id => l_adr_accounting_coa_id
16155 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16156 , p_flex_value_set_id => l_adr_flex_value_set_id
16157 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16158 , p_adr_type_code => 'S'
16159 , p_component_type => l_component_type
16160 , p_component_code => l_component_code
16161 , p_component_type_code => l_component_type_code
16162 , p_component_appl_id => l_component_appl_id
16163 , p_amb_context_code => l_amb_context_code
16164 , p_entity_code => 'AP_INVOICES'
16165 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16166 , p_side => 'CREDIT'
16167 );
16168
16169 END IF;
16170
16171 l_segment := AcctDerRule_8(
16172 p_application_id => p_application_id
16173 , p_ae_header_id => l_ae_header_id
16174 , p_source_16 => p_source_16
16175 , p_source_16_meaning => p_source_16_meaning
16176 , p_source_19 => p_source_19
16177 , p_source_19_meaning => p_source_19_meaning
16178 , p_source_20 => p_source_20
16179 , x_transaction_coa_id => l_adr_transaction_coa_id
16180 , x_accounting_coa_id => l_adr_accounting_coa_id
16181 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16182 , x_flex_value_set_id => l_adr_flex_value_set_id
16183 , x_value_type_code => l_adr_value_type_code
16184 , x_value_combination_id => l_adr_value_combination_id
16185 , x_value_segment_code => l_adr_value_segment_code
16186 , p_side => 'DEBIT'
16187 , p_override_seg_flag => 'Y'
16188 );
16189
16190 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16191
16192 xla_ae_lines_pkg.set_segment(
16193 p_to_segment_code => 'GL_ACCOUNT'
16194 , p_segment_value => l_segment
16195 , p_from_segment_code => l_adr_value_segment_code
16196 , p_from_combination_id => l_adr_value_combination_id
16197 , p_value_type_code => l_adr_value_type_code
16198 , p_transaction_coa_id => l_adr_transaction_coa_id
16199 , p_accounting_coa_id => l_adr_accounting_coa_id
16200 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16201 , p_flex_value_set_id => l_adr_flex_value_set_id
16202 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16203 , p_adr_type_code => 'S'
16204 , p_component_type => l_component_type
16205 , p_component_code => l_component_code
16206 , p_component_type_code => l_component_type_code
16207 , p_component_appl_id => l_component_appl_id
16208 , p_amb_context_code => l_amb_context_code
16209 , p_entity_code => 'AP_INVOICES'
16210 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16211 , p_side => 'DEBIT'
16212 );
16213
16214 END IF;
16215
16216 l_segment := AcctDerRule_17(
16217 p_application_id => p_application_id
16218 , p_ae_header_id => l_ae_header_id
16219 , p_source_16 => p_source_16
16220 , p_source_16_meaning => p_source_16_meaning
16221 , p_source_19 => p_source_19
16222 , p_source_19_meaning => p_source_19_meaning
16223 , p_source_29 => p_source_29
16224 , x_transaction_coa_id => l_adr_transaction_coa_id
16225 , x_accounting_coa_id => l_adr_accounting_coa_id
16226 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16227 , x_flex_value_set_id => l_adr_flex_value_set_id
16228 , x_value_type_code => l_adr_value_type_code
16229 , x_value_combination_id => l_adr_value_combination_id
16230 , x_value_segment_code => l_adr_value_segment_code
16231 , p_side => 'ALL'
16232 , p_override_seg_flag => 'Y'
16233 );
16234
16235 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16236
16237 xla_ae_lines_pkg.set_segment(
16238 p_to_segment_code => 'GL_BALANCING'
16239 , p_segment_value => l_segment
16240 , p_from_segment_code => l_adr_value_segment_code
16241 , p_from_combination_id => l_adr_value_combination_id
16242 , p_value_type_code => l_adr_value_type_code
16243 , p_transaction_coa_id => l_adr_transaction_coa_id
16247 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
16244 , p_accounting_coa_id => l_adr_accounting_coa_id
16245 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16246 , p_flex_value_set_id => l_adr_flex_value_set_id
16248 , p_adr_type_code => 'S'
16249 , p_component_type => l_component_type
16250 , p_component_code => l_component_code
16251 , p_component_type_code => l_component_type_code
16252 , p_component_appl_id => l_component_appl_id
16253 , p_amb_context_code => l_amb_context_code
16254 , p_entity_code => 'AP_INVOICES'
16255 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16256 , p_side => 'ALL'
16257 );
16258
16259 END IF;
16260
16261 --
16262 --
16263 END IF;
16264 --
16265 -- Bug 4922099
16266 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16267 (NVL(l_enc_upg_option, 'N') = 'O')
16268 ) AND
16269 (l_bflow_method_code = 'PRIOR_ENTRY')
16270 )
16271 THEN
16272 IF
16273 --
16274 1 = 2
16275 --
16276 THEN
16277 xla_accounting_err_pkg.build_message
16278 (p_appli_s_name => 'XLA'
16279 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16280 ,p_token_1 => 'LINE_NUMBER'
16281 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16282 ,p_token_2 => 'LINE_TYPE_NAME'
16283 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16284 l_component_type
16285 ,l_component_code
16286 ,l_component_type_code
16287 ,l_component_appl_id
16288 ,l_amb_context_code
16289 ,l_entity_code
16290 ,l_event_class_code
16291 )
16292 ,p_token_3 => 'OWNER'
16293 ,p_value_3 => xla_lookups_pkg.get_meaning(
16294 p_lookup_type => 'XLA_OWNER_TYPE'
16295 ,p_lookup_code => l_component_type_code
16296 )
16297 ,p_token_4 => 'PRODUCT_NAME'
16298 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16299 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16300 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16301 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16302 ,p_ae_header_id => NULL
16303 );
16304
16305 IF (C_LEVEL_ERROR>= g_log_level) THEN
16306 trace
16307 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16308 ,p_level => C_LEVEL_ERROR
16309 ,p_module => l_log_module);
16310 END IF;
16311 END IF;
16312 END IF;
16313 --
16314 --
16315 ------------------------------------------------------------------------------------------------
16316 -- 4219869 Business Flow
16317 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16318 -- Prior Entry. Currently, the following code is always generated.
16319 ------------------------------------------------------------------------------------------------
16320 XLA_AE_LINES_PKG.ValidateCurrentLine;
16321
16322 ------------------------------------------------------------------------------------
16323 -- 4219869 Business Flow
16324 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16325 ------------------------------------------------------------------------------------
16326 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16327
16328 ----------------------------------------------------------------------------------
16329 -- 4219869 Business Flow
16330 -- Update journal entry status -- Need to generate this within IF <condition>
16331 ----------------------------------------------------------------------------------
16332 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16333 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16334 ,p_balance_type_code => l_balance_type_code
16335 );
16336
16337 -------------------------------------------------------------------------------------------
16338 -- 4262811 - Generate the Accrual Reversal lines
16339 -------------------------------------------------------------------------------------------
16343 IF l_acc_rev_flag IS NULL THEN
16340 BEGIN
16341 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16342 (g_array_event(p_event_id).array_value_num('header_index'));
16344 l_acc_rev_flag := 'N';
16345 END IF;
16346 EXCEPTION
16347 WHEN OTHERS THEN
16348 l_acc_rev_flag := 'N';
16349 END;
16350 --
16351 IF (l_acc_rev_flag = 'Y') THEN
16352
16353 -- 4645092 ------------------------------------------------------------------------------
16354 -- To allow MPA report to determine if it should generate report process
16355 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16356 ------------------------------------------------------------------------------------------
16357
16358 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16359 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16360 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16361 -- call ADRs
16362 -- Bug 4922099
16363 --
16364 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16365 (NVL(l_actual_upg_option, 'N') = 'O') OR
16366 (NVL(l_enc_upg_option, 'N') = 'O')
16367 )
16368 THEN
16369 NULL;
16370 --
16371 --
16372
16373 l_ccid := AcctDerRule_25(
16374 p_application_id => p_application_id
16375 , p_ae_header_id => l_ae_header_id
16376 , p_source_16 => p_source_16
16377 , p_source_16_meaning => p_source_16_meaning
16378 , p_source_17 => p_source_17
16379 , p_source_18 => p_source_18
16380 , p_source_19 => p_source_19
16381 , p_source_19_meaning => p_source_19_meaning
16382 , p_source_20 => p_source_20
16383 , p_source_29 => p_source_29
16384 , p_source_42 => p_source_42
16385 , p_source_42_meaning => p_source_42_meaning
16386 , x_transaction_coa_id => l_adr_transaction_coa_id
16387 , x_accounting_coa_id => l_adr_accounting_coa_id
16388 , x_value_type_code => l_adr_value_type_code
16389 , p_side => 'ALL'
16390 );
16391
16392 xla_ae_lines_pkg.set_ccid(
16393 p_code_combination_id => l_ccid
16394 , p_value_type_code => l_adr_value_type_code
16395 , p_transaction_coa_id => l_adr_transaction_coa_id
16396 , p_accounting_coa_id => l_adr_accounting_coa_id
16397 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16398 , p_adr_type_code => 'S'
16399 , p_component_type => l_component_type
16400 , p_component_code => l_component_code
16401 , p_component_type_code => l_component_type_code
16402 , p_component_appl_id => l_component_appl_id
16403 , p_amb_context_code => l_amb_context_code
16404 , p_side => 'ALL'
16405 );
16406
16407
16408 l_segment := AcctDerRule_7(
16409 p_application_id => p_application_id
16410 , p_ae_header_id => l_ae_header_id
16411 , p_source_16 => p_source_16
16412 , p_source_16_meaning => p_source_16_meaning
16413 , p_source_17 => p_source_17
16414 , p_source_19 => p_source_19
16415 , p_source_19_meaning => p_source_19_meaning
16416 , x_transaction_coa_id => l_adr_transaction_coa_id
16417 , x_accounting_coa_id => l_adr_accounting_coa_id
16418 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16419 , x_flex_value_set_id => l_adr_flex_value_set_id
16420 , x_value_type_code => l_adr_value_type_code
16421 , x_value_combination_id => l_adr_value_combination_id
16422 , x_value_segment_code => l_adr_value_segment_code
16423 , p_side => 'CREDIT'
16424 , p_override_seg_flag => 'Y'
16425 );
16426
16427 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16428
16429 xla_ae_lines_pkg.set_segment(
16430 p_to_segment_code => 'GL_ACCOUNT'
16431 , p_segment_value => l_segment
16432 , p_from_segment_code => l_adr_value_segment_code
16433 , p_from_combination_id => l_adr_value_combination_id
16434 , p_value_type_code => l_adr_value_type_code
16435 , p_transaction_coa_id => l_adr_transaction_coa_id
16436 , p_accounting_coa_id => l_adr_accounting_coa_id
16437 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16438 , p_flex_value_set_id => l_adr_flex_value_set_id
16439 , p_adr_code => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16440 , p_adr_type_code => 'S'
16441 , p_component_type => l_component_type
16442 , p_component_code => l_component_code
16443 , p_component_type_code => l_component_type_code
16444 , p_component_appl_id => l_component_appl_id
16445 , p_amb_context_code => l_amb_context_code
16446 , p_entity_code => 'AP_INVOICES'
16447 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16448 , p_side => 'CREDIT'
16449 );
16450
16451 END IF;
16452
16453 l_segment := AcctDerRule_8(
16454 p_application_id => p_application_id
16455 , p_ae_header_id => l_ae_header_id
16456 , p_source_16 => p_source_16
16460 , p_source_20 => p_source_20
16457 , p_source_16_meaning => p_source_16_meaning
16458 , p_source_19 => p_source_19
16459 , p_source_19_meaning => p_source_19_meaning
16461 , x_transaction_coa_id => l_adr_transaction_coa_id
16462 , x_accounting_coa_id => l_adr_accounting_coa_id
16463 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16464 , x_flex_value_set_id => l_adr_flex_value_set_id
16465 , x_value_type_code => l_adr_value_type_code
16466 , x_value_combination_id => l_adr_value_combination_id
16467 , x_value_segment_code => l_adr_value_segment_code
16468 , p_side => 'DEBIT'
16469 , p_override_seg_flag => 'Y'
16470 );
16471
16472 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16473
16474 xla_ae_lines_pkg.set_segment(
16475 p_to_segment_code => 'GL_ACCOUNT'
16476 , p_segment_value => l_segment
16477 , p_from_segment_code => l_adr_value_segment_code
16478 , p_from_combination_id => l_adr_value_combination_id
16479 , p_value_type_code => l_adr_value_type_code
16480 , p_transaction_coa_id => l_adr_transaction_coa_id
16481 , p_accounting_coa_id => l_adr_accounting_coa_id
16482 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16483 , p_flex_value_set_id => l_adr_flex_value_set_id
16484 , p_adr_code => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16485 , p_adr_type_code => 'S'
16486 , p_component_type => l_component_type
16487 , p_component_code => l_component_code
16488 , p_component_type_code => l_component_type_code
16489 , p_component_appl_id => l_component_appl_id
16490 , p_amb_context_code => l_amb_context_code
16491 , p_entity_code => 'AP_INVOICES'
16492 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16493 , p_side => 'DEBIT'
16494 );
16495
16496 END IF;
16497
16498 l_segment := AcctDerRule_17(
16499 p_application_id => p_application_id
16500 , p_ae_header_id => l_ae_header_id
16501 , p_source_16 => p_source_16
16502 , p_source_16_meaning => p_source_16_meaning
16503 , p_source_19 => p_source_19
16504 , p_source_19_meaning => p_source_19_meaning
16505 , p_source_29 => p_source_29
16506 , x_transaction_coa_id => l_adr_transaction_coa_id
16507 , x_accounting_coa_id => l_adr_accounting_coa_id
16508 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16509 , x_flex_value_set_id => l_adr_flex_value_set_id
16510 , x_value_type_code => l_adr_value_type_code
16511 , x_value_combination_id => l_adr_value_combination_id
16512 , x_value_segment_code => l_adr_value_segment_code
16513 , p_side => 'ALL'
16514 , p_override_seg_flag => 'Y'
16515 );
16516
16517 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16518
16519 xla_ae_lines_pkg.set_segment(
16520 p_to_segment_code => 'GL_BALANCING'
16521 , p_segment_value => l_segment
16522 , p_from_segment_code => l_adr_value_segment_code
16523 , p_from_combination_id => l_adr_value_combination_id
16524 , p_value_type_code => l_adr_value_type_code
16525 , p_transaction_coa_id => l_adr_transaction_coa_id
16526 , p_accounting_coa_id => l_adr_accounting_coa_id
16527 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16528 , p_flex_value_set_id => l_adr_flex_value_set_id
16529 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
16530 , p_adr_type_code => 'S'
16531 , p_component_type => l_component_type
16532 , p_component_code => l_component_code
16533 , p_component_type_code => l_component_type_code
16534 , p_component_appl_id => l_component_appl_id
16535 , p_amb_context_code => l_amb_context_code
16536 , p_entity_code => 'AP_INVOICES'
16537 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
16538 , p_side => 'ALL'
16539 );
16540
16541 END IF;
16542
16543 --
16544 --
16545 END IF;
16546
16547 --
16548 -- Update the line information that should be overwritten
16549 --
16550 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16551 p_header_num => 1);
16552 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16553
16554 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16555
16556 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16557 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16558 END IF;
16559
16560 --
16561 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16562 --
16563 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16567 -- 4262811a Switch Sign
16564 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16565 ELSE
16566 ---------------------------------------------------------------------------------------------------
16568 ---------------------------------------------------------------------------------------------------
16569 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16570 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16571 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16572 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16573 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16574 -- 5132302
16575 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16576 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16577
16578 END IF;
16579
16580 -- 4955764
16581 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16582 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16583
16584
16585 XLA_AE_LINES_PKG.ValidateCurrentLine;
16586 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16587
16588 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16589 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16590 ,p_balance_type_code => l_balance_type_code);
16591
16592 END IF;
16593
16594 -----------------------------------------------------------------------------------------
16595 -- 4262811 Multiperiod Accounting
16596 -----------------------------------------------------------------------------------------
16597 -- No MPA option is assigned.
16598
16599
16600 END IF;
16601 END IF;
16602 --
16603
16604 --
16605 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16606 trace
16607 (p_msg => 'END of AcctLineType_51'
16608 ,p_level => C_LEVEL_PROCEDURE
16609 ,p_module => l_log_module);
16610 END IF;
16611 --
16612 EXCEPTION
16613 WHEN xla_exceptions_pkg.application_exception THEN
16614 RAISE;
16615 WHEN OTHERS THEN
16616 xla_exceptions_pkg.raise_message
16617 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_51');
16618 END AcctLineType_51;
16619 --
16620
16621 ---------------------------------------
16622 --
16623 -- PRIVATE FUNCTION
16624 -- AcctLineType_52
16625 --
16626 ---------------------------------------
16627 PROCEDURE AcctLineType_52 (
16628 p_application_id IN NUMBER
16629 ,p_event_id IN NUMBER
16630 ,p_calculate_acctd_flag IN VARCHAR2
16631 ,p_calculate_g_l_flag IN VARCHAR2
16632 ,p_actual_flag IN OUT VARCHAR2
16633 ,p_balance_type_code OUT VARCHAR2
16634 ,p_gain_or_loss_ref OUT VARCHAR2
16635
16636 --Automatic Offsets Value
16637 , p_source_16 IN VARCHAR2
16638 , p_source_16_meaning IN VARCHAR2
16639 --Payment Distribution (Cleared Rate) Ledger Amount
16640 , p_source_22 IN NUMBER
16641 --Invoice Distribution Account
16642 , p_source_29 IN NUMBER
16643 --Bank Charges Account
16644 , p_source_37 IN NUMBER
16645 --When to Account for Payment Option
16646 , p_source_50 IN VARCHAR2
16647 --Payment Distribution Type
16648 , p_source_51 IN VARCHAR2
16649 , p_source_51_meaning IN VARCHAR2
16650 --Accounting Reversal Indicator
16651 , p_source_52 IN VARCHAR2
16652 --Payment Distribution Amount
16653 , p_source_53 IN NUMBER
16654 --Business Flow Accounts Payable Application Identifier
16655 , p_source_54 IN NUMBER
16656 --Business Flow Payment Distribution Type
16657 , p_source_55 IN VARCHAR2
16658 --Business Flow Payment Entity Code
16659 , p_source_56 IN VARCHAR2
16660 --Business Flow Payment Distribution Identifier
16661 , p_source_57 IN NUMBER
16662 --Business Flow Payment Identifier
16663 , p_source_58 IN NUMBER
16664 --Payment Distribution Identifier
16665 , p_source_59 IN NUMBER
16666 --Distribution Link Type
16667 , p_source_60 IN VARCHAR2
16668 --Override Accounted Amount Indicator
16669 , p_source_64 IN VARCHAR2
16670 , p_source_64_meaning IN VARCHAR2
16671 --Payment Supplier Identifier
16672 , p_source_65 IN NUMBER
16673 --Payment Supplier Site Identifier
16674 , p_source_66 IN NUMBER
16675 --Third Party Type
16676 , p_source_67 IN VARCHAR2
16677 --Payment Distribution Reversed Identifier
16678 , p_source_68 IN NUMBER
16679 --Invoice Distribution Tax Line Identifier
16680 , p_source_69 IN NUMBER
16681 --Invoice Distribution Summary Tax Line Identifier
16682 , p_source_70 IN NUMBER
16683 --Cleared Currency Code
16684 , p_source_113 IN VARCHAR2
16685 --Cleared Exchange Date
16686 , p_source_114 IN DATE
16687 --Cleared Exchange Rate
16688 , p_source_115 IN NUMBER
16692 IS
16689 --Cleared Exchange Rate Type
16690 , p_source_116 IN VARCHAR2
16691 )
16693
16694 l_component_type VARCHAR2(80);
16695 l_component_code VARCHAR2(30);
16696 l_component_type_code VARCHAR2(1);
16697 l_component_appl_id INTEGER;
16698 l_amb_context_code VARCHAR2(30);
16699 l_entity_code VARCHAR2(30);
16700 l_event_class_code VARCHAR2(30);
16701 l_ae_header_id NUMBER;
16702 l_event_type_code VARCHAR2(30);
16703 l_line_definition_code VARCHAR2(30);
16704 l_line_definition_owner_code VARCHAR2(1);
16705 --
16706 -- adr variables
16707 l_segment VARCHAR2(30);
16708 l_ccid NUMBER;
16709 l_adr_transaction_coa_id NUMBER;
16710 l_adr_accounting_coa_id NUMBER;
16711 l_adr_flexfield_segment_code VARCHAR2(30);
16712 l_adr_flex_value_set_id NUMBER;
16713 l_adr_value_type_code VARCHAR2(30);
16714 l_adr_value_combination_id NUMBER;
16715 l_adr_value_segment_code VARCHAR2(30);
16716
16717 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16718 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16719 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16720 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16721
16722 -- 4262811 Variables ------------------------------------------------------------------------------------------
16723 l_entered_amt_idx NUMBER;
16724 l_accted_amt_idx NUMBER;
16725 l_acc_rev_flag VARCHAR2(1);
16726 l_accrual_line_num NUMBER;
16727 l_tmp_amt NUMBER;
16728 l_acc_rev_natural_side_code VARCHAR2(1);
16729
16730 l_num_entries NUMBER;
16731 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16732 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16733 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16734 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16735 l_recog_line_1 NUMBER;
16736 l_recog_line_2 NUMBER;
16737
16738 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16739 l_bflow_applied_to_amt NUMBER; -- 5132302
16740 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16741
16742 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16743
16744 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16745 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16746
16747 ---------------------------------------------------------------------------------------------------------------
16748
16749
16750 --
16751 -- bulk performance
16752 --
16753 l_balance_type_code VARCHAR2(1);
16754 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16755 l_log_module VARCHAR2(240);
16756
16757 --
16758 -- Upgrade strategy
16759 --
16760 l_actual_upg_option VARCHAR2(1);
16761 l_enc_upg_option VARCHAR2(1);
16762
16763 --
16764 BEGIN
16765 --
16766 IF g_log_enabled THEN
16767 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
16768 END IF;
16769 --
16770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16771
16772 trace
16773 (p_msg => 'BEGIN of AcctLineType_52'
16774 ,p_level => C_LEVEL_PROCEDURE
16775 ,p_module => l_log_module);
16776
16777 END IF;
16778 --
16779 l_component_type := 'AMB_JLT';
16780 l_component_code := 'AP_BANK_CHARGES_CLEAR';
16781 l_component_type_code := 'S';
16782 l_component_appl_id := 200;
16783 l_amb_context_code := 'DEFAULT';
16784 l_entity_code := 'AP_PAYMENTS';
16785 l_event_class_code := 'RECONCILED PAYMENTS';
16786 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
16787 l_line_definition_owner_code := 'S';
16788 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
16789 --
16790 l_balance_type_code := 'A';
16791 l_segment := NULL;
16792 l_ccid := NULL;
16793 l_adr_transaction_coa_id := NULL;
16794 l_adr_accounting_coa_id := NULL;
16795 l_adr_flexfield_segment_code := NULL;
16796 l_adr_flex_value_set_id := NULL;
16797 l_adr_value_type_code := NULL;
16798 l_adr_value_combination_id := NULL;
16799 l_adr_value_segment_code := NULL;
16800
16801 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16802 l_bflow_class_code := ''; -- 4219869 Business Flow
16803 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16804 l_budgetary_control_flag := 'N';
16805
16806 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16807 l_bflow_applied_to_amt := NULL; -- 5132302
16808 l_entered_amt_idx := NULL; -- 4262811
16809 l_accted_amt_idx := NULL; -- 4262811
16810 l_acc_rev_flag := NULL; -- 4262811
16811 l_accrual_line_num := NULL; -- 4262811
16812 l_tmp_amt := NULL; -- 4262811
16813 --
16814
16815 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16816 l_balance_type_code <> 'B' THEN
16820 ') = 'BANK CHARGE'
16817 IF NVL(p_source_50,'
16818 ') <> 'ISSUE_ISSUE' AND
16819 NVL(p_source_51,'
16821 THEN
16822
16823 --
16824 XLA_AE_LINES_PKG.SetNewLine;
16825
16826 p_balance_type_code := l_balance_type_code;
16827 -- set the flag so later we will know whether the gain loss line needs to be created
16828
16829 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16830 p_actual_flag :='A';
16831 END IF;
16832
16833 --
16834 -- bulk performance
16835 --
16836 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16837 p_header_num => 0); -- 4262811
16838 --
16839 -- set accounting line options
16840 --
16841 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16842 p_natural_side_code => 'D'
16843 , p_gain_or_loss_flag => 'N'
16844 , p_gl_transfer_mode_code => 'S'
16845 , p_acct_entry_type_code => 'A'
16846 , p_switch_side_flag => 'Y'
16847 , p_merge_duplicate_code => 'A'
16848 );
16849 --
16850 l_acc_rev_natural_side_code := 'C'; -- 4262811
16851 --
16852 --
16853 -- set accounting line type info
16854 --
16855 xla_ae_lines_pkg.SetAcctLineType
16856 (p_component_type => l_component_type
16857 ,p_event_type_code => l_event_type_code
16858 ,p_line_definition_owner_code => l_line_definition_owner_code
16859 ,p_line_definition_code => l_line_definition_code
16860 ,p_accounting_line_code => l_component_code
16861 ,p_accounting_line_type_code => l_component_type_code
16862 ,p_accounting_line_appl_id => l_component_appl_id
16863 ,p_amb_context_code => l_amb_context_code
16864 ,p_entity_code => l_entity_code
16865 ,p_event_class_code => l_event_class_code);
16866 --
16867 -- set accounting class
16868 --
16869 xla_ae_lines_pkg.SetAcctClass(
16870 p_accounting_class_code => 'BANK_CHG'
16871 , p_ae_header_id => l_ae_header_id
16872 );
16873
16874 --
16875 -- set rounding class
16876 --
16877 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16878 'BANK_CHG';
16879
16880 --
16881 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16882 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16883 --
16884 -- bulk performance
16885 --
16886 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16887
16888 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16889 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16890
16891 -- 4955764
16892 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16893 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16894
16895 -- 4458381 Public Sector Enh
16896
16897 --
16898 -- set accounting attributes for the line type
16899 --
16900 l_entered_amt_idx := 10;
16901 l_accted_amt_idx := 15;
16902 l_bflow_applied_to_amt_idx := 2; -- 5132302
16903 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16904 l_rec_acct_attrs.array_char_value(1) := p_source_52;
16905 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
16906 l_rec_acct_attrs.array_num_value(2) := p_source_53;
16907 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
16908 l_rec_acct_attrs.array_num_value(3) := p_source_54;
16909 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16910 l_rec_acct_attrs.array_char_value(4) := p_source_55;
16911 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
16912 l_rec_acct_attrs.array_char_value(5) := p_source_56;
16913 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
16914 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
16915 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16916 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
16917 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
16918 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
16919 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
16920 l_rec_acct_attrs.array_char_value(9) := p_source_60;
16921 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
16922 l_rec_acct_attrs.array_num_value(10) := p_source_53;
16923 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
16924 l_rec_acct_attrs.array_char_value(11) := p_source_113;
16925 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
16926 l_rec_acct_attrs.array_date_value(12) := p_source_114;
16927 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
16928 l_rec_acct_attrs.array_num_value(13) := p_source_115;
16929 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
16930 l_rec_acct_attrs.array_char_value(14) := p_source_116;
16931 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
16932 l_rec_acct_attrs.array_num_value(15) := p_source_22;
16936 l_rec_acct_attrs.array_num_value(17) := p_source_65;
16933 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
16934 l_rec_acct_attrs.array_char_value(16) := p_source_64;
16935 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
16937 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
16938 l_rec_acct_attrs.array_num_value(18) := p_source_66;
16939 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
16940 l_rec_acct_attrs.array_char_value(19) := p_source_67;
16941 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
16942 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
16943 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
16944 l_rec_acct_attrs.array_char_value(21) := p_source_60;
16945 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
16946 l_rec_acct_attrs.array_num_value(22) := p_source_69;
16947 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
16948 l_rec_acct_attrs.array_num_value(23) := p_source_69;
16949 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
16950 l_rec_acct_attrs.array_num_value(24) := p_source_70;
16951
16952 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16953 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16954
16955 ---------------------------------------------------------------------------------------------------------------
16956 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16957 ---------------------------------------------------------------------------------------------------------------
16958 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16959
16960 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16961 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16962
16963 IF xla_accounting_cache_pkg.GetValueChar
16964 (p_source_code => 'LEDGER_CATEGORY_CODE'
16965 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16966 AND l_bflow_method_code = 'PRIOR_ENTRY'
16967 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16968 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16969 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16970 )
16971 THEN
16972 xla_ae_lines_pkg.BflowUpgEntry
16973 (p_business_method_code => l_bflow_method_code
16974 ,p_business_class_code => l_bflow_class_code
16975 ,p_balance_type => l_balance_type_code);
16976 ELSE
16977 NULL;
16978 -- No business flow processing for business flow method of NONE.
16979 END IF;
16980
16981 --
16982 -- call analytical criteria
16983 --
16984
16985 --
16986 -- call description
16987 --
16988 -- No description or it is inherited.
16989 --
16990 -- call ADRs
16991 -- Bug 4922099
16992 --
16993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16994 (NVL(l_actual_upg_option, 'N') = 'O') OR
16995 (NVL(l_enc_upg_option, 'N') = 'O')
16996 )
16997 THEN
16998 NULL;
16999 --
17000 --
17001
17002 l_ccid := AcctDerRule_20(
17003 p_application_id => p_application_id
17004 , p_ae_header_id => l_ae_header_id
17005 , p_source_16 => p_source_16
17006 , p_source_16_meaning => p_source_16_meaning
17007 , p_source_29 => p_source_29
17008 , p_source_37 => p_source_37
17009 , x_transaction_coa_id => l_adr_transaction_coa_id
17010 , x_accounting_coa_id => l_adr_accounting_coa_id
17011 , x_value_type_code => l_adr_value_type_code
17012 , p_side => 'NA'
17013 );
17014
17015 xla_ae_lines_pkg.set_ccid(
17016 p_code_combination_id => l_ccid
17017 , p_value_type_code => l_adr_value_type_code
17018 , p_transaction_coa_id => l_adr_transaction_coa_id
17019 , p_accounting_coa_id => l_adr_accounting_coa_id
17020 , p_adr_code => 'AP_BANK_CHARGES'
17021 , p_adr_type_code => 'S'
17022 , p_component_type => l_component_type
17023 , p_component_code => l_component_code
17024 , p_component_type_code => l_component_type_code
17025 , p_component_appl_id => l_component_appl_id
17026 , p_amb_context_code => l_amb_context_code
17027 , p_side => 'NA'
17028 );
17029
17030
17031 --
17032 --
17033 END IF;
17034 --
17035 -- Bug 4922099
17036 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17037 (NVL(l_enc_upg_option, 'N') = 'O')
17038 ) AND
17039 (l_bflow_method_code = 'PRIOR_ENTRY')
17040 )
17041 THEN
17042 IF
17043 --
17044 1 = 2
17045 --
17046 THEN
17047 xla_accounting_err_pkg.build_message
17048 (p_appli_s_name => 'XLA'
17049 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17050 ,p_token_1 => 'LINE_NUMBER'
17054 l_component_type
17051 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17052 ,p_token_2 => 'LINE_TYPE_NAME'
17053 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17055 ,l_component_code
17056 ,l_component_type_code
17057 ,l_component_appl_id
17058 ,l_amb_context_code
17059 ,l_entity_code
17060 ,l_event_class_code
17061 )
17062 ,p_token_3 => 'OWNER'
17063 ,p_value_3 => xla_lookups_pkg.get_meaning(
17064 p_lookup_type => 'XLA_OWNER_TYPE'
17065 ,p_lookup_code => l_component_type_code
17066 )
17067 ,p_token_4 => 'PRODUCT_NAME'
17068 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17069 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17070 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17071 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17072 ,p_ae_header_id => NULL
17073 );
17074
17075 IF (C_LEVEL_ERROR>= g_log_level) THEN
17076 trace
17077 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17078 ,p_level => C_LEVEL_ERROR
17079 ,p_module => l_log_module);
17080 END IF;
17081 END IF;
17082 END IF;
17083 --
17084 --
17085 ------------------------------------------------------------------------------------------------
17086 -- 4219869 Business Flow
17087 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17088 -- Prior Entry. Currently, the following code is always generated.
17089 ------------------------------------------------------------------------------------------------
17090 XLA_AE_LINES_PKG.ValidateCurrentLine;
17091
17092 ------------------------------------------------------------------------------------
17093 -- 4219869 Business Flow
17094 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17095 ------------------------------------------------------------------------------------
17096 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17097
17098 ----------------------------------------------------------------------------------
17099 -- 4219869 Business Flow
17100 -- Update journal entry status -- Need to generate this within IF <condition>
17101 ----------------------------------------------------------------------------------
17102 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17103 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17104 ,p_balance_type_code => l_balance_type_code
17105 );
17106
17107 -------------------------------------------------------------------------------------------
17108 -- 4262811 - Generate the Accrual Reversal lines
17109 -------------------------------------------------------------------------------------------
17110 BEGIN
17111 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17112 (g_array_event(p_event_id).array_value_num('header_index'));
17113 IF l_acc_rev_flag IS NULL THEN
17114 l_acc_rev_flag := 'N';
17115 END IF;
17116 EXCEPTION
17117 WHEN OTHERS THEN
17118 l_acc_rev_flag := 'N';
17119 END;
17120 --
17121 IF (l_acc_rev_flag = 'Y') THEN
17122
17123 -- 4645092 ------------------------------------------------------------------------------
17124 -- To allow MPA report to determine if it should generate report process
17125 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17126 ------------------------------------------------------------------------------------------
17127
17128 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17129 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17130 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17131 -- call ADRs
17132 -- Bug 4922099
17133 --
17134 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17135 (NVL(l_actual_upg_option, 'N') = 'O') OR
17136 (NVL(l_enc_upg_option, 'N') = 'O')
17137 )
17138 THEN
17139 NULL;
17140 --
17141 --
17142
17143 l_ccid := AcctDerRule_20(
17147 , p_source_16_meaning => p_source_16_meaning
17144 p_application_id => p_application_id
17145 , p_ae_header_id => l_ae_header_id
17146 , p_source_16 => p_source_16
17148 , p_source_29 => p_source_29
17149 , p_source_37 => p_source_37
17150 , x_transaction_coa_id => l_adr_transaction_coa_id
17151 , x_accounting_coa_id => l_adr_accounting_coa_id
17152 , x_value_type_code => l_adr_value_type_code
17153 , p_side => 'NA'
17154 );
17155
17156 xla_ae_lines_pkg.set_ccid(
17157 p_code_combination_id => l_ccid
17158 , p_value_type_code => l_adr_value_type_code
17159 , p_transaction_coa_id => l_adr_transaction_coa_id
17160 , p_accounting_coa_id => l_adr_accounting_coa_id
17161 , p_adr_code => 'AP_BANK_CHARGES'
17162 , p_adr_type_code => 'S'
17163 , p_component_type => l_component_type
17164 , p_component_code => l_component_code
17165 , p_component_type_code => l_component_type_code
17166 , p_component_appl_id => l_component_appl_id
17167 , p_amb_context_code => l_amb_context_code
17168 , p_side => 'NA'
17169 );
17170
17171
17172 --
17173 --
17174 END IF;
17175
17176 --
17177 -- Update the line information that should be overwritten
17178 --
17179 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17180 p_header_num => 1);
17181 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17182
17183 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17184
17185 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17186 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17187 END IF;
17188
17189 --
17190 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17191 --
17192 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17193 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17194 ELSE
17195 ---------------------------------------------------------------------------------------------------
17196 -- 4262811a Switch Sign
17197 ---------------------------------------------------------------------------------------------------
17198 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17199 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17201 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17202 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17203 -- 5132302
17204 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17205 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17206
17207 END IF;
17208
17209 -- 4955764
17210 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17211 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17212
17213
17214 XLA_AE_LINES_PKG.ValidateCurrentLine;
17215 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17216
17217 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17218 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17219 ,p_balance_type_code => l_balance_type_code);
17220
17221 END IF;
17222
17223 -----------------------------------------------------------------------------------------
17224 -- 4262811 Multiperiod Accounting
17225 -----------------------------------------------------------------------------------------
17226 -- No MPA option is assigned.
17227
17228
17229 END IF;
17230 END IF;
17231 --
17232
17233 --
17234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17235 trace
17236 (p_msg => 'END of AcctLineType_52'
17237 ,p_level => C_LEVEL_PROCEDURE
17238 ,p_module => l_log_module);
17239 END IF;
17240 --
17241 EXCEPTION
17242 WHEN xla_exceptions_pkg.application_exception THEN
17243 RAISE;
17244 WHEN OTHERS THEN
17245 xla_exceptions_pkg.raise_message
17246 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_52');
17247 END AcctLineType_52;
17248 --
17249
17250 ---------------------------------------
17251 --
17252 -- PRIVATE FUNCTION
17253 -- AcctLineType_53
17254 --
17255 ---------------------------------------
17256 PROCEDURE AcctLineType_53 (
17257 p_application_id IN NUMBER
17258 ,p_event_id IN NUMBER
17259 ,p_calculate_acctd_flag IN VARCHAR2
17260 ,p_calculate_g_l_flag IN VARCHAR2
17261 ,p_actual_flag IN OUT VARCHAR2
17265 --Automatic Offsets Value
17262 ,p_balance_type_code OUT VARCHAR2
17263 ,p_gain_or_loss_ref OUT VARCHAR2
17264
17266 , p_source_16 IN VARCHAR2
17267 , p_source_16_meaning IN VARCHAR2
17268 --Payment Distribution (Cleared Rate) Ledger Amount
17269 , p_source_22 IN NUMBER
17270 --Invoice Distribution Account
17271 , p_source_29 IN NUMBER
17272 --Bank Errors Account
17273 , p_source_38 IN NUMBER
17274 --When to Account for Payment Option
17275 , p_source_50 IN VARCHAR2
17276 --Payment Distribution Type
17277 , p_source_51 IN VARCHAR2
17278 , p_source_51_meaning IN VARCHAR2
17279 --Accounting Reversal Indicator
17280 , p_source_52 IN VARCHAR2
17281 --Payment Distribution Amount
17282 , p_source_53 IN NUMBER
17283 --Business Flow Accounts Payable Application Identifier
17284 , p_source_54 IN NUMBER
17285 --Business Flow Payment Distribution Type
17286 , p_source_55 IN VARCHAR2
17287 --Business Flow Payment Entity Code
17288 , p_source_56 IN VARCHAR2
17289 --Business Flow Payment Distribution Identifier
17290 , p_source_57 IN NUMBER
17291 --Business Flow Payment Identifier
17292 , p_source_58 IN NUMBER
17293 --Payment Distribution Identifier
17294 , p_source_59 IN NUMBER
17295 --Distribution Link Type
17296 , p_source_60 IN VARCHAR2
17297 --Override Accounted Amount Indicator
17298 , p_source_64 IN VARCHAR2
17299 , p_source_64_meaning IN VARCHAR2
17300 --Payment Supplier Identifier
17301 , p_source_65 IN NUMBER
17302 --Payment Supplier Site Identifier
17303 , p_source_66 IN NUMBER
17304 --Third Party Type
17305 , p_source_67 IN VARCHAR2
17306 --Payment Distribution Reversed Identifier
17307 , p_source_68 IN NUMBER
17308 --Invoice Distribution Tax Line Identifier
17309 , p_source_69 IN NUMBER
17310 --Invoice Distribution Summary Tax Line Identifier
17311 , p_source_70 IN NUMBER
17312 --Cleared Currency Code
17313 , p_source_113 IN VARCHAR2
17314 --Cleared Exchange Date
17315 , p_source_114 IN DATE
17316 --Cleared Exchange Rate
17317 , p_source_115 IN NUMBER
17318 --Cleared Exchange Rate Type
17319 , p_source_116 IN VARCHAR2
17320 )
17321 IS
17322
17323 l_component_type VARCHAR2(80);
17324 l_component_code VARCHAR2(30);
17325 l_component_type_code VARCHAR2(1);
17326 l_component_appl_id INTEGER;
17327 l_amb_context_code VARCHAR2(30);
17328 l_entity_code VARCHAR2(30);
17329 l_event_class_code VARCHAR2(30);
17330 l_ae_header_id NUMBER;
17331 l_event_type_code VARCHAR2(30);
17332 l_line_definition_code VARCHAR2(30);
17333 l_line_definition_owner_code VARCHAR2(1);
17334 --
17335 -- adr variables
17336 l_segment VARCHAR2(30);
17337 l_ccid NUMBER;
17338 l_adr_transaction_coa_id NUMBER;
17339 l_adr_accounting_coa_id NUMBER;
17340 l_adr_flexfield_segment_code VARCHAR2(30);
17341 l_adr_flex_value_set_id NUMBER;
17342 l_adr_value_type_code VARCHAR2(30);
17343 l_adr_value_combination_id NUMBER;
17344 l_adr_value_segment_code VARCHAR2(30);
17345
17346 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17347 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17348 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17349 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17350
17351 -- 4262811 Variables ------------------------------------------------------------------------------------------
17352 l_entered_amt_idx NUMBER;
17353 l_accted_amt_idx NUMBER;
17354 l_acc_rev_flag VARCHAR2(1);
17355 l_accrual_line_num NUMBER;
17356 l_tmp_amt NUMBER;
17357 l_acc_rev_natural_side_code VARCHAR2(1);
17358
17359 l_num_entries NUMBER;
17360 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17361 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17362 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17363 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17364 l_recog_line_1 NUMBER;
17365 l_recog_line_2 NUMBER;
17366
17367 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17368 l_bflow_applied_to_amt NUMBER; -- 5132302
17369 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17370
17371 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17372
17373 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17374 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17375
17376 ---------------------------------------------------------------------------------------------------------------
17377
17378
17379 --
17380 -- bulk performance
17381 --
17382 l_balance_type_code VARCHAR2(1);
17383 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17384 l_log_module VARCHAR2(240);
17385
17386 --
17387 -- Upgrade strategy
17391
17388 --
17389 l_actual_upg_option VARCHAR2(1);
17390 l_enc_upg_option VARCHAR2(1);
17392 --
17393 BEGIN
17394 --
17395 IF g_log_enabled THEN
17396 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
17397 END IF;
17398 --
17399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17400
17401 trace
17402 (p_msg => 'BEGIN of AcctLineType_53'
17403 ,p_level => C_LEVEL_PROCEDURE
17404 ,p_module => l_log_module);
17405
17406 END IF;
17407 --
17408 l_component_type := 'AMB_JLT';
17409 l_component_code := 'AP_BANK_ERROR_CLEAR';
17410 l_component_type_code := 'S';
17411 l_component_appl_id := 200;
17412 l_amb_context_code := 'DEFAULT';
17413 l_entity_code := 'AP_PAYMENTS';
17414 l_event_class_code := 'RECONCILED PAYMENTS';
17415 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
17416 l_line_definition_owner_code := 'S';
17417 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
17418 --
17419 l_balance_type_code := 'A';
17420 l_segment := NULL;
17421 l_ccid := NULL;
17422 l_adr_transaction_coa_id := NULL;
17423 l_adr_accounting_coa_id := NULL;
17424 l_adr_flexfield_segment_code := NULL;
17425 l_adr_flex_value_set_id := NULL;
17426 l_adr_value_type_code := NULL;
17427 l_adr_value_combination_id := NULL;
17428 l_adr_value_segment_code := NULL;
17429
17430 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17431 l_bflow_class_code := ''; -- 4219869 Business Flow
17432 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17433 l_budgetary_control_flag := 'N';
17434
17435 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17436 l_bflow_applied_to_amt := NULL; -- 5132302
17437 l_entered_amt_idx := NULL; -- 4262811
17438 l_accted_amt_idx := NULL; -- 4262811
17439 l_acc_rev_flag := NULL; -- 4262811
17440 l_accrual_line_num := NULL; -- 4262811
17441 l_tmp_amt := NULL; -- 4262811
17442 --
17443
17444 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17445 l_balance_type_code <> 'B' THEN
17446 IF NVL(p_source_50,'
17447 ') <> 'ISSUE_ISSUE' AND
17448 NVL(p_source_51,'
17449 ') = 'BANK ERROR'
17450 THEN
17451
17452 --
17453 XLA_AE_LINES_PKG.SetNewLine;
17454
17455 p_balance_type_code := l_balance_type_code;
17456 -- set the flag so later we will know whether the gain loss line needs to be created
17457
17458 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17459 p_actual_flag :='A';
17460 END IF;
17461
17462 --
17463 -- bulk performance
17464 --
17465 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17466 p_header_num => 0); -- 4262811
17467 --
17468 -- set accounting line options
17469 --
17470 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17471 p_natural_side_code => 'D'
17472 , p_gain_or_loss_flag => 'N'
17473 , p_gl_transfer_mode_code => 'S'
17474 , p_acct_entry_type_code => 'A'
17475 , p_switch_side_flag => 'Y'
17476 , p_merge_duplicate_code => 'A'
17477 );
17478 --
17479 l_acc_rev_natural_side_code := 'C'; -- 4262811
17480 --
17481 --
17482 -- set accounting line type info
17483 --
17484 xla_ae_lines_pkg.SetAcctLineType
17485 (p_component_type => l_component_type
17486 ,p_event_type_code => l_event_type_code
17487 ,p_line_definition_owner_code => l_line_definition_owner_code
17488 ,p_line_definition_code => l_line_definition_code
17489 ,p_accounting_line_code => l_component_code
17490 ,p_accounting_line_type_code => l_component_type_code
17491 ,p_accounting_line_appl_id => l_component_appl_id
17492 ,p_amb_context_code => l_amb_context_code
17493 ,p_entity_code => l_entity_code
17494 ,p_event_class_code => l_event_class_code);
17495 --
17496 -- set accounting class
17497 --
17498 xla_ae_lines_pkg.SetAcctClass(
17499 p_accounting_class_code => 'BANK_ERROR'
17500 , p_ae_header_id => l_ae_header_id
17501 );
17502
17503 --
17504 -- set rounding class
17505 --
17506 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17507 'BANK_ERROR';
17508
17509 --
17510 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17511 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17512 --
17513 -- bulk performance
17514 --
17515 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17516
17517 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17518 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17519
17520 -- 4955764
17521 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17525
17522 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17523
17524 -- 4458381 Public Sector Enh
17526 --
17527 -- set accounting attributes for the line type
17528 --
17529 l_entered_amt_idx := 10;
17530 l_accted_amt_idx := 15;
17531 l_bflow_applied_to_amt_idx := 2; -- 5132302
17532 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17533 l_rec_acct_attrs.array_char_value(1) := p_source_52;
17534 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17535 l_rec_acct_attrs.array_num_value(2) := p_source_53;
17536 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17537 l_rec_acct_attrs.array_num_value(3) := p_source_54;
17538 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17539 l_rec_acct_attrs.array_char_value(4) := p_source_55;
17540 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17541 l_rec_acct_attrs.array_char_value(5) := p_source_56;
17542 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17543 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
17544 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17545 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
17546 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17547 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
17548 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17549 l_rec_acct_attrs.array_char_value(9) := p_source_60;
17550 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17551 l_rec_acct_attrs.array_num_value(10) := p_source_53;
17552 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17553 l_rec_acct_attrs.array_char_value(11) := p_source_113;
17554 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17555 l_rec_acct_attrs.array_date_value(12) := p_source_114;
17556 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17557 l_rec_acct_attrs.array_num_value(13) := p_source_115;
17558 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17559 l_rec_acct_attrs.array_char_value(14) := p_source_116;
17560 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17561 l_rec_acct_attrs.array_num_value(15) := p_source_22;
17562 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17563 l_rec_acct_attrs.array_char_value(16) := p_source_64;
17564 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17565 l_rec_acct_attrs.array_num_value(17) := p_source_65;
17566 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17567 l_rec_acct_attrs.array_num_value(18) := p_source_66;
17568 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17569 l_rec_acct_attrs.array_char_value(19) := p_source_67;
17570 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17571 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
17572 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17573 l_rec_acct_attrs.array_char_value(21) := p_source_60;
17574 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17575 l_rec_acct_attrs.array_num_value(22) := p_source_69;
17576 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17577 l_rec_acct_attrs.array_num_value(23) := p_source_69;
17578 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17579 l_rec_acct_attrs.array_num_value(24) := p_source_70;
17580
17581 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17582 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17583
17584 ---------------------------------------------------------------------------------------------------------------
17585 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17586 ---------------------------------------------------------------------------------------------------------------
17587 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17588
17589 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17590 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17591
17592 IF xla_accounting_cache_pkg.GetValueChar
17593 (p_source_code => 'LEDGER_CATEGORY_CODE'
17594 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17595 AND l_bflow_method_code = 'PRIOR_ENTRY'
17596 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17597 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17598 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17599 )
17600 THEN
17601 xla_ae_lines_pkg.BflowUpgEntry
17602 (p_business_method_code => l_bflow_method_code
17603 ,p_business_class_code => l_bflow_class_code
17604 ,p_balance_type => l_balance_type_code);
17605 ELSE
17606 NULL;
17607 -- No business flow processing for business flow method of NONE.
17608 END IF;
17609
17610 --
17611 -- call analytical criteria
17612 --
17613
17614 --
17615 -- call description
17616 --
17617 -- No description or it is inherited.
17618 --
17619 -- call ADRs
17620 -- Bug 4922099
17621 --
17625 )
17622 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17623 (NVL(l_actual_upg_option, 'N') = 'O') OR
17624 (NVL(l_enc_upg_option, 'N') = 'O')
17626 THEN
17627 NULL;
17628 --
17629 --
17630
17631 l_ccid := AcctDerRule_21(
17632 p_application_id => p_application_id
17633 , p_ae_header_id => l_ae_header_id
17634 , p_source_16 => p_source_16
17635 , p_source_16_meaning => p_source_16_meaning
17636 , p_source_29 => p_source_29
17637 , p_source_38 => p_source_38
17638 , x_transaction_coa_id => l_adr_transaction_coa_id
17639 , x_accounting_coa_id => l_adr_accounting_coa_id
17640 , x_value_type_code => l_adr_value_type_code
17641 , p_side => 'NA'
17642 );
17643
17644 xla_ae_lines_pkg.set_ccid(
17645 p_code_combination_id => l_ccid
17646 , p_value_type_code => l_adr_value_type_code
17647 , p_transaction_coa_id => l_adr_transaction_coa_id
17648 , p_accounting_coa_id => l_adr_accounting_coa_id
17649 , p_adr_code => 'AP_BANK_ERRORS'
17650 , p_adr_type_code => 'S'
17651 , p_component_type => l_component_type
17652 , p_component_code => l_component_code
17653 , p_component_type_code => l_component_type_code
17654 , p_component_appl_id => l_component_appl_id
17655 , p_amb_context_code => l_amb_context_code
17656 , p_side => 'NA'
17657 );
17658
17659
17660 --
17661 --
17662 END IF;
17663 --
17664 -- Bug 4922099
17665 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17666 (NVL(l_enc_upg_option, 'N') = 'O')
17667 ) AND
17668 (l_bflow_method_code = 'PRIOR_ENTRY')
17669 )
17670 THEN
17671 IF
17672 --
17673 1 = 2
17674 --
17675 THEN
17676 xla_accounting_err_pkg.build_message
17677 (p_appli_s_name => 'XLA'
17678 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17679 ,p_token_1 => 'LINE_NUMBER'
17680 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17681 ,p_token_2 => 'LINE_TYPE_NAME'
17682 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17683 l_component_type
17684 ,l_component_code
17685 ,l_component_type_code
17686 ,l_component_appl_id
17687 ,l_amb_context_code
17688 ,l_entity_code
17689 ,l_event_class_code
17690 )
17691 ,p_token_3 => 'OWNER'
17692 ,p_value_3 => xla_lookups_pkg.get_meaning(
17693 p_lookup_type => 'XLA_OWNER_TYPE'
17694 ,p_lookup_code => l_component_type_code
17695 )
17696 ,p_token_4 => 'PRODUCT_NAME'
17697 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17698 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17699 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17700 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17701 ,p_ae_header_id => NULL
17702 );
17703
17704 IF (C_LEVEL_ERROR>= g_log_level) THEN
17705 trace
17706 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17707 ,p_level => C_LEVEL_ERROR
17708 ,p_module => l_log_module);
17709 END IF;
17710 END IF;
17711 END IF;
17712 --
17713 --
17714 ------------------------------------------------------------------------------------------------
17715 -- 4219869 Business Flow
17716 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17717 -- Prior Entry. Currently, the following code is always generated.
17718 ------------------------------------------------------------------------------------------------
17719 XLA_AE_LINES_PKG.ValidateCurrentLine;
17720
17721 ------------------------------------------------------------------------------------
17722 -- 4219869 Business Flow
17723 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17724 ------------------------------------------------------------------------------------
17728 -- 4219869 Business Flow
17725 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17726
17727 ----------------------------------------------------------------------------------
17729 -- Update journal entry status -- Need to generate this within IF <condition>
17730 ----------------------------------------------------------------------------------
17731 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17732 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17733 ,p_balance_type_code => l_balance_type_code
17734 );
17735
17736 -------------------------------------------------------------------------------------------
17737 -- 4262811 - Generate the Accrual Reversal lines
17738 -------------------------------------------------------------------------------------------
17739 BEGIN
17740 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17741 (g_array_event(p_event_id).array_value_num('header_index'));
17742 IF l_acc_rev_flag IS NULL THEN
17743 l_acc_rev_flag := 'N';
17744 END IF;
17745 EXCEPTION
17746 WHEN OTHERS THEN
17747 l_acc_rev_flag := 'N';
17748 END;
17749 --
17750 IF (l_acc_rev_flag = 'Y') THEN
17751
17752 -- 4645092 ------------------------------------------------------------------------------
17753 -- To allow MPA report to determine if it should generate report process
17754 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17755 ------------------------------------------------------------------------------------------
17756
17757 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17758 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17759 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17760 -- call ADRs
17761 -- Bug 4922099
17762 --
17763 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17764 (NVL(l_actual_upg_option, 'N') = 'O') OR
17765 (NVL(l_enc_upg_option, 'N') = 'O')
17766 )
17767 THEN
17768 NULL;
17769 --
17770 --
17771
17772 l_ccid := AcctDerRule_21(
17773 p_application_id => p_application_id
17774 , p_ae_header_id => l_ae_header_id
17775 , p_source_16 => p_source_16
17776 , p_source_16_meaning => p_source_16_meaning
17777 , p_source_29 => p_source_29
17778 , p_source_38 => p_source_38
17779 , x_transaction_coa_id => l_adr_transaction_coa_id
17780 , x_accounting_coa_id => l_adr_accounting_coa_id
17781 , x_value_type_code => l_adr_value_type_code
17782 , p_side => 'NA'
17783 );
17784
17785 xla_ae_lines_pkg.set_ccid(
17786 p_code_combination_id => l_ccid
17787 , p_value_type_code => l_adr_value_type_code
17788 , p_transaction_coa_id => l_adr_transaction_coa_id
17789 , p_accounting_coa_id => l_adr_accounting_coa_id
17790 , p_adr_code => 'AP_BANK_ERRORS'
17791 , p_adr_type_code => 'S'
17792 , p_component_type => l_component_type
17793 , p_component_code => l_component_code
17794 , p_component_type_code => l_component_type_code
17795 , p_component_appl_id => l_component_appl_id
17796 , p_amb_context_code => l_amb_context_code
17797 , p_side => 'NA'
17798 );
17799
17800
17801 --
17802 --
17803 END IF;
17804
17805 --
17806 -- Update the line information that should be overwritten
17807 --
17808 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17809 p_header_num => 1);
17810 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17811
17812 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17813
17814 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17815 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17816 END IF;
17817
17818 --
17819 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17820 --
17821 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17822 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17823 ELSE
17824 ---------------------------------------------------------------------------------------------------
17825 -- 4262811a Switch Sign
17826 ---------------------------------------------------------------------------------------------------
17827 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17828 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17829 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17830 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17831 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17832 -- 5132302
17836 END IF;
17833 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17834 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17835
17837
17838 -- 4955764
17839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17841
17842
17843 XLA_AE_LINES_PKG.ValidateCurrentLine;
17844 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17845
17846 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17847 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17848 ,p_balance_type_code => l_balance_type_code);
17849
17850 END IF;
17851
17852 -----------------------------------------------------------------------------------------
17853 -- 4262811 Multiperiod Accounting
17854 -----------------------------------------------------------------------------------------
17855 -- No MPA option is assigned.
17856
17857
17858 END IF;
17859 END IF;
17860 --
17861
17862 --
17863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17864 trace
17865 (p_msg => 'END of AcctLineType_53'
17866 ,p_level => C_LEVEL_PROCEDURE
17867 ,p_module => l_log_module);
17868 END IF;
17869 --
17870 EXCEPTION
17871 WHEN xla_exceptions_pkg.application_exception THEN
17872 RAISE;
17873 WHEN OTHERS THEN
17874 xla_exceptions_pkg.raise_message
17875 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_53');
17876 END AcctLineType_53;
17877 --
17878
17879 ---------------------------------------
17880 --
17881 -- PRIVATE FUNCTION
17882 -- AcctLineType_54
17883 --
17884 ---------------------------------------
17885 PROCEDURE AcctLineType_54 (
17886 p_application_id IN NUMBER
17887 ,p_event_id IN NUMBER
17888 ,p_calculate_acctd_flag IN VARCHAR2
17889 ,p_calculate_g_l_flag IN VARCHAR2
17890 ,p_actual_flag IN OUT VARCHAR2
17891 ,p_balance_type_code OUT VARCHAR2
17892 ,p_gain_or_loss_ref OUT VARCHAR2
17893
17894 --Payment Currency Code
17895 , p_source_12 IN VARCHAR2
17896 --Bank Cash Account
17897 , p_source_13 IN NUMBER
17898 --Automatic Offsets Value
17899 , p_source_16 IN VARCHAR2
17900 , p_source_16_meaning IN VARCHAR2
17901 --Payment Distribution (Cleared Rate) Ledger Amount
17902 , p_source_22 IN NUMBER
17903 --When to Account for Payment Option
17904 , p_source_50 IN VARCHAR2
17905 --Payment Distribution Type
17906 , p_source_51 IN VARCHAR2
17907 , p_source_51_meaning IN VARCHAR2
17908 --Accounting Reversal Indicator
17909 , p_source_52 IN VARCHAR2
17910 --Payment Distribution Amount
17911 , p_source_53 IN NUMBER
17912 --Business Flow Accounts Payable Application Identifier
17913 , p_source_54 IN NUMBER
17914 --Business Flow Payment Distribution Type
17915 , p_source_55 IN VARCHAR2
17916 --Business Flow Payment Entity Code
17917 , p_source_56 IN VARCHAR2
17918 --Business Flow Payment Distribution Identifier
17919 , p_source_57 IN NUMBER
17920 --Business Flow Payment Identifier
17921 , p_source_58 IN NUMBER
17922 --Payment Distribution Identifier
17923 , p_source_59 IN NUMBER
17924 --Distribution Link Type
17925 , p_source_60 IN VARCHAR2
17926 --Override Accounted Amount Indicator
17927 , p_source_64 IN VARCHAR2
17928 , p_source_64_meaning IN VARCHAR2
17929 --Payment Supplier Identifier
17930 , p_source_65 IN NUMBER
17931 --Payment Supplier Site Identifier
17932 , p_source_66 IN NUMBER
17933 --Third Party Type
17934 , p_source_67 IN VARCHAR2
17935 --Payment Distribution Reversed Identifier
17936 , p_source_68 IN NUMBER
17937 --Invoice Distribution Tax Line Identifier
17938 , p_source_69 IN NUMBER
17939 --Invoice Distribution Summary Tax Line Identifier
17940 , p_source_70 IN NUMBER
17941 --Cleared Exchange Date
17942 , p_source_114 IN DATE
17943 --Cleared Exchange Rate
17944 , p_source_115 IN NUMBER
17945 --Cleared Exchange Rate Type
17946 , p_source_116 IN VARCHAR2
17947 --Pooled Bank Account Option
17948 , p_source_117 IN VARCHAR2
17949 , p_source_117_meaning IN VARCHAR2
17950 )
17951 IS
17952
17953 l_component_type VARCHAR2(80);
17954 l_component_code VARCHAR2(30);
17955 l_component_type_code VARCHAR2(1);
17956 l_component_appl_id INTEGER;
17957 l_amb_context_code VARCHAR2(30);
17958 l_entity_code VARCHAR2(30);
17959 l_event_class_code VARCHAR2(30);
17960 l_ae_header_id NUMBER;
17961 l_event_type_code VARCHAR2(30);
17962 l_line_definition_code VARCHAR2(30);
17963 l_line_definition_owner_code VARCHAR2(1);
17964 --
17965 -- adr variables
17966 l_segment VARCHAR2(30);
17967 l_ccid NUMBER;
17968 l_adr_transaction_coa_id NUMBER;
17969 l_adr_accounting_coa_id NUMBER;
17973 l_adr_value_combination_id NUMBER;
17970 l_adr_flexfield_segment_code VARCHAR2(30);
17971 l_adr_flex_value_set_id NUMBER;
17972 l_adr_value_type_code VARCHAR2(30);
17974 l_adr_value_segment_code VARCHAR2(30);
17975
17976 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17977 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17978 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17979 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17980
17981 -- 4262811 Variables ------------------------------------------------------------------------------------------
17982 l_entered_amt_idx NUMBER;
17983 l_accted_amt_idx NUMBER;
17984 l_acc_rev_flag VARCHAR2(1);
17985 l_accrual_line_num NUMBER;
17986 l_tmp_amt NUMBER;
17987 l_acc_rev_natural_side_code VARCHAR2(1);
17988
17989 l_num_entries NUMBER;
17990 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17991 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17992 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17993 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17994 l_recog_line_1 NUMBER;
17995 l_recog_line_2 NUMBER;
17996
17997 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17998 l_bflow_applied_to_amt NUMBER; -- 5132302
17999 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18000
18001 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18002
18003 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18004 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18005
18006 ---------------------------------------------------------------------------------------------------------------
18007
18008
18009 --
18010 -- bulk performance
18011 --
18012 l_balance_type_code VARCHAR2(1);
18013 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18014 l_log_module VARCHAR2(240);
18015
18016 --
18017 -- Upgrade strategy
18018 --
18019 l_actual_upg_option VARCHAR2(1);
18020 l_enc_upg_option VARCHAR2(1);
18021
18022 --
18023 BEGIN
18024 --
18025 IF g_log_enabled THEN
18026 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
18027 END IF;
18028 --
18029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18030
18031 trace
18032 (p_msg => 'BEGIN of AcctLineType_54'
18033 ,p_level => C_LEVEL_PROCEDURE
18034 ,p_module => l_log_module);
18035
18036 END IF;
18037 --
18038 l_component_type := 'AMB_JLT';
18039 l_component_code := 'AP_CASH_CLEARONLY_AOS_AS';
18040 l_component_type_code := 'S';
18041 l_component_appl_id := 200;
18042 l_amb_context_code := 'DEFAULT';
18043 l_entity_code := 'AP_PAYMENTS';
18044 l_event_class_code := 'RECONCILED PAYMENTS';
18045 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
18046 l_line_definition_owner_code := 'S';
18047 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
18048 --
18049 l_balance_type_code := 'A';
18050 l_segment := NULL;
18051 l_ccid := NULL;
18052 l_adr_transaction_coa_id := NULL;
18053 l_adr_accounting_coa_id := NULL;
18054 l_adr_flexfield_segment_code := NULL;
18055 l_adr_flex_value_set_id := NULL;
18056 l_adr_value_type_code := NULL;
18057 l_adr_value_combination_id := NULL;
18058 l_adr_value_segment_code := NULL;
18059
18060 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
18061 l_bflow_class_code := ''; -- 4219869 Business Flow
18062 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18063 l_budgetary_control_flag := 'N';
18064
18065 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18066 l_bflow_applied_to_amt := NULL; -- 5132302
18067 l_entered_amt_idx := NULL; -- 4262811
18068 l_accted_amt_idx := NULL; -- 4262811
18069 l_acc_rev_flag := NULL; -- 4262811
18070 l_accrual_line_num := NULL; -- 4262811
18071 l_tmp_amt := NULL; -- 4262811
18072 --
18073
18074 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18075 l_balance_type_code <> 'B' THEN
18076 IF NVL(p_source_50,'
18077 ') <> 'ISSUE_ISSUE' AND
18078 (NVL(p_source_117,'
18079 ') = 'Y' AND
18080 NVL(p_source_16,'
18081 ') = 'ACCOUNT_SEGMENT_VALUE') AND
18082 (NVL(p_source_51,'
18083 ') = 'CASH' OR
18084 NVL(p_source_51,'
18085 ') = 'BANK CHARGE' OR
18086 NVL(p_source_51,'
18087 ') = 'BANK ERROR')
18088 THEN
18089
18090 --
18091 XLA_AE_LINES_PKG.SetNewLine;
18092
18093 p_balance_type_code := l_balance_type_code;
18094 -- set the flag so later we will know whether the gain loss line needs to be created
18095
18096 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18097 p_actual_flag :='A';
18098 END IF;
18099
18100 --
18101 -- bulk performance
18105 --
18102 --
18103 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18104 p_header_num => 0); -- 4262811
18106 -- set accounting line options
18107 --
18108 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18109 p_natural_side_code => 'C'
18110 , p_gain_or_loss_flag => 'N'
18111 , p_gl_transfer_mode_code => 'S'
18112 , p_acct_entry_type_code => 'A'
18113 , p_switch_side_flag => 'Y'
18114 , p_merge_duplicate_code => 'A'
18115 );
18116 --
18117 l_acc_rev_natural_side_code := 'D'; -- 4262811
18118 --
18119 --
18120 -- set accounting line type info
18121 --
18122 xla_ae_lines_pkg.SetAcctLineType
18123 (p_component_type => l_component_type
18124 ,p_event_type_code => l_event_type_code
18125 ,p_line_definition_owner_code => l_line_definition_owner_code
18126 ,p_line_definition_code => l_line_definition_code
18127 ,p_accounting_line_code => l_component_code
18128 ,p_accounting_line_type_code => l_component_type_code
18129 ,p_accounting_line_appl_id => l_component_appl_id
18130 ,p_amb_context_code => l_amb_context_code
18131 ,p_entity_code => l_entity_code
18132 ,p_event_class_code => l_event_class_code);
18133 --
18134 -- set accounting class
18135 --
18136 xla_ae_lines_pkg.SetAcctClass(
18137 p_accounting_class_code => 'CASH'
18138 , p_ae_header_id => l_ae_header_id
18139 );
18140
18141 --
18142 -- set rounding class
18143 --
18144 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18145 'CASH';
18146
18147 --
18148 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18149 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18150 --
18151 -- bulk performance
18152 --
18153 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18154
18155 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18156 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18157
18158 -- 4955764
18159 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18160 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18161
18162 -- 4458381 Public Sector Enh
18163
18164 --
18165 -- set accounting attributes for the line type
18166 --
18167 l_entered_amt_idx := 10;
18168 l_accted_amt_idx := 15;
18169 l_bflow_applied_to_amt_idx := 2; -- 5132302
18170 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18171 l_rec_acct_attrs.array_char_value(1) := p_source_52;
18172 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18173 l_rec_acct_attrs.array_num_value(2) := p_source_53;
18174 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18175 l_rec_acct_attrs.array_num_value(3) := p_source_54;
18176 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18177 l_rec_acct_attrs.array_char_value(4) := p_source_55;
18178 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18179 l_rec_acct_attrs.array_char_value(5) := p_source_56;
18180 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18181 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
18182 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18183 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
18184 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18185 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
18186 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18187 l_rec_acct_attrs.array_char_value(9) := p_source_60;
18188 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18189 l_rec_acct_attrs.array_num_value(10) := p_source_53;
18190 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18191 l_rec_acct_attrs.array_char_value(11) := p_source_12;
18192 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18193 l_rec_acct_attrs.array_date_value(12) := p_source_114;
18194 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18195 l_rec_acct_attrs.array_num_value(13) := p_source_115;
18196 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18197 l_rec_acct_attrs.array_char_value(14) := p_source_116;
18198 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18199 l_rec_acct_attrs.array_num_value(15) := p_source_22;
18200 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18201 l_rec_acct_attrs.array_char_value(16) := p_source_64;
18202 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18203 l_rec_acct_attrs.array_num_value(17) := p_source_65;
18204 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18205 l_rec_acct_attrs.array_num_value(18) := p_source_66;
18206 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18207 l_rec_acct_attrs.array_char_value(19) := p_source_67;
18208 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18212 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18209 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
18210 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18211 l_rec_acct_attrs.array_char_value(21) := p_source_60;
18213 l_rec_acct_attrs.array_num_value(22) := p_source_69;
18214 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18215 l_rec_acct_attrs.array_num_value(23) := p_source_69;
18216 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18217 l_rec_acct_attrs.array_num_value(24) := p_source_70;
18218
18219 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18220 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18221
18222 ---------------------------------------------------------------------------------------------------------------
18223 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18224 ---------------------------------------------------------------------------------------------------------------
18225 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18226
18227 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18228 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18229
18230 IF xla_accounting_cache_pkg.GetValueChar
18231 (p_source_code => 'LEDGER_CATEGORY_CODE'
18232 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18233 AND l_bflow_method_code = 'PRIOR_ENTRY'
18234 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18235 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18236 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18237 )
18238 THEN
18239 xla_ae_lines_pkg.BflowUpgEntry
18240 (p_business_method_code => l_bflow_method_code
18241 ,p_business_class_code => l_bflow_class_code
18242 ,p_balance_type => l_balance_type_code);
18243 ELSE
18244 NULL;
18245 XLA_AE_LINES_PKG.business_flow_validation(
18246 p_business_method_code => l_bflow_method_code
18247 ,p_business_class_code => l_bflow_class_code
18248 ,p_inherit_description_flag => l_inherit_desc_flag);
18249 END IF;
18250
18251 --
18252 -- call analytical criteria
18253 --
18254
18255 --
18256 -- call description
18257 --
18258 -- No description or it is inherited.
18259 --
18260 -- call ADRs
18261 -- Bug 4922099
18262 --
18263 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18264 (NVL(l_actual_upg_option, 'N') = 'O') OR
18265 (NVL(l_enc_upg_option, 'N') = 'O')
18266 )
18267 THEN
18268 NULL;
18269 --
18270 --
18271
18272 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
18273 p_code_combination_id => TO_NUMBER(C_NUM)
18274 , p_value_type_code => NULL
18275 , p_transaction_coa_id => null
18276 , p_accounting_coa_id => null
18277 , p_adr_code => NULL
18278 , p_adr_type_code => NULL
18279 , p_component_type => l_component_type
18280 , p_component_code => l_component_code
18281 , p_component_type_code => l_component_type_code
18282 , p_component_appl_id => l_component_appl_id
18283 , p_amb_context_code => l_amb_context_code
18284 , p_side => NULL
18285 );
18286
18287
18288 -- initialise segments
18289 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18290 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18291 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18292 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18293 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18294 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18295 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18296 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18297 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18298 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18299 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18300 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18301 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18302 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18303 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18304 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18305 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18306 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18307 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18308 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18312 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18309 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18310 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18311 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18313 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18314 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18315 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18316 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18317 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18318 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18319 --
18320
18321 --
18322
18323
18324 l_segment := AcctDerRule_3(
18325 p_application_id => p_application_id
18326 , p_ae_header_id => l_ae_header_id
18327 , p_source_13 => p_source_13
18328 , x_transaction_coa_id => l_adr_transaction_coa_id
18329 , x_accounting_coa_id => l_adr_accounting_coa_id
18330 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18331 , x_flex_value_set_id => l_adr_flex_value_set_id
18332 , x_value_type_code => l_adr_value_type_code
18333 , x_value_combination_id => l_adr_value_combination_id
18334 , x_value_segment_code => l_adr_value_segment_code
18335 , p_side => 'NA'
18336 , p_override_seg_flag => 'Y'
18337 );
18338
18339 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18340
18341 xla_ae_lines_pkg.set_segment(
18342 p_to_segment_code => 'GL_ACCOUNT'
18343 , p_segment_value => l_segment
18344 , p_from_segment_code => l_adr_value_segment_code
18345 , p_from_combination_id => l_adr_value_combination_id
18346 , p_value_type_code => l_adr_value_type_code
18347 , p_transaction_coa_id => l_adr_transaction_coa_id
18348 , p_accounting_coa_id => l_adr_accounting_coa_id
18349 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18350 , p_flex_value_set_id => l_adr_flex_value_set_id
18351 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
18352 , p_adr_type_code => 'S'
18353 , p_component_type => l_component_type
18354 , p_component_code => l_component_code
18355 , p_component_type_code => l_component_type_code
18356 , p_component_appl_id => l_component_appl_id
18357 , p_amb_context_code => l_amb_context_code
18358 , p_entity_code => 'AP_PAYMENTS'
18359 , p_event_class_code => 'RECONCILED PAYMENTS'
18360 , p_side => 'NA'
18361 );
18362
18363 END IF;
18364
18365 --
18366 --
18367 END IF;
18368 --
18369 -- Bug 4922099
18370 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18371 (NVL(l_enc_upg_option, 'N') = 'O')
18372 ) AND
18373 (l_bflow_method_code = 'PRIOR_ENTRY')
18374 )
18375 THEN
18376 IF
18377 --
18378 1 = 2
18379 --
18380 THEN
18381 xla_accounting_err_pkg.build_message
18382 (p_appli_s_name => 'XLA'
18383 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18384 ,p_token_1 => 'LINE_NUMBER'
18385 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18386 ,p_token_2 => 'LINE_TYPE_NAME'
18387 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18388 l_component_type
18389 ,l_component_code
18390 ,l_component_type_code
18391 ,l_component_appl_id
18392 ,l_amb_context_code
18393 ,l_entity_code
18394 ,l_event_class_code
18395 )
18396 ,p_token_3 => 'OWNER'
18397 ,p_value_3 => xla_lookups_pkg.get_meaning(
18398 p_lookup_type => 'XLA_OWNER_TYPE'
18399 ,p_lookup_code => l_component_type_code
18400 )
18401 ,p_token_4 => 'PRODUCT_NAME'
18402 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18403 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18407 );
18404 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18405 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18406 ,p_ae_header_id => NULL
18408
18409 IF (C_LEVEL_ERROR>= g_log_level) THEN
18410 trace
18411 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18412 ,p_level => C_LEVEL_ERROR
18413 ,p_module => l_log_module);
18414 END IF;
18415 END IF;
18416 END IF;
18417 --
18418 --
18419 ------------------------------------------------------------------------------------------------
18420 -- 4219869 Business Flow
18421 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18422 -- Prior Entry. Currently, the following code is always generated.
18423 ------------------------------------------------------------------------------------------------
18424 XLA_AE_LINES_PKG.ValidateCurrentLine;
18425
18426 ------------------------------------------------------------------------------------
18427 -- 4219869 Business Flow
18428 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18429 ------------------------------------------------------------------------------------
18430 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18431
18432 ----------------------------------------------------------------------------------
18433 -- 4219869 Business Flow
18434 -- Update journal entry status -- Need to generate this within IF <condition>
18435 ----------------------------------------------------------------------------------
18436 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18437 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18438 ,p_balance_type_code => l_balance_type_code
18439 );
18440
18441 -------------------------------------------------------------------------------------------
18442 -- 4262811 - Generate the Accrual Reversal lines
18443 -------------------------------------------------------------------------------------------
18444 BEGIN
18445 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18446 (g_array_event(p_event_id).array_value_num('header_index'));
18447 IF l_acc_rev_flag IS NULL THEN
18448 l_acc_rev_flag := 'N';
18449 END IF;
18450 EXCEPTION
18451 WHEN OTHERS THEN
18452 l_acc_rev_flag := 'N';
18453 END;
18454 --
18455 IF (l_acc_rev_flag = 'Y') THEN
18456
18457 -- 4645092 ------------------------------------------------------------------------------
18458 -- To allow MPA report to determine if it should generate report process
18459 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18460 ------------------------------------------------------------------------------------------
18461
18462 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18463 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18464 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18465 -- call ADRs
18466 -- Bug 4922099
18467 --
18468 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18469 (NVL(l_actual_upg_option, 'N') = 'O') OR
18470 (NVL(l_enc_upg_option, 'N') = 'O')
18471 )
18472 THEN
18473 NULL;
18474 --
18475 --
18476
18477 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
18478 p_code_combination_id => TO_NUMBER(C_NUM)
18479 , p_value_type_code => NULL
18480 , p_transaction_coa_id => null
18481 , p_accounting_coa_id => null
18482 , p_adr_code => NULL
18483 , p_adr_type_code => NULL
18484 , p_component_type => l_component_type
18485 , p_component_code => l_component_code
18486 , p_component_type_code => l_component_type_code
18487 , p_component_appl_id => l_component_appl_id
18488 , p_amb_context_code => l_amb_context_code
18489 , p_side => NULL
18490 );
18491
18492
18493 -- initialise segments
18494 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18495 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18496 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18497 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18498 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18499 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18500 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18501 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18502 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18503 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18504 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18505 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18509 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18506 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18507 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18508 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18510 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18511 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18512 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18513 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18514 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18515 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18516 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18517 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18518 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18519 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18520 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18521 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18522 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18523 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18524 --
18525
18526 --
18527
18528
18529 l_segment := AcctDerRule_3(
18530 p_application_id => p_application_id
18531 , p_ae_header_id => l_ae_header_id
18532 , p_source_13 => p_source_13
18533 , x_transaction_coa_id => l_adr_transaction_coa_id
18534 , x_accounting_coa_id => l_adr_accounting_coa_id
18535 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18536 , x_flex_value_set_id => l_adr_flex_value_set_id
18537 , x_value_type_code => l_adr_value_type_code
18538 , x_value_combination_id => l_adr_value_combination_id
18539 , x_value_segment_code => l_adr_value_segment_code
18540 , p_side => 'NA'
18541 , p_override_seg_flag => 'Y'
18542 );
18543
18544 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18545
18546 xla_ae_lines_pkg.set_segment(
18547 p_to_segment_code => 'GL_ACCOUNT'
18548 , p_segment_value => l_segment
18549 , p_from_segment_code => l_adr_value_segment_code
18550 , p_from_combination_id => l_adr_value_combination_id
18551 , p_value_type_code => l_adr_value_type_code
18552 , p_transaction_coa_id => l_adr_transaction_coa_id
18553 , p_accounting_coa_id => l_adr_accounting_coa_id
18554 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18555 , p_flex_value_set_id => l_adr_flex_value_set_id
18556 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
18557 , p_adr_type_code => 'S'
18558 , p_component_type => l_component_type
18559 , p_component_code => l_component_code
18560 , p_component_type_code => l_component_type_code
18561 , p_component_appl_id => l_component_appl_id
18562 , p_amb_context_code => l_amb_context_code
18563 , p_entity_code => 'AP_PAYMENTS'
18564 , p_event_class_code => 'RECONCILED PAYMENTS'
18565 , p_side => 'NA'
18566 );
18567
18568 END IF;
18569
18570 --
18571 --
18572 END IF;
18573
18574 --
18575 -- Update the line information that should be overwritten
18576 --
18577 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18578 p_header_num => 1);
18579 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18580
18581 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18582
18583 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18584 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18585 END IF;
18586
18587 --
18588 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18589 --
18590 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18591 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18592 ELSE
18593 ---------------------------------------------------------------------------------------------------
18594 -- 4262811a Switch Sign
18595 ---------------------------------------------------------------------------------------------------
18596 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18597 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18598 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18602 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18599 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18600 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18601 -- 5132302
18603 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18604
18605 END IF;
18606
18607 -- 4955764
18608 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18609 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18610
18611
18612 XLA_AE_LINES_PKG.ValidateCurrentLine;
18613 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18614
18615 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18616 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18617 ,p_balance_type_code => l_balance_type_code);
18618
18619 END IF;
18620
18621 -----------------------------------------------------------------------------------------
18622 -- 4262811 Multiperiod Accounting
18623 -----------------------------------------------------------------------------------------
18624 -- No MPA option is assigned.
18625
18626
18627 END IF;
18628 END IF;
18629 --
18630
18631 --
18632 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18633 trace
18634 (p_msg => 'END of AcctLineType_54'
18635 ,p_level => C_LEVEL_PROCEDURE
18636 ,p_module => l_log_module);
18637 END IF;
18638 --
18639 EXCEPTION
18640 WHEN xla_exceptions_pkg.application_exception THEN
18641 RAISE;
18642 WHEN OTHERS THEN
18643 xla_exceptions_pkg.raise_message
18644 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_54');
18645 END AcctLineType_54;
18646 --
18647
18648 ---------------------------------------
18649 --
18650 -- PRIVATE FUNCTION
18651 -- AcctLineType_55
18652 --
18653 ---------------------------------------
18654 PROCEDURE AcctLineType_55 (
18655 p_application_id IN NUMBER
18656 ,p_event_id IN NUMBER
18657 ,p_calculate_acctd_flag IN VARCHAR2
18658 ,p_calculate_g_l_flag IN VARCHAR2
18659 ,p_actual_flag IN OUT VARCHAR2
18660 ,p_balance_type_code OUT VARCHAR2
18661 ,p_gain_or_loss_ref OUT VARCHAR2
18662
18663 --Payment Currency Code
18664 , p_source_12 IN VARCHAR2
18665 --Bank Cash Account
18666 , p_source_13 IN NUMBER
18667 --Automatic Offsets Value
18668 , p_source_16 IN VARCHAR2
18669 , p_source_16_meaning IN VARCHAR2
18670 --Payment Distribution (Cleared Rate) Ledger Amount
18671 , p_source_22 IN NUMBER
18672 --When to Account for Payment Option
18673 , p_source_50 IN VARCHAR2
18674 --Payment Distribution Type
18675 , p_source_51 IN VARCHAR2
18676 , p_source_51_meaning IN VARCHAR2
18677 --Accounting Reversal Indicator
18678 , p_source_52 IN VARCHAR2
18679 --Payment Distribution Amount
18680 , p_source_53 IN NUMBER
18681 --Business Flow Accounts Payable Application Identifier
18682 , p_source_54 IN NUMBER
18683 --Business Flow Payment Distribution Type
18684 , p_source_55 IN VARCHAR2
18685 --Business Flow Payment Entity Code
18686 , p_source_56 IN VARCHAR2
18687 --Business Flow Payment Distribution Identifier
18688 , p_source_57 IN NUMBER
18689 --Business Flow Payment Identifier
18690 , p_source_58 IN NUMBER
18691 --Payment Distribution Identifier
18692 , p_source_59 IN NUMBER
18693 --Distribution Link Type
18694 , p_source_60 IN VARCHAR2
18695 --Override Accounted Amount Indicator
18696 , p_source_64 IN VARCHAR2
18697 , p_source_64_meaning IN VARCHAR2
18698 --Payment Supplier Identifier
18699 , p_source_65 IN NUMBER
18700 --Payment Supplier Site Identifier
18701 , p_source_66 IN NUMBER
18702 --Third Party Type
18703 , p_source_67 IN VARCHAR2
18704 --Payment Distribution Reversed Identifier
18705 , p_source_68 IN NUMBER
18706 --Invoice Distribution Tax Line Identifier
18707 , p_source_69 IN NUMBER
18708 --Invoice Distribution Summary Tax Line Identifier
18709 , p_source_70 IN NUMBER
18710 --Cleared Exchange Date
18711 , p_source_114 IN DATE
18712 --Cleared Exchange Rate
18713 , p_source_115 IN NUMBER
18714 --Cleared Exchange Rate Type
18715 , p_source_116 IN VARCHAR2
18716 --Pooled Bank Account Option
18717 , p_source_117 IN VARCHAR2
18718 , p_source_117_meaning IN VARCHAR2
18719 )
18720 IS
18721
18722 l_component_type VARCHAR2(80);
18723 l_component_code VARCHAR2(30);
18724 l_component_type_code VARCHAR2(1);
18725 l_component_appl_id INTEGER;
18726 l_amb_context_code VARCHAR2(30);
18727 l_entity_code VARCHAR2(30);
18728 l_event_class_code VARCHAR2(30);
18729 l_ae_header_id NUMBER;
18730 l_event_type_code VARCHAR2(30);
18731 l_line_definition_code VARCHAR2(30);
18732 l_line_definition_owner_code VARCHAR2(1);
18733 --
18734 -- adr variables
18738 l_adr_accounting_coa_id NUMBER;
18735 l_segment VARCHAR2(30);
18736 l_ccid NUMBER;
18737 l_adr_transaction_coa_id NUMBER;
18739 l_adr_flexfield_segment_code VARCHAR2(30);
18740 l_adr_flex_value_set_id NUMBER;
18741 l_adr_value_type_code VARCHAR2(30);
18742 l_adr_value_combination_id NUMBER;
18743 l_adr_value_segment_code VARCHAR2(30);
18744
18745 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18746 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18747 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18748 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18749
18750 -- 4262811 Variables ------------------------------------------------------------------------------------------
18751 l_entered_amt_idx NUMBER;
18752 l_accted_amt_idx NUMBER;
18753 l_acc_rev_flag VARCHAR2(1);
18754 l_accrual_line_num NUMBER;
18755 l_tmp_amt NUMBER;
18756 l_acc_rev_natural_side_code VARCHAR2(1);
18757
18758 l_num_entries NUMBER;
18759 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18760 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18761 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18762 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18763 l_recog_line_1 NUMBER;
18764 l_recog_line_2 NUMBER;
18765
18766 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18767 l_bflow_applied_to_amt NUMBER; -- 5132302
18768 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18769
18770 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18771
18772 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18773 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18774
18775 ---------------------------------------------------------------------------------------------------------------
18776
18777
18778 --
18779 -- bulk performance
18780 --
18781 l_balance_type_code VARCHAR2(1);
18782 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18783 l_log_module VARCHAR2(240);
18784
18785 --
18786 -- Upgrade strategy
18787 --
18788 l_actual_upg_option VARCHAR2(1);
18789 l_enc_upg_option VARCHAR2(1);
18790
18791 --
18792 BEGIN
18793 --
18794 IF g_log_enabled THEN
18795 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
18796 END IF;
18797 --
18798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18799
18800 trace
18801 (p_msg => 'BEGIN of AcctLineType_55'
18802 ,p_level => C_LEVEL_PROCEDURE
18803 ,p_module => l_log_module);
18804
18805 END IF;
18806 --
18807 l_component_type := 'AMB_JLT';
18808 l_component_code := 'AP_CASH_CLEARONLY_AOS_BS';
18809 l_component_type_code := 'S';
18810 l_component_appl_id := 200;
18811 l_amb_context_code := 'DEFAULT';
18812 l_entity_code := 'AP_PAYMENTS';
18813 l_event_class_code := 'RECONCILED PAYMENTS';
18814 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
18815 l_line_definition_owner_code := 'S';
18816 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
18817 --
18818 l_balance_type_code := 'A';
18819 l_segment := NULL;
18820 l_ccid := NULL;
18821 l_adr_transaction_coa_id := NULL;
18822 l_adr_accounting_coa_id := NULL;
18823 l_adr_flexfield_segment_code := NULL;
18824 l_adr_flex_value_set_id := NULL;
18825 l_adr_value_type_code := NULL;
18826 l_adr_value_combination_id := NULL;
18827 l_adr_value_segment_code := NULL;
18828
18829 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
18830 l_bflow_class_code := ''; -- 4219869 Business Flow
18831 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18832 l_budgetary_control_flag := 'N';
18833
18834 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18835 l_bflow_applied_to_amt := NULL; -- 5132302
18836 l_entered_amt_idx := NULL; -- 4262811
18837 l_accted_amt_idx := NULL; -- 4262811
18838 l_acc_rev_flag := NULL; -- 4262811
18839 l_accrual_line_num := NULL; -- 4262811
18840 l_tmp_amt := NULL; -- 4262811
18841 --
18842
18843 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18844 l_balance_type_code <> 'B' THEN
18845 IF NVL(p_source_50,'
18846 ') <> 'ISSUE_ISSUE' AND
18847 (NVL(p_source_117,'
18848 ') = 'Y' AND
18849 NVL(p_source_16,'
18850 ') = 'BALANCING_SEGMENT') AND
18851 (NVL(p_source_51,'
18852 ') = 'CASH' OR
18853 NVL(p_source_51,'
18854 ') = 'BANK CHARGE' OR
18855 NVL(p_source_51,'
18856 ') = 'BANK ERROR')
18857 THEN
18858
18859 --
18860 XLA_AE_LINES_PKG.SetNewLine;
18861
18862 p_balance_type_code := l_balance_type_code;
18863 -- set the flag so later we will know whether the gain loss line needs to be created
18864
18868
18865 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18866 p_actual_flag :='A';
18867 END IF;
18869 --
18870 -- bulk performance
18871 --
18872 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18873 p_header_num => 0); -- 4262811
18874 --
18875 -- set accounting line options
18876 --
18877 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18878 p_natural_side_code => 'C'
18879 , p_gain_or_loss_flag => 'N'
18880 , p_gl_transfer_mode_code => 'S'
18881 , p_acct_entry_type_code => 'A'
18882 , p_switch_side_flag => 'Y'
18883 , p_merge_duplicate_code => 'A'
18884 );
18885 --
18886 l_acc_rev_natural_side_code := 'D'; -- 4262811
18887 --
18888 --
18889 -- set accounting line type info
18890 --
18891 xla_ae_lines_pkg.SetAcctLineType
18892 (p_component_type => l_component_type
18893 ,p_event_type_code => l_event_type_code
18894 ,p_line_definition_owner_code => l_line_definition_owner_code
18895 ,p_line_definition_code => l_line_definition_code
18896 ,p_accounting_line_code => l_component_code
18897 ,p_accounting_line_type_code => l_component_type_code
18898 ,p_accounting_line_appl_id => l_component_appl_id
18899 ,p_amb_context_code => l_amb_context_code
18900 ,p_entity_code => l_entity_code
18901 ,p_event_class_code => l_event_class_code);
18902 --
18903 -- set accounting class
18904 --
18905 xla_ae_lines_pkg.SetAcctClass(
18906 p_accounting_class_code => 'CASH'
18907 , p_ae_header_id => l_ae_header_id
18908 );
18909
18910 --
18911 -- set rounding class
18912 --
18913 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18914 'CASH';
18915
18916 --
18917 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18918 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18919 --
18920 -- bulk performance
18921 --
18922 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18923
18924 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18925 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18926
18927 -- 4955764
18928 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18929 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18930
18931 -- 4458381 Public Sector Enh
18932
18933 --
18934 -- set accounting attributes for the line type
18935 --
18936 l_entered_amt_idx := 10;
18937 l_accted_amt_idx := 15;
18938 l_bflow_applied_to_amt_idx := 2; -- 5132302
18939 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18940 l_rec_acct_attrs.array_char_value(1) := p_source_52;
18941 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18942 l_rec_acct_attrs.array_num_value(2) := p_source_53;
18943 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18944 l_rec_acct_attrs.array_num_value(3) := p_source_54;
18945 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18946 l_rec_acct_attrs.array_char_value(4) := p_source_55;
18947 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18948 l_rec_acct_attrs.array_char_value(5) := p_source_56;
18949 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18950 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
18951 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18952 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
18953 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18954 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
18955 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18956 l_rec_acct_attrs.array_char_value(9) := p_source_60;
18957 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18958 l_rec_acct_attrs.array_num_value(10) := p_source_53;
18959 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18960 l_rec_acct_attrs.array_char_value(11) := p_source_12;
18961 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18962 l_rec_acct_attrs.array_date_value(12) := p_source_114;
18963 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18964 l_rec_acct_attrs.array_num_value(13) := p_source_115;
18965 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18966 l_rec_acct_attrs.array_char_value(14) := p_source_116;
18967 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18968 l_rec_acct_attrs.array_num_value(15) := p_source_22;
18969 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18970 l_rec_acct_attrs.array_char_value(16) := p_source_64;
18971 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18972 l_rec_acct_attrs.array_num_value(17) := p_source_65;
18973 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18974 l_rec_acct_attrs.array_num_value(18) := p_source_66;
18975 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18979 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18976 l_rec_acct_attrs.array_char_value(19) := p_source_67;
18977 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18978 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
18980 l_rec_acct_attrs.array_char_value(21) := p_source_60;
18981 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18982 l_rec_acct_attrs.array_num_value(22) := p_source_69;
18983 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18984 l_rec_acct_attrs.array_num_value(23) := p_source_69;
18985 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18986 l_rec_acct_attrs.array_num_value(24) := p_source_70;
18987
18988 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18989 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18990
18991 ---------------------------------------------------------------------------------------------------------------
18992 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18993 ---------------------------------------------------------------------------------------------------------------
18994 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18995
18996 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18997 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18998
18999 IF xla_accounting_cache_pkg.GetValueChar
19000 (p_source_code => 'LEDGER_CATEGORY_CODE'
19001 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19002 AND l_bflow_method_code = 'PRIOR_ENTRY'
19003 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19004 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19005 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19006 )
19007 THEN
19008 xla_ae_lines_pkg.BflowUpgEntry
19009 (p_business_method_code => l_bflow_method_code
19010 ,p_business_class_code => l_bflow_class_code
19011 ,p_balance_type => l_balance_type_code);
19012 ELSE
19013 NULL;
19014 XLA_AE_LINES_PKG.business_flow_validation(
19015 p_business_method_code => l_bflow_method_code
19016 ,p_business_class_code => l_bflow_class_code
19017 ,p_inherit_description_flag => l_inherit_desc_flag);
19018 END IF;
19019
19020 --
19021 -- call analytical criteria
19022 --
19023
19024 --
19025 -- call description
19026 --
19027 -- No description or it is inherited.
19028 --
19029 -- call ADRs
19030 -- Bug 4922099
19031 --
19032 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19033 (NVL(l_actual_upg_option, 'N') = 'O') OR
19034 (NVL(l_enc_upg_option, 'N') = 'O')
19035 )
19036 THEN
19037 NULL;
19038 --
19039 --
19040
19041 l_ccid := AcctDerRule_22(
19042 p_application_id => p_application_id
19043 , p_ae_header_id => l_ae_header_id
19044 , p_source_13 => p_source_13
19045 , x_transaction_coa_id => l_adr_transaction_coa_id
19046 , x_accounting_coa_id => l_adr_accounting_coa_id
19047 , x_value_type_code => l_adr_value_type_code
19048 , p_side => 'NA'
19049 );
19050
19051 xla_ae_lines_pkg.set_ccid(
19052 p_code_combination_id => l_ccid
19053 , p_value_type_code => l_adr_value_type_code
19054 , p_transaction_coa_id => l_adr_transaction_coa_id
19055 , p_accounting_coa_id => l_adr_accounting_coa_id
19056 , p_adr_code => 'AP_CASH'
19057 , p_adr_type_code => 'S'
19058 , p_component_type => l_component_type
19059 , p_component_code => l_component_code
19060 , p_component_type_code => l_component_type_code
19061 , p_component_appl_id => l_component_appl_id
19062 , p_amb_context_code => l_amb_context_code
19063 , p_side => 'NA'
19064 );
19065
19066
19067 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
19068 p_to_segment_code => 'GL_BALANCING'
19069 , p_segment_value => C_CHAR
19070 , p_from_segment_code => NULL
19071 , p_from_combination_id => NULL
19072 , p_value_type_code => NULL
19073 , p_transaction_coa_id => null
19074 , p_accounting_coa_id => null
19075 , p_flexfield_segment_code => NULL
19076 , p_flex_value_set_id => NULL
19077 , p_adr_code => NULL
19078 , p_adr_type_code => NULL
19079 , p_component_type => l_component_type
19080 , p_component_code => l_component_code
19081 , p_component_type_code => l_component_type_code
19082 , p_component_appl_id => l_component_appl_id
19083 , p_amb_context_code => l_amb_context_code
19084 , p_entity_code => 'AP_PAYMENTS'
19085 , p_event_class_code => 'RECONCILED PAYMENTS'
19086 , p_side => 'NA'
19087 );
19088 --
19092 --
19089
19090
19091 --
19093 END IF;
19094 --
19095 -- Bug 4922099
19096 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19097 (NVL(l_enc_upg_option, 'N') = 'O')
19098 ) AND
19099 (l_bflow_method_code = 'PRIOR_ENTRY')
19100 )
19101 THEN
19102 IF
19103 --
19104 1 = 2
19105 --
19106 THEN
19107 xla_accounting_err_pkg.build_message
19108 (p_appli_s_name => 'XLA'
19109 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19110 ,p_token_1 => 'LINE_NUMBER'
19111 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19112 ,p_token_2 => 'LINE_TYPE_NAME'
19113 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19114 l_component_type
19115 ,l_component_code
19116 ,l_component_type_code
19117 ,l_component_appl_id
19118 ,l_amb_context_code
19119 ,l_entity_code
19120 ,l_event_class_code
19121 )
19122 ,p_token_3 => 'OWNER'
19123 ,p_value_3 => xla_lookups_pkg.get_meaning(
19124 p_lookup_type => 'XLA_OWNER_TYPE'
19125 ,p_lookup_code => l_component_type_code
19126 )
19127 ,p_token_4 => 'PRODUCT_NAME'
19128 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19129 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19130 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19131 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19132 ,p_ae_header_id => NULL
19133 );
19134
19135 IF (C_LEVEL_ERROR>= g_log_level) THEN
19136 trace
19137 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19138 ,p_level => C_LEVEL_ERROR
19139 ,p_module => l_log_module);
19140 END IF;
19141 END IF;
19142 END IF;
19143 --
19144 --
19145 ------------------------------------------------------------------------------------------------
19146 -- 4219869 Business Flow
19147 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19148 -- Prior Entry. Currently, the following code is always generated.
19149 ------------------------------------------------------------------------------------------------
19150 XLA_AE_LINES_PKG.ValidateCurrentLine;
19151
19152 ------------------------------------------------------------------------------------
19153 -- 4219869 Business Flow
19154 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19155 ------------------------------------------------------------------------------------
19156 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19157
19158 ----------------------------------------------------------------------------------
19159 -- 4219869 Business Flow
19160 -- Update journal entry status -- Need to generate this within IF <condition>
19161 ----------------------------------------------------------------------------------
19162 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19163 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19164 ,p_balance_type_code => l_balance_type_code
19165 );
19166
19167 -------------------------------------------------------------------------------------------
19168 -- 4262811 - Generate the Accrual Reversal lines
19169 -------------------------------------------------------------------------------------------
19170 BEGIN
19171 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19172 (g_array_event(p_event_id).array_value_num('header_index'));
19173 IF l_acc_rev_flag IS NULL THEN
19174 l_acc_rev_flag := 'N';
19175 END IF;
19176 EXCEPTION
19177 WHEN OTHERS THEN
19178 l_acc_rev_flag := 'N';
19179 END;
19180 --
19181 IF (l_acc_rev_flag = 'Y') THEN
19182
19183 -- 4645092 ------------------------------------------------------------------------------
19184 -- To allow MPA report to determine if it should generate report process
19188 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19185 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19186 ------------------------------------------------------------------------------------------
19187
19189 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19190 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19191 -- call ADRs
19192 -- Bug 4922099
19193 --
19194 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19195 (NVL(l_actual_upg_option, 'N') = 'O') OR
19196 (NVL(l_enc_upg_option, 'N') = 'O')
19197 )
19198 THEN
19199 NULL;
19200 --
19201 --
19202
19203 l_ccid := AcctDerRule_22(
19204 p_application_id => p_application_id
19205 , p_ae_header_id => l_ae_header_id
19206 , p_source_13 => p_source_13
19207 , x_transaction_coa_id => l_adr_transaction_coa_id
19208 , x_accounting_coa_id => l_adr_accounting_coa_id
19209 , x_value_type_code => l_adr_value_type_code
19210 , p_side => 'NA'
19211 );
19212
19213 xla_ae_lines_pkg.set_ccid(
19214 p_code_combination_id => l_ccid
19215 , p_value_type_code => l_adr_value_type_code
19216 , p_transaction_coa_id => l_adr_transaction_coa_id
19217 , p_accounting_coa_id => l_adr_accounting_coa_id
19218 , p_adr_code => 'AP_CASH'
19219 , p_adr_type_code => 'S'
19220 , p_component_type => l_component_type
19221 , p_component_code => l_component_code
19222 , p_component_type_code => l_component_type_code
19223 , p_component_appl_id => l_component_appl_id
19224 , p_amb_context_code => l_amb_context_code
19225 , p_side => 'NA'
19226 );
19227
19228
19229 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
19230 p_to_segment_code => 'GL_BALANCING'
19231 , p_segment_value => C_CHAR
19232 , p_from_segment_code => NULL
19233 , p_from_combination_id => NULL
19234 , p_value_type_code => NULL
19235 , p_transaction_coa_id => null
19236 , p_accounting_coa_id => null
19237 , p_flexfield_segment_code => NULL
19238 , p_flex_value_set_id => NULL
19239 , p_adr_code => NULL
19240 , p_adr_type_code => NULL
19241 , p_component_type => l_component_type
19242 , p_component_code => l_component_code
19243 , p_component_type_code => l_component_type_code
19244 , p_component_appl_id => l_component_appl_id
19245 , p_amb_context_code => l_amb_context_code
19246 , p_entity_code => 'AP_PAYMENTS'
19247 , p_event_class_code => 'RECONCILED PAYMENTS'
19248 , p_side => 'NA'
19249 );
19250 --
19251
19252
19253 --
19254 --
19255 END IF;
19256
19257 --
19258 -- Update the line information that should be overwritten
19259 --
19260 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19261 p_header_num => 1);
19262 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19263
19264 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19265
19266 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19267 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19268 END IF;
19269
19270 --
19271 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19272 --
19273 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19274 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19275 ELSE
19276 ---------------------------------------------------------------------------------------------------
19277 -- 4262811a Switch Sign
19278 ---------------------------------------------------------------------------------------------------
19279 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19280 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19281 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19282 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19283 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19284 -- 5132302
19285 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19286 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19287
19288 END IF;
19289
19290 -- 4955764
19291 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19292 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19293
19294
19295 XLA_AE_LINES_PKG.ValidateCurrentLine;
19299 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19296 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19297
19298 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19300 ,p_balance_type_code => l_balance_type_code);
19301
19302 END IF;
19303
19304 -----------------------------------------------------------------------------------------
19305 -- 4262811 Multiperiod Accounting
19306 -----------------------------------------------------------------------------------------
19307 -- No MPA option is assigned.
19308
19309
19310 END IF;
19311 END IF;
19312 --
19313
19314 --
19315 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19316 trace
19317 (p_msg => 'END of AcctLineType_55'
19318 ,p_level => C_LEVEL_PROCEDURE
19319 ,p_module => l_log_module);
19320 END IF;
19321 --
19322 EXCEPTION
19323 WHEN xla_exceptions_pkg.application_exception THEN
19324 RAISE;
19325 WHEN OTHERS THEN
19326 xla_exceptions_pkg.raise_message
19327 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_55');
19328 END AcctLineType_55;
19329 --
19330
19331 ---------------------------------------
19332 --
19333 -- PRIVATE FUNCTION
19334 -- AcctLineType_56
19335 --
19336 ---------------------------------------
19337 PROCEDURE AcctLineType_56 (
19338 p_application_id IN NUMBER
19339 ,p_event_id IN NUMBER
19340 ,p_calculate_acctd_flag IN VARCHAR2
19341 ,p_calculate_g_l_flag IN VARCHAR2
19342 ,p_actual_flag IN OUT VARCHAR2
19343 ,p_balance_type_code OUT VARCHAR2
19344 ,p_gain_or_loss_ref OUT VARCHAR2
19345
19346 --Payment Currency Code
19347 , p_source_12 IN VARCHAR2
19348 --Bank Cash Account
19349 , p_source_13 IN NUMBER
19350 --Payment Distribution (Cleared Rate) Ledger Amount
19351 , p_source_22 IN NUMBER
19352 --Automatic Offsets Flag
19353 , p_source_42 IN VARCHAR2
19354 , p_source_42_meaning IN VARCHAR2
19355 --When to Account for Payment Option
19356 , p_source_50 IN VARCHAR2
19357 --Payment Distribution Type
19358 , p_source_51 IN VARCHAR2
19359 , p_source_51_meaning IN VARCHAR2
19360 --Accounting Reversal Indicator
19361 , p_source_52 IN VARCHAR2
19362 --Payment Distribution Amount
19363 , p_source_53 IN NUMBER
19364 --Business Flow Accounts Payable Application Identifier
19365 , p_source_54 IN NUMBER
19366 --Business Flow Payment Distribution Type
19367 , p_source_55 IN VARCHAR2
19368 --Business Flow Payment Entity Code
19369 , p_source_56 IN VARCHAR2
19370 --Business Flow Payment Distribution Identifier
19371 , p_source_57 IN NUMBER
19372 --Business Flow Payment Identifier
19373 , p_source_58 IN NUMBER
19374 --Payment Distribution Identifier
19375 , p_source_59 IN NUMBER
19376 --Distribution Link Type
19377 , p_source_60 IN VARCHAR2
19378 --Override Accounted Amount Indicator
19379 , p_source_64 IN VARCHAR2
19380 , p_source_64_meaning IN VARCHAR2
19381 --Payment Supplier Identifier
19382 , p_source_65 IN NUMBER
19383 --Payment Supplier Site Identifier
19384 , p_source_66 IN NUMBER
19385 --Third Party Type
19386 , p_source_67 IN VARCHAR2
19387 --Payment Distribution Reversed Identifier
19388 , p_source_68 IN NUMBER
19389 --Invoice Distribution Tax Line Identifier
19390 , p_source_69 IN NUMBER
19391 --Invoice Distribution Summary Tax Line Identifier
19392 , p_source_70 IN NUMBER
19393 --Cleared Exchange Date
19394 , p_source_114 IN DATE
19395 --Cleared Exchange Rate
19396 , p_source_115 IN NUMBER
19397 --Cleared Exchange Rate Type
19398 , p_source_116 IN VARCHAR2
19399 --Pooled Bank Account Option
19400 , p_source_117 IN VARCHAR2
19401 , p_source_117_meaning IN VARCHAR2
19402 )
19403 IS
19404
19405 l_component_type VARCHAR2(80);
19406 l_component_code VARCHAR2(30);
19407 l_component_type_code VARCHAR2(1);
19408 l_component_appl_id INTEGER;
19409 l_amb_context_code VARCHAR2(30);
19410 l_entity_code VARCHAR2(30);
19411 l_event_class_code VARCHAR2(30);
19412 l_ae_header_id NUMBER;
19413 l_event_type_code VARCHAR2(30);
19414 l_line_definition_code VARCHAR2(30);
19415 l_line_definition_owner_code VARCHAR2(1);
19416 --
19417 -- adr variables
19418 l_segment VARCHAR2(30);
19419 l_ccid NUMBER;
19420 l_adr_transaction_coa_id NUMBER;
19421 l_adr_accounting_coa_id NUMBER;
19422 l_adr_flexfield_segment_code VARCHAR2(30);
19423 l_adr_flex_value_set_id NUMBER;
19424 l_adr_value_type_code VARCHAR2(30);
19425 l_adr_value_combination_id NUMBER;
19426 l_adr_value_segment_code VARCHAR2(30);
19427
19428 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19429 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19430 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19431 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19432
19433 -- 4262811 Variables ------------------------------------------------------------------------------------------
19437 l_accrual_line_num NUMBER;
19434 l_entered_amt_idx NUMBER;
19435 l_accted_amt_idx NUMBER;
19436 l_acc_rev_flag VARCHAR2(1);
19438 l_tmp_amt NUMBER;
19439 l_acc_rev_natural_side_code VARCHAR2(1);
19440
19441 l_num_entries NUMBER;
19442 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19443 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19444 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19445 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19446 l_recog_line_1 NUMBER;
19447 l_recog_line_2 NUMBER;
19448
19449 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19450 l_bflow_applied_to_amt NUMBER; -- 5132302
19451 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19452
19453 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19454
19455 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19456 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19457
19458 ---------------------------------------------------------------------------------------------------------------
19459
19460
19461 --
19462 -- bulk performance
19463 --
19464 l_balance_type_code VARCHAR2(1);
19465 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19466 l_log_module VARCHAR2(240);
19467
19468 --
19469 -- Upgrade strategy
19470 --
19471 l_actual_upg_option VARCHAR2(1);
19472 l_enc_upg_option VARCHAR2(1);
19473
19474 --
19475 BEGIN
19476 --
19477 IF g_log_enabled THEN
19478 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
19479 END IF;
19480 --
19481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19482
19483 trace
19484 (p_msg => 'BEGIN of AcctLineType_56'
19485 ,p_level => C_LEVEL_PROCEDURE
19486 ,p_module => l_log_module);
19487
19488 END IF;
19489 --
19490 l_component_type := 'AMB_JLT';
19491 l_component_code := 'AP_CASH_CLEARONLY_NP';
19492 l_component_type_code := 'S';
19493 l_component_appl_id := 200;
19494 l_amb_context_code := 'DEFAULT';
19495 l_entity_code := 'AP_PAYMENTS';
19496 l_event_class_code := 'RECONCILED PAYMENTS';
19497 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
19498 l_line_definition_owner_code := 'S';
19499 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
19500 --
19501 l_balance_type_code := 'A';
19502 l_segment := NULL;
19503 l_ccid := NULL;
19504 l_adr_transaction_coa_id := NULL;
19505 l_adr_accounting_coa_id := NULL;
19506 l_adr_flexfield_segment_code := NULL;
19507 l_adr_flex_value_set_id := NULL;
19508 l_adr_value_type_code := NULL;
19509 l_adr_value_combination_id := NULL;
19510 l_adr_value_segment_code := NULL;
19511
19512 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19513 l_bflow_class_code := ''; -- 4219869 Business Flow
19514 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19515 l_budgetary_control_flag := 'N';
19516
19517 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19518 l_bflow_applied_to_amt := NULL; -- 5132302
19519 l_entered_amt_idx := NULL; -- 4262811
19520 l_accted_amt_idx := NULL; -- 4262811
19521 l_acc_rev_flag := NULL; -- 4262811
19522 l_accrual_line_num := NULL; -- 4262811
19523 l_tmp_amt := NULL; -- 4262811
19524 --
19525
19526 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19527 l_balance_type_code <> 'B' THEN
19528 IF NVL(p_source_50,'
19529 ') <> 'ISSUE_ISSUE' AND
19530 (NVL(p_source_42,'
19531 ') <> 'Y' OR
19532 NVL(p_source_42,'
19533 ') = 'Y' AND
19534 NVL(p_source_117,'
19535 ') <> 'Y') AND
19536 (NVL(p_source_51,'
19537 ') = 'CASH' OR
19538 NVL(p_source_51,'
19539 ') = 'BANK CHARGE' OR
19540 NVL(p_source_51,'
19541 ') = 'BANK ERROR')
19542 THEN
19543
19544 --
19545 XLA_AE_LINES_PKG.SetNewLine;
19546
19547 p_balance_type_code := l_balance_type_code;
19548 -- set the flag so later we will know whether the gain loss line needs to be created
19549
19550 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19551 p_actual_flag :='A';
19552 END IF;
19553
19554 --
19555 -- bulk performance
19556 --
19557 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19558 p_header_num => 0); -- 4262811
19559 --
19560 -- set accounting line options
19561 --
19562 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19563 p_natural_side_code => 'C'
19564 , p_gain_or_loss_flag => 'N'
19565 , p_gl_transfer_mode_code => 'S'
19566 , p_acct_entry_type_code => 'A'
19567 , p_switch_side_flag => 'Y'
19568 , p_merge_duplicate_code => 'A'
19569 );
19570 --
19574 -- set accounting line type info
19571 l_acc_rev_natural_side_code := 'D'; -- 4262811
19572 --
19573 --
19575 --
19576 xla_ae_lines_pkg.SetAcctLineType
19577 (p_component_type => l_component_type
19578 ,p_event_type_code => l_event_type_code
19579 ,p_line_definition_owner_code => l_line_definition_owner_code
19580 ,p_line_definition_code => l_line_definition_code
19581 ,p_accounting_line_code => l_component_code
19582 ,p_accounting_line_type_code => l_component_type_code
19583 ,p_accounting_line_appl_id => l_component_appl_id
19584 ,p_amb_context_code => l_amb_context_code
19585 ,p_entity_code => l_entity_code
19586 ,p_event_class_code => l_event_class_code);
19587 --
19588 -- set accounting class
19589 --
19590 xla_ae_lines_pkg.SetAcctClass(
19591 p_accounting_class_code => 'CASH'
19592 , p_ae_header_id => l_ae_header_id
19593 );
19594
19595 --
19596 -- set rounding class
19597 --
19598 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19599 'CASH';
19600
19601 --
19602 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19603 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19604 --
19605 -- bulk performance
19606 --
19607 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19608
19609 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19610 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19611
19612 -- 4955764
19613 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19614 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19615
19616 -- 4458381 Public Sector Enh
19617
19618 --
19619 -- set accounting attributes for the line type
19620 --
19621 l_entered_amt_idx := 10;
19622 l_accted_amt_idx := 15;
19623 l_bflow_applied_to_amt_idx := 2; -- 5132302
19624 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19625 l_rec_acct_attrs.array_char_value(1) := p_source_52;
19626 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19627 l_rec_acct_attrs.array_num_value(2) := p_source_53;
19628 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19629 l_rec_acct_attrs.array_num_value(3) := p_source_54;
19630 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19631 l_rec_acct_attrs.array_char_value(4) := p_source_55;
19632 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19633 l_rec_acct_attrs.array_char_value(5) := p_source_56;
19634 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19635 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
19636 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19637 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
19638 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19639 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
19640 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19641 l_rec_acct_attrs.array_char_value(9) := p_source_60;
19642 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19643 l_rec_acct_attrs.array_num_value(10) := p_source_53;
19644 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19645 l_rec_acct_attrs.array_char_value(11) := p_source_12;
19646 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19647 l_rec_acct_attrs.array_date_value(12) := p_source_114;
19648 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19649 l_rec_acct_attrs.array_num_value(13) := p_source_115;
19650 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19651 l_rec_acct_attrs.array_char_value(14) := p_source_116;
19652 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19653 l_rec_acct_attrs.array_num_value(15) := p_source_22;
19654 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19655 l_rec_acct_attrs.array_char_value(16) := p_source_64;
19656 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19657 l_rec_acct_attrs.array_num_value(17) := p_source_65;
19658 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19659 l_rec_acct_attrs.array_num_value(18) := p_source_66;
19660 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19661 l_rec_acct_attrs.array_char_value(19) := p_source_67;
19662 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19663 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
19664 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19665 l_rec_acct_attrs.array_char_value(21) := p_source_60;
19666 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19667 l_rec_acct_attrs.array_num_value(22) := p_source_69;
19668 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19669 l_rec_acct_attrs.array_num_value(23) := p_source_69;
19670 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19671 l_rec_acct_attrs.array_num_value(24) := p_source_70;
19672
19673 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19677 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19674 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19675
19676 ---------------------------------------------------------------------------------------------------------------
19678 ---------------------------------------------------------------------------------------------------------------
19679 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19680
19681 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19682 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19683
19684 IF xla_accounting_cache_pkg.GetValueChar
19685 (p_source_code => 'LEDGER_CATEGORY_CODE'
19686 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19687 AND l_bflow_method_code = 'PRIOR_ENTRY'
19688 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19689 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19690 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19691 )
19692 THEN
19693 xla_ae_lines_pkg.BflowUpgEntry
19694 (p_business_method_code => l_bflow_method_code
19695 ,p_business_class_code => l_bflow_class_code
19696 ,p_balance_type => l_balance_type_code);
19697 ELSE
19698 NULL;
19699 -- No business flow processing for business flow method of NONE.
19700 END IF;
19701
19702 --
19703 -- call analytical criteria
19704 --
19705
19706 --
19707 -- call description
19708 --
19709 -- No description or it is inherited.
19710 --
19711 -- call ADRs
19712 -- Bug 4922099
19713 --
19714 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19715 (NVL(l_actual_upg_option, 'N') = 'O') OR
19716 (NVL(l_enc_upg_option, 'N') = 'O')
19717 )
19718 THEN
19719 NULL;
19720 --
19721 --
19722
19723 l_ccid := AcctDerRule_22(
19724 p_application_id => p_application_id
19725 , p_ae_header_id => l_ae_header_id
19726 , p_source_13 => p_source_13
19727 , x_transaction_coa_id => l_adr_transaction_coa_id
19728 , x_accounting_coa_id => l_adr_accounting_coa_id
19729 , x_value_type_code => l_adr_value_type_code
19730 , p_side => 'NA'
19731 );
19732
19733 xla_ae_lines_pkg.set_ccid(
19734 p_code_combination_id => l_ccid
19735 , p_value_type_code => l_adr_value_type_code
19736 , p_transaction_coa_id => l_adr_transaction_coa_id
19737 , p_accounting_coa_id => l_adr_accounting_coa_id
19738 , p_adr_code => 'AP_CASH'
19739 , p_adr_type_code => 'S'
19740 , p_component_type => l_component_type
19741 , p_component_code => l_component_code
19742 , p_component_type_code => l_component_type_code
19743 , p_component_appl_id => l_component_appl_id
19744 , p_amb_context_code => l_amb_context_code
19745 , p_side => 'NA'
19746 );
19747
19748
19749 --
19750 --
19751 END IF;
19752 --
19753 -- Bug 4922099
19754 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19755 (NVL(l_enc_upg_option, 'N') = 'O')
19756 ) AND
19757 (l_bflow_method_code = 'PRIOR_ENTRY')
19758 )
19759 THEN
19760 IF
19761 --
19762 1 = 2
19763 --
19764 THEN
19765 xla_accounting_err_pkg.build_message
19766 (p_appli_s_name => 'XLA'
19767 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19768 ,p_token_1 => 'LINE_NUMBER'
19769 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19770 ,p_token_2 => 'LINE_TYPE_NAME'
19771 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19772 l_component_type
19773 ,l_component_code
19774 ,l_component_type_code
19775 ,l_component_appl_id
19776 ,l_amb_context_code
19777 ,l_entity_code
19778 ,l_event_class_code
19779 )
19780 ,p_token_3 => 'OWNER'
19781 ,p_value_3 => xla_lookups_pkg.get_meaning(
19782 p_lookup_type => 'XLA_OWNER_TYPE'
19786 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19783 ,p_lookup_code => l_component_type_code
19784 )
19785 ,p_token_4 => 'PRODUCT_NAME'
19787 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19788 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19789 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19790 ,p_ae_header_id => NULL
19791 );
19792
19793 IF (C_LEVEL_ERROR>= g_log_level) THEN
19794 trace
19795 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19796 ,p_level => C_LEVEL_ERROR
19797 ,p_module => l_log_module);
19798 END IF;
19799 END IF;
19800 END IF;
19801 --
19802 --
19803 ------------------------------------------------------------------------------------------------
19804 -- 4219869 Business Flow
19805 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19806 -- Prior Entry. Currently, the following code is always generated.
19807 ------------------------------------------------------------------------------------------------
19808 XLA_AE_LINES_PKG.ValidateCurrentLine;
19809
19810 ------------------------------------------------------------------------------------
19811 -- 4219869 Business Flow
19812 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19813 ------------------------------------------------------------------------------------
19814 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19815
19816 ----------------------------------------------------------------------------------
19817 -- 4219869 Business Flow
19818 -- Update journal entry status -- Need to generate this within IF <condition>
19819 ----------------------------------------------------------------------------------
19820 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19821 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19822 ,p_balance_type_code => l_balance_type_code
19823 );
19824
19825 -------------------------------------------------------------------------------------------
19826 -- 4262811 - Generate the Accrual Reversal lines
19827 -------------------------------------------------------------------------------------------
19828 BEGIN
19829 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19830 (g_array_event(p_event_id).array_value_num('header_index'));
19831 IF l_acc_rev_flag IS NULL THEN
19832 l_acc_rev_flag := 'N';
19833 END IF;
19834 EXCEPTION
19835 WHEN OTHERS THEN
19836 l_acc_rev_flag := 'N';
19837 END;
19838 --
19839 IF (l_acc_rev_flag = 'Y') THEN
19840
19841 -- 4645092 ------------------------------------------------------------------------------
19842 -- To allow MPA report to determine if it should generate report process
19843 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19844 ------------------------------------------------------------------------------------------
19845
19846 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19847 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19848 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19849 -- call ADRs
19850 -- Bug 4922099
19851 --
19852 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19853 (NVL(l_actual_upg_option, 'N') = 'O') OR
19854 (NVL(l_enc_upg_option, 'N') = 'O')
19855 )
19856 THEN
19857 NULL;
19858 --
19859 --
19860
19861 l_ccid := AcctDerRule_22(
19862 p_application_id => p_application_id
19863 , p_ae_header_id => l_ae_header_id
19864 , p_source_13 => p_source_13
19865 , x_transaction_coa_id => l_adr_transaction_coa_id
19866 , x_accounting_coa_id => l_adr_accounting_coa_id
19867 , x_value_type_code => l_adr_value_type_code
19868 , p_side => 'NA'
19869 );
19870
19871 xla_ae_lines_pkg.set_ccid(
19872 p_code_combination_id => l_ccid
19873 , p_value_type_code => l_adr_value_type_code
19874 , p_transaction_coa_id => l_adr_transaction_coa_id
19875 , p_accounting_coa_id => l_adr_accounting_coa_id
19876 , p_adr_code => 'AP_CASH'
19877 , p_adr_type_code => 'S'
19878 , p_component_type => l_component_type
19879 , p_component_code => l_component_code
19880 , p_component_type_code => l_component_type_code
19881 , p_component_appl_id => l_component_appl_id
19882 , p_amb_context_code => l_amb_context_code
19883 , p_side => 'NA'
19884 );
19885
19886
19887 --
19888 --
19889 END IF;
19890
19891 --
19895 p_header_num => 1);
19892 -- Update the line information that should be overwritten
19893 --
19894 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19896 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19897
19898 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19899
19900 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19901 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19902 END IF;
19903
19904 --
19905 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19906 --
19907 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19908 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19909 ELSE
19910 ---------------------------------------------------------------------------------------------------
19911 -- 4262811a Switch Sign
19912 ---------------------------------------------------------------------------------------------------
19913 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19914 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19915 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19916 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19917 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19918 -- 5132302
19919 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19920 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19921
19922 END IF;
19923
19924 -- 4955764
19925 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19926 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19927
19928
19929 XLA_AE_LINES_PKG.ValidateCurrentLine;
19930 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19931
19932 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19933 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19934 ,p_balance_type_code => l_balance_type_code);
19935
19936 END IF;
19937
19938 -----------------------------------------------------------------------------------------
19939 -- 4262811 Multiperiod Accounting
19940 -----------------------------------------------------------------------------------------
19941 -- No MPA option is assigned.
19942
19943
19944 END IF;
19945 END IF;
19946 --
19947
19948 --
19949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19950 trace
19951 (p_msg => 'END of AcctLineType_56'
19952 ,p_level => C_LEVEL_PROCEDURE
19953 ,p_module => l_log_module);
19954 END IF;
19955 --
19956 EXCEPTION
19957 WHEN xla_exceptions_pkg.application_exception THEN
19958 RAISE;
19959 WHEN OTHERS THEN
19960 xla_exceptions_pkg.raise_message
19961 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_56');
19962 END AcctLineType_56;
19963 --
19964
19965 ---------------------------------------
19966 --
19967 -- PRIVATE FUNCTION
19968 -- AcctLineType_57
19969 --
19970 ---------------------------------------
19971 PROCEDURE AcctLineType_57 (
19972 p_application_id IN NUMBER
19973 ,p_event_id IN NUMBER
19974 ,p_calculate_acctd_flag IN VARCHAR2
19975 ,p_calculate_g_l_flag IN VARCHAR2
19976 ,p_actual_flag IN OUT VARCHAR2
19977 ,p_balance_type_code OUT VARCHAR2
19978 ,p_gain_or_loss_ref OUT VARCHAR2
19979
19980 --Payment Currency Code
19981 , p_source_12 IN VARCHAR2
19982 --Payment Distribution (Payment Rate) Ledger Amount
19983 , p_source_21 IN NUMBER
19984 --When to Account for Payment Option
19985 , p_source_50 IN VARCHAR2
19986 --Payment Distribution Type
19987 , p_source_51 IN VARCHAR2
19988 , p_source_51_meaning IN VARCHAR2
19989 --Accounting Reversal Indicator
19990 , p_source_52 IN VARCHAR2
19991 --Payment Distribution Amount
19992 , p_source_53 IN NUMBER
19993 --Business Flow Accounts Payable Application Identifier
19994 , p_source_54 IN NUMBER
19995 --Business Flow Payment Distribution Type
19996 , p_source_55 IN VARCHAR2
19997 --Business Flow Payment Entity Code
19998 , p_source_56 IN VARCHAR2
19999 --Business Flow Payment Distribution Identifier
20000 , p_source_57 IN NUMBER
20001 --Business Flow Payment Identifier
20002 , p_source_58 IN NUMBER
20003 --Payment Distribution Identifier
20004 , p_source_59 IN NUMBER
20005 --Distribution Link Type
20006 , p_source_60 IN VARCHAR2
20007 --Override Accounted Amount Indicator
20008 , p_source_64 IN VARCHAR2
20009 , p_source_64_meaning IN VARCHAR2
20010 --Third Party Type
20014 --Invoice Distribution Tax Line Identifier
20011 , p_source_67 IN VARCHAR2
20012 --Payment Distribution Reversed Identifier
20013 , p_source_68 IN NUMBER
20015 , p_source_69 IN NUMBER
20016 --Invoice Distribution Summary Tax Line Identifier
20017 , p_source_70 IN NUMBER
20018 --Payment Maturity Date
20019 , p_source_118 IN DATE
20020 )
20021 IS
20022
20023 l_component_type VARCHAR2(80);
20024 l_component_code VARCHAR2(30);
20025 l_component_type_code VARCHAR2(1);
20026 l_component_appl_id INTEGER;
20027 l_amb_context_code VARCHAR2(30);
20028 l_entity_code VARCHAR2(30);
20029 l_event_class_code VARCHAR2(30);
20030 l_ae_header_id NUMBER;
20031 l_event_type_code VARCHAR2(30);
20032 l_line_definition_code VARCHAR2(30);
20033 l_line_definition_owner_code VARCHAR2(1);
20034 --
20035 -- adr variables
20036 l_segment VARCHAR2(30);
20037 l_ccid NUMBER;
20038 l_adr_transaction_coa_id NUMBER;
20039 l_adr_accounting_coa_id NUMBER;
20040 l_adr_flexfield_segment_code VARCHAR2(30);
20041 l_adr_flex_value_set_id NUMBER;
20042 l_adr_value_type_code VARCHAR2(30);
20043 l_adr_value_combination_id NUMBER;
20044 l_adr_value_segment_code VARCHAR2(30);
20045
20046 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20047 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20048 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20049 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20050
20051 -- 4262811 Variables ------------------------------------------------------------------------------------------
20052 l_entered_amt_idx NUMBER;
20053 l_accted_amt_idx NUMBER;
20054 l_acc_rev_flag VARCHAR2(1);
20055 l_accrual_line_num NUMBER;
20056 l_tmp_amt NUMBER;
20057 l_acc_rev_natural_side_code VARCHAR2(1);
20058
20059 l_num_entries NUMBER;
20060 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20061 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20062 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20063 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20064 l_recog_line_1 NUMBER;
20065 l_recog_line_2 NUMBER;
20066
20067 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20068 l_bflow_applied_to_amt NUMBER; -- 5132302
20069 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20070
20071 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20072
20073 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20074 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20075
20076 ---------------------------------------------------------------------------------------------------------------
20077
20078
20079 --
20080 -- bulk performance
20081 --
20082 l_balance_type_code VARCHAR2(1);
20083 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20084 l_log_module VARCHAR2(240);
20085
20086 --
20087 -- Upgrade strategy
20088 --
20089 l_actual_upg_option VARCHAR2(1);
20090 l_enc_upg_option VARCHAR2(1);
20091
20092 --
20093 BEGIN
20094 --
20095 IF g_log_enabled THEN
20096 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
20097 END IF;
20098 --
20099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20100
20101 trace
20102 (p_msg => 'BEGIN of AcctLineType_57'
20103 ,p_level => C_LEVEL_PROCEDURE
20104 ,p_module => l_log_module);
20105
20106 END IF;
20107 --
20108 l_component_type := 'AMB_JLT';
20109 l_component_code := 'AP_CASH_CLEAR_CLEAR';
20110 l_component_type_code := 'S';
20111 l_component_appl_id := 200;
20112 l_amb_context_code := 'DEFAULT';
20113 l_entity_code := 'AP_PAYMENTS';
20114 l_event_class_code := 'RECONCILED PAYMENTS';
20115 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
20116 l_line_definition_owner_code := 'S';
20117 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
20118 --
20119 l_balance_type_code := 'A';
20120 l_segment := NULL;
20121 l_ccid := NULL;
20122 l_adr_transaction_coa_id := NULL;
20123 l_adr_accounting_coa_id := NULL;
20124 l_adr_flexfield_segment_code := NULL;
20125 l_adr_flex_value_set_id := NULL;
20126 l_adr_value_type_code := NULL;
20127 l_adr_value_combination_id := NULL;
20128 l_adr_value_segment_code := NULL;
20129
20130 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20131 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
20132 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20133 l_budgetary_control_flag := 'N';
20134
20135 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20136 l_bflow_applied_to_amt := NULL; -- 5132302
20137 l_entered_amt_idx := NULL; -- 4262811
20138 l_accted_amt_idx := NULL; -- 4262811
20142 --
20139 l_acc_rev_flag := NULL; -- 4262811
20140 l_accrual_line_num := NULL; -- 4262811
20141 l_tmp_amt := NULL; -- 4262811
20143
20144 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20145 l_balance_type_code <> 'B' THEN
20146 IF (NVL(p_source_50,'
20147 ') = 'ALWAYS_ALWAYS' OR
20148 NVL(p_source_50,'
20149 ') = 'ALWAYS_ISSUE') AND
20150 NVL(p_source_51,'
20151 ') = 'CASH' AND
20152 p_source_118 IS NULL
20153 THEN
20154
20155 --
20156 XLA_AE_LINES_PKG.SetNewLine;
20157
20158 p_balance_type_code := l_balance_type_code;
20159 -- set the flag so later we will know whether the gain loss line needs to be created
20160
20161 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20162 p_actual_flag :='A';
20163 END IF;
20164
20165 --
20166 -- bulk performance
20167 --
20168 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20169 p_header_num => 0); -- 4262811
20170 --
20171 -- set accounting line options
20172 --
20173 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20174 p_natural_side_code => 'D'
20175 , p_gain_or_loss_flag => 'N'
20176 , p_gl_transfer_mode_code => 'S'
20177 , p_acct_entry_type_code => 'A'
20178 , p_switch_side_flag => 'Y'
20179 , p_merge_duplicate_code => 'A'
20180 );
20181 --
20182 l_acc_rev_natural_side_code := 'C'; -- 4262811
20183 --
20184 --
20185 -- set accounting line type info
20186 --
20187 xla_ae_lines_pkg.SetAcctLineType
20188 (p_component_type => l_component_type
20189 ,p_event_type_code => l_event_type_code
20190 ,p_line_definition_owner_code => l_line_definition_owner_code
20191 ,p_line_definition_code => l_line_definition_code
20192 ,p_accounting_line_code => l_component_code
20193 ,p_accounting_line_type_code => l_component_type_code
20194 ,p_accounting_line_appl_id => l_component_appl_id
20195 ,p_amb_context_code => l_amb_context_code
20196 ,p_entity_code => l_entity_code
20197 ,p_event_class_code => l_event_class_code);
20198 --
20199 -- set accounting class
20200 --
20201 xla_ae_lines_pkg.SetAcctClass(
20202 p_accounting_class_code => 'CASH_CLEARING'
20203 , p_ae_header_id => l_ae_header_id
20204 );
20205
20206 --
20207 -- set rounding class
20208 --
20209 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20210 'CASH_CLEARING';
20211
20212 --
20213 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20214 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20215 --
20216 -- bulk performance
20217 --
20218 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20219
20220 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20221 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20222
20223 -- 4955764
20224 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20225 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20226
20227 -- 4458381 Public Sector Enh
20228
20229 --
20230 -- set accounting attributes for the line type
20231 --
20232 l_entered_amt_idx := 10;
20233 l_accted_amt_idx := 12;
20234 l_bflow_applied_to_amt_idx := 2; -- 5132302
20235 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20236 l_rec_acct_attrs.array_char_value(1) := p_source_52;
20237 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20238 l_rec_acct_attrs.array_num_value(2) := p_source_53;
20239 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20240 l_rec_acct_attrs.array_num_value(3) := p_source_54;
20241 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20242 l_rec_acct_attrs.array_char_value(4) := p_source_55;
20243 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20244 l_rec_acct_attrs.array_char_value(5) := p_source_56;
20245 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20246 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
20247 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20248 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
20249 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20250 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
20251 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20252 l_rec_acct_attrs.array_char_value(9) := p_source_60;
20253 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20254 l_rec_acct_attrs.array_num_value(10) := p_source_53;
20255 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20256 l_rec_acct_attrs.array_char_value(11) := p_source_12;
20257 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20261 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20258 l_rec_acct_attrs.array_num_value(12) := p_source_21;
20259 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20260 l_rec_acct_attrs.array_char_value(13) := p_source_64;
20262 l_rec_acct_attrs.array_char_value(14) := p_source_67;
20263 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20264 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
20265 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20266 l_rec_acct_attrs.array_char_value(16) := p_source_60;
20267 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20268 l_rec_acct_attrs.array_num_value(17) := p_source_69;
20269 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20270 l_rec_acct_attrs.array_num_value(18) := p_source_69;
20271 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20272 l_rec_acct_attrs.array_num_value(19) := p_source_70;
20273
20274 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20275 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20276
20277 ---------------------------------------------------------------------------------------------------------------
20278 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20279 ---------------------------------------------------------------------------------------------------------------
20280 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20281
20282 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20283 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20284
20285 IF xla_accounting_cache_pkg.GetValueChar
20286 (p_source_code => 'LEDGER_CATEGORY_CODE'
20287 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20288 AND l_bflow_method_code = 'PRIOR_ENTRY'
20289 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20290 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20291 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20292 )
20293 THEN
20294 xla_ae_lines_pkg.BflowUpgEntry
20295 (p_business_method_code => l_bflow_method_code
20296 ,p_business_class_code => l_bflow_class_code
20297 ,p_balance_type => l_balance_type_code);
20298 ELSE
20299 NULL;
20300 XLA_AE_LINES_PKG.business_flow_validation(
20301 p_business_method_code => l_bflow_method_code
20302 ,p_business_class_code => l_bflow_class_code
20303 ,p_inherit_description_flag => l_inherit_desc_flag);
20304 END IF;
20305
20306 --
20307 -- call analytical criteria
20308 --
20309 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20310 --
20311 -- call description
20312 --
20313 -- No description or it is inherited.
20314 --
20315 -- call ADRs
20316 -- Bug 4922099
20317 --
20318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20319 (NVL(l_actual_upg_option, 'N') = 'O') OR
20320 (NVL(l_enc_upg_option, 'N') = 'O')
20321 )
20322 THEN
20323 NULL;
20324 --
20325 --
20326
20327 --
20328 --
20329 END IF;
20330 --
20331 -- Bug 4922099
20332 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20333 (NVL(l_enc_upg_option, 'N') = 'O')
20334 ) AND
20335 (l_bflow_method_code = 'PRIOR_ENTRY')
20336 )
20337 THEN
20338 IF
20339 --
20340 1 = 1
20341 --
20342 THEN
20343 xla_accounting_err_pkg.build_message
20344 (p_appli_s_name => 'XLA'
20345 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20346 ,p_token_1 => 'LINE_NUMBER'
20347 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20348 ,p_token_2 => 'LINE_TYPE_NAME'
20349 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20350 l_component_type
20351 ,l_component_code
20352 ,l_component_type_code
20353 ,l_component_appl_id
20354 ,l_amb_context_code
20355 ,l_entity_code
20356 ,l_event_class_code
20357 )
20358 ,p_token_3 => 'OWNER'
20359 ,p_value_3 => xla_lookups_pkg.get_meaning(
20360 p_lookup_type => 'XLA_OWNER_TYPE'
20364 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20361 ,p_lookup_code => l_component_type_code
20362 )
20363 ,p_token_4 => 'PRODUCT_NAME'
20365 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20366 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20367 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20368 ,p_ae_header_id => NULL
20369 );
20370
20371 IF (C_LEVEL_ERROR>= g_log_level) THEN
20372 trace
20373 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20374 ,p_level => C_LEVEL_ERROR
20375 ,p_module => l_log_module);
20376 END IF;
20377 END IF;
20378 END IF;
20379 --
20380 --
20381 ------------------------------------------------------------------------------------------------
20382 -- 4219869 Business Flow
20383 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20384 -- Prior Entry. Currently, the following code is always generated.
20385 ------------------------------------------------------------------------------------------------
20386 -- No ValidateCurrentLine for business flow method of Prior Entry
20387
20388 ------------------------------------------------------------------------------------
20389 -- 4219869 Business Flow
20390 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20391 ------------------------------------------------------------------------------------
20392 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20393
20394 ----------------------------------------------------------------------------------
20395 -- 4219869 Business Flow
20396 -- Update journal entry status -- Need to generate this within IF <condition>
20397 ----------------------------------------------------------------------------------
20398 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20399 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20400 ,p_balance_type_code => l_balance_type_code
20401 );
20402
20403 -------------------------------------------------------------------------------------------
20404 -- 4262811 - Generate the Accrual Reversal lines
20405 -------------------------------------------------------------------------------------------
20406 BEGIN
20407 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20408 (g_array_event(p_event_id).array_value_num('header_index'));
20409 IF l_acc_rev_flag IS NULL THEN
20410 l_acc_rev_flag := 'N';
20411 END IF;
20412 EXCEPTION
20413 WHEN OTHERS THEN
20414 l_acc_rev_flag := 'N';
20415 END;
20416 --
20417 IF (l_acc_rev_flag = 'Y') THEN
20418
20419 -- 4645092 ------------------------------------------------------------------------------
20420 -- To allow MPA report to determine if it should generate report process
20421 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20422 ------------------------------------------------------------------------------------------
20423
20424 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20425 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20426 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20427 -- call ADRs
20428 -- Bug 4922099
20429 --
20430 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20431 (NVL(l_actual_upg_option, 'N') = 'O') OR
20432 (NVL(l_enc_upg_option, 'N') = 'O')
20433 )
20434 THEN
20435 NULL;
20436 --
20437 --
20438
20439 --
20440 --
20441 END IF;
20442
20443 --
20444 -- Update the line information that should be overwritten
20445 --
20446 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20447 p_header_num => 1);
20448 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20449
20450 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20451
20452 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20453 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20454 END IF;
20455
20456 --
20457 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20458 --
20459 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20460 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20461 ELSE
20462 ---------------------------------------------------------------------------------------------------
20463 -- 4262811a Switch Sign
20464 ---------------------------------------------------------------------------------------------------
20468 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20465 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20466 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20469 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20470 -- 5132302
20471 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20472 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20473
20474 END IF;
20475
20476 -- 4955764
20477 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20478 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20479
20480
20481 XLA_AE_LINES_PKG.ValidateCurrentLine;
20482 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20483
20484 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20485 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20486 ,p_balance_type_code => l_balance_type_code);
20487
20488 END IF;
20489
20490 -----------------------------------------------------------------------------------------
20491 -- 4262811 Multiperiod Accounting
20492 -----------------------------------------------------------------------------------------
20493 -- No MPA option is assigned.
20494
20495
20496 END IF;
20497 END IF;
20498 --
20499
20500 --
20501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20502 trace
20503 (p_msg => 'END of AcctLineType_57'
20504 ,p_level => C_LEVEL_PROCEDURE
20505 ,p_module => l_log_module);
20506 END IF;
20507 --
20508 EXCEPTION
20509 WHEN xla_exceptions_pkg.application_exception THEN
20510 RAISE;
20511 WHEN OTHERS THEN
20512 xla_exceptions_pkg.raise_message
20513 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_57');
20514 END AcctLineType_57;
20515 --
20516
20517 ---------------------------------------
20518 --
20519 -- PRIVATE FUNCTION
20520 -- AcctLineType_58
20521 --
20522 ---------------------------------------
20523 PROCEDURE AcctLineType_58 (
20524 p_application_id IN NUMBER
20525 ,p_event_id IN NUMBER
20526 ,p_calculate_acctd_flag IN VARCHAR2
20527 ,p_calculate_g_l_flag IN VARCHAR2
20528 ,p_actual_flag IN OUT VARCHAR2
20529 ,p_balance_type_code OUT VARCHAR2
20530 ,p_gain_or_loss_ref OUT VARCHAR2
20531
20532 --Payment Currency Code
20533 , p_source_12 IN VARCHAR2
20534 --When to Account for Payment Option
20535 , p_source_50 IN VARCHAR2
20536 --Payment Distribution Type
20537 , p_source_51 IN VARCHAR2
20538 , p_source_51_meaning IN VARCHAR2
20539 --Accounting Reversal Indicator
20540 , p_source_52 IN VARCHAR2
20541 --Payment Distribution Amount
20542 , p_source_53 IN NUMBER
20543 --Business Flow Accounts Payable Application Identifier
20544 , p_source_54 IN NUMBER
20545 --Business Flow Payment Distribution Type
20546 , p_source_55 IN VARCHAR2
20547 --Business Flow Payment Entity Code
20548 , p_source_56 IN VARCHAR2
20549 --Business Flow Payment Distribution Identifier
20550 , p_source_57 IN NUMBER
20551 --Business Flow Payment Identifier
20552 , p_source_58 IN NUMBER
20553 --Payment Distribution Identifier
20554 , p_source_59 IN NUMBER
20555 --Distribution Link Type
20556 , p_source_60 IN VARCHAR2
20557 --Override Accounted Amount Indicator
20558 , p_source_64 IN VARCHAR2
20559 , p_source_64_meaning IN VARCHAR2
20560 --Third Party Type
20561 , p_source_67 IN VARCHAR2
20562 --Payment Distribution Reversed Identifier
20563 , p_source_68 IN NUMBER
20564 --Invoice Distribution Tax Line Identifier
20565 , p_source_69 IN NUMBER
20566 --Invoice Distribution Summary Tax Line Identifier
20567 , p_source_70 IN NUMBER
20568 --Payment Maturity Date
20569 , p_source_118 IN DATE
20570 --Payment Distribution (Invoice Rate) Ledger Amount
20571 , p_source_119 IN NUMBER
20572 )
20573 IS
20574
20575 l_component_type VARCHAR2(80);
20576 l_component_code VARCHAR2(30);
20577 l_component_type_code VARCHAR2(1);
20578 l_component_appl_id INTEGER;
20579 l_amb_context_code VARCHAR2(30);
20580 l_entity_code VARCHAR2(30);
20581 l_event_class_code VARCHAR2(30);
20582 l_ae_header_id NUMBER;
20583 l_event_type_code VARCHAR2(30);
20584 l_line_definition_code VARCHAR2(30);
20585 l_line_definition_owner_code VARCHAR2(1);
20586 --
20587 -- adr variables
20588 l_segment VARCHAR2(30);
20589 l_ccid NUMBER;
20590 l_adr_transaction_coa_id NUMBER;
20591 l_adr_accounting_coa_id NUMBER;
20592 l_adr_flexfield_segment_code VARCHAR2(30);
20593 l_adr_flex_value_set_id NUMBER;
20597
20594 l_adr_value_type_code VARCHAR2(30);
20595 l_adr_value_combination_id NUMBER;
20596 l_adr_value_segment_code VARCHAR2(30);
20598 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20599 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20600 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20601 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20602
20603 -- 4262811 Variables ------------------------------------------------------------------------------------------
20604 l_entered_amt_idx NUMBER;
20605 l_accted_amt_idx NUMBER;
20606 l_acc_rev_flag VARCHAR2(1);
20607 l_accrual_line_num NUMBER;
20608 l_tmp_amt NUMBER;
20609 l_acc_rev_natural_side_code VARCHAR2(1);
20610
20611 l_num_entries NUMBER;
20612 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20613 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20614 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20615 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20616 l_recog_line_1 NUMBER;
20617 l_recog_line_2 NUMBER;
20618
20619 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20620 l_bflow_applied_to_amt NUMBER; -- 5132302
20621 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20622
20623 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20624
20625 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20626 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20627
20628 ---------------------------------------------------------------------------------------------------------------
20629
20630
20631 --
20632 -- bulk performance
20633 --
20634 l_balance_type_code VARCHAR2(1);
20635 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20636 l_log_module VARCHAR2(240);
20637
20638 --
20639 -- Upgrade strategy
20640 --
20641 l_actual_upg_option VARCHAR2(1);
20642 l_enc_upg_option VARCHAR2(1);
20643
20644 --
20645 BEGIN
20646 --
20647 IF g_log_enabled THEN
20648 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
20649 END IF;
20650 --
20651 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20652
20653 trace
20654 (p_msg => 'BEGIN of AcctLineType_58'
20655 ,p_level => C_LEVEL_PROCEDURE
20656 ,p_module => l_log_module);
20657
20658 END IF;
20659 --
20660 l_component_type := 'AMB_JLT';
20661 l_component_code := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
20662 l_component_type_code := 'S';
20663 l_component_appl_id := 200;
20664 l_amb_context_code := 'DEFAULT';
20665 l_entity_code := 'AP_PAYMENTS';
20666 l_event_class_code := 'RECONCILED PAYMENTS';
20667 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
20668 l_line_definition_owner_code := 'S';
20669 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
20670 --
20671 l_balance_type_code := 'A';
20672 l_segment := NULL;
20673 l_ccid := NULL;
20674 l_adr_transaction_coa_id := NULL;
20675 l_adr_accounting_coa_id := NULL;
20676 l_adr_flexfield_segment_code := NULL;
20677 l_adr_flex_value_set_id := NULL;
20678 l_adr_value_type_code := NULL;
20679 l_adr_value_combination_id := NULL;
20680 l_adr_value_segment_code := NULL;
20681
20682 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20683 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
20684 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20685 l_budgetary_control_flag := 'N';
20686
20687 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20688 l_bflow_applied_to_amt := NULL; -- 5132302
20689 l_entered_amt_idx := NULL; -- 4262811
20690 l_accted_amt_idx := NULL; -- 4262811
20691 l_acc_rev_flag := NULL; -- 4262811
20692 l_accrual_line_num := NULL; -- 4262811
20693 l_tmp_amt := NULL; -- 4262811
20694 --
20695
20696 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20697 l_balance_type_code <> 'B' THEN
20698 IF NVL(p_source_50,'
20699 ') = 'ALWAYS_CLEAR' AND
20700 NVL(p_source_51,'
20701 ') = 'CASH' AND
20702 p_source_118 IS NULL
20703 THEN
20704
20705 --
20706 XLA_AE_LINES_PKG.SetNewLine;
20707
20708 p_balance_type_code := l_balance_type_code;
20709 -- set the flag so later we will know whether the gain loss line needs to be created
20710
20711 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20712 p_actual_flag :='A';
20713 END IF;
20714
20715 --
20716 -- bulk performance
20717 --
20718 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20719 p_header_num => 0); -- 4262811
20720 --
20721 -- set accounting line options
20722 --
20726 , p_gl_transfer_mode_code => 'S'
20723 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20724 p_natural_side_code => 'D'
20725 , p_gain_or_loss_flag => 'N'
20727 , p_acct_entry_type_code => 'A'
20728 , p_switch_side_flag => 'Y'
20729 , p_merge_duplicate_code => 'A'
20730 );
20731 --
20732 l_acc_rev_natural_side_code := 'C'; -- 4262811
20733 --
20734 --
20735 -- set accounting line type info
20736 --
20737 xla_ae_lines_pkg.SetAcctLineType
20738 (p_component_type => l_component_type
20739 ,p_event_type_code => l_event_type_code
20740 ,p_line_definition_owner_code => l_line_definition_owner_code
20741 ,p_line_definition_code => l_line_definition_code
20742 ,p_accounting_line_code => l_component_code
20743 ,p_accounting_line_type_code => l_component_type_code
20744 ,p_accounting_line_appl_id => l_component_appl_id
20745 ,p_amb_context_code => l_amb_context_code
20746 ,p_entity_code => l_entity_code
20747 ,p_event_class_code => l_event_class_code);
20748 --
20749 -- set accounting class
20750 --
20751 xla_ae_lines_pkg.SetAcctClass(
20752 p_accounting_class_code => 'CASH_CLEARING'
20753 , p_ae_header_id => l_ae_header_id
20754 );
20755
20756 --
20757 -- set rounding class
20758 --
20759 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20760 'CASH_CLEARING';
20761
20762 --
20763 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20764 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20765 --
20766 -- bulk performance
20767 --
20768 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20769
20770 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20771 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20772
20773 -- 4955764
20774 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20775 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20776
20777 -- 4458381 Public Sector Enh
20778
20779 --
20780 -- set accounting attributes for the line type
20781 --
20782 l_entered_amt_idx := 10;
20783 l_accted_amt_idx := 12;
20784 l_bflow_applied_to_amt_idx := 2; -- 5132302
20785 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20786 l_rec_acct_attrs.array_char_value(1) := p_source_52;
20787 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20788 l_rec_acct_attrs.array_num_value(2) := p_source_53;
20789 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20790 l_rec_acct_attrs.array_num_value(3) := p_source_54;
20791 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20792 l_rec_acct_attrs.array_char_value(4) := p_source_55;
20793 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20794 l_rec_acct_attrs.array_char_value(5) := p_source_56;
20795 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20796 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
20797 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20798 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
20799 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20800 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
20801 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20802 l_rec_acct_attrs.array_char_value(9) := p_source_60;
20803 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20804 l_rec_acct_attrs.array_num_value(10) := p_source_53;
20805 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20806 l_rec_acct_attrs.array_char_value(11) := p_source_12;
20807 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20808 l_rec_acct_attrs.array_num_value(12) := p_source_119;
20809 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20810 l_rec_acct_attrs.array_char_value(13) := p_source_64;
20811 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20812 l_rec_acct_attrs.array_char_value(14) := p_source_67;
20813 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20814 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
20815 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20816 l_rec_acct_attrs.array_char_value(16) := p_source_60;
20817 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20818 l_rec_acct_attrs.array_num_value(17) := p_source_69;
20819 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20820 l_rec_acct_attrs.array_num_value(18) := p_source_69;
20821 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20822 l_rec_acct_attrs.array_num_value(19) := p_source_70;
20823
20824 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20828 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20825 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20826
20827 ---------------------------------------------------------------------------------------------------------------
20829 ---------------------------------------------------------------------------------------------------------------
20830 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20831
20832 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20833 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20834
20835 IF xla_accounting_cache_pkg.GetValueChar
20836 (p_source_code => 'LEDGER_CATEGORY_CODE'
20837 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20838 AND l_bflow_method_code = 'PRIOR_ENTRY'
20839 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20840 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20841 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20842 )
20843 THEN
20844 xla_ae_lines_pkg.BflowUpgEntry
20845 (p_business_method_code => l_bflow_method_code
20846 ,p_business_class_code => l_bflow_class_code
20847 ,p_balance_type => l_balance_type_code);
20848 ELSE
20849 NULL;
20850 XLA_AE_LINES_PKG.business_flow_validation(
20851 p_business_method_code => l_bflow_method_code
20852 ,p_business_class_code => l_bflow_class_code
20853 ,p_inherit_description_flag => l_inherit_desc_flag);
20854 END IF;
20855
20856 --
20857 -- call analytical criteria
20858 --
20859 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20860 --
20861 -- call description
20862 --
20863 -- No description or it is inherited.
20864 --
20865 -- call ADRs
20866 -- Bug 4922099
20867 --
20868 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20869 (NVL(l_actual_upg_option, 'N') = 'O') OR
20870 (NVL(l_enc_upg_option, 'N') = 'O')
20871 )
20872 THEN
20873 NULL;
20874 --
20875 --
20876
20877 --
20878 --
20879 END IF;
20880 --
20881 -- Bug 4922099
20882 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20883 (NVL(l_enc_upg_option, 'N') = 'O')
20884 ) AND
20885 (l_bflow_method_code = 'PRIOR_ENTRY')
20886 )
20887 THEN
20888 IF
20889 --
20890 1 = 1
20891 --
20892 THEN
20893 xla_accounting_err_pkg.build_message
20894 (p_appli_s_name => 'XLA'
20895 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20896 ,p_token_1 => 'LINE_NUMBER'
20897 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20898 ,p_token_2 => 'LINE_TYPE_NAME'
20899 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20900 l_component_type
20901 ,l_component_code
20902 ,l_component_type_code
20903 ,l_component_appl_id
20904 ,l_amb_context_code
20905 ,l_entity_code
20906 ,l_event_class_code
20907 )
20908 ,p_token_3 => 'OWNER'
20909 ,p_value_3 => xla_lookups_pkg.get_meaning(
20910 p_lookup_type => 'XLA_OWNER_TYPE'
20911 ,p_lookup_code => l_component_type_code
20912 )
20913 ,p_token_4 => 'PRODUCT_NAME'
20914 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20915 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20916 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20917 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20918 ,p_ae_header_id => NULL
20919 );
20920
20921 IF (C_LEVEL_ERROR>= g_log_level) THEN
20922 trace
20923 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20924 ,p_level => C_LEVEL_ERROR
20925 ,p_module => l_log_module);
20926 END IF;
20927 END IF;
20931 ------------------------------------------------------------------------------------------------
20928 END IF;
20929 --
20930 --
20932 -- 4219869 Business Flow
20933 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20934 -- Prior Entry. Currently, the following code is always generated.
20935 ------------------------------------------------------------------------------------------------
20936 -- No ValidateCurrentLine for business flow method of Prior Entry
20937
20938 ------------------------------------------------------------------------------------
20939 -- 4219869 Business Flow
20940 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20941 ------------------------------------------------------------------------------------
20942 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20943
20944 ----------------------------------------------------------------------------------
20945 -- 4219869 Business Flow
20946 -- Update journal entry status -- Need to generate this within IF <condition>
20947 ----------------------------------------------------------------------------------
20948 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20949 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20950 ,p_balance_type_code => l_balance_type_code
20951 );
20952
20953 -------------------------------------------------------------------------------------------
20954 -- 4262811 - Generate the Accrual Reversal lines
20955 -------------------------------------------------------------------------------------------
20956 BEGIN
20957 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20958 (g_array_event(p_event_id).array_value_num('header_index'));
20959 IF l_acc_rev_flag IS NULL THEN
20960 l_acc_rev_flag := 'N';
20961 END IF;
20962 EXCEPTION
20963 WHEN OTHERS THEN
20964 l_acc_rev_flag := 'N';
20965 END;
20966 --
20967 IF (l_acc_rev_flag = 'Y') THEN
20968
20969 -- 4645092 ------------------------------------------------------------------------------
20970 -- To allow MPA report to determine if it should generate report process
20971 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20972 ------------------------------------------------------------------------------------------
20973
20974 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20975 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20976 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20977 -- call ADRs
20978 -- Bug 4922099
20979 --
20980 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20981 (NVL(l_actual_upg_option, 'N') = 'O') OR
20982 (NVL(l_enc_upg_option, 'N') = 'O')
20983 )
20984 THEN
20985 NULL;
20986 --
20987 --
20988
20989 --
20990 --
20991 END IF;
20992
20993 --
20994 -- Update the line information that should be overwritten
20995 --
20996 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20997 p_header_num => 1);
20998 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20999
21000 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21001
21002 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21003 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21004 END IF;
21005
21006 --
21007 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21008 --
21009 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21010 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21011 ELSE
21012 ---------------------------------------------------------------------------------------------------
21013 -- 4262811a Switch Sign
21014 ---------------------------------------------------------------------------------------------------
21015 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21016 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21017 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21018 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21019 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21020 -- 5132302
21021 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21022 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21023
21024 END IF;
21025
21026 -- 4955764
21027 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21028 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21029
21030
21031 XLA_AE_LINES_PKG.ValidateCurrentLine;
21032 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21033
21034 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21038 END IF;
21035 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21036 ,p_balance_type_code => l_balance_type_code);
21037
21039
21040 -----------------------------------------------------------------------------------------
21041 -- 4262811 Multiperiod Accounting
21042 -----------------------------------------------------------------------------------------
21043 -- No MPA option is assigned.
21044
21045
21046 END IF;
21047 END IF;
21048 --
21049
21050 --
21051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21052 trace
21053 (p_msg => 'END of AcctLineType_58'
21054 ,p_level => C_LEVEL_PROCEDURE
21055 ,p_module => l_log_module);
21056 END IF;
21057 --
21058 EXCEPTION
21059 WHEN xla_exceptions_pkg.application_exception THEN
21060 RAISE;
21061 WHEN OTHERS THEN
21062 xla_exceptions_pkg.raise_message
21063 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_58');
21064 END AcctLineType_58;
21065 --
21066
21067 ---------------------------------------
21068 --
21069 -- PRIVATE FUNCTION
21070 -- AcctLineType_59
21071 --
21072 ---------------------------------------
21073 PROCEDURE AcctLineType_59 (
21074 p_application_id IN NUMBER
21075 ,p_event_id IN NUMBER
21076 ,p_calculate_acctd_flag IN VARCHAR2
21077 ,p_calculate_g_l_flag IN VARCHAR2
21078 ,p_actual_flag IN OUT VARCHAR2
21079 ,p_balance_type_code OUT VARCHAR2
21080 ,p_gain_or_loss_ref OUT VARCHAR2
21081
21082 --Payment Currency Code
21083 , p_source_12 IN VARCHAR2
21084 --Payment Distribution (Payment Rate) Ledger Amount
21085 , p_source_21 IN NUMBER
21086 --Bank Cash Clearing Account
21087 , p_source_33 IN NUMBER
21088 --Automatic Offsets Flag
21089 , p_source_42 IN VARCHAR2
21090 , p_source_42_meaning IN VARCHAR2
21091 --When to Account for Payment Option
21092 , p_source_50 IN VARCHAR2
21093 --Payment Distribution Type
21094 , p_source_51 IN VARCHAR2
21095 , p_source_51_meaning IN VARCHAR2
21096 --Accounting Reversal Indicator
21097 , p_source_52 IN VARCHAR2
21098 --Payment Distribution Amount
21099 , p_source_53 IN NUMBER
21100 --Business Flow Accounts Payable Application Identifier
21101 , p_source_54 IN NUMBER
21102 --Payment Distribution Identifier
21103 , p_source_59 IN NUMBER
21104 --Distribution Link Type
21105 , p_source_60 IN VARCHAR2
21106 --Override Accounted Amount Indicator
21107 , p_source_64 IN VARCHAR2
21108 , p_source_64_meaning IN VARCHAR2
21109 --Payment Supplier Identifier
21110 , p_source_65 IN NUMBER
21111 --Payment Supplier Site Identifier
21112 , p_source_66 IN NUMBER
21113 --Third Party Type
21114 , p_source_67 IN VARCHAR2
21115 --Payment Distribution Reversed Identifier
21116 , p_source_68 IN NUMBER
21117 --Invoice Distribution Tax Line Identifier
21118 , p_source_69 IN NUMBER
21119 --Invoice Distribution Summary Tax Line Identifier
21120 , p_source_70 IN NUMBER
21121 --Payment Type
21122 , p_source_71 IN VARCHAR2
21123 , p_source_71_meaning IN VARCHAR2
21124 --Invoice Distribution Amount of the Payment Distribution
21125 , p_source_72 IN NUMBER
21126 --Business Flow Invoice Distribution Type
21127 , p_source_73 IN VARCHAR2
21128 --Business Flow Invoice Entity Code
21129 , p_source_74 IN VARCHAR2
21130 --Business Flow Invoice Distribution Identifier
21131 , p_source_75 IN NUMBER
21132 --Business Flow Invoice Identifier
21133 , p_source_76 IN NUMBER
21134 --Invoice Distribution Tax Distribution Identifier from Tax
21135 , p_source_77 IN NUMBER
21136 --Pooled Bank Account Option
21137 , p_source_117 IN VARCHAR2
21138 , p_source_117_meaning IN VARCHAR2
21139 --Payment Maturity Date
21140 , p_source_118 IN DATE
21141 --Payment Processing Type
21142 , p_source_120 IN VARCHAR2
21143 --Payment Exchange Date
21144 , p_source_121 IN DATE
21145 --Payment Exchange Rate
21146 , p_source_122 IN NUMBER
21147 --Payment Exchange Rate Type
21148 , p_source_123 IN VARCHAR2
21149 )
21150 IS
21151
21152 l_component_type VARCHAR2(80);
21153 l_component_code VARCHAR2(30);
21154 l_component_type_code VARCHAR2(1);
21155 l_component_appl_id INTEGER;
21156 l_amb_context_code VARCHAR2(30);
21157 l_entity_code VARCHAR2(30);
21158 l_event_class_code VARCHAR2(30);
21159 l_ae_header_id NUMBER;
21160 l_event_type_code VARCHAR2(30);
21161 l_line_definition_code VARCHAR2(30);
21162 l_line_definition_owner_code VARCHAR2(1);
21163 --
21164 -- adr variables
21165 l_segment VARCHAR2(30);
21166 l_ccid NUMBER;
21167 l_adr_transaction_coa_id NUMBER;
21168 l_adr_accounting_coa_id NUMBER;
21169 l_adr_flexfield_segment_code VARCHAR2(30);
21170 l_adr_flex_value_set_id NUMBER;
21171 l_adr_value_type_code VARCHAR2(30);
21172 l_adr_value_combination_id NUMBER;
21173 l_adr_value_segment_code VARCHAR2(30);
21177 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21174
21175 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21176 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21178 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21179
21180 -- 4262811 Variables ------------------------------------------------------------------------------------------
21181 l_entered_amt_idx NUMBER;
21182 l_accted_amt_idx NUMBER;
21183 l_acc_rev_flag VARCHAR2(1);
21184 l_accrual_line_num NUMBER;
21185 l_tmp_amt NUMBER;
21186 l_acc_rev_natural_side_code VARCHAR2(1);
21187
21188 l_num_entries NUMBER;
21189 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21190 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21191 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21192 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21193 l_recog_line_1 NUMBER;
21194 l_recog_line_2 NUMBER;
21195
21196 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21197 l_bflow_applied_to_amt NUMBER; -- 5132302
21198 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21199
21200 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21201
21202 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21203 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21204
21205 ---------------------------------------------------------------------------------------------------------------
21206
21207
21208 --
21209 -- bulk performance
21210 --
21211 l_balance_type_code VARCHAR2(1);
21212 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21213 l_log_module VARCHAR2(240);
21214
21215 --
21216 -- Upgrade strategy
21217 --
21218 l_actual_upg_option VARCHAR2(1);
21219 l_enc_upg_option VARCHAR2(1);
21220
21221 --
21222 BEGIN
21223 --
21224 IF g_log_enabled THEN
21225 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
21226 END IF;
21227 --
21228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21229
21230 trace
21231 (p_msg => 'BEGIN of AcctLineType_59'
21232 ,p_level => C_LEVEL_PROCEDURE
21233 ,p_module => l_log_module);
21234
21235 END IF;
21236 --
21237 l_component_type := 'AMB_JLT';
21238 l_component_code := 'AP_CASH_CLEAR_PMT';
21239 l_component_type_code := 'S';
21240 l_component_appl_id := 200;
21241 l_amb_context_code := 'DEFAULT';
21242 l_entity_code := 'AP_PAYMENTS';
21243 l_event_class_code := 'PAYMENTS';
21244 l_event_type_code := 'PAYMENTS_ALL';
21245 l_line_definition_owner_code := 'S';
21246 l_line_definition_code := 'CASH_PAYMENTS_ALL';
21247 --
21248 l_balance_type_code := 'A';
21249 l_segment := NULL;
21250 l_ccid := NULL;
21251 l_adr_transaction_coa_id := NULL;
21252 l_adr_accounting_coa_id := NULL;
21253 l_adr_flexfield_segment_code := NULL;
21254 l_adr_flex_value_set_id := NULL;
21255 l_adr_value_type_code := NULL;
21256 l_adr_value_combination_id := NULL;
21257 l_adr_value_segment_code := NULL;
21258
21259 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21260 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
21261 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21262 l_budgetary_control_flag := 'N';
21263
21264 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21265 l_bflow_applied_to_amt := NULL; -- 5132302
21266 l_entered_amt_idx := NULL; -- 4262811
21267 l_accted_amt_idx := NULL; -- 4262811
21268 l_acc_rev_flag := NULL; -- 4262811
21269 l_accrual_line_num := NULL; -- 4262811
21270 l_tmp_amt := NULL; -- 4262811
21271 --
21272
21273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21274 l_balance_type_code <> 'B' THEN
21275 IF NVL(p_source_50,'
21276 ') = 'ALWAYS_ALWAYS' AND
21277 (NVL(p_source_42,'
21278 ') <> 'Y' OR
21279 NVL(p_source_42,'
21280 ') = 'Y' AND
21281 NVL(p_source_117,'
21282 ') <> 'Y') AND
21283 p_source_118 IS NULL AND
21284 NVL(p_source_51,'
21285 ') = 'CASH' AND
21286 NVL(p_source_71,'
21287 ') <> 'R' AND
21288 NVL(p_source_120,'
21289 ') <> 'PAYMENTCARD'
21290 THEN
21291
21292 --
21293 XLA_AE_LINES_PKG.SetNewLine;
21294
21295 p_balance_type_code := l_balance_type_code;
21296 -- set the flag so later we will know whether the gain loss line needs to be created
21297
21298 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21299 p_actual_flag :='A';
21300 END IF;
21301
21302 --
21303 -- bulk performance
21304 --
21305 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21306 p_header_num => 0); -- 4262811
21307 --
21308 -- set accounting line options
21309 --
21310 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21314 , p_acct_entry_type_code => 'A'
21311 p_natural_side_code => 'C'
21312 , p_gain_or_loss_flag => 'N'
21313 , p_gl_transfer_mode_code => 'S'
21315 , p_switch_side_flag => 'Y'
21316 , p_merge_duplicate_code => 'A'
21317 );
21318 --
21319 l_acc_rev_natural_side_code := 'D'; -- 4262811
21320 --
21321 --
21322 -- set accounting line type info
21323 --
21324 xla_ae_lines_pkg.SetAcctLineType
21325 (p_component_type => l_component_type
21326 ,p_event_type_code => l_event_type_code
21327 ,p_line_definition_owner_code => l_line_definition_owner_code
21328 ,p_line_definition_code => l_line_definition_code
21329 ,p_accounting_line_code => l_component_code
21330 ,p_accounting_line_type_code => l_component_type_code
21331 ,p_accounting_line_appl_id => l_component_appl_id
21332 ,p_amb_context_code => l_amb_context_code
21333 ,p_entity_code => l_entity_code
21334 ,p_event_class_code => l_event_class_code);
21335 --
21336 -- set accounting class
21337 --
21338 xla_ae_lines_pkg.SetAcctClass(
21339 p_accounting_class_code => 'CASH_CLEARING'
21340 , p_ae_header_id => l_ae_header_id
21341 );
21342
21343 --
21344 -- set rounding class
21345 --
21346 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21347 'CASH_CLEARING';
21348
21349 --
21350 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21351 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21352 --
21353 -- bulk performance
21354 --
21355 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21356
21357 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21358 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21359
21360 -- 4955764
21361 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21362 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21363
21364 -- 4458381 Public Sector Enh
21365
21366 --
21367 -- set accounting attributes for the line type
21368 --
21369 l_entered_amt_idx := 10;
21370 l_accted_amt_idx := 15;
21371 l_bflow_applied_to_amt_idx := 2; -- 5132302
21372 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21373 l_rec_acct_attrs.array_char_value(1) := p_source_52;
21374 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21375 l_rec_acct_attrs.array_num_value(2) := p_source_72;
21376 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21377 l_rec_acct_attrs.array_num_value(3) := p_source_54;
21378 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21379 l_rec_acct_attrs.array_char_value(4) := p_source_73;
21380 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21381 l_rec_acct_attrs.array_char_value(5) := p_source_74;
21382 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21383 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
21384 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21385 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
21386 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21387 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
21388 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21389 l_rec_acct_attrs.array_char_value(9) := p_source_60;
21390 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21391 l_rec_acct_attrs.array_num_value(10) := p_source_53;
21392 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21393 l_rec_acct_attrs.array_char_value(11) := p_source_12;
21394 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21395 l_rec_acct_attrs.array_date_value(12) := p_source_121;
21396 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21397 l_rec_acct_attrs.array_num_value(13) := p_source_122;
21398 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21399 l_rec_acct_attrs.array_char_value(14) := p_source_123;
21400 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21401 l_rec_acct_attrs.array_num_value(15) := p_source_21;
21402 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
21403 l_rec_acct_attrs.array_char_value(16) := p_source_64;
21404 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
21405 l_rec_acct_attrs.array_num_value(17) := p_source_65;
21406 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
21407 l_rec_acct_attrs.array_num_value(18) := p_source_66;
21408 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
21409 l_rec_acct_attrs.array_char_value(19) := p_source_67;
21410 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21411 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
21412 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21413 l_rec_acct_attrs.array_char_value(21) := p_source_60;
21417 l_rec_acct_attrs.array_num_value(23) := p_source_77;
21414 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
21415 l_rec_acct_attrs.array_num_value(22) := p_source_69;
21416 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
21418 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
21419 l_rec_acct_attrs.array_num_value(24) := p_source_70;
21420
21421 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21422 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21423
21424 ---------------------------------------------------------------------------------------------------------------
21425 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21426 ---------------------------------------------------------------------------------------------------------------
21427 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21428
21429 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21430 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21431
21432 IF xla_accounting_cache_pkg.GetValueChar
21433 (p_source_code => 'LEDGER_CATEGORY_CODE'
21434 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21435 AND l_bflow_method_code = 'PRIOR_ENTRY'
21436 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21437 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21438 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21439 )
21440 THEN
21441 xla_ae_lines_pkg.BflowUpgEntry
21442 (p_business_method_code => l_bflow_method_code
21443 ,p_business_class_code => l_bflow_class_code
21444 ,p_balance_type => l_balance_type_code);
21445 ELSE
21446 NULL;
21447 -- No business flow processing for business flow method of NONE.
21448 END IF;
21449
21450 --
21451 -- call analytical criteria
21452 --
21453
21454 --
21455 -- call description
21456 --
21457 -- No description or it is inherited.
21458 --
21459 -- call ADRs
21460 -- Bug 4922099
21461 --
21462 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21463 (NVL(l_actual_upg_option, 'N') = 'O') OR
21464 (NVL(l_enc_upg_option, 'N') = 'O')
21465 )
21466 THEN
21467 NULL;
21468 --
21469 --
21470
21471 l_ccid := AcctDerRule_30(
21472 p_application_id => p_application_id
21473 , p_ae_header_id => l_ae_header_id
21474 , p_source_33 => p_source_33
21475 , x_transaction_coa_id => l_adr_transaction_coa_id
21476 , x_accounting_coa_id => l_adr_accounting_coa_id
21477 , x_value_type_code => l_adr_value_type_code
21478 , p_side => 'NA'
21479 );
21480
21481 xla_ae_lines_pkg.set_ccid(
21482 p_code_combination_id => l_ccid
21483 , p_value_type_code => l_adr_value_type_code
21484 , p_transaction_coa_id => l_adr_transaction_coa_id
21485 , p_accounting_coa_id => l_adr_accounting_coa_id
21486 , p_adr_code => 'AP_PMT_CASH_CLEAR'
21487 , p_adr_type_code => 'S'
21488 , p_component_type => l_component_type
21489 , p_component_code => l_component_code
21490 , p_component_type_code => l_component_type_code
21491 , p_component_appl_id => l_component_appl_id
21492 , p_amb_context_code => l_amb_context_code
21493 , p_side => 'NA'
21494 );
21495
21496
21497 --
21498 --
21499 END IF;
21500 --
21501 -- Bug 4922099
21502 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21503 (NVL(l_enc_upg_option, 'N') = 'O')
21504 ) AND
21505 (l_bflow_method_code = 'PRIOR_ENTRY')
21506 )
21507 THEN
21508 IF
21509 --
21510 1 = 2
21511 --
21512 THEN
21513 xla_accounting_err_pkg.build_message
21514 (p_appli_s_name => 'XLA'
21515 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21516 ,p_token_1 => 'LINE_NUMBER'
21517 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21518 ,p_token_2 => 'LINE_TYPE_NAME'
21519 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21520 l_component_type
21521 ,l_component_code
21522 ,l_component_type_code
21523 ,l_component_appl_id
21524 ,l_amb_context_code
21525 ,l_entity_code
21529 ,p_value_3 => xla_lookups_pkg.get_meaning(
21526 ,l_event_class_code
21527 )
21528 ,p_token_3 => 'OWNER'
21530 p_lookup_type => 'XLA_OWNER_TYPE'
21531 ,p_lookup_code => l_component_type_code
21532 )
21533 ,p_token_4 => 'PRODUCT_NAME'
21534 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21535 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21536 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21537 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21538 ,p_ae_header_id => NULL
21539 );
21540
21541 IF (C_LEVEL_ERROR>= g_log_level) THEN
21542 trace
21543 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21544 ,p_level => C_LEVEL_ERROR
21545 ,p_module => l_log_module);
21546 END IF;
21547 END IF;
21548 END IF;
21549 --
21550 --
21551 ------------------------------------------------------------------------------------------------
21552 -- 4219869 Business Flow
21553 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21554 -- Prior Entry. Currently, the following code is always generated.
21555 ------------------------------------------------------------------------------------------------
21556 XLA_AE_LINES_PKG.ValidateCurrentLine;
21557
21558 ------------------------------------------------------------------------------------
21559 -- 4219869 Business Flow
21560 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21561 ------------------------------------------------------------------------------------
21562 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21563
21564 ----------------------------------------------------------------------------------
21565 -- 4219869 Business Flow
21566 -- Update journal entry status -- Need to generate this within IF <condition>
21567 ----------------------------------------------------------------------------------
21568 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21569 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21570 ,p_balance_type_code => l_balance_type_code
21571 );
21572
21573 -------------------------------------------------------------------------------------------
21574 -- 4262811 - Generate the Accrual Reversal lines
21575 -------------------------------------------------------------------------------------------
21576 BEGIN
21577 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21578 (g_array_event(p_event_id).array_value_num('header_index'));
21579 IF l_acc_rev_flag IS NULL THEN
21580 l_acc_rev_flag := 'N';
21581 END IF;
21582 EXCEPTION
21583 WHEN OTHERS THEN
21584 l_acc_rev_flag := 'N';
21585 END;
21586 --
21587 IF (l_acc_rev_flag = 'Y') THEN
21588
21589 -- 4645092 ------------------------------------------------------------------------------
21590 -- To allow MPA report to determine if it should generate report process
21591 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21592 ------------------------------------------------------------------------------------------
21593
21594 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21595 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21596 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21597 -- call ADRs
21598 -- Bug 4922099
21599 --
21600 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21601 (NVL(l_actual_upg_option, 'N') = 'O') OR
21602 (NVL(l_enc_upg_option, 'N') = 'O')
21603 )
21604 THEN
21605 NULL;
21606 --
21607 --
21608
21609 l_ccid := AcctDerRule_30(
21610 p_application_id => p_application_id
21611 , p_ae_header_id => l_ae_header_id
21612 , p_source_33 => p_source_33
21613 , x_transaction_coa_id => l_adr_transaction_coa_id
21614 , x_accounting_coa_id => l_adr_accounting_coa_id
21615 , x_value_type_code => l_adr_value_type_code
21616 , p_side => 'NA'
21617 );
21618
21619 xla_ae_lines_pkg.set_ccid(
21620 p_code_combination_id => l_ccid
21621 , p_value_type_code => l_adr_value_type_code
21622 , p_transaction_coa_id => l_adr_transaction_coa_id
21623 , p_accounting_coa_id => l_adr_accounting_coa_id
21624 , p_adr_code => 'AP_PMT_CASH_CLEAR'
21625 , p_adr_type_code => 'S'
21629 , p_component_appl_id => l_component_appl_id
21626 , p_component_type => l_component_type
21627 , p_component_code => l_component_code
21628 , p_component_type_code => l_component_type_code
21630 , p_amb_context_code => l_amb_context_code
21631 , p_side => 'NA'
21632 );
21633
21634
21635 --
21636 --
21637 END IF;
21638
21639 --
21640 -- Update the line information that should be overwritten
21641 --
21642 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21643 p_header_num => 1);
21644 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21645
21646 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21647
21648 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21649 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21650 END IF;
21651
21652 --
21653 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21654 --
21655 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21656 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21657 ELSE
21658 ---------------------------------------------------------------------------------------------------
21659 -- 4262811a Switch Sign
21660 ---------------------------------------------------------------------------------------------------
21661 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21662 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21663 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21664 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21665 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21666 -- 5132302
21667 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21668 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21669
21670 END IF;
21671
21672 -- 4955764
21673 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21674 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21675
21676
21677 XLA_AE_LINES_PKG.ValidateCurrentLine;
21678 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21679
21680 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21681 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21682 ,p_balance_type_code => l_balance_type_code);
21683
21684 END IF;
21685
21686 -----------------------------------------------------------------------------------------
21687 -- 4262811 Multiperiod Accounting
21688 -----------------------------------------------------------------------------------------
21689 -- No MPA option is assigned.
21690
21691
21692 END IF;
21693 END IF;
21694 --
21695
21696 --
21697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21698 trace
21699 (p_msg => 'END of AcctLineType_59'
21700 ,p_level => C_LEVEL_PROCEDURE
21701 ,p_module => l_log_module);
21702 END IF;
21703 --
21704 EXCEPTION
21705 WHEN xla_exceptions_pkg.application_exception THEN
21706 RAISE;
21707 WHEN OTHERS THEN
21708 xla_exceptions_pkg.raise_message
21709 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_59');
21710 END AcctLineType_59;
21711 --
21712
21713 ---------------------------------------
21714 --
21715 -- PRIVATE FUNCTION
21716 -- AcctLineType_60
21717 --
21718 ---------------------------------------
21719 PROCEDURE AcctLineType_60 (
21720 p_application_id IN NUMBER
21721 ,p_event_id IN NUMBER
21722 ,p_calculate_acctd_flag IN VARCHAR2
21723 ,p_calculate_g_l_flag IN VARCHAR2
21724 ,p_actual_flag IN OUT VARCHAR2
21725 ,p_balance_type_code OUT VARCHAR2
21726 ,p_gain_or_loss_ref OUT VARCHAR2
21727
21728 --Payment Currency Code
21729 , p_source_12 IN VARCHAR2
21730 --Automatic Offsets Value
21731 , p_source_16 IN VARCHAR2
21732 , p_source_16_meaning IN VARCHAR2
21733 --Payment Distribution (Payment Rate) Ledger Amount
21734 , p_source_21 IN NUMBER
21735 --Bank Cash Clearing Account
21736 , p_source_33 IN NUMBER
21737 --When to Account for Payment Option
21738 , p_source_50 IN VARCHAR2
21739 --Payment Distribution Type
21740 , p_source_51 IN VARCHAR2
21741 , p_source_51_meaning IN VARCHAR2
21742 --Accounting Reversal Indicator
21743 , p_source_52 IN VARCHAR2
21744 --Payment Distribution Amount
21745 , p_source_53 IN NUMBER
21746 --Business Flow Accounts Payable Application Identifier
21747 , p_source_54 IN NUMBER
21748 --Payment Distribution Identifier
21749 , p_source_59 IN NUMBER
21750 --Distribution Link Type
21751 , p_source_60 IN VARCHAR2
21755 --Payment Supplier Identifier
21752 --Override Accounted Amount Indicator
21753 , p_source_64 IN VARCHAR2
21754 , p_source_64_meaning IN VARCHAR2
21756 , p_source_65 IN NUMBER
21757 --Payment Supplier Site Identifier
21758 , p_source_66 IN NUMBER
21759 --Third Party Type
21760 , p_source_67 IN VARCHAR2
21761 --Payment Distribution Reversed Identifier
21762 , p_source_68 IN NUMBER
21763 --Invoice Distribution Tax Line Identifier
21764 , p_source_69 IN NUMBER
21765 --Invoice Distribution Summary Tax Line Identifier
21766 , p_source_70 IN NUMBER
21767 --Payment Type
21768 , p_source_71 IN VARCHAR2
21769 , p_source_71_meaning IN VARCHAR2
21770 --Invoice Distribution Amount of the Payment Distribution
21771 , p_source_72 IN NUMBER
21772 --Business Flow Invoice Distribution Type
21773 , p_source_73 IN VARCHAR2
21774 --Business Flow Invoice Entity Code
21775 , p_source_74 IN VARCHAR2
21776 --Business Flow Invoice Distribution Identifier
21777 , p_source_75 IN NUMBER
21778 --Business Flow Invoice Identifier
21779 , p_source_76 IN NUMBER
21780 --Invoice Distribution Tax Distribution Identifier from Tax
21781 , p_source_77 IN NUMBER
21782 --Pooled Bank Account Option
21783 , p_source_117 IN VARCHAR2
21784 , p_source_117_meaning IN VARCHAR2
21785 --Payment Maturity Date
21786 , p_source_118 IN DATE
21787 --Payment Processing Type
21788 , p_source_120 IN VARCHAR2
21789 --Payment Exchange Date
21790 , p_source_121 IN DATE
21791 --Payment Exchange Rate
21792 , p_source_122 IN NUMBER
21793 --Payment Exchange Rate Type
21794 , p_source_123 IN VARCHAR2
21795 )
21796 IS
21797
21798 l_component_type VARCHAR2(80);
21799 l_component_code VARCHAR2(30);
21800 l_component_type_code VARCHAR2(1);
21801 l_component_appl_id INTEGER;
21802 l_amb_context_code VARCHAR2(30);
21803 l_entity_code VARCHAR2(30);
21804 l_event_class_code VARCHAR2(30);
21805 l_ae_header_id NUMBER;
21806 l_event_type_code VARCHAR2(30);
21807 l_line_definition_code VARCHAR2(30);
21808 l_line_definition_owner_code VARCHAR2(1);
21809 --
21810 -- adr variables
21811 l_segment VARCHAR2(30);
21812 l_ccid NUMBER;
21813 l_adr_transaction_coa_id NUMBER;
21814 l_adr_accounting_coa_id NUMBER;
21815 l_adr_flexfield_segment_code VARCHAR2(30);
21816 l_adr_flex_value_set_id NUMBER;
21817 l_adr_value_type_code VARCHAR2(30);
21818 l_adr_value_combination_id NUMBER;
21819 l_adr_value_segment_code VARCHAR2(30);
21820
21821 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21822 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21823 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21824 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21825
21826 -- 4262811 Variables ------------------------------------------------------------------------------------------
21827 l_entered_amt_idx NUMBER;
21828 l_accted_amt_idx NUMBER;
21829 l_acc_rev_flag VARCHAR2(1);
21830 l_accrual_line_num NUMBER;
21831 l_tmp_amt NUMBER;
21832 l_acc_rev_natural_side_code VARCHAR2(1);
21833
21834 l_num_entries NUMBER;
21835 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21836 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21837 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21838 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21839 l_recog_line_1 NUMBER;
21840 l_recog_line_2 NUMBER;
21841
21842 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21843 l_bflow_applied_to_amt NUMBER; -- 5132302
21844 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21845
21846 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21847
21848 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21849 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21850
21851 ---------------------------------------------------------------------------------------------------------------
21852
21853
21854 --
21855 -- bulk performance
21856 --
21857 l_balance_type_code VARCHAR2(1);
21858 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21859 l_log_module VARCHAR2(240);
21860
21861 --
21862 -- Upgrade strategy
21863 --
21864 l_actual_upg_option VARCHAR2(1);
21865 l_enc_upg_option VARCHAR2(1);
21866
21867 --
21868 BEGIN
21869 --
21870 IF g_log_enabled THEN
21871 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
21872 END IF;
21873 --
21874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21875
21876 trace
21877 (p_msg => 'BEGIN of AcctLineType_60'
21878 ,p_level => C_LEVEL_PROCEDURE
21879 ,p_module => l_log_module);
21880
21881 END IF;
21882 --
21883 l_component_type := 'AMB_JLT';
21887 l_amb_context_code := 'DEFAULT';
21884 l_component_code := 'AP_CASH_CLEAR_PMT_AOS_AS';
21885 l_component_type_code := 'S';
21886 l_component_appl_id := 200;
21888 l_entity_code := 'AP_PAYMENTS';
21889 l_event_class_code := 'PAYMENTS';
21890 l_event_type_code := 'PAYMENTS_ALL';
21891 l_line_definition_owner_code := 'S';
21892 l_line_definition_code := 'CASH_PAYMENTS_ALL';
21893 --
21894 l_balance_type_code := 'A';
21895 l_segment := NULL;
21896 l_ccid := NULL;
21897 l_adr_transaction_coa_id := NULL;
21898 l_adr_accounting_coa_id := NULL;
21899 l_adr_flexfield_segment_code := NULL;
21900 l_adr_flex_value_set_id := NULL;
21901 l_adr_value_type_code := NULL;
21902 l_adr_value_combination_id := NULL;
21903 l_adr_value_segment_code := NULL;
21904
21905 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
21906 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
21907 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21908 l_budgetary_control_flag := 'N';
21909
21910 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21911 l_bflow_applied_to_amt := NULL; -- 5132302
21912 l_entered_amt_idx := NULL; -- 4262811
21913 l_accted_amt_idx := NULL; -- 4262811
21914 l_acc_rev_flag := NULL; -- 4262811
21915 l_accrual_line_num := NULL; -- 4262811
21916 l_tmp_amt := NULL; -- 4262811
21917 --
21918
21919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21920 l_balance_type_code <> 'B' THEN
21921 IF NVL(p_source_50,'
21922 ') = 'ALWAYS_ALWAYS' AND
21923 (NVL(p_source_117,'
21924 ') = 'Y' AND
21925 NVL(p_source_16,'
21926 ') = 'ACCOUNT_SEGMENT_VALUE') AND
21927 p_source_118 IS NULL AND
21928 NVL(p_source_51,'
21929 ') = 'CASH' AND
21930 NVL(p_source_71,'
21931 ') <> 'R' AND
21932 NVL(p_source_120,'
21933 ') <> 'PAYMENTCARD'
21934 THEN
21935
21936 --
21937 XLA_AE_LINES_PKG.SetNewLine;
21938
21939 p_balance_type_code := l_balance_type_code;
21940 -- set the flag so later we will know whether the gain loss line needs to be created
21941
21942 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21943 p_actual_flag :='A';
21944 END IF;
21945
21946 --
21947 -- bulk performance
21948 --
21949 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21950 p_header_num => 0); -- 4262811
21951 --
21952 -- set accounting line options
21953 --
21954 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21955 p_natural_side_code => 'C'
21956 , p_gain_or_loss_flag => 'N'
21957 , p_gl_transfer_mode_code => 'S'
21958 , p_acct_entry_type_code => 'A'
21959 , p_switch_side_flag => 'Y'
21960 , p_merge_duplicate_code => 'A'
21961 );
21962 --
21963 l_acc_rev_natural_side_code := 'D'; -- 4262811
21964 --
21965 --
21966 -- set accounting line type info
21967 --
21968 xla_ae_lines_pkg.SetAcctLineType
21969 (p_component_type => l_component_type
21970 ,p_event_type_code => l_event_type_code
21971 ,p_line_definition_owner_code => l_line_definition_owner_code
21972 ,p_line_definition_code => l_line_definition_code
21973 ,p_accounting_line_code => l_component_code
21974 ,p_accounting_line_type_code => l_component_type_code
21975 ,p_accounting_line_appl_id => l_component_appl_id
21976 ,p_amb_context_code => l_amb_context_code
21977 ,p_entity_code => l_entity_code
21978 ,p_event_class_code => l_event_class_code);
21979 --
21980 -- set accounting class
21981 --
21982 xla_ae_lines_pkg.SetAcctClass(
21983 p_accounting_class_code => 'CASH_CLEARING'
21984 , p_ae_header_id => l_ae_header_id
21985 );
21986
21987 --
21988 -- set rounding class
21989 --
21990 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21991 'CASH_CLEARING';
21992
21993 --
21994 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21995 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21996 --
21997 -- bulk performance
21998 --
21999 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22000
22001 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22002 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22003
22004 -- 4955764
22005 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22006 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22007
22008 -- 4458381 Public Sector Enh
22009
22010 --
22011 -- set accounting attributes for the line type
22012 --
22013 l_entered_amt_idx := 10;
22014 l_accted_amt_idx := 15;
22018 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22015 l_bflow_applied_to_amt_idx := 2; -- 5132302
22016 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22017 l_rec_acct_attrs.array_char_value(1) := p_source_52;
22019 l_rec_acct_attrs.array_num_value(2) := p_source_72;
22020 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22021 l_rec_acct_attrs.array_num_value(3) := p_source_54;
22022 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22023 l_rec_acct_attrs.array_char_value(4) := p_source_73;
22024 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22025 l_rec_acct_attrs.array_char_value(5) := p_source_74;
22026 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22027 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
22028 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22029 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
22030 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22031 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
22032 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22033 l_rec_acct_attrs.array_char_value(9) := p_source_60;
22034 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22035 l_rec_acct_attrs.array_num_value(10) := p_source_53;
22036 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22037 l_rec_acct_attrs.array_char_value(11) := p_source_12;
22038 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22039 l_rec_acct_attrs.array_date_value(12) := p_source_121;
22040 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22041 l_rec_acct_attrs.array_num_value(13) := p_source_122;
22042 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22043 l_rec_acct_attrs.array_char_value(14) := p_source_123;
22044 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22045 l_rec_acct_attrs.array_num_value(15) := p_source_21;
22046 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22047 l_rec_acct_attrs.array_char_value(16) := p_source_64;
22048 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22049 l_rec_acct_attrs.array_num_value(17) := p_source_65;
22050 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22051 l_rec_acct_attrs.array_num_value(18) := p_source_66;
22052 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22053 l_rec_acct_attrs.array_char_value(19) := p_source_67;
22054 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22055 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
22056 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22057 l_rec_acct_attrs.array_char_value(21) := p_source_60;
22058 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22059 l_rec_acct_attrs.array_num_value(22) := p_source_69;
22060 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22061 l_rec_acct_attrs.array_num_value(23) := p_source_77;
22062 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22063 l_rec_acct_attrs.array_num_value(24) := p_source_70;
22064
22065 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22066 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22067
22068 ---------------------------------------------------------------------------------------------------------------
22069 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22070 ---------------------------------------------------------------------------------------------------------------
22071 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22072
22073 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22074 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22075
22076 IF xla_accounting_cache_pkg.GetValueChar
22077 (p_source_code => 'LEDGER_CATEGORY_CODE'
22078 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22079 AND l_bflow_method_code = 'PRIOR_ENTRY'
22080 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22081 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22082 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22083 )
22084 THEN
22085 xla_ae_lines_pkg.BflowUpgEntry
22086 (p_business_method_code => l_bflow_method_code
22087 ,p_business_class_code => l_bflow_class_code
22088 ,p_balance_type => l_balance_type_code);
22089 ELSE
22090 NULL;
22091 XLA_AE_LINES_PKG.business_flow_validation(
22092 p_business_method_code => l_bflow_method_code
22093 ,p_business_class_code => l_bflow_class_code
22094 ,p_inherit_description_flag => l_inherit_desc_flag);
22095 END IF;
22096
22097 --
22098 -- call analytical criteria
22099 --
22100
22101 --
22102 -- call description
22103 --
22104 -- No description or it is inherited.
22105 --
22106 -- call ADRs
22107 -- Bug 4922099
22108 --
22112 )
22109 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22110 (NVL(l_actual_upg_option, 'N') = 'O') OR
22111 (NVL(l_enc_upg_option, 'N') = 'O')
22113 THEN
22114 NULL;
22115 --
22116 --
22117
22118 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
22119 p_code_combination_id => TO_NUMBER(C_NUM)
22120 , p_value_type_code => NULL
22121 , p_transaction_coa_id => null
22122 , p_accounting_coa_id => null
22123 , p_adr_code => NULL
22124 , p_adr_type_code => NULL
22125 , p_component_type => l_component_type
22126 , p_component_code => l_component_code
22127 , p_component_type_code => l_component_type_code
22128 , p_component_appl_id => l_component_appl_id
22129 , p_amb_context_code => l_amb_context_code
22130 , p_side => NULL
22131 );
22132
22133
22134 -- initialise segments
22135 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22136 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22137 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22138 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22139 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22140 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22141 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22142 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22143 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22144 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22145 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22146 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22147 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22148 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22149 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22150 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22151 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22152 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22153 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22154 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22155 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22156 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22157 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22158 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22159 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22160 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22161 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22162 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22163 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22164 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22165 --
22166
22167 --
22168
22169
22170 l_segment := AcctDerRule_13(
22171 p_application_id => p_application_id
22172 , p_ae_header_id => l_ae_header_id
22173 , p_source_33 => p_source_33
22174 , x_transaction_coa_id => l_adr_transaction_coa_id
22175 , x_accounting_coa_id => l_adr_accounting_coa_id
22176 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22177 , x_flex_value_set_id => l_adr_flex_value_set_id
22178 , x_value_type_code => l_adr_value_type_code
22179 , x_value_combination_id => l_adr_value_combination_id
22180 , x_value_segment_code => l_adr_value_segment_code
22181 , p_side => 'NA'
22182 , p_override_seg_flag => 'Y'
22183 );
22184
22185 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22186
22187 xla_ae_lines_pkg.set_segment(
22188 p_to_segment_code => 'GL_ACCOUNT'
22189 , p_segment_value => l_segment
22190 , p_from_segment_code => l_adr_value_segment_code
22191 , p_from_combination_id => l_adr_value_combination_id
22192 , p_value_type_code => l_adr_value_type_code
22193 , p_transaction_coa_id => l_adr_transaction_coa_id
22194 , p_accounting_coa_id => l_adr_accounting_coa_id
22195 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22196 , p_flex_value_set_id => l_adr_flex_value_set_id
22197 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22198 , p_adr_type_code => 'S'
22199 , p_component_type => l_component_type
22200 , p_component_code => l_component_code
22204 , p_entity_code => 'AP_PAYMENTS'
22201 , p_component_type_code => l_component_type_code
22202 , p_component_appl_id => l_component_appl_id
22203 , p_amb_context_code => l_amb_context_code
22205 , p_event_class_code => 'PAYMENTS'
22206 , p_side => 'NA'
22207 );
22208
22209 END IF;
22210
22211 --
22212 --
22213 END IF;
22214 --
22215 -- Bug 4922099
22216 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22217 (NVL(l_enc_upg_option, 'N') = 'O')
22218 ) AND
22219 (l_bflow_method_code = 'PRIOR_ENTRY')
22220 )
22221 THEN
22222 IF
22223 --
22224 1 = 2
22225 --
22226 THEN
22227 xla_accounting_err_pkg.build_message
22228 (p_appli_s_name => 'XLA'
22229 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22230 ,p_token_1 => 'LINE_NUMBER'
22231 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22232 ,p_token_2 => 'LINE_TYPE_NAME'
22233 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22234 l_component_type
22235 ,l_component_code
22236 ,l_component_type_code
22237 ,l_component_appl_id
22238 ,l_amb_context_code
22239 ,l_entity_code
22240 ,l_event_class_code
22241 )
22242 ,p_token_3 => 'OWNER'
22243 ,p_value_3 => xla_lookups_pkg.get_meaning(
22244 p_lookup_type => 'XLA_OWNER_TYPE'
22245 ,p_lookup_code => l_component_type_code
22246 )
22247 ,p_token_4 => 'PRODUCT_NAME'
22248 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22249 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22250 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22251 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22252 ,p_ae_header_id => NULL
22253 );
22254
22255 IF (C_LEVEL_ERROR>= g_log_level) THEN
22256 trace
22257 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22258 ,p_level => C_LEVEL_ERROR
22259 ,p_module => l_log_module);
22260 END IF;
22261 END IF;
22262 END IF;
22263 --
22264 --
22265 ------------------------------------------------------------------------------------------------
22266 -- 4219869 Business Flow
22267 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22268 -- Prior Entry. Currently, the following code is always generated.
22269 ------------------------------------------------------------------------------------------------
22270 XLA_AE_LINES_PKG.ValidateCurrentLine;
22271
22272 ------------------------------------------------------------------------------------
22273 -- 4219869 Business Flow
22274 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22275 ------------------------------------------------------------------------------------
22276 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22277
22278 ----------------------------------------------------------------------------------
22279 -- 4219869 Business Flow
22280 -- Update journal entry status -- Need to generate this within IF <condition>
22281 ----------------------------------------------------------------------------------
22282 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22283 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22284 ,p_balance_type_code => l_balance_type_code
22285 );
22286
22287 -------------------------------------------------------------------------------------------
22288 -- 4262811 - Generate the Accrual Reversal lines
22289 -------------------------------------------------------------------------------------------
22290 BEGIN
22291 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22292 (g_array_event(p_event_id).array_value_num('header_index'));
22293 IF l_acc_rev_flag IS NULL THEN
22294 l_acc_rev_flag := 'N';
22295 END IF;
22296 EXCEPTION
22297 WHEN OTHERS THEN
22298 l_acc_rev_flag := 'N';
22299 END;
22300 --
22304 -- To allow MPA report to determine if it should generate report process
22301 IF (l_acc_rev_flag = 'Y') THEN
22302
22303 -- 4645092 ------------------------------------------------------------------------------
22305 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22306 ------------------------------------------------------------------------------------------
22307
22308 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22309 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22310 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22311 -- call ADRs
22312 -- Bug 4922099
22313 --
22314 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22315 (NVL(l_actual_upg_option, 'N') = 'O') OR
22316 (NVL(l_enc_upg_option, 'N') = 'O')
22317 )
22318 THEN
22319 NULL;
22320 --
22321 --
22322
22323 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
22324 p_code_combination_id => TO_NUMBER(C_NUM)
22325 , p_value_type_code => NULL
22326 , p_transaction_coa_id => null
22327 , p_accounting_coa_id => null
22328 , p_adr_code => NULL
22329 , p_adr_type_code => NULL
22330 , p_component_type => l_component_type
22331 , p_component_code => l_component_code
22332 , p_component_type_code => l_component_type_code
22333 , p_component_appl_id => l_component_appl_id
22334 , p_amb_context_code => l_amb_context_code
22335 , p_side => NULL
22336 );
22337
22338
22339 -- initialise segments
22340 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22341 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22342 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22343 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22344 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22345 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22346 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22347 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22348 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22349 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22350 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22351 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22352 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22353 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22354 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22355 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22356 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22357 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22358 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22359 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22360 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22361 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22362 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22363 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22364 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22365 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22366 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22367 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22368 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22369 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22370 --
22371
22372 --
22373
22374
22375 l_segment := AcctDerRule_13(
22376 p_application_id => p_application_id
22377 , p_ae_header_id => l_ae_header_id
22378 , p_source_33 => p_source_33
22379 , x_transaction_coa_id => l_adr_transaction_coa_id
22380 , x_accounting_coa_id => l_adr_accounting_coa_id
22381 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22382 , x_flex_value_set_id => l_adr_flex_value_set_id
22383 , x_value_type_code => l_adr_value_type_code
22384 , x_value_combination_id => l_adr_value_combination_id
22385 , x_value_segment_code => l_adr_value_segment_code
22386 , p_side => 'NA'
22387 , p_override_seg_flag => 'Y'
22388 );
22389
22390 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22391
22392 xla_ae_lines_pkg.set_segment(
22393 p_to_segment_code => 'GL_ACCOUNT'
22394 , p_segment_value => l_segment
22395 , p_from_segment_code => l_adr_value_segment_code
22396 , p_from_combination_id => l_adr_value_combination_id
22400 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22397 , p_value_type_code => l_adr_value_type_code
22398 , p_transaction_coa_id => l_adr_transaction_coa_id
22399 , p_accounting_coa_id => l_adr_accounting_coa_id
22401 , p_flex_value_set_id => l_adr_flex_value_set_id
22402 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22403 , p_adr_type_code => 'S'
22404 , p_component_type => l_component_type
22405 , p_component_code => l_component_code
22406 , p_component_type_code => l_component_type_code
22407 , p_component_appl_id => l_component_appl_id
22408 , p_amb_context_code => l_amb_context_code
22409 , p_entity_code => 'AP_PAYMENTS'
22410 , p_event_class_code => 'PAYMENTS'
22411 , p_side => 'NA'
22412 );
22413
22414 END IF;
22415
22416 --
22417 --
22418 END IF;
22419
22420 --
22421 -- Update the line information that should be overwritten
22422 --
22423 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22424 p_header_num => 1);
22425 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22426
22427 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22428
22429 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22430 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22431 END IF;
22432
22433 --
22434 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22435 --
22436 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22437 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22438 ELSE
22439 ---------------------------------------------------------------------------------------------------
22440 -- 4262811a Switch Sign
22441 ---------------------------------------------------------------------------------------------------
22442 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22443 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22444 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22445 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22446 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22447 -- 5132302
22448 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22449 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22450
22451 END IF;
22452
22453 -- 4955764
22454 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22455 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22456
22457
22458 XLA_AE_LINES_PKG.ValidateCurrentLine;
22459 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22460
22461 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22462 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22463 ,p_balance_type_code => l_balance_type_code);
22464
22465 END IF;
22466
22467 -----------------------------------------------------------------------------------------
22468 -- 4262811 Multiperiod Accounting
22469 -----------------------------------------------------------------------------------------
22470 -- No MPA option is assigned.
22471
22472
22473 END IF;
22474 END IF;
22475 --
22476
22477 --
22478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22479 trace
22480 (p_msg => 'END of AcctLineType_60'
22481 ,p_level => C_LEVEL_PROCEDURE
22482 ,p_module => l_log_module);
22483 END IF;
22484 --
22485 EXCEPTION
22486 WHEN xla_exceptions_pkg.application_exception THEN
22487 RAISE;
22488 WHEN OTHERS THEN
22489 xla_exceptions_pkg.raise_message
22490 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_60');
22491 END AcctLineType_60;
22492 --
22493
22494 ---------------------------------------
22495 --
22496 -- PRIVATE FUNCTION
22497 -- AcctLineType_61
22498 --
22499 ---------------------------------------
22500 PROCEDURE AcctLineType_61 (
22501 p_application_id IN NUMBER
22502 ,p_event_id IN NUMBER
22503 ,p_calculate_acctd_flag IN VARCHAR2
22504 ,p_calculate_g_l_flag IN VARCHAR2
22505 ,p_actual_flag IN OUT VARCHAR2
22506 ,p_balance_type_code OUT VARCHAR2
22507 ,p_gain_or_loss_ref OUT VARCHAR2
22508
22509 --Payment Currency Code
22510 , p_source_12 IN VARCHAR2
22511 --Automatic Offsets Value
22512 , p_source_16 IN VARCHAR2
22513 , p_source_16_meaning IN VARCHAR2
22514 --Payment Distribution (Payment Rate) Ledger Amount
22515 , p_source_21 IN NUMBER
22516 --Bank Cash Clearing Account
22517 , p_source_33 IN NUMBER
22521 , p_source_51 IN VARCHAR2
22518 --When to Account for Payment Option
22519 , p_source_50 IN VARCHAR2
22520 --Payment Distribution Type
22522 , p_source_51_meaning IN VARCHAR2
22523 --Accounting Reversal Indicator
22524 , p_source_52 IN VARCHAR2
22525 --Payment Distribution Amount
22526 , p_source_53 IN NUMBER
22527 --Business Flow Accounts Payable Application Identifier
22528 , p_source_54 IN NUMBER
22529 --Payment Distribution Identifier
22530 , p_source_59 IN NUMBER
22531 --Distribution Link Type
22532 , p_source_60 IN VARCHAR2
22533 --Override Accounted Amount Indicator
22534 , p_source_64 IN VARCHAR2
22535 , p_source_64_meaning IN VARCHAR2
22536 --Payment Supplier Identifier
22537 , p_source_65 IN NUMBER
22538 --Payment Supplier Site Identifier
22539 , p_source_66 IN NUMBER
22540 --Third Party Type
22541 , p_source_67 IN VARCHAR2
22542 --Payment Distribution Reversed Identifier
22543 , p_source_68 IN NUMBER
22544 --Invoice Distribution Tax Line Identifier
22545 , p_source_69 IN NUMBER
22546 --Invoice Distribution Summary Tax Line Identifier
22547 , p_source_70 IN NUMBER
22548 --Payment Type
22549 , p_source_71 IN VARCHAR2
22550 , p_source_71_meaning IN VARCHAR2
22551 --Invoice Distribution Amount of the Payment Distribution
22552 , p_source_72 IN NUMBER
22553 --Business Flow Invoice Distribution Type
22554 , p_source_73 IN VARCHAR2
22555 --Business Flow Invoice Entity Code
22556 , p_source_74 IN VARCHAR2
22557 --Business Flow Invoice Distribution Identifier
22558 , p_source_75 IN NUMBER
22559 --Business Flow Invoice Identifier
22560 , p_source_76 IN NUMBER
22561 --Invoice Distribution Tax Distribution Identifier from Tax
22562 , p_source_77 IN NUMBER
22563 --Pooled Bank Account Option
22564 , p_source_117 IN VARCHAR2
22565 , p_source_117_meaning IN VARCHAR2
22566 --Payment Maturity Date
22567 , p_source_118 IN DATE
22568 --Payment Processing Type
22569 , p_source_120 IN VARCHAR2
22570 --Payment Exchange Date
22571 , p_source_121 IN DATE
22572 --Payment Exchange Rate
22573 , p_source_122 IN NUMBER
22574 --Payment Exchange Rate Type
22575 , p_source_123 IN VARCHAR2
22576 )
22577 IS
22578
22579 l_component_type VARCHAR2(80);
22580 l_component_code VARCHAR2(30);
22581 l_component_type_code VARCHAR2(1);
22582 l_component_appl_id INTEGER;
22583 l_amb_context_code VARCHAR2(30);
22584 l_entity_code VARCHAR2(30);
22585 l_event_class_code VARCHAR2(30);
22586 l_ae_header_id NUMBER;
22587 l_event_type_code VARCHAR2(30);
22588 l_line_definition_code VARCHAR2(30);
22589 l_line_definition_owner_code VARCHAR2(1);
22590 --
22591 -- adr variables
22592 l_segment VARCHAR2(30);
22593 l_ccid NUMBER;
22594 l_adr_transaction_coa_id NUMBER;
22595 l_adr_accounting_coa_id NUMBER;
22596 l_adr_flexfield_segment_code VARCHAR2(30);
22597 l_adr_flex_value_set_id NUMBER;
22598 l_adr_value_type_code VARCHAR2(30);
22599 l_adr_value_combination_id NUMBER;
22600 l_adr_value_segment_code VARCHAR2(30);
22601
22602 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22603 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22604 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22605 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22606
22607 -- 4262811 Variables ------------------------------------------------------------------------------------------
22608 l_entered_amt_idx NUMBER;
22609 l_accted_amt_idx NUMBER;
22610 l_acc_rev_flag VARCHAR2(1);
22611 l_accrual_line_num NUMBER;
22612 l_tmp_amt NUMBER;
22613 l_acc_rev_natural_side_code VARCHAR2(1);
22614
22615 l_num_entries NUMBER;
22616 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22617 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22618 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22619 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22620 l_recog_line_1 NUMBER;
22621 l_recog_line_2 NUMBER;
22622
22623 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22624 l_bflow_applied_to_amt NUMBER; -- 5132302
22625 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22626
22627 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22628
22629 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22630 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22631
22632 ---------------------------------------------------------------------------------------------------------------
22633
22634
22635 --
22636 -- bulk performance
22637 --
22638 l_balance_type_code VARCHAR2(1);
22639 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22643 -- Upgrade strategy
22640 l_log_module VARCHAR2(240);
22641
22642 --
22644 --
22645 l_actual_upg_option VARCHAR2(1);
22646 l_enc_upg_option VARCHAR2(1);
22647
22648 --
22649 BEGIN
22650 --
22651 IF g_log_enabled THEN
22652 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
22653 END IF;
22654 --
22655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22656
22657 trace
22658 (p_msg => 'BEGIN of AcctLineType_61'
22659 ,p_level => C_LEVEL_PROCEDURE
22660 ,p_module => l_log_module);
22661
22662 END IF;
22663 --
22664 l_component_type := 'AMB_JLT';
22665 l_component_code := 'AP_CASH_CLEAR_PMT_AOS_BS';
22666 l_component_type_code := 'S';
22667 l_component_appl_id := 200;
22668 l_amb_context_code := 'DEFAULT';
22669 l_entity_code := 'AP_PAYMENTS';
22670 l_event_class_code := 'PAYMENTS';
22671 l_event_type_code := 'PAYMENTS_ALL';
22672 l_line_definition_owner_code := 'S';
22673 l_line_definition_code := 'CASH_PAYMENTS_ALL';
22674 --
22675 l_balance_type_code := 'A';
22676 l_segment := NULL;
22677 l_ccid := NULL;
22678 l_adr_transaction_coa_id := NULL;
22679 l_adr_accounting_coa_id := NULL;
22680 l_adr_flexfield_segment_code := NULL;
22681 l_adr_flex_value_set_id := NULL;
22682 l_adr_value_type_code := NULL;
22683 l_adr_value_combination_id := NULL;
22684 l_adr_value_segment_code := NULL;
22685
22686 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
22687 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
22688 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22689 l_budgetary_control_flag := 'N';
22690
22691 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22692 l_bflow_applied_to_amt := NULL; -- 5132302
22693 l_entered_amt_idx := NULL; -- 4262811
22694 l_accted_amt_idx := NULL; -- 4262811
22695 l_acc_rev_flag := NULL; -- 4262811
22696 l_accrual_line_num := NULL; -- 4262811
22697 l_tmp_amt := NULL; -- 4262811
22698 --
22699
22700 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22701 l_balance_type_code <> 'B' THEN
22702 IF NVL(p_source_50,'
22703 ') = 'ALWAYS_ALWAYS' AND
22704 (NVL(p_source_117,'
22705 ') = 'Y' AND
22706 NVL(p_source_16,'
22707 ') = 'BALANCING_SEGMENT') AND
22708 p_source_118 IS NULL AND
22709 NVL(p_source_51,'
22710 ') = 'CASH' AND
22711 NVL(p_source_71,'
22712 ') <> 'R' AND
22713 NVL(p_source_120,'
22714 ') <> 'PAYMENTCARD'
22715 THEN
22716
22717 --
22718 XLA_AE_LINES_PKG.SetNewLine;
22719
22720 p_balance_type_code := l_balance_type_code;
22721 -- set the flag so later we will know whether the gain loss line needs to be created
22722
22723 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22724 p_actual_flag :='A';
22725 END IF;
22726
22727 --
22728 -- bulk performance
22729 --
22730 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22731 p_header_num => 0); -- 4262811
22732 --
22733 -- set accounting line options
22734 --
22735 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22736 p_natural_side_code => 'C'
22737 , p_gain_or_loss_flag => 'N'
22738 , p_gl_transfer_mode_code => 'S'
22739 , p_acct_entry_type_code => 'A'
22740 , p_switch_side_flag => 'Y'
22741 , p_merge_duplicate_code => 'A'
22742 );
22743 --
22744 l_acc_rev_natural_side_code := 'D'; -- 4262811
22745 --
22746 --
22747 -- set accounting line type info
22748 --
22749 xla_ae_lines_pkg.SetAcctLineType
22750 (p_component_type => l_component_type
22751 ,p_event_type_code => l_event_type_code
22752 ,p_line_definition_owner_code => l_line_definition_owner_code
22753 ,p_line_definition_code => l_line_definition_code
22754 ,p_accounting_line_code => l_component_code
22755 ,p_accounting_line_type_code => l_component_type_code
22756 ,p_accounting_line_appl_id => l_component_appl_id
22757 ,p_amb_context_code => l_amb_context_code
22758 ,p_entity_code => l_entity_code
22759 ,p_event_class_code => l_event_class_code);
22760 --
22761 -- set accounting class
22762 --
22763 xla_ae_lines_pkg.SetAcctClass(
22764 p_accounting_class_code => 'CASH_CLEARING'
22765 , p_ae_header_id => l_ae_header_id
22766 );
22767
22768 --
22769 -- set rounding class
22770 --
22771 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22772 'CASH_CLEARING';
22773
22774 --
22775 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22776 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22777 --
22781
22778 -- bulk performance
22779 --
22780 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22782 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22783 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22784
22785 -- 4955764
22786 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22787 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22788
22789 -- 4458381 Public Sector Enh
22790
22791 --
22792 -- set accounting attributes for the line type
22793 --
22794 l_entered_amt_idx := 10;
22795 l_accted_amt_idx := 15;
22796 l_bflow_applied_to_amt_idx := 2; -- 5132302
22797 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22798 l_rec_acct_attrs.array_char_value(1) := p_source_52;
22799 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22800 l_rec_acct_attrs.array_num_value(2) := p_source_72;
22801 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22802 l_rec_acct_attrs.array_num_value(3) := p_source_54;
22803 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22804 l_rec_acct_attrs.array_char_value(4) := p_source_73;
22805 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22806 l_rec_acct_attrs.array_char_value(5) := p_source_74;
22807 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22808 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
22809 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22810 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
22811 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22812 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
22813 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22814 l_rec_acct_attrs.array_char_value(9) := p_source_60;
22815 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22816 l_rec_acct_attrs.array_num_value(10) := p_source_53;
22817 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22818 l_rec_acct_attrs.array_char_value(11) := p_source_12;
22819 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22820 l_rec_acct_attrs.array_date_value(12) := p_source_121;
22821 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22822 l_rec_acct_attrs.array_num_value(13) := p_source_122;
22823 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22824 l_rec_acct_attrs.array_char_value(14) := p_source_123;
22825 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22826 l_rec_acct_attrs.array_num_value(15) := p_source_21;
22827 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22828 l_rec_acct_attrs.array_char_value(16) := p_source_64;
22829 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22830 l_rec_acct_attrs.array_num_value(17) := p_source_65;
22831 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22832 l_rec_acct_attrs.array_num_value(18) := p_source_66;
22833 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22834 l_rec_acct_attrs.array_char_value(19) := p_source_67;
22835 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22836 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
22837 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22838 l_rec_acct_attrs.array_char_value(21) := p_source_60;
22839 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22840 l_rec_acct_attrs.array_num_value(22) := p_source_69;
22841 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22842 l_rec_acct_attrs.array_num_value(23) := p_source_77;
22843 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22844 l_rec_acct_attrs.array_num_value(24) := p_source_70;
22845
22846 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22847 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22848
22849 ---------------------------------------------------------------------------------------------------------------
22850 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22851 ---------------------------------------------------------------------------------------------------------------
22852 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22853
22854 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22855 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22856
22857 IF xla_accounting_cache_pkg.GetValueChar
22858 (p_source_code => 'LEDGER_CATEGORY_CODE'
22859 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22860 AND l_bflow_method_code = 'PRIOR_ENTRY'
22861 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22862 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22863 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22864 )
22865 THEN
22866 xla_ae_lines_pkg.BflowUpgEntry
22867 (p_business_method_code => l_bflow_method_code
22868 ,p_business_class_code => l_bflow_class_code
22872 XLA_AE_LINES_PKG.business_flow_validation(
22869 ,p_balance_type => l_balance_type_code);
22870 ELSE
22871 NULL;
22873 p_business_method_code => l_bflow_method_code
22874 ,p_business_class_code => l_bflow_class_code
22875 ,p_inherit_description_flag => l_inherit_desc_flag);
22876 END IF;
22877
22878 --
22879 -- call analytical criteria
22880 --
22881
22882 --
22883 -- call description
22884 --
22885 -- No description or it is inherited.
22886 --
22887 -- call ADRs
22888 -- Bug 4922099
22889 --
22890 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22891 (NVL(l_actual_upg_option, 'N') = 'O') OR
22892 (NVL(l_enc_upg_option, 'N') = 'O')
22893 )
22894 THEN
22895 NULL;
22896 --
22897 --
22898
22899 l_ccid := AcctDerRule_30(
22900 p_application_id => p_application_id
22901 , p_ae_header_id => l_ae_header_id
22902 , p_source_33 => p_source_33
22903 , x_transaction_coa_id => l_adr_transaction_coa_id
22904 , x_accounting_coa_id => l_adr_accounting_coa_id
22905 , x_value_type_code => l_adr_value_type_code
22906 , p_side => 'NA'
22907 );
22908
22909 xla_ae_lines_pkg.set_ccid(
22910 p_code_combination_id => l_ccid
22911 , p_value_type_code => l_adr_value_type_code
22912 , p_transaction_coa_id => l_adr_transaction_coa_id
22913 , p_accounting_coa_id => l_adr_accounting_coa_id
22914 , p_adr_code => 'AP_PMT_CASH_CLEAR'
22915 , p_adr_type_code => 'S'
22916 , p_component_type => l_component_type
22917 , p_component_code => l_component_code
22918 , p_component_type_code => l_component_type_code
22919 , p_component_appl_id => l_component_appl_id
22920 , p_amb_context_code => l_amb_context_code
22921 , p_side => 'NA'
22922 );
22923
22924
22925 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
22926 p_to_segment_code => 'GL_BALANCING'
22927 , p_segment_value => C_CHAR
22928 , p_from_segment_code => NULL
22929 , p_from_combination_id => NULL
22930 , p_value_type_code => NULL
22931 , p_transaction_coa_id => null
22932 , p_accounting_coa_id => null
22933 , p_flexfield_segment_code => NULL
22934 , p_flex_value_set_id => NULL
22935 , p_adr_code => NULL
22936 , p_adr_type_code => NULL
22937 , p_component_type => l_component_type
22938 , p_component_code => l_component_code
22939 , p_component_type_code => l_component_type_code
22940 , p_component_appl_id => l_component_appl_id
22941 , p_amb_context_code => l_amb_context_code
22942 , p_entity_code => 'AP_PAYMENTS'
22943 , p_event_class_code => 'PAYMENTS'
22944 , p_side => 'NA'
22945 );
22946 --
22947
22948
22949 --
22950 --
22951 END IF;
22952 --
22953 -- Bug 4922099
22954 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22955 (NVL(l_enc_upg_option, 'N') = 'O')
22956 ) AND
22957 (l_bflow_method_code = 'PRIOR_ENTRY')
22958 )
22959 THEN
22960 IF
22961 --
22962 1 = 2
22963 --
22964 THEN
22965 xla_accounting_err_pkg.build_message
22966 (p_appli_s_name => 'XLA'
22967 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22968 ,p_token_1 => 'LINE_NUMBER'
22969 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22970 ,p_token_2 => 'LINE_TYPE_NAME'
22971 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22972 l_component_type
22973 ,l_component_code
22974 ,l_component_type_code
22975 ,l_component_appl_id
22976 ,l_amb_context_code
22977 ,l_entity_code
22978 ,l_event_class_code
22979 )
22980 ,p_token_3 => 'OWNER'
22981 ,p_value_3 => xla_lookups_pkg.get_meaning(
22982 p_lookup_type => 'XLA_OWNER_TYPE'
22983 ,p_lookup_code => l_component_type_code
22984 )
22985 ,p_token_4 => 'PRODUCT_NAME'
22989 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22986 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22987 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22988 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22990 ,p_ae_header_id => NULL
22991 );
22992
22993 IF (C_LEVEL_ERROR>= g_log_level) THEN
22994 trace
22995 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22996 ,p_level => C_LEVEL_ERROR
22997 ,p_module => l_log_module);
22998 END IF;
22999 END IF;
23000 END IF;
23001 --
23002 --
23003 ------------------------------------------------------------------------------------------------
23004 -- 4219869 Business Flow
23005 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23006 -- Prior Entry. Currently, the following code is always generated.
23007 ------------------------------------------------------------------------------------------------
23008 XLA_AE_LINES_PKG.ValidateCurrentLine;
23009
23010 ------------------------------------------------------------------------------------
23011 -- 4219869 Business Flow
23012 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23013 ------------------------------------------------------------------------------------
23014 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23015
23016 ----------------------------------------------------------------------------------
23017 -- 4219869 Business Flow
23018 -- Update journal entry status -- Need to generate this within IF <condition>
23019 ----------------------------------------------------------------------------------
23020 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23021 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23022 ,p_balance_type_code => l_balance_type_code
23023 );
23024
23025 -------------------------------------------------------------------------------------------
23026 -- 4262811 - Generate the Accrual Reversal lines
23027 -------------------------------------------------------------------------------------------
23028 BEGIN
23029 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23030 (g_array_event(p_event_id).array_value_num('header_index'));
23031 IF l_acc_rev_flag IS NULL THEN
23032 l_acc_rev_flag := 'N';
23033 END IF;
23034 EXCEPTION
23035 WHEN OTHERS THEN
23036 l_acc_rev_flag := 'N';
23037 END;
23038 --
23039 IF (l_acc_rev_flag = 'Y') THEN
23040
23041 -- 4645092 ------------------------------------------------------------------------------
23042 -- To allow MPA report to determine if it should generate report process
23043 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23044 ------------------------------------------------------------------------------------------
23045
23046 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23047 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23048 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23049 -- call ADRs
23050 -- Bug 4922099
23051 --
23052 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23053 (NVL(l_actual_upg_option, 'N') = 'O') OR
23054 (NVL(l_enc_upg_option, 'N') = 'O')
23055 )
23056 THEN
23057 NULL;
23058 --
23059 --
23060
23061 l_ccid := AcctDerRule_30(
23062 p_application_id => p_application_id
23063 , p_ae_header_id => l_ae_header_id
23064 , p_source_33 => p_source_33
23065 , x_transaction_coa_id => l_adr_transaction_coa_id
23066 , x_accounting_coa_id => l_adr_accounting_coa_id
23067 , x_value_type_code => l_adr_value_type_code
23068 , p_side => 'NA'
23069 );
23070
23071 xla_ae_lines_pkg.set_ccid(
23072 p_code_combination_id => l_ccid
23073 , p_value_type_code => l_adr_value_type_code
23074 , p_transaction_coa_id => l_adr_transaction_coa_id
23075 , p_accounting_coa_id => l_adr_accounting_coa_id
23076 , p_adr_code => 'AP_PMT_CASH_CLEAR'
23077 , p_adr_type_code => 'S'
23078 , p_component_type => l_component_type
23079 , p_component_code => l_component_code
23080 , p_component_type_code => l_component_type_code
23081 , p_component_appl_id => l_component_appl_id
23082 , p_amb_context_code => l_amb_context_code
23083 , p_side => 'NA'
23084 );
23085
23086
23087 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
23088 p_to_segment_code => 'GL_BALANCING'
23089 , p_segment_value => C_CHAR
23090 , p_from_segment_code => NULL
23091 , p_from_combination_id => NULL
23092 , p_value_type_code => NULL
23093 , p_transaction_coa_id => null
23094 , p_accounting_coa_id => null
23095 , p_flexfield_segment_code => NULL
23096 , p_flex_value_set_id => NULL
23100 , p_component_code => l_component_code
23097 , p_adr_code => NULL
23098 , p_adr_type_code => NULL
23099 , p_component_type => l_component_type
23101 , p_component_type_code => l_component_type_code
23102 , p_component_appl_id => l_component_appl_id
23103 , p_amb_context_code => l_amb_context_code
23104 , p_entity_code => 'AP_PAYMENTS'
23105 , p_event_class_code => 'PAYMENTS'
23106 , p_side => 'NA'
23107 );
23108 --
23109
23110
23111 --
23112 --
23113 END IF;
23114
23115 --
23116 -- Update the line information that should be overwritten
23117 --
23118 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23119 p_header_num => 1);
23120 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23121
23122 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23123
23124 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23125 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23126 END IF;
23127
23128 --
23129 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23130 --
23131 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23132 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23133 ELSE
23134 ---------------------------------------------------------------------------------------------------
23135 -- 4262811a Switch Sign
23136 ---------------------------------------------------------------------------------------------------
23137 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23138 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23139 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23140 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23141 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23142 -- 5132302
23143 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23144 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23145
23146 END IF;
23147
23148 -- 4955764
23149 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23150 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23151
23152
23153 XLA_AE_LINES_PKG.ValidateCurrentLine;
23154 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23155
23156 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23157 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23158 ,p_balance_type_code => l_balance_type_code);
23159
23160 END IF;
23161
23162 -----------------------------------------------------------------------------------------
23163 -- 4262811 Multiperiod Accounting
23164 -----------------------------------------------------------------------------------------
23165 -- No MPA option is assigned.
23166
23167
23168 END IF;
23169 END IF;
23170 --
23171
23172 --
23173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23174 trace
23175 (p_msg => 'END of AcctLineType_61'
23176 ,p_level => C_LEVEL_PROCEDURE
23177 ,p_module => l_log_module);
23178 END IF;
23179 --
23180 EXCEPTION
23181 WHEN xla_exceptions_pkg.application_exception THEN
23182 RAISE;
23183 WHEN OTHERS THEN
23184 xla_exceptions_pkg.raise_message
23185 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_61');
23186 END AcctLineType_61;
23187 --
23188
23189 ---------------------------------------
23190 --
23191 -- PRIVATE FUNCTION
23192 -- AcctLineType_62
23193 --
23194 ---------------------------------------
23195 PROCEDURE AcctLineType_62 (
23196 p_application_id IN NUMBER
23197 ,p_event_id IN NUMBER
23198 ,p_calculate_acctd_flag IN VARCHAR2
23199 ,p_calculate_g_l_flag IN VARCHAR2
23200 ,p_actual_flag IN OUT VARCHAR2
23201 ,p_balance_type_code OUT VARCHAR2
23202 ,p_gain_or_loss_ref OUT VARCHAR2
23203
23204 --Payment Currency Code
23205 , p_source_12 IN VARCHAR2
23206 --Bank Cash Clearing Account
23207 , p_source_33 IN NUMBER
23208 --Automatic Offsets Flag
23209 , p_source_42 IN VARCHAR2
23210 , p_source_42_meaning IN VARCHAR2
23211 --When to Account for Payment Option
23212 , p_source_50 IN VARCHAR2
23213 --Payment Distribution Type
23214 , p_source_51 IN VARCHAR2
23215 , p_source_51_meaning IN VARCHAR2
23216 --Accounting Reversal Indicator
23217 , p_source_52 IN VARCHAR2
23218 --Payment Distribution Amount
23219 , p_source_53 IN NUMBER
23223 , p_source_55 IN VARCHAR2
23220 --Business Flow Accounts Payable Application Identifier
23221 , p_source_54 IN NUMBER
23222 --Business Flow Payment Distribution Type
23224 --Business Flow Payment Entity Code
23225 , p_source_56 IN VARCHAR2
23226 --Business Flow Payment Distribution Identifier
23227 , p_source_57 IN NUMBER
23228 --Business Flow Payment Identifier
23229 , p_source_58 IN NUMBER
23230 --Payment Distribution Identifier
23231 , p_source_59 IN NUMBER
23232 --Distribution Link Type
23233 , p_source_60 IN VARCHAR2
23234 --Override Accounted Amount Indicator
23235 , p_source_64 IN VARCHAR2
23236 , p_source_64_meaning IN VARCHAR2
23237 --Payment Supplier Identifier
23238 , p_source_65 IN NUMBER
23239 --Payment Supplier Site Identifier
23240 , p_source_66 IN NUMBER
23241 --Third Party Type
23242 , p_source_67 IN VARCHAR2
23243 --Payment Distribution Reversed Identifier
23244 , p_source_68 IN NUMBER
23245 --Pooled Bank Account Option
23246 , p_source_117 IN VARCHAR2
23247 , p_source_117_meaning IN VARCHAR2
23248 --Payment Maturity Date
23249 , p_source_118 IN DATE
23250 --Payment Exchange Date
23251 , p_source_121 IN DATE
23252 --Payment Exchange Rate
23253 , p_source_122 IN NUMBER
23254 --Payment Exchange Rate Type
23255 , p_source_123 IN VARCHAR2
23256 --Payment Distribution (Matured Rate) Ledger Amount
23257 , p_source_124 IN NUMBER
23258 )
23259 IS
23260
23261 l_component_type VARCHAR2(80);
23262 l_component_code VARCHAR2(30);
23263 l_component_type_code VARCHAR2(1);
23264 l_component_appl_id INTEGER;
23265 l_amb_context_code VARCHAR2(30);
23266 l_entity_code VARCHAR2(30);
23267 l_event_class_code VARCHAR2(30);
23268 l_ae_header_id NUMBER;
23269 l_event_type_code VARCHAR2(30);
23270 l_line_definition_code VARCHAR2(30);
23271 l_line_definition_owner_code VARCHAR2(1);
23272 --
23273 -- adr variables
23274 l_segment VARCHAR2(30);
23275 l_ccid NUMBER;
23276 l_adr_transaction_coa_id NUMBER;
23277 l_adr_accounting_coa_id NUMBER;
23278 l_adr_flexfield_segment_code VARCHAR2(30);
23279 l_adr_flex_value_set_id NUMBER;
23280 l_adr_value_type_code VARCHAR2(30);
23281 l_adr_value_combination_id NUMBER;
23282 l_adr_value_segment_code VARCHAR2(30);
23283
23284 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23285 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23286 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23287 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23288
23289 -- 4262811 Variables ------------------------------------------------------------------------------------------
23290 l_entered_amt_idx NUMBER;
23291 l_accted_amt_idx NUMBER;
23292 l_acc_rev_flag VARCHAR2(1);
23293 l_accrual_line_num NUMBER;
23294 l_tmp_amt NUMBER;
23295 l_acc_rev_natural_side_code VARCHAR2(1);
23296
23297 l_num_entries NUMBER;
23298 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23299 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23300 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23301 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23302 l_recog_line_1 NUMBER;
23303 l_recog_line_2 NUMBER;
23304
23305 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23306 l_bflow_applied_to_amt NUMBER; -- 5132302
23307 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23308
23309 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23310
23311 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23312 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23313
23314 ---------------------------------------------------------------------------------------------------------------
23315
23316
23317 --
23318 -- bulk performance
23319 --
23320 l_balance_type_code VARCHAR2(1);
23321 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23322 l_log_module VARCHAR2(240);
23323
23324 --
23325 -- Upgrade strategy
23326 --
23327 l_actual_upg_option VARCHAR2(1);
23328 l_enc_upg_option VARCHAR2(1);
23329
23330 --
23331 BEGIN
23332 --
23333 IF g_log_enabled THEN
23334 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
23335 END IF;
23336 --
23337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23338
23339 trace
23340 (p_msg => 'BEGIN of AcctLineType_62'
23341 ,p_level => C_LEVEL_PROCEDURE
23342 ,p_module => l_log_module);
23343
23344 END IF;
23345 --
23346 l_component_type := 'AMB_JLT';
23347 l_component_code := 'AP_CASH_CLEAR_PMT_MAT';
23348 l_component_type_code := 'S';
23349 l_component_appl_id := 200;
23353 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
23350 l_amb_context_code := 'DEFAULT';
23351 l_entity_code := 'AP_PAYMENTS';
23352 l_event_class_code := 'FUTURE DATED PAYMENTS';
23354 l_line_definition_owner_code := 'S';
23355 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
23356 --
23357 l_balance_type_code := 'A';
23358 l_segment := NULL;
23359 l_ccid := NULL;
23360 l_adr_transaction_coa_id := NULL;
23361 l_adr_accounting_coa_id := NULL;
23362 l_adr_flexfield_segment_code := NULL;
23363 l_adr_flex_value_set_id := NULL;
23364 l_adr_value_type_code := NULL;
23365 l_adr_value_combination_id := NULL;
23366 l_adr_value_segment_code := NULL;
23367
23368 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23369 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
23370 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23371 l_budgetary_control_flag := 'N';
23372
23373 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23374 l_bflow_applied_to_amt := NULL; -- 5132302
23375 l_entered_amt_idx := NULL; -- 4262811
23376 l_accted_amt_idx := NULL; -- 4262811
23377 l_acc_rev_flag := NULL; -- 4262811
23378 l_accrual_line_num := NULL; -- 4262811
23379 l_tmp_amt := NULL; -- 4262811
23380 --
23381
23382 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23383 l_balance_type_code <> 'B' THEN
23384 IF (NVL(p_source_50,'
23385 ') = 'ALWAYS_ALWAYS' OR
23386 NVL(p_source_50,'
23387 ') = 'ALWAYS_ISSUE') AND
23388 (NVL(p_source_42,'
23389 ') <> 'Y' OR
23390 NVL(p_source_42,'
23391 ') = 'Y' AND
23392 NVL(p_source_117,'
23393 ') <> 'Y') AND
23394 p_source_118 IS NOT NULL AND
23395 NVL(p_source_51,'
23396 ') = 'CASH'
23397 THEN
23398
23399 --
23400 XLA_AE_LINES_PKG.SetNewLine;
23401
23402 p_balance_type_code := l_balance_type_code;
23403 -- set the flag so later we will know whether the gain loss line needs to be created
23404
23405 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23406 p_actual_flag :='A';
23407 END IF;
23408
23409 --
23410 -- bulk performance
23411 --
23412 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23413 p_header_num => 0); -- 4262811
23414 --
23415 -- set accounting line options
23416 --
23417 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23418 p_natural_side_code => 'C'
23419 , p_gain_or_loss_flag => 'N'
23420 , p_gl_transfer_mode_code => 'S'
23421 , p_acct_entry_type_code => 'A'
23422 , p_switch_side_flag => 'Y'
23423 , p_merge_duplicate_code => 'A'
23424 );
23425 --
23426 l_acc_rev_natural_side_code := 'D'; -- 4262811
23427 --
23428 --
23429 -- set accounting line type info
23430 --
23431 xla_ae_lines_pkg.SetAcctLineType
23432 (p_component_type => l_component_type
23433 ,p_event_type_code => l_event_type_code
23434 ,p_line_definition_owner_code => l_line_definition_owner_code
23435 ,p_line_definition_code => l_line_definition_code
23436 ,p_accounting_line_code => l_component_code
23437 ,p_accounting_line_type_code => l_component_type_code
23438 ,p_accounting_line_appl_id => l_component_appl_id
23439 ,p_amb_context_code => l_amb_context_code
23440 ,p_entity_code => l_entity_code
23441 ,p_event_class_code => l_event_class_code);
23442 --
23443 -- set accounting class
23444 --
23445 xla_ae_lines_pkg.SetAcctClass(
23446 p_accounting_class_code => 'CASH_CLEARING'
23447 , p_ae_header_id => l_ae_header_id
23448 );
23449
23450 --
23451 -- set rounding class
23452 --
23453 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23454 'CASH_CLEARING';
23455
23456 --
23457 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23458 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23459 --
23460 -- bulk performance
23461 --
23462 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23463
23464 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23465 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23466
23467 -- 4955764
23468 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23469 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23470
23471 -- 4458381 Public Sector Enh
23472
23473 --
23474 -- set accounting attributes for the line type
23475 --
23476 l_entered_amt_idx := 9;
23477 l_accted_amt_idx := 14;
23478 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23479 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23483 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23480 l_rec_acct_attrs.array_char_value(1) := p_source_52;
23481 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23482 l_rec_acct_attrs.array_num_value(2) := p_source_54;
23484 l_rec_acct_attrs.array_char_value(3) := p_source_55;
23485 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23486 l_rec_acct_attrs.array_char_value(4) := p_source_56;
23487 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23488 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
23489 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23490 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
23491 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
23492 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
23493 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
23494 l_rec_acct_attrs.array_char_value(8) := p_source_60;
23495 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
23496 l_rec_acct_attrs.array_num_value(9) := p_source_53;
23497 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
23498 l_rec_acct_attrs.array_char_value(10) := p_source_12;
23499 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
23500 l_rec_acct_attrs.array_date_value(11) := p_source_121;
23501 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
23502 l_rec_acct_attrs.array_num_value(12) := p_source_122;
23503 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
23504 l_rec_acct_attrs.array_char_value(13) := p_source_123;
23505 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
23506 l_rec_acct_attrs.array_num_value(14) := p_source_124;
23507 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
23508 l_rec_acct_attrs.array_char_value(15) := p_source_64;
23509 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23510 l_rec_acct_attrs.array_num_value(16) := p_source_65;
23511 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23512 l_rec_acct_attrs.array_num_value(17) := p_source_66;
23513 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23514 l_rec_acct_attrs.array_char_value(18) := p_source_67;
23515 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
23516 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
23517 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
23518 l_rec_acct_attrs.array_char_value(20) := p_source_60;
23519
23520 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23521 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23522
23523 ---------------------------------------------------------------------------------------------------------------
23524 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23525 ---------------------------------------------------------------------------------------------------------------
23526 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23527
23528 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23529 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23530
23531 IF xla_accounting_cache_pkg.GetValueChar
23532 (p_source_code => 'LEDGER_CATEGORY_CODE'
23533 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23534 AND l_bflow_method_code = 'PRIOR_ENTRY'
23535 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23536 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23537 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23538 )
23539 THEN
23540 xla_ae_lines_pkg.BflowUpgEntry
23541 (p_business_method_code => l_bflow_method_code
23542 ,p_business_class_code => l_bflow_class_code
23543 ,p_balance_type => l_balance_type_code);
23544 ELSE
23545 NULL;
23546 -- No business flow processing for business flow method of NONE.
23547 END IF;
23548
23549 --
23550 -- call analytical criteria
23551 --
23552
23553 --
23554 -- call description
23555 --
23556 -- No description or it is inherited.
23557 --
23558 -- call ADRs
23559 -- Bug 4922099
23560 --
23561 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23562 (NVL(l_actual_upg_option, 'N') = 'O') OR
23563 (NVL(l_enc_upg_option, 'N') = 'O')
23564 )
23565 THEN
23566 NULL;
23567 --
23568 --
23569
23570 l_ccid := AcctDerRule_30(
23571 p_application_id => p_application_id
23572 , p_ae_header_id => l_ae_header_id
23573 , p_source_33 => p_source_33
23574 , x_transaction_coa_id => l_adr_transaction_coa_id
23575 , x_accounting_coa_id => l_adr_accounting_coa_id
23576 , x_value_type_code => l_adr_value_type_code
23577 , p_side => 'NA'
23578 );
23579
23580 xla_ae_lines_pkg.set_ccid(
23581 p_code_combination_id => l_ccid
23582 , p_value_type_code => l_adr_value_type_code
23583 , p_transaction_coa_id => l_adr_transaction_coa_id
23584 , p_accounting_coa_id => l_adr_accounting_coa_id
23588 , p_component_code => l_component_code
23585 , p_adr_code => 'AP_PMT_CASH_CLEAR'
23586 , p_adr_type_code => 'S'
23587 , p_component_type => l_component_type
23589 , p_component_type_code => l_component_type_code
23590 , p_component_appl_id => l_component_appl_id
23591 , p_amb_context_code => l_amb_context_code
23592 , p_side => 'NA'
23593 );
23594
23595
23596 --
23597 --
23598 END IF;
23599 --
23600 -- Bug 4922099
23601 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23602 (NVL(l_enc_upg_option, 'N') = 'O')
23603 ) AND
23604 (l_bflow_method_code = 'PRIOR_ENTRY')
23605 )
23606 THEN
23607 IF
23608 --
23609 1 = 2
23610 --
23611 THEN
23612 xla_accounting_err_pkg.build_message
23613 (p_appli_s_name => 'XLA'
23614 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23615 ,p_token_1 => 'LINE_NUMBER'
23616 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23617 ,p_token_2 => 'LINE_TYPE_NAME'
23618 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23619 l_component_type
23620 ,l_component_code
23621 ,l_component_type_code
23622 ,l_component_appl_id
23623 ,l_amb_context_code
23624 ,l_entity_code
23625 ,l_event_class_code
23626 )
23627 ,p_token_3 => 'OWNER'
23628 ,p_value_3 => xla_lookups_pkg.get_meaning(
23629 p_lookup_type => 'XLA_OWNER_TYPE'
23630 ,p_lookup_code => l_component_type_code
23631 )
23632 ,p_token_4 => 'PRODUCT_NAME'
23633 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23634 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23635 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23636 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23637 ,p_ae_header_id => NULL
23638 );
23639
23640 IF (C_LEVEL_ERROR>= g_log_level) THEN
23641 trace
23642 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23643 ,p_level => C_LEVEL_ERROR
23644 ,p_module => l_log_module);
23645 END IF;
23646 END IF;
23647 END IF;
23648 --
23649 --
23650 ------------------------------------------------------------------------------------------------
23651 -- 4219869 Business Flow
23652 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23653 -- Prior Entry. Currently, the following code is always generated.
23654 ------------------------------------------------------------------------------------------------
23655 XLA_AE_LINES_PKG.ValidateCurrentLine;
23656
23657 ------------------------------------------------------------------------------------
23658 -- 4219869 Business Flow
23659 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23660 ------------------------------------------------------------------------------------
23661 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23662
23663 ----------------------------------------------------------------------------------
23664 -- 4219869 Business Flow
23665 -- Update journal entry status -- Need to generate this within IF <condition>
23666 ----------------------------------------------------------------------------------
23667 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23668 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23669 ,p_balance_type_code => l_balance_type_code
23670 );
23671
23672 -------------------------------------------------------------------------------------------
23673 -- 4262811 - Generate the Accrual Reversal lines
23674 -------------------------------------------------------------------------------------------
23675 BEGIN
23676 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23677 (g_array_event(p_event_id).array_value_num('header_index'));
23678 IF l_acc_rev_flag IS NULL THEN
23679 l_acc_rev_flag := 'N';
23680 END IF;
23681 EXCEPTION
23682 WHEN OTHERS THEN
23686 IF (l_acc_rev_flag = 'Y') THEN
23683 l_acc_rev_flag := 'N';
23684 END;
23685 --
23687
23688 -- 4645092 ------------------------------------------------------------------------------
23689 -- To allow MPA report to determine if it should generate report process
23690 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23691 ------------------------------------------------------------------------------------------
23692
23693 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23694 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23695 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23696 -- call ADRs
23697 -- Bug 4922099
23698 --
23699 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23700 (NVL(l_actual_upg_option, 'N') = 'O') OR
23701 (NVL(l_enc_upg_option, 'N') = 'O')
23702 )
23703 THEN
23704 NULL;
23705 --
23706 --
23707
23708 l_ccid := AcctDerRule_30(
23709 p_application_id => p_application_id
23710 , p_ae_header_id => l_ae_header_id
23711 , p_source_33 => p_source_33
23712 , x_transaction_coa_id => l_adr_transaction_coa_id
23713 , x_accounting_coa_id => l_adr_accounting_coa_id
23714 , x_value_type_code => l_adr_value_type_code
23715 , p_side => 'NA'
23716 );
23717
23718 xla_ae_lines_pkg.set_ccid(
23719 p_code_combination_id => l_ccid
23720 , p_value_type_code => l_adr_value_type_code
23721 , p_transaction_coa_id => l_adr_transaction_coa_id
23722 , p_accounting_coa_id => l_adr_accounting_coa_id
23723 , p_adr_code => 'AP_PMT_CASH_CLEAR'
23724 , p_adr_type_code => 'S'
23725 , p_component_type => l_component_type
23726 , p_component_code => l_component_code
23727 , p_component_type_code => l_component_type_code
23728 , p_component_appl_id => l_component_appl_id
23729 , p_amb_context_code => l_amb_context_code
23730 , p_side => 'NA'
23731 );
23732
23733
23734 --
23735 --
23736 END IF;
23737
23738 --
23739 -- Update the line information that should be overwritten
23740 --
23741 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23742 p_header_num => 1);
23743 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23744
23745 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23746
23747 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23748 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23749 END IF;
23750
23751 --
23752 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23753 --
23754 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23755 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23756 ELSE
23757 ---------------------------------------------------------------------------------------------------
23758 -- 4262811a Switch Sign
23759 ---------------------------------------------------------------------------------------------------
23760 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23762 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23763 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23764 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23765 -- 5132302
23766 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23767 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23768
23769 END IF;
23770
23771 -- 4955764
23772 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23773 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23774
23775
23776 XLA_AE_LINES_PKG.ValidateCurrentLine;
23777 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23778
23779 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23780 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23781 ,p_balance_type_code => l_balance_type_code);
23782
23783 END IF;
23784
23785 -----------------------------------------------------------------------------------------
23786 -- 4262811 Multiperiod Accounting
23787 -----------------------------------------------------------------------------------------
23788 -- No MPA option is assigned.
23789
23790
23791 END IF;
23792 END IF;
23793 --
23794
23795 --
23796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23797 trace
23801 END IF;
23798 (p_msg => 'END of AcctLineType_62'
23799 ,p_level => C_LEVEL_PROCEDURE
23800 ,p_module => l_log_module);
23802 --
23803 EXCEPTION
23804 WHEN xla_exceptions_pkg.application_exception THEN
23805 RAISE;
23806 WHEN OTHERS THEN
23807 xla_exceptions_pkg.raise_message
23808 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_62');
23809 END AcctLineType_62;
23810 --
23811
23812 ---------------------------------------
23813 --
23814 -- PRIVATE FUNCTION
23815 -- AcctLineType_63
23816 --
23817 ---------------------------------------
23818 PROCEDURE AcctLineType_63 (
23819 p_application_id IN NUMBER
23820 ,p_event_id IN NUMBER
23821 ,p_calculate_acctd_flag IN VARCHAR2
23822 ,p_calculate_g_l_flag IN VARCHAR2
23823 ,p_actual_flag IN OUT VARCHAR2
23824 ,p_balance_type_code OUT VARCHAR2
23825 ,p_gain_or_loss_ref OUT VARCHAR2
23826
23827 --Payment Currency Code
23828 , p_source_12 IN VARCHAR2
23829 --Automatic Offsets Value
23830 , p_source_16 IN VARCHAR2
23831 , p_source_16_meaning IN VARCHAR2
23832 --Bank Cash Clearing Account
23833 , p_source_33 IN NUMBER
23834 --When to Account for Payment Option
23835 , p_source_50 IN VARCHAR2
23836 --Payment Distribution Type
23837 , p_source_51 IN VARCHAR2
23838 , p_source_51_meaning IN VARCHAR2
23839 --Accounting Reversal Indicator
23840 , p_source_52 IN VARCHAR2
23841 --Payment Distribution Amount
23842 , p_source_53 IN NUMBER
23843 --Business Flow Accounts Payable Application Identifier
23844 , p_source_54 IN NUMBER
23845 --Business Flow Payment Distribution Type
23846 , p_source_55 IN VARCHAR2
23847 --Business Flow Payment Entity Code
23848 , p_source_56 IN VARCHAR2
23849 --Business Flow Payment Distribution Identifier
23850 , p_source_57 IN NUMBER
23851 --Business Flow Payment Identifier
23852 , p_source_58 IN NUMBER
23853 --Payment Distribution Identifier
23854 , p_source_59 IN NUMBER
23855 --Distribution Link Type
23856 , p_source_60 IN VARCHAR2
23857 --Override Accounted Amount Indicator
23858 , p_source_64 IN VARCHAR2
23859 , p_source_64_meaning IN VARCHAR2
23860 --Payment Supplier Identifier
23861 , p_source_65 IN NUMBER
23862 --Payment Supplier Site Identifier
23863 , p_source_66 IN NUMBER
23864 --Third Party Type
23865 , p_source_67 IN VARCHAR2
23866 --Payment Distribution Reversed Identifier
23867 , p_source_68 IN NUMBER
23868 --Pooled Bank Account Option
23869 , p_source_117 IN VARCHAR2
23870 , p_source_117_meaning IN VARCHAR2
23871 --Payment Maturity Date
23872 , p_source_118 IN DATE
23873 --Payment Exchange Date
23874 , p_source_121 IN DATE
23875 --Payment Exchange Rate
23876 , p_source_122 IN NUMBER
23877 --Payment Exchange Rate Type
23878 , p_source_123 IN VARCHAR2
23879 --Payment Distribution (Matured Rate) Ledger Amount
23880 , p_source_124 IN NUMBER
23881 )
23882 IS
23883
23884 l_component_type VARCHAR2(80);
23885 l_component_code VARCHAR2(30);
23886 l_component_type_code VARCHAR2(1);
23887 l_component_appl_id INTEGER;
23888 l_amb_context_code VARCHAR2(30);
23889 l_entity_code VARCHAR2(30);
23890 l_event_class_code VARCHAR2(30);
23891 l_ae_header_id NUMBER;
23892 l_event_type_code VARCHAR2(30);
23893 l_line_definition_code VARCHAR2(30);
23894 l_line_definition_owner_code VARCHAR2(1);
23895 --
23896 -- adr variables
23897 l_segment VARCHAR2(30);
23898 l_ccid NUMBER;
23899 l_adr_transaction_coa_id NUMBER;
23900 l_adr_accounting_coa_id NUMBER;
23901 l_adr_flexfield_segment_code VARCHAR2(30);
23902 l_adr_flex_value_set_id NUMBER;
23903 l_adr_value_type_code VARCHAR2(30);
23904 l_adr_value_combination_id NUMBER;
23905 l_adr_value_segment_code VARCHAR2(30);
23906
23907 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23908 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23909 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23910 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23911
23912 -- 4262811 Variables ------------------------------------------------------------------------------------------
23913 l_entered_amt_idx NUMBER;
23914 l_accted_amt_idx NUMBER;
23915 l_acc_rev_flag VARCHAR2(1);
23916 l_accrual_line_num NUMBER;
23917 l_tmp_amt NUMBER;
23918 l_acc_rev_natural_side_code VARCHAR2(1);
23919
23920 l_num_entries NUMBER;
23921 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23922 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23923 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23924 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23925 l_recog_line_1 NUMBER;
23926 l_recog_line_2 NUMBER;
23927
23931
23928 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23929 l_bflow_applied_to_amt NUMBER; -- 5132302
23930 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23932 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23933
23934 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23935 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23936
23937 ---------------------------------------------------------------------------------------------------------------
23938
23939
23940 --
23941 -- bulk performance
23942 --
23943 l_balance_type_code VARCHAR2(1);
23944 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23945 l_log_module VARCHAR2(240);
23946
23947 --
23948 -- Upgrade strategy
23949 --
23950 l_actual_upg_option VARCHAR2(1);
23951 l_enc_upg_option VARCHAR2(1);
23952
23953 --
23954 BEGIN
23955 --
23956 IF g_log_enabled THEN
23957 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
23958 END IF;
23959 --
23960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23961
23962 trace
23963 (p_msg => 'BEGIN of AcctLineType_63'
23964 ,p_level => C_LEVEL_PROCEDURE
23965 ,p_module => l_log_module);
23966
23967 END IF;
23968 --
23969 l_component_type := 'AMB_JLT';
23970 l_component_code := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
23971 l_component_type_code := 'S';
23972 l_component_appl_id := 200;
23973 l_amb_context_code := 'DEFAULT';
23974 l_entity_code := 'AP_PAYMENTS';
23975 l_event_class_code := 'FUTURE DATED PAYMENTS';
23976 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
23977 l_line_definition_owner_code := 'S';
23978 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
23979 --
23980 l_balance_type_code := 'A';
23981 l_segment := NULL;
23982 l_ccid := NULL;
23983 l_adr_transaction_coa_id := NULL;
23984 l_adr_accounting_coa_id := NULL;
23985 l_adr_flexfield_segment_code := NULL;
23986 l_adr_flex_value_set_id := NULL;
23987 l_adr_value_type_code := NULL;
23988 l_adr_value_combination_id := NULL;
23989 l_adr_value_segment_code := NULL;
23990
23991 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
23992 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
23993 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23994 l_budgetary_control_flag := 'N';
23995
23996 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23997 l_bflow_applied_to_amt := NULL; -- 5132302
23998 l_entered_amt_idx := NULL; -- 4262811
23999 l_accted_amt_idx := NULL; -- 4262811
24000 l_acc_rev_flag := NULL; -- 4262811
24001 l_accrual_line_num := NULL; -- 4262811
24002 l_tmp_amt := NULL; -- 4262811
24003 --
24004
24005 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24006 l_balance_type_code <> 'B' THEN
24007 IF (NVL(p_source_50,'
24008 ') = 'ALWAYS_ALWAYS' OR
24009 NVL(p_source_50,'
24010 ') = 'ALWAYS_ISSUE') AND
24011 (NVL(p_source_117,'
24012 ') = 'Y' AND
24013 NVL(p_source_16,'
24014 ') = 'ACCOUNT_SEGMENT_VALUE') AND
24015 p_source_118 IS NOT NULL AND
24016 NVL(p_source_51,'
24017 ') = 'CASH'
24018 THEN
24019
24020 --
24021 XLA_AE_LINES_PKG.SetNewLine;
24022
24023 p_balance_type_code := l_balance_type_code;
24024 -- set the flag so later we will know whether the gain loss line needs to be created
24025
24026 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24027 p_actual_flag :='A';
24028 END IF;
24029
24030 --
24031 -- bulk performance
24032 --
24033 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24034 p_header_num => 0); -- 4262811
24035 --
24036 -- set accounting line options
24037 --
24038 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24039 p_natural_side_code => 'C'
24040 , p_gain_or_loss_flag => 'N'
24041 , p_gl_transfer_mode_code => 'S'
24042 , p_acct_entry_type_code => 'A'
24043 , p_switch_side_flag => 'Y'
24044 , p_merge_duplicate_code => 'A'
24045 );
24046 --
24047 l_acc_rev_natural_side_code := 'D'; -- 4262811
24048 --
24049 --
24050 -- set accounting line type info
24051 --
24052 xla_ae_lines_pkg.SetAcctLineType
24053 (p_component_type => l_component_type
24054 ,p_event_type_code => l_event_type_code
24055 ,p_line_definition_owner_code => l_line_definition_owner_code
24056 ,p_line_definition_code => l_line_definition_code
24057 ,p_accounting_line_code => l_component_code
24058 ,p_accounting_line_type_code => l_component_type_code
24059 ,p_accounting_line_appl_id => l_component_appl_id
24060 ,p_amb_context_code => l_amb_context_code
24064 -- set accounting class
24061 ,p_entity_code => l_entity_code
24062 ,p_event_class_code => l_event_class_code);
24063 --
24065 --
24066 xla_ae_lines_pkg.SetAcctClass(
24067 p_accounting_class_code => 'CASH_CLEARING'
24068 , p_ae_header_id => l_ae_header_id
24069 );
24070
24071 --
24072 -- set rounding class
24073 --
24074 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24075 'CASH_CLEARING';
24076
24077 --
24078 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24079 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24080 --
24081 -- bulk performance
24082 --
24083 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24084
24085 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24086 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24087
24088 -- 4955764
24089 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24090 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24091
24092 -- 4458381 Public Sector Enh
24093
24094 --
24095 -- set accounting attributes for the line type
24096 --
24097 l_entered_amt_idx := 9;
24098 l_accted_amt_idx := 14;
24099 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24100 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24101 l_rec_acct_attrs.array_char_value(1) := p_source_52;
24102 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24103 l_rec_acct_attrs.array_num_value(2) := p_source_54;
24104 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24105 l_rec_acct_attrs.array_char_value(3) := p_source_55;
24106 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24107 l_rec_acct_attrs.array_char_value(4) := p_source_56;
24108 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24109 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
24110 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24111 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
24112 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24113 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
24114 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24115 l_rec_acct_attrs.array_char_value(8) := p_source_60;
24116 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24117 l_rec_acct_attrs.array_num_value(9) := p_source_53;
24118 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24119 l_rec_acct_attrs.array_char_value(10) := p_source_12;
24120 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24121 l_rec_acct_attrs.array_date_value(11) := p_source_121;
24122 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24123 l_rec_acct_attrs.array_num_value(12) := p_source_122;
24124 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24125 l_rec_acct_attrs.array_char_value(13) := p_source_123;
24126 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24127 l_rec_acct_attrs.array_num_value(14) := p_source_124;
24128 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24129 l_rec_acct_attrs.array_char_value(15) := p_source_64;
24130 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24131 l_rec_acct_attrs.array_num_value(16) := p_source_65;
24132 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24133 l_rec_acct_attrs.array_num_value(17) := p_source_66;
24134 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24135 l_rec_acct_attrs.array_char_value(18) := p_source_67;
24136 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24137 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
24138 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24139 l_rec_acct_attrs.array_char_value(20) := p_source_60;
24140
24141 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24142 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24143
24144 ---------------------------------------------------------------------------------------------------------------
24145 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24146 ---------------------------------------------------------------------------------------------------------------
24147 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24148
24149 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24150 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24151
24152 IF xla_accounting_cache_pkg.GetValueChar
24153 (p_source_code => 'LEDGER_CATEGORY_CODE'
24154 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24155 AND l_bflow_method_code = 'PRIOR_ENTRY'
24156 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24157 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24161 xla_ae_lines_pkg.BflowUpgEntry
24158 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24159 )
24160 THEN
24162 (p_business_method_code => l_bflow_method_code
24163 ,p_business_class_code => l_bflow_class_code
24164 ,p_balance_type => l_balance_type_code);
24165 ELSE
24166 NULL;
24167 XLA_AE_LINES_PKG.business_flow_validation(
24168 p_business_method_code => l_bflow_method_code
24169 ,p_business_class_code => l_bflow_class_code
24170 ,p_inherit_description_flag => l_inherit_desc_flag);
24171 END IF;
24172
24173 --
24174 -- call analytical criteria
24175 --
24176
24177 --
24178 -- call description
24179 --
24180 -- No description or it is inherited.
24181 --
24182 -- call ADRs
24183 -- Bug 4922099
24184 --
24185 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24186 (NVL(l_actual_upg_option, 'N') = 'O') OR
24187 (NVL(l_enc_upg_option, 'N') = 'O')
24188 )
24189 THEN
24190 NULL;
24191 --
24192 --
24193
24194 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
24195 p_code_combination_id => TO_NUMBER(C_NUM)
24196 , p_value_type_code => NULL
24197 , p_transaction_coa_id => null
24198 , p_accounting_coa_id => null
24199 , p_adr_code => NULL
24200 , p_adr_type_code => NULL
24201 , p_component_type => l_component_type
24202 , p_component_code => l_component_code
24203 , p_component_type_code => l_component_type_code
24204 , p_component_appl_id => l_component_appl_id
24205 , p_amb_context_code => l_amb_context_code
24206 , p_side => NULL
24207 );
24208
24209
24210 -- initialise segments
24211 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24212 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24213 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24214 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24215 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24216 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24217 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24218 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24219 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24220 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24221 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24222 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24223 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24224 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24225 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24226 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24227 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24228 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24229 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24230 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24231 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24232 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24233 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24234 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24235 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24236 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24237 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24238 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24239 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24240 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24241 --
24242
24243 --
24244
24245
24246 l_segment := AcctDerRule_13(
24247 p_application_id => p_application_id
24248 , p_ae_header_id => l_ae_header_id
24249 , p_source_33 => p_source_33
24250 , x_transaction_coa_id => l_adr_transaction_coa_id
24251 , x_accounting_coa_id => l_adr_accounting_coa_id
24252 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24253 , x_flex_value_set_id => l_adr_flex_value_set_id
24254 , x_value_type_code => l_adr_value_type_code
24255 , x_value_combination_id => l_adr_value_combination_id
24256 , x_value_segment_code => l_adr_value_segment_code
24257 , p_side => 'NA'
24258 , p_override_seg_flag => 'Y'
24259 );
24260
24261 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24262
24266 , p_from_segment_code => l_adr_value_segment_code
24263 xla_ae_lines_pkg.set_segment(
24264 p_to_segment_code => 'GL_ACCOUNT'
24265 , p_segment_value => l_segment
24267 , p_from_combination_id => l_adr_value_combination_id
24268 , p_value_type_code => l_adr_value_type_code
24269 , p_transaction_coa_id => l_adr_transaction_coa_id
24270 , p_accounting_coa_id => l_adr_accounting_coa_id
24271 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24272 , p_flex_value_set_id => l_adr_flex_value_set_id
24273 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24274 , p_adr_type_code => 'S'
24275 , p_component_type => l_component_type
24276 , p_component_code => l_component_code
24277 , p_component_type_code => l_component_type_code
24278 , p_component_appl_id => l_component_appl_id
24279 , p_amb_context_code => l_amb_context_code
24280 , p_entity_code => 'AP_PAYMENTS'
24281 , p_event_class_code => 'FUTURE DATED PAYMENTS'
24282 , p_side => 'NA'
24283 );
24284
24285 END IF;
24286
24287 --
24288 --
24289 END IF;
24290 --
24291 -- Bug 4922099
24292 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24293 (NVL(l_enc_upg_option, 'N') = 'O')
24294 ) AND
24295 (l_bflow_method_code = 'PRIOR_ENTRY')
24296 )
24297 THEN
24298 IF
24299 --
24300 1 = 2
24301 --
24302 THEN
24303 xla_accounting_err_pkg.build_message
24304 (p_appli_s_name => 'XLA'
24305 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24306 ,p_token_1 => 'LINE_NUMBER'
24307 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24308 ,p_token_2 => 'LINE_TYPE_NAME'
24309 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24310 l_component_type
24311 ,l_component_code
24312 ,l_component_type_code
24313 ,l_component_appl_id
24314 ,l_amb_context_code
24315 ,l_entity_code
24316 ,l_event_class_code
24317 )
24318 ,p_token_3 => 'OWNER'
24319 ,p_value_3 => xla_lookups_pkg.get_meaning(
24320 p_lookup_type => 'XLA_OWNER_TYPE'
24321 ,p_lookup_code => l_component_type_code
24322 )
24323 ,p_token_4 => 'PRODUCT_NAME'
24324 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24325 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24326 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24327 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24328 ,p_ae_header_id => NULL
24329 );
24330
24331 IF (C_LEVEL_ERROR>= g_log_level) THEN
24332 trace
24333 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24334 ,p_level => C_LEVEL_ERROR
24335 ,p_module => l_log_module);
24336 END IF;
24337 END IF;
24338 END IF;
24339 --
24340 --
24341 ------------------------------------------------------------------------------------------------
24342 -- 4219869 Business Flow
24343 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24344 -- Prior Entry. Currently, the following code is always generated.
24345 ------------------------------------------------------------------------------------------------
24346 XLA_AE_LINES_PKG.ValidateCurrentLine;
24347
24348 ------------------------------------------------------------------------------------
24349 -- 4219869 Business Flow
24350 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24351 ------------------------------------------------------------------------------------
24352 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24353
24354 ----------------------------------------------------------------------------------
24355 -- 4219869 Business Flow
24356 -- Update journal entry status -- Need to generate this within IF <condition>
24360 ,p_balance_type_code => l_balance_type_code
24357 ----------------------------------------------------------------------------------
24358 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24359 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24361 );
24362
24363 -------------------------------------------------------------------------------------------
24364 -- 4262811 - Generate the Accrual Reversal lines
24365 -------------------------------------------------------------------------------------------
24366 BEGIN
24367 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24368 (g_array_event(p_event_id).array_value_num('header_index'));
24369 IF l_acc_rev_flag IS NULL THEN
24370 l_acc_rev_flag := 'N';
24371 END IF;
24372 EXCEPTION
24373 WHEN OTHERS THEN
24374 l_acc_rev_flag := 'N';
24375 END;
24376 --
24377 IF (l_acc_rev_flag = 'Y') THEN
24378
24379 -- 4645092 ------------------------------------------------------------------------------
24380 -- To allow MPA report to determine if it should generate report process
24381 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24382 ------------------------------------------------------------------------------------------
24383
24384 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24385 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24386 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24387 -- call ADRs
24388 -- Bug 4922099
24389 --
24390 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24391 (NVL(l_actual_upg_option, 'N') = 'O') OR
24392 (NVL(l_enc_upg_option, 'N') = 'O')
24393 )
24394 THEN
24395 NULL;
24396 --
24397 --
24398
24399 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
24400 p_code_combination_id => TO_NUMBER(C_NUM)
24401 , p_value_type_code => NULL
24402 , p_transaction_coa_id => null
24403 , p_accounting_coa_id => null
24404 , p_adr_code => NULL
24405 , p_adr_type_code => NULL
24406 , p_component_type => l_component_type
24407 , p_component_code => l_component_code
24408 , p_component_type_code => l_component_type_code
24409 , p_component_appl_id => l_component_appl_id
24410 , p_amb_context_code => l_amb_context_code
24411 , p_side => NULL
24412 );
24413
24414
24415 -- initialise segments
24416 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24417 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24418 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24419 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24420 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24421 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24422 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24423 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24424 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24425 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24426 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24427 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24428 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24429 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24430 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24431 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24432 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24433 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24434 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24435 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24436 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24437 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24438 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24439 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24440 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24441 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24442 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24443 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24444 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24445 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24446 --
24447
24448 --
24449
24450
24451 l_segment := AcctDerRule_13(
24452 p_application_id => p_application_id
24456 , x_accounting_coa_id => l_adr_accounting_coa_id
24453 , p_ae_header_id => l_ae_header_id
24454 , p_source_33 => p_source_33
24455 , x_transaction_coa_id => l_adr_transaction_coa_id
24457 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24458 , x_flex_value_set_id => l_adr_flex_value_set_id
24459 , x_value_type_code => l_adr_value_type_code
24460 , x_value_combination_id => l_adr_value_combination_id
24461 , x_value_segment_code => l_adr_value_segment_code
24462 , p_side => 'NA'
24463 , p_override_seg_flag => 'Y'
24464 );
24465
24466 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24467
24468 xla_ae_lines_pkg.set_segment(
24469 p_to_segment_code => 'GL_ACCOUNT'
24470 , p_segment_value => l_segment
24471 , p_from_segment_code => l_adr_value_segment_code
24472 , p_from_combination_id => l_adr_value_combination_id
24473 , p_value_type_code => l_adr_value_type_code
24474 , p_transaction_coa_id => l_adr_transaction_coa_id
24475 , p_accounting_coa_id => l_adr_accounting_coa_id
24476 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24477 , p_flex_value_set_id => l_adr_flex_value_set_id
24478 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24479 , p_adr_type_code => 'S'
24480 , p_component_type => l_component_type
24481 , p_component_code => l_component_code
24482 , p_component_type_code => l_component_type_code
24483 , p_component_appl_id => l_component_appl_id
24484 , p_amb_context_code => l_amb_context_code
24485 , p_entity_code => 'AP_PAYMENTS'
24486 , p_event_class_code => 'FUTURE DATED PAYMENTS'
24487 , p_side => 'NA'
24488 );
24489
24490 END IF;
24491
24492 --
24493 --
24494 END IF;
24495
24496 --
24497 -- Update the line information that should be overwritten
24498 --
24499 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24500 p_header_num => 1);
24501 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24502
24503 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24504
24505 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24506 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24507 END IF;
24508
24509 --
24510 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24511 --
24512 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24513 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24514 ELSE
24515 ---------------------------------------------------------------------------------------------------
24516 -- 4262811a Switch Sign
24517 ---------------------------------------------------------------------------------------------------
24518 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24519 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24520 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24521 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24522 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24523 -- 5132302
24524 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24525 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24526
24527 END IF;
24528
24529 -- 4955764
24530 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24531 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24532
24533
24534 XLA_AE_LINES_PKG.ValidateCurrentLine;
24535 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24536
24537 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24538 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24539 ,p_balance_type_code => l_balance_type_code);
24540
24541 END IF;
24542
24543 -----------------------------------------------------------------------------------------
24544 -- 4262811 Multiperiod Accounting
24545 -----------------------------------------------------------------------------------------
24546 -- No MPA option is assigned.
24547
24548
24549 END IF;
24550 END IF;
24551 --
24552
24553 --
24554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24555 trace
24556 (p_msg => 'END of AcctLineType_63'
24557 ,p_level => C_LEVEL_PROCEDURE
24558 ,p_module => l_log_module);
24559 END IF;
24560 --
24561 EXCEPTION
24562 WHEN xla_exceptions_pkg.application_exception THEN
24563 RAISE;
24567 END AcctLineType_63;
24564 WHEN OTHERS THEN
24565 xla_exceptions_pkg.raise_message
24566 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_63');
24568 --
24569
24570 ---------------------------------------
24571 --
24572 -- PRIVATE FUNCTION
24573 -- AcctLineType_64
24574 --
24575 ---------------------------------------
24576 PROCEDURE AcctLineType_64 (
24577 p_application_id IN NUMBER
24578 ,p_event_id IN NUMBER
24579 ,p_calculate_acctd_flag IN VARCHAR2
24580 ,p_calculate_g_l_flag IN VARCHAR2
24581 ,p_actual_flag IN OUT VARCHAR2
24582 ,p_balance_type_code OUT VARCHAR2
24583 ,p_gain_or_loss_ref OUT VARCHAR2
24584
24585 --Payment Currency Code
24586 , p_source_12 IN VARCHAR2
24587 --Automatic Offsets Value
24588 , p_source_16 IN VARCHAR2
24589 , p_source_16_meaning IN VARCHAR2
24590 --Bank Cash Clearing Account
24591 , p_source_33 IN NUMBER
24592 --When to Account for Payment Option
24593 , p_source_50 IN VARCHAR2
24594 --Payment Distribution Type
24595 , p_source_51 IN VARCHAR2
24596 , p_source_51_meaning IN VARCHAR2
24597 --Accounting Reversal Indicator
24598 , p_source_52 IN VARCHAR2
24599 --Payment Distribution Amount
24600 , p_source_53 IN NUMBER
24601 --Business Flow Accounts Payable Application Identifier
24602 , p_source_54 IN NUMBER
24603 --Business Flow Payment Distribution Type
24604 , p_source_55 IN VARCHAR2
24605 --Business Flow Payment Entity Code
24606 , p_source_56 IN VARCHAR2
24607 --Business Flow Payment Distribution Identifier
24608 , p_source_57 IN NUMBER
24609 --Business Flow Payment Identifier
24610 , p_source_58 IN NUMBER
24611 --Payment Distribution Identifier
24612 , p_source_59 IN NUMBER
24613 --Distribution Link Type
24614 , p_source_60 IN VARCHAR2
24615 --Override Accounted Amount Indicator
24616 , p_source_64 IN VARCHAR2
24617 , p_source_64_meaning IN VARCHAR2
24618 --Payment Supplier Identifier
24619 , p_source_65 IN NUMBER
24620 --Payment Supplier Site Identifier
24621 , p_source_66 IN NUMBER
24622 --Third Party Type
24623 , p_source_67 IN VARCHAR2
24624 --Payment Distribution Reversed Identifier
24625 , p_source_68 IN NUMBER
24626 --Pooled Bank Account Option
24627 , p_source_117 IN VARCHAR2
24628 , p_source_117_meaning IN VARCHAR2
24629 --Payment Maturity Date
24630 , p_source_118 IN DATE
24631 --Payment Exchange Date
24632 , p_source_121 IN DATE
24633 --Payment Exchange Rate
24634 , p_source_122 IN NUMBER
24635 --Payment Exchange Rate Type
24636 , p_source_123 IN VARCHAR2
24637 --Payment Distribution (Matured Rate) Ledger Amount
24638 , p_source_124 IN NUMBER
24639 )
24640 IS
24641
24642 l_component_type VARCHAR2(80);
24643 l_component_code VARCHAR2(30);
24644 l_component_type_code VARCHAR2(1);
24645 l_component_appl_id INTEGER;
24646 l_amb_context_code VARCHAR2(30);
24647 l_entity_code VARCHAR2(30);
24648 l_event_class_code VARCHAR2(30);
24649 l_ae_header_id NUMBER;
24650 l_event_type_code VARCHAR2(30);
24651 l_line_definition_code VARCHAR2(30);
24652 l_line_definition_owner_code VARCHAR2(1);
24653 --
24654 -- adr variables
24655 l_segment VARCHAR2(30);
24656 l_ccid NUMBER;
24657 l_adr_transaction_coa_id NUMBER;
24658 l_adr_accounting_coa_id NUMBER;
24659 l_adr_flexfield_segment_code VARCHAR2(30);
24660 l_adr_flex_value_set_id NUMBER;
24661 l_adr_value_type_code VARCHAR2(30);
24662 l_adr_value_combination_id NUMBER;
24663 l_adr_value_segment_code VARCHAR2(30);
24664
24665 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24666 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24667 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24668 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24669
24670 -- 4262811 Variables ------------------------------------------------------------------------------------------
24671 l_entered_amt_idx NUMBER;
24672 l_accted_amt_idx NUMBER;
24673 l_acc_rev_flag VARCHAR2(1);
24674 l_accrual_line_num NUMBER;
24675 l_tmp_amt NUMBER;
24676 l_acc_rev_natural_side_code VARCHAR2(1);
24677
24678 l_num_entries NUMBER;
24679 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24680 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24681 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24682 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24683 l_recog_line_1 NUMBER;
24684 l_recog_line_2 NUMBER;
24685
24686 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24687 l_bflow_applied_to_amt NUMBER; -- 5132302
24688 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24689
24690 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24691
24692 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24696
24693 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24694
24695 ---------------------------------------------------------------------------------------------------------------
24697
24698 --
24699 -- bulk performance
24700 --
24701 l_balance_type_code VARCHAR2(1);
24702 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24703 l_log_module VARCHAR2(240);
24704
24705 --
24706 -- Upgrade strategy
24707 --
24708 l_actual_upg_option VARCHAR2(1);
24709 l_enc_upg_option VARCHAR2(1);
24710
24711 --
24712 BEGIN
24713 --
24714 IF g_log_enabled THEN
24715 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
24716 END IF;
24717 --
24718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24719
24720 trace
24721 (p_msg => 'BEGIN of AcctLineType_64'
24722 ,p_level => C_LEVEL_PROCEDURE
24723 ,p_module => l_log_module);
24724
24725 END IF;
24726 --
24727 l_component_type := 'AMB_JLT';
24728 l_component_code := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
24729 l_component_type_code := 'S';
24730 l_component_appl_id := 200;
24731 l_amb_context_code := 'DEFAULT';
24732 l_entity_code := 'AP_PAYMENTS';
24733 l_event_class_code := 'FUTURE DATED PAYMENTS';
24734 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
24735 l_line_definition_owner_code := 'S';
24736 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
24737 --
24738 l_balance_type_code := 'A';
24739 l_segment := NULL;
24740 l_ccid := NULL;
24741 l_adr_transaction_coa_id := NULL;
24742 l_adr_accounting_coa_id := NULL;
24743 l_adr_flexfield_segment_code := NULL;
24744 l_adr_flex_value_set_id := NULL;
24745 l_adr_value_type_code := NULL;
24746 l_adr_value_combination_id := NULL;
24747 l_adr_value_segment_code := NULL;
24748
24749 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
24750 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
24751 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24752 l_budgetary_control_flag := 'N';
24753
24754 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24755 l_bflow_applied_to_amt := NULL; -- 5132302
24756 l_entered_amt_idx := NULL; -- 4262811
24757 l_accted_amt_idx := NULL; -- 4262811
24758 l_acc_rev_flag := NULL; -- 4262811
24759 l_accrual_line_num := NULL; -- 4262811
24760 l_tmp_amt := NULL; -- 4262811
24761 --
24762
24763 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24764 l_balance_type_code <> 'B' THEN
24765 IF (NVL(p_source_50,'
24766 ') = 'ALWAYS_ALWAYS' OR
24767 NVL(p_source_50,'
24768 ') = 'ALWAYS_CLEAR' OR
24769 NVL(p_source_50,'
24770 ') = 'ALWAYS_ISSUE') AND
24771 (NVL(p_source_117,'
24772 ') = 'Y' AND
24773 NVL(p_source_16,'
24774 ') = 'BALANCING_SEGMENT') AND
24775 p_source_118 IS NOT NULL AND
24776 NVL(p_source_51,'
24777 ') = 'CASH'
24778 THEN
24779
24780 --
24781 XLA_AE_LINES_PKG.SetNewLine;
24782
24783 p_balance_type_code := l_balance_type_code;
24784 -- set the flag so later we will know whether the gain loss line needs to be created
24785
24786 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24787 p_actual_flag :='A';
24788 END IF;
24789
24790 --
24791 -- bulk performance
24792 --
24793 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24794 p_header_num => 0); -- 4262811
24795 --
24796 -- set accounting line options
24797 --
24798 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24799 p_natural_side_code => 'C'
24800 , p_gain_or_loss_flag => 'N'
24801 , p_gl_transfer_mode_code => 'S'
24802 , p_acct_entry_type_code => 'A'
24803 , p_switch_side_flag => 'Y'
24804 , p_merge_duplicate_code => 'A'
24805 );
24806 --
24807 l_acc_rev_natural_side_code := 'D'; -- 4262811
24808 --
24809 --
24810 -- set accounting line type info
24811 --
24812 xla_ae_lines_pkg.SetAcctLineType
24813 (p_component_type => l_component_type
24814 ,p_event_type_code => l_event_type_code
24815 ,p_line_definition_owner_code => l_line_definition_owner_code
24816 ,p_line_definition_code => l_line_definition_code
24817 ,p_accounting_line_code => l_component_code
24818 ,p_accounting_line_type_code => l_component_type_code
24819 ,p_accounting_line_appl_id => l_component_appl_id
24820 ,p_amb_context_code => l_amb_context_code
24821 ,p_entity_code => l_entity_code
24822 ,p_event_class_code => l_event_class_code);
24823 --
24824 -- set accounting class
24825 --
24826 xla_ae_lines_pkg.SetAcctClass(
24827 p_accounting_class_code => 'CASH_CLEARING'
24828 , p_ae_header_id => l_ae_header_id
24829 );
24830
24831 --
24835 'CASH_CLEARING';
24832 -- set rounding class
24833 --
24834 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24836
24837 --
24838 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24839 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24840 --
24841 -- bulk performance
24842 --
24843 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24844
24845 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24846 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24847
24848 -- 4955764
24849 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24850 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24851
24852 -- 4458381 Public Sector Enh
24853
24854 --
24855 -- set accounting attributes for the line type
24856 --
24857 l_entered_amt_idx := 9;
24858 l_accted_amt_idx := 14;
24859 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24860 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24861 l_rec_acct_attrs.array_char_value(1) := p_source_52;
24862 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24863 l_rec_acct_attrs.array_num_value(2) := p_source_54;
24864 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24865 l_rec_acct_attrs.array_char_value(3) := p_source_55;
24866 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24867 l_rec_acct_attrs.array_char_value(4) := p_source_56;
24868 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24869 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
24870 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24871 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
24872 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24873 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
24874 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24875 l_rec_acct_attrs.array_char_value(8) := p_source_60;
24876 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24877 l_rec_acct_attrs.array_num_value(9) := p_source_53;
24878 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24879 l_rec_acct_attrs.array_char_value(10) := p_source_12;
24880 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24881 l_rec_acct_attrs.array_date_value(11) := p_source_121;
24882 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24883 l_rec_acct_attrs.array_num_value(12) := p_source_122;
24884 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24885 l_rec_acct_attrs.array_char_value(13) := p_source_123;
24886 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24887 l_rec_acct_attrs.array_num_value(14) := p_source_124;
24888 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24889 l_rec_acct_attrs.array_char_value(15) := p_source_64;
24890 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24891 l_rec_acct_attrs.array_num_value(16) := p_source_65;
24892 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24893 l_rec_acct_attrs.array_num_value(17) := p_source_66;
24894 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24895 l_rec_acct_attrs.array_char_value(18) := p_source_67;
24896 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24897 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
24898 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24899 l_rec_acct_attrs.array_char_value(20) := p_source_60;
24900
24901 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24902 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24903
24904 ---------------------------------------------------------------------------------------------------------------
24905 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24906 ---------------------------------------------------------------------------------------------------------------
24907 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24908
24909 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24910 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24911
24912 IF xla_accounting_cache_pkg.GetValueChar
24913 (p_source_code => 'LEDGER_CATEGORY_CODE'
24914 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24915 AND l_bflow_method_code = 'PRIOR_ENTRY'
24916 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24917 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24918 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24919 )
24920 THEN
24921 xla_ae_lines_pkg.BflowUpgEntry
24922 (p_business_method_code => l_bflow_method_code
24923 ,p_business_class_code => l_bflow_class_code
24924 ,p_balance_type => l_balance_type_code);
24928 p_business_method_code => l_bflow_method_code
24925 ELSE
24926 NULL;
24927 XLA_AE_LINES_PKG.business_flow_validation(
24929 ,p_business_class_code => l_bflow_class_code
24930 ,p_inherit_description_flag => l_inherit_desc_flag);
24931 END IF;
24932
24933 --
24934 -- call analytical criteria
24935 --
24936
24937 --
24938 -- call description
24939 --
24940 -- No description or it is inherited.
24941 --
24942 -- call ADRs
24943 -- Bug 4922099
24944 --
24945 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24946 (NVL(l_actual_upg_option, 'N') = 'O') OR
24947 (NVL(l_enc_upg_option, 'N') = 'O')
24948 )
24949 THEN
24950 NULL;
24951 --
24952 --
24953
24954 l_ccid := AcctDerRule_30(
24955 p_application_id => p_application_id
24956 , p_ae_header_id => l_ae_header_id
24957 , p_source_33 => p_source_33
24958 , x_transaction_coa_id => l_adr_transaction_coa_id
24959 , x_accounting_coa_id => l_adr_accounting_coa_id
24960 , x_value_type_code => l_adr_value_type_code
24961 , p_side => 'NA'
24962 );
24963
24964 xla_ae_lines_pkg.set_ccid(
24965 p_code_combination_id => l_ccid
24966 , p_value_type_code => l_adr_value_type_code
24967 , p_transaction_coa_id => l_adr_transaction_coa_id
24968 , p_accounting_coa_id => l_adr_accounting_coa_id
24969 , p_adr_code => 'AP_PMT_CASH_CLEAR'
24970 , p_adr_type_code => 'S'
24971 , p_component_type => l_component_type
24972 , p_component_code => l_component_code
24973 , p_component_type_code => l_component_type_code
24974 , p_component_appl_id => l_component_appl_id
24975 , p_amb_context_code => l_amb_context_code
24976 , p_side => 'NA'
24977 );
24978
24979
24980 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
24981 p_to_segment_code => 'GL_BALANCING'
24982 , p_segment_value => C_CHAR
24983 , p_from_segment_code => NULL
24984 , p_from_combination_id => NULL
24985 , p_value_type_code => NULL
24986 , p_transaction_coa_id => null
24987 , p_accounting_coa_id => null
24988 , p_flexfield_segment_code => NULL
24989 , p_flex_value_set_id => NULL
24990 , p_adr_code => NULL
24991 , p_adr_type_code => NULL
24992 , p_component_type => l_component_type
24993 , p_component_code => l_component_code
24994 , p_component_type_code => l_component_type_code
24995 , p_component_appl_id => l_component_appl_id
24996 , p_amb_context_code => l_amb_context_code
24997 , p_entity_code => 'AP_PAYMENTS'
24998 , p_event_class_code => 'FUTURE DATED PAYMENTS'
24999 , p_side => 'NA'
25000 );
25001 --
25002
25003
25004 --
25005 --
25006 END IF;
25007 --
25008 -- Bug 4922099
25009 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25010 (NVL(l_enc_upg_option, 'N') = 'O')
25011 ) AND
25012 (l_bflow_method_code = 'PRIOR_ENTRY')
25013 )
25014 THEN
25015 IF
25016 --
25017 1 = 2
25018 --
25019 THEN
25020 xla_accounting_err_pkg.build_message
25021 (p_appli_s_name => 'XLA'
25022 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25023 ,p_token_1 => 'LINE_NUMBER'
25024 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25025 ,p_token_2 => 'LINE_TYPE_NAME'
25026 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25027 l_component_type
25028 ,l_component_code
25029 ,l_component_type_code
25030 ,l_component_appl_id
25031 ,l_amb_context_code
25032 ,l_entity_code
25033 ,l_event_class_code
25034 )
25035 ,p_token_3 => 'OWNER'
25036 ,p_value_3 => xla_lookups_pkg.get_meaning(
25037 p_lookup_type => 'XLA_OWNER_TYPE'
25038 ,p_lookup_code => l_component_type_code
25039 )
25040 ,p_token_4 => 'PRODUCT_NAME'
25044 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25041 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25042 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25043 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25045 ,p_ae_header_id => NULL
25046 );
25047
25048 IF (C_LEVEL_ERROR>= g_log_level) THEN
25049 trace
25050 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25051 ,p_level => C_LEVEL_ERROR
25052 ,p_module => l_log_module);
25053 END IF;
25054 END IF;
25055 END IF;
25056 --
25057 --
25058 ------------------------------------------------------------------------------------------------
25059 -- 4219869 Business Flow
25060 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25061 -- Prior Entry. Currently, the following code is always generated.
25062 ------------------------------------------------------------------------------------------------
25063 XLA_AE_LINES_PKG.ValidateCurrentLine;
25064
25065 ------------------------------------------------------------------------------------
25066 -- 4219869 Business Flow
25067 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25068 ------------------------------------------------------------------------------------
25069 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25070
25071 ----------------------------------------------------------------------------------
25072 -- 4219869 Business Flow
25073 -- Update journal entry status -- Need to generate this within IF <condition>
25074 ----------------------------------------------------------------------------------
25075 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25076 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25077 ,p_balance_type_code => l_balance_type_code
25078 );
25079
25080 -------------------------------------------------------------------------------------------
25081 -- 4262811 - Generate the Accrual Reversal lines
25082 -------------------------------------------------------------------------------------------
25083 BEGIN
25084 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25085 (g_array_event(p_event_id).array_value_num('header_index'));
25086 IF l_acc_rev_flag IS NULL THEN
25087 l_acc_rev_flag := 'N';
25088 END IF;
25089 EXCEPTION
25090 WHEN OTHERS THEN
25091 l_acc_rev_flag := 'N';
25092 END;
25093 --
25094 IF (l_acc_rev_flag = 'Y') THEN
25095
25096 -- 4645092 ------------------------------------------------------------------------------
25097 -- To allow MPA report to determine if it should generate report process
25098 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25099 ------------------------------------------------------------------------------------------
25100
25101 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25102 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25103 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25104 -- call ADRs
25105 -- Bug 4922099
25106 --
25107 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25108 (NVL(l_actual_upg_option, 'N') = 'O') OR
25109 (NVL(l_enc_upg_option, 'N') = 'O')
25110 )
25111 THEN
25112 NULL;
25113 --
25114 --
25115
25116 l_ccid := AcctDerRule_30(
25117 p_application_id => p_application_id
25118 , p_ae_header_id => l_ae_header_id
25119 , p_source_33 => p_source_33
25120 , x_transaction_coa_id => l_adr_transaction_coa_id
25121 , x_accounting_coa_id => l_adr_accounting_coa_id
25122 , x_value_type_code => l_adr_value_type_code
25123 , p_side => 'NA'
25124 );
25125
25126 xla_ae_lines_pkg.set_ccid(
25127 p_code_combination_id => l_ccid
25128 , p_value_type_code => l_adr_value_type_code
25129 , p_transaction_coa_id => l_adr_transaction_coa_id
25130 , p_accounting_coa_id => l_adr_accounting_coa_id
25131 , p_adr_code => 'AP_PMT_CASH_CLEAR'
25132 , p_adr_type_code => 'S'
25133 , p_component_type => l_component_type
25134 , p_component_code => l_component_code
25135 , p_component_type_code => l_component_type_code
25136 , p_component_appl_id => l_component_appl_id
25137 , p_amb_context_code => l_amb_context_code
25138 , p_side => 'NA'
25139 );
25140
25141
25142 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
25143 p_to_segment_code => 'GL_BALANCING'
25144 , p_segment_value => C_CHAR
25145 , p_from_segment_code => NULL
25146 , p_from_combination_id => NULL
25147 , p_value_type_code => NULL
25148 , p_transaction_coa_id => null
25152 , p_adr_code => NULL
25149 , p_accounting_coa_id => null
25150 , p_flexfield_segment_code => NULL
25151 , p_flex_value_set_id => NULL
25153 , p_adr_type_code => NULL
25154 , p_component_type => l_component_type
25155 , p_component_code => l_component_code
25156 , p_component_type_code => l_component_type_code
25157 , p_component_appl_id => l_component_appl_id
25158 , p_amb_context_code => l_amb_context_code
25159 , p_entity_code => 'AP_PAYMENTS'
25160 , p_event_class_code => 'FUTURE DATED PAYMENTS'
25161 , p_side => 'NA'
25162 );
25163 --
25164
25165
25166 --
25167 --
25168 END IF;
25169
25170 --
25171 -- Update the line information that should be overwritten
25172 --
25173 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25174 p_header_num => 1);
25175 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25176
25177 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25178
25179 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25180 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25181 END IF;
25182
25183 --
25184 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25185 --
25186 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25187 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25188 ELSE
25189 ---------------------------------------------------------------------------------------------------
25190 -- 4262811a Switch Sign
25191 ---------------------------------------------------------------------------------------------------
25192 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25193 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25194 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25195 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25196 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25197 -- 5132302
25198 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25199 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25200
25201 END IF;
25202
25203 -- 4955764
25204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25206
25207
25208 XLA_AE_LINES_PKG.ValidateCurrentLine;
25209 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25210
25211 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25212 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25213 ,p_balance_type_code => l_balance_type_code);
25214
25215 END IF;
25216
25217 -----------------------------------------------------------------------------------------
25218 -- 4262811 Multiperiod Accounting
25219 -----------------------------------------------------------------------------------------
25220 -- No MPA option is assigned.
25221
25222
25223 END IF;
25224 END IF;
25225 --
25226
25227 --
25228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25229 trace
25230 (p_msg => 'END of AcctLineType_64'
25231 ,p_level => C_LEVEL_PROCEDURE
25232 ,p_module => l_log_module);
25233 END IF;
25234 --
25235 EXCEPTION
25236 WHEN xla_exceptions_pkg.application_exception THEN
25237 RAISE;
25238 WHEN OTHERS THEN
25239 xla_exceptions_pkg.raise_message
25240 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_64');
25241 END AcctLineType_64;
25242 --
25243
25244 ---------------------------------------
25245 --
25246 -- PRIVATE FUNCTION
25247 -- AcctLineType_65
25248 --
25249 ---------------------------------------
25250 PROCEDURE AcctLineType_65 (
25251 p_application_id IN NUMBER
25252 ,p_event_id IN NUMBER
25253 ,p_calculate_acctd_flag IN VARCHAR2
25254 ,p_calculate_g_l_flag IN VARCHAR2
25255 ,p_actual_flag IN OUT VARCHAR2
25256 ,p_balance_type_code OUT VARCHAR2
25257 ,p_gain_or_loss_ref OUT VARCHAR2
25258
25259 --Payment Currency Code
25260 , p_source_12 IN VARCHAR2
25261 --Payment Distribution (Payment Rate) Ledger Amount
25262 , p_source_21 IN NUMBER
25263 --Bank Cash Clearing Account
25264 , p_source_33 IN NUMBER
25265 --Automatic Offsets Flag
25266 , p_source_42 IN VARCHAR2
25267 , p_source_42_meaning IN VARCHAR2
25268 --When to Account for Payment Option
25269 , p_source_50 IN VARCHAR2
25270 --Payment Distribution Type
25271 , p_source_51 IN VARCHAR2
25272 , p_source_51_meaning IN VARCHAR2
25273 --Accounting Reversal Indicator
25274 , p_source_52 IN VARCHAR2
25278 , p_source_54 IN NUMBER
25275 --Payment Distribution Amount
25276 , p_source_53 IN NUMBER
25277 --Business Flow Accounts Payable Application Identifier
25279 --Payment Distribution Identifier
25280 , p_source_59 IN NUMBER
25281 --Distribution Link Type
25282 , p_source_60 IN VARCHAR2
25283 --Override Accounted Amount Indicator
25284 , p_source_64 IN VARCHAR2
25285 , p_source_64_meaning IN VARCHAR2
25286 --Payment Supplier Identifier
25287 , p_source_65 IN NUMBER
25288 --Payment Supplier Site Identifier
25289 , p_source_66 IN NUMBER
25290 --Third Party Type
25291 , p_source_67 IN VARCHAR2
25292 --Payment Distribution Reversed Identifier
25293 , p_source_68 IN NUMBER
25294 --Invoice Distribution Tax Line Identifier
25295 , p_source_69 IN NUMBER
25296 --Invoice Distribution Summary Tax Line Identifier
25297 , p_source_70 IN NUMBER
25298 --Payment Type
25299 , p_source_71 IN VARCHAR2
25300 , p_source_71_meaning IN VARCHAR2
25301 --Business Flow Invoice Distribution Type
25302 , p_source_73 IN VARCHAR2
25303 --Business Flow Invoice Entity Code
25304 , p_source_74 IN VARCHAR2
25305 --Business Flow Invoice Distribution Identifier
25306 , p_source_75 IN NUMBER
25307 --Business Flow Invoice Identifier
25308 , p_source_76 IN NUMBER
25309 --Invoice Distribution Tax Distribution Identifier from Tax
25310 , p_source_77 IN NUMBER
25311 --Pooled Bank Account Option
25312 , p_source_117 IN VARCHAR2
25313 , p_source_117_meaning IN VARCHAR2
25314 --Payment Maturity Date
25315 , p_source_118 IN DATE
25316 --Payment Exchange Date
25317 , p_source_121 IN DATE
25318 --Payment Exchange Rate
25319 , p_source_122 IN NUMBER
25320 --Payment Exchange Rate Type
25321 , p_source_123 IN VARCHAR2
25322 )
25323 IS
25324
25325 l_component_type VARCHAR2(80);
25326 l_component_code VARCHAR2(30);
25327 l_component_type_code VARCHAR2(1);
25328 l_component_appl_id INTEGER;
25329 l_amb_context_code VARCHAR2(30);
25330 l_entity_code VARCHAR2(30);
25331 l_event_class_code VARCHAR2(30);
25332 l_ae_header_id NUMBER;
25333 l_event_type_code VARCHAR2(30);
25334 l_line_definition_code VARCHAR2(30);
25335 l_line_definition_owner_code VARCHAR2(1);
25336 --
25337 -- adr variables
25338 l_segment VARCHAR2(30);
25339 l_ccid NUMBER;
25340 l_adr_transaction_coa_id NUMBER;
25341 l_adr_accounting_coa_id NUMBER;
25342 l_adr_flexfield_segment_code VARCHAR2(30);
25343 l_adr_flex_value_set_id NUMBER;
25344 l_adr_value_type_code VARCHAR2(30);
25345 l_adr_value_combination_id NUMBER;
25346 l_adr_value_segment_code VARCHAR2(30);
25347
25348 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25349 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25350 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25351 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25352
25353 -- 4262811 Variables ------------------------------------------------------------------------------------------
25354 l_entered_amt_idx NUMBER;
25355 l_accted_amt_idx NUMBER;
25356 l_acc_rev_flag VARCHAR2(1);
25357 l_accrual_line_num NUMBER;
25358 l_tmp_amt NUMBER;
25359 l_acc_rev_natural_side_code VARCHAR2(1);
25360
25361 l_num_entries NUMBER;
25362 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25363 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25364 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25365 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25366 l_recog_line_1 NUMBER;
25367 l_recog_line_2 NUMBER;
25368
25369 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25370 l_bflow_applied_to_amt NUMBER; -- 5132302
25371 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25372
25373 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25374
25375 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25376 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25377
25378 ---------------------------------------------------------------------------------------------------------------
25379
25380
25381 --
25382 -- bulk performance
25383 --
25384 l_balance_type_code VARCHAR2(1);
25385 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25386 l_log_module VARCHAR2(240);
25387
25388 --
25389 -- Upgrade strategy
25390 --
25391 l_actual_upg_option VARCHAR2(1);
25392 l_enc_upg_option VARCHAR2(1);
25393
25394 --
25395 BEGIN
25396 --
25397 IF g_log_enabled THEN
25398 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
25399 END IF;
25400 --
25401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25402
25403 trace
25404 (p_msg => 'BEGIN of AcctLineType_65'
25405 ,p_level => C_LEVEL_PROCEDURE
25409 --
25406 ,p_module => l_log_module);
25407
25408 END IF;
25410 l_component_type := 'AMB_JLT';
25411 l_component_code := 'AP_CASH_CLEAR_REF';
25412 l_component_type_code := 'S';
25413 l_component_appl_id := 200;
25414 l_amb_context_code := 'DEFAULT';
25415 l_entity_code := 'AP_PAYMENTS';
25416 l_event_class_code := 'REFUNDS';
25417 l_event_type_code := 'REFUNDS_ALL';
25418 l_line_definition_owner_code := 'S';
25419 l_line_definition_code := 'CASH_REFUNDS_ALL';
25420 --
25421 l_balance_type_code := 'A';
25422 l_segment := NULL;
25423 l_ccid := NULL;
25424 l_adr_transaction_coa_id := NULL;
25425 l_adr_accounting_coa_id := NULL;
25426 l_adr_flexfield_segment_code := NULL;
25427 l_adr_flex_value_set_id := NULL;
25428 l_adr_value_type_code := NULL;
25429 l_adr_value_combination_id := NULL;
25430 l_adr_value_segment_code := NULL;
25431
25432 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25433 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
25434 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25435 l_budgetary_control_flag := 'N';
25436
25437 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25438 l_bflow_applied_to_amt := NULL; -- 5132302
25439 l_entered_amt_idx := NULL; -- 4262811
25440 l_accted_amt_idx := NULL; -- 4262811
25441 l_acc_rev_flag := NULL; -- 4262811
25442 l_accrual_line_num := NULL; -- 4262811
25443 l_tmp_amt := NULL; -- 4262811
25444 --
25445
25446 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25447 l_balance_type_code <> 'B' THEN
25448 IF NVL(p_source_50,'
25449 ') = 'ALWAYS_ALWAYS' AND
25450 (NVL(p_source_42,'
25451 ') <> 'Y' OR
25452 NVL(p_source_42,'
25453 ') = 'Y' AND
25454 NVL(p_source_117,'
25455 ') <> 'Y') AND
25456 p_source_118 IS NULL AND
25457 NVL(p_source_51,'
25458 ') = 'CASH' AND
25459 NVL(p_source_71,'
25460 ') = 'R'
25461 THEN
25462
25463 --
25464 XLA_AE_LINES_PKG.SetNewLine;
25465
25466 p_balance_type_code := l_balance_type_code;
25467 -- set the flag so later we will know whether the gain loss line needs to be created
25468
25469 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25470 p_actual_flag :='A';
25471 END IF;
25472
25473 --
25474 -- bulk performance
25475 --
25476 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25477 p_header_num => 0); -- 4262811
25478 --
25479 -- set accounting line options
25480 --
25481 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25482 p_natural_side_code => 'C'
25483 , p_gain_or_loss_flag => 'N'
25484 , p_gl_transfer_mode_code => 'S'
25485 , p_acct_entry_type_code => 'A'
25486 , p_switch_side_flag => 'Y'
25487 , p_merge_duplicate_code => 'A'
25488 );
25489 --
25490 l_acc_rev_natural_side_code := 'D'; -- 4262811
25491 --
25492 --
25493 -- set accounting line type info
25494 --
25495 xla_ae_lines_pkg.SetAcctLineType
25496 (p_component_type => l_component_type
25497 ,p_event_type_code => l_event_type_code
25498 ,p_line_definition_owner_code => l_line_definition_owner_code
25499 ,p_line_definition_code => l_line_definition_code
25500 ,p_accounting_line_code => l_component_code
25501 ,p_accounting_line_type_code => l_component_type_code
25502 ,p_accounting_line_appl_id => l_component_appl_id
25503 ,p_amb_context_code => l_amb_context_code
25504 ,p_entity_code => l_entity_code
25505 ,p_event_class_code => l_event_class_code);
25506 --
25507 -- set accounting class
25508 --
25509 xla_ae_lines_pkg.SetAcctClass(
25510 p_accounting_class_code => 'CASH_CLEARING'
25511 , p_ae_header_id => l_ae_header_id
25512 );
25513
25514 --
25515 -- set rounding class
25516 --
25517 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25518 'CASH_CLEARING';
25519
25520 --
25521 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25522 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25523 --
25524 -- bulk performance
25525 --
25526 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25527
25528 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25529 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25530
25531 -- 4955764
25532 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25533 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25534
25535 -- 4458381 Public Sector Enh
25536
25537 --
25541 l_accted_amt_idx := 14;
25538 -- set accounting attributes for the line type
25539 --
25540 l_entered_amt_idx := 9;
25542 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25543 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25544 l_rec_acct_attrs.array_char_value(1) := p_source_52;
25545 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25546 l_rec_acct_attrs.array_num_value(2) := p_source_54;
25547 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25548 l_rec_acct_attrs.array_char_value(3) := p_source_73;
25549 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25550 l_rec_acct_attrs.array_char_value(4) := p_source_74;
25551 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25552 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
25553 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25554 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
25555 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
25556 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
25557 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
25558 l_rec_acct_attrs.array_char_value(8) := p_source_60;
25559 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
25560 l_rec_acct_attrs.array_num_value(9) := p_source_53;
25561 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
25562 l_rec_acct_attrs.array_char_value(10) := p_source_12;
25563 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
25564 l_rec_acct_attrs.array_date_value(11) := p_source_121;
25565 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
25566 l_rec_acct_attrs.array_num_value(12) := p_source_122;
25567 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
25568 l_rec_acct_attrs.array_char_value(13) := p_source_123;
25569 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
25570 l_rec_acct_attrs.array_num_value(14) := p_source_21;
25571 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
25572 l_rec_acct_attrs.array_char_value(15) := p_source_64;
25573 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
25574 l_rec_acct_attrs.array_num_value(16) := p_source_65;
25575 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
25576 l_rec_acct_attrs.array_num_value(17) := p_source_66;
25577 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
25578 l_rec_acct_attrs.array_char_value(18) := p_source_67;
25579 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
25580 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
25581 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
25582 l_rec_acct_attrs.array_char_value(20) := p_source_60;
25583 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
25584 l_rec_acct_attrs.array_num_value(21) := p_source_69;
25585 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
25586 l_rec_acct_attrs.array_num_value(22) := p_source_77;
25587 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
25588 l_rec_acct_attrs.array_num_value(23) := p_source_70;
25589
25590 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25591 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25592
25593 ---------------------------------------------------------------------------------------------------------------
25594 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25595 ---------------------------------------------------------------------------------------------------------------
25596 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25597
25598 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25599 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25600
25601 IF xla_accounting_cache_pkg.GetValueChar
25602 (p_source_code => 'LEDGER_CATEGORY_CODE'
25603 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25604 AND l_bflow_method_code = 'PRIOR_ENTRY'
25605 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25606 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25607 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25608 )
25609 THEN
25610 xla_ae_lines_pkg.BflowUpgEntry
25611 (p_business_method_code => l_bflow_method_code
25612 ,p_business_class_code => l_bflow_class_code
25613 ,p_balance_type => l_balance_type_code);
25614 ELSE
25615 NULL;
25616 -- No business flow processing for business flow method of NONE.
25617 END IF;
25618
25619 --
25620 -- call analytical criteria
25621 --
25622
25623 --
25624 -- call description
25625 --
25626 -- No description or it is inherited.
25627 --
25628 -- call ADRs
25629 -- Bug 4922099
25630 --
25631 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25632 (NVL(l_actual_upg_option, 'N') = 'O') OR
25633 (NVL(l_enc_upg_option, 'N') = 'O')
25634 )
25635 THEN
25636 NULL;
25637 --
25638 --
25639
25643 , p_source_33 => p_source_33
25640 l_ccid := AcctDerRule_30(
25641 p_application_id => p_application_id
25642 , p_ae_header_id => l_ae_header_id
25644 , x_transaction_coa_id => l_adr_transaction_coa_id
25645 , x_accounting_coa_id => l_adr_accounting_coa_id
25646 , x_value_type_code => l_adr_value_type_code
25647 , p_side => 'NA'
25648 );
25649
25650 xla_ae_lines_pkg.set_ccid(
25651 p_code_combination_id => l_ccid
25652 , p_value_type_code => l_adr_value_type_code
25653 , p_transaction_coa_id => l_adr_transaction_coa_id
25654 , p_accounting_coa_id => l_adr_accounting_coa_id
25655 , p_adr_code => 'AP_PMT_CASH_CLEAR'
25656 , p_adr_type_code => 'S'
25657 , p_component_type => l_component_type
25658 , p_component_code => l_component_code
25659 , p_component_type_code => l_component_type_code
25660 , p_component_appl_id => l_component_appl_id
25661 , p_amb_context_code => l_amb_context_code
25662 , p_side => 'NA'
25663 );
25664
25665
25666 --
25667 --
25668 END IF;
25669 --
25670 -- Bug 4922099
25671 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25672 (NVL(l_enc_upg_option, 'N') = 'O')
25673 ) AND
25674 (l_bflow_method_code = 'PRIOR_ENTRY')
25675 )
25676 THEN
25677 IF
25678 --
25679 1 = 2
25680 --
25681 THEN
25682 xla_accounting_err_pkg.build_message
25683 (p_appli_s_name => 'XLA'
25684 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25685 ,p_token_1 => 'LINE_NUMBER'
25686 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25687 ,p_token_2 => 'LINE_TYPE_NAME'
25688 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25689 l_component_type
25690 ,l_component_code
25691 ,l_component_type_code
25692 ,l_component_appl_id
25693 ,l_amb_context_code
25694 ,l_entity_code
25695 ,l_event_class_code
25696 )
25697 ,p_token_3 => 'OWNER'
25698 ,p_value_3 => xla_lookups_pkg.get_meaning(
25699 p_lookup_type => 'XLA_OWNER_TYPE'
25700 ,p_lookup_code => l_component_type_code
25701 )
25702 ,p_token_4 => 'PRODUCT_NAME'
25703 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25704 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25705 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25706 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25707 ,p_ae_header_id => NULL
25708 );
25709
25710 IF (C_LEVEL_ERROR>= g_log_level) THEN
25711 trace
25712 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25713 ,p_level => C_LEVEL_ERROR
25714 ,p_module => l_log_module);
25715 END IF;
25716 END IF;
25717 END IF;
25718 --
25719 --
25720 ------------------------------------------------------------------------------------------------
25721 -- 4219869 Business Flow
25722 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25723 -- Prior Entry. Currently, the following code is always generated.
25724 ------------------------------------------------------------------------------------------------
25725 XLA_AE_LINES_PKG.ValidateCurrentLine;
25726
25727 ------------------------------------------------------------------------------------
25728 -- 4219869 Business Flow
25729 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25730 ------------------------------------------------------------------------------------
25731 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25732
25733 ----------------------------------------------------------------------------------
25734 -- 4219869 Business Flow
25735 -- Update journal entry status -- Need to generate this within IF <condition>
25739 ,p_balance_type_code => l_balance_type_code
25736 ----------------------------------------------------------------------------------
25737 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25738 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25740 );
25741
25742 -------------------------------------------------------------------------------------------
25743 -- 4262811 - Generate the Accrual Reversal lines
25744 -------------------------------------------------------------------------------------------
25745 BEGIN
25746 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25747 (g_array_event(p_event_id).array_value_num('header_index'));
25748 IF l_acc_rev_flag IS NULL THEN
25749 l_acc_rev_flag := 'N';
25750 END IF;
25751 EXCEPTION
25752 WHEN OTHERS THEN
25753 l_acc_rev_flag := 'N';
25754 END;
25755 --
25756 IF (l_acc_rev_flag = 'Y') THEN
25757
25758 -- 4645092 ------------------------------------------------------------------------------
25759 -- To allow MPA report to determine if it should generate report process
25760 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25761 ------------------------------------------------------------------------------------------
25762
25763 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25764 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25765 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25766 -- call ADRs
25767 -- Bug 4922099
25768 --
25769 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25770 (NVL(l_actual_upg_option, 'N') = 'O') OR
25771 (NVL(l_enc_upg_option, 'N') = 'O')
25772 )
25773 THEN
25774 NULL;
25775 --
25776 --
25777
25778 l_ccid := AcctDerRule_30(
25779 p_application_id => p_application_id
25780 , p_ae_header_id => l_ae_header_id
25781 , p_source_33 => p_source_33
25782 , x_transaction_coa_id => l_adr_transaction_coa_id
25783 , x_accounting_coa_id => l_adr_accounting_coa_id
25784 , x_value_type_code => l_adr_value_type_code
25785 , p_side => 'NA'
25786 );
25787
25788 xla_ae_lines_pkg.set_ccid(
25789 p_code_combination_id => l_ccid
25790 , p_value_type_code => l_adr_value_type_code
25791 , p_transaction_coa_id => l_adr_transaction_coa_id
25792 , p_accounting_coa_id => l_adr_accounting_coa_id
25793 , p_adr_code => 'AP_PMT_CASH_CLEAR'
25794 , p_adr_type_code => 'S'
25795 , p_component_type => l_component_type
25796 , p_component_code => l_component_code
25797 , p_component_type_code => l_component_type_code
25798 , p_component_appl_id => l_component_appl_id
25799 , p_amb_context_code => l_amb_context_code
25800 , p_side => 'NA'
25801 );
25802
25803
25804 --
25805 --
25806 END IF;
25807
25808 --
25809 -- Update the line information that should be overwritten
25810 --
25811 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25812 p_header_num => 1);
25813 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25814
25815 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25816
25817 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25818 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25819 END IF;
25820
25821 --
25822 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25823 --
25824 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25825 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25826 ELSE
25827 ---------------------------------------------------------------------------------------------------
25828 -- 4262811a Switch Sign
25829 ---------------------------------------------------------------------------------------------------
25830 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25831 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25832 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25833 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25834 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25835 -- 5132302
25836 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25837 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25838
25839 END IF;
25840
25841 -- 4955764
25842 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25846 XLA_AE_LINES_PKG.ValidateCurrentLine;
25843 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25844
25845
25847 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25848
25849 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25850 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25851 ,p_balance_type_code => l_balance_type_code);
25852
25853 END IF;
25854
25855 -----------------------------------------------------------------------------------------
25856 -- 4262811 Multiperiod Accounting
25857 -----------------------------------------------------------------------------------------
25858 -- No MPA option is assigned.
25859
25860
25861 END IF;
25862 END IF;
25863 --
25864
25865 --
25866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25867 trace
25868 (p_msg => 'END of AcctLineType_65'
25869 ,p_level => C_LEVEL_PROCEDURE
25870 ,p_module => l_log_module);
25871 END IF;
25872 --
25873 EXCEPTION
25874 WHEN xla_exceptions_pkg.application_exception THEN
25875 RAISE;
25876 WHEN OTHERS THEN
25877 xla_exceptions_pkg.raise_message
25878 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_65');
25879 END AcctLineType_65;
25880 --
25881
25882 ---------------------------------------
25883 --
25884 -- PRIVATE FUNCTION
25885 -- AcctLineType_66
25886 --
25887 ---------------------------------------
25888 PROCEDURE AcctLineType_66 (
25889 p_application_id IN NUMBER
25890 ,p_event_id IN NUMBER
25891 ,p_calculate_acctd_flag IN VARCHAR2
25892 ,p_calculate_g_l_flag IN VARCHAR2
25893 ,p_actual_flag IN OUT VARCHAR2
25894 ,p_balance_type_code OUT VARCHAR2
25895 ,p_gain_or_loss_ref OUT VARCHAR2
25896
25897 --Payment Currency Code
25898 , p_source_12 IN VARCHAR2
25899 --Automatic Offsets Value
25900 , p_source_16 IN VARCHAR2
25901 , p_source_16_meaning IN VARCHAR2
25902 --Payment Distribution (Payment Rate) Ledger Amount
25903 , p_source_21 IN NUMBER
25904 --Bank Cash Clearing Account
25905 , p_source_33 IN NUMBER
25906 --When to Account for Payment Option
25907 , p_source_50 IN VARCHAR2
25908 --Payment Distribution Type
25909 , p_source_51 IN VARCHAR2
25910 , p_source_51_meaning IN VARCHAR2
25911 --Accounting Reversal Indicator
25912 , p_source_52 IN VARCHAR2
25913 --Payment Distribution Amount
25914 , p_source_53 IN NUMBER
25915 --Business Flow Accounts Payable Application Identifier
25916 , p_source_54 IN NUMBER
25917 --Payment Distribution Identifier
25918 , p_source_59 IN NUMBER
25919 --Distribution Link Type
25920 , p_source_60 IN VARCHAR2
25921 --Override Accounted Amount Indicator
25922 , p_source_64 IN VARCHAR2
25923 , p_source_64_meaning IN VARCHAR2
25924 --Payment Supplier Identifier
25925 , p_source_65 IN NUMBER
25926 --Payment Supplier Site Identifier
25927 , p_source_66 IN NUMBER
25928 --Third Party Type
25929 , p_source_67 IN VARCHAR2
25930 --Payment Distribution Reversed Identifier
25931 , p_source_68 IN NUMBER
25932 --Invoice Distribution Tax Line Identifier
25933 , p_source_69 IN NUMBER
25934 --Invoice Distribution Summary Tax Line Identifier
25935 , p_source_70 IN NUMBER
25936 --Payment Type
25937 , p_source_71 IN VARCHAR2
25938 , p_source_71_meaning IN VARCHAR2
25939 --Business Flow Invoice Distribution Type
25940 , p_source_73 IN VARCHAR2
25941 --Business Flow Invoice Entity Code
25942 , p_source_74 IN VARCHAR2
25943 --Business Flow Invoice Distribution Identifier
25944 , p_source_75 IN NUMBER
25945 --Business Flow Invoice Identifier
25946 , p_source_76 IN NUMBER
25947 --Invoice Distribution Tax Distribution Identifier from Tax
25948 , p_source_77 IN NUMBER
25949 --Pooled Bank Account Option
25950 , p_source_117 IN VARCHAR2
25951 , p_source_117_meaning IN VARCHAR2
25952 --Payment Maturity Date
25953 , p_source_118 IN DATE
25954 --Payment Exchange Date
25955 , p_source_121 IN DATE
25956 --Payment Exchange Rate
25957 , p_source_122 IN NUMBER
25958 --Payment Exchange Rate Type
25959 , p_source_123 IN VARCHAR2
25960 )
25961 IS
25962
25963 l_component_type VARCHAR2(80);
25964 l_component_code VARCHAR2(30);
25965 l_component_type_code VARCHAR2(1);
25966 l_component_appl_id INTEGER;
25967 l_amb_context_code VARCHAR2(30);
25968 l_entity_code VARCHAR2(30);
25969 l_event_class_code VARCHAR2(30);
25970 l_ae_header_id NUMBER;
25971 l_event_type_code VARCHAR2(30);
25972 l_line_definition_code VARCHAR2(30);
25973 l_line_definition_owner_code VARCHAR2(1);
25974 --
25975 -- adr variables
25976 l_segment VARCHAR2(30);
25977 l_ccid NUMBER;
25978 l_adr_transaction_coa_id NUMBER;
25979 l_adr_accounting_coa_id NUMBER;
25980 l_adr_flexfield_segment_code VARCHAR2(30);
25981 l_adr_flex_value_set_id NUMBER;
25982 l_adr_value_type_code VARCHAR2(30);
25986 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25983 l_adr_value_combination_id NUMBER;
25984 l_adr_value_segment_code VARCHAR2(30);
25985
25987 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25988 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25989 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25990
25991 -- 4262811 Variables ------------------------------------------------------------------------------------------
25992 l_entered_amt_idx NUMBER;
25993 l_accted_amt_idx NUMBER;
25994 l_acc_rev_flag VARCHAR2(1);
25995 l_accrual_line_num NUMBER;
25996 l_tmp_amt NUMBER;
25997 l_acc_rev_natural_side_code VARCHAR2(1);
25998
25999 l_num_entries NUMBER;
26000 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26001 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26002 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26003 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26004 l_recog_line_1 NUMBER;
26005 l_recog_line_2 NUMBER;
26006
26007 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26008 l_bflow_applied_to_amt NUMBER; -- 5132302
26009 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26010
26011 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26012
26013 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26014 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26015
26016 ---------------------------------------------------------------------------------------------------------------
26017
26018
26019 --
26020 -- bulk performance
26021 --
26022 l_balance_type_code VARCHAR2(1);
26023 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26024 l_log_module VARCHAR2(240);
26025
26026 --
26027 -- Upgrade strategy
26028 --
26029 l_actual_upg_option VARCHAR2(1);
26030 l_enc_upg_option VARCHAR2(1);
26031
26032 --
26033 BEGIN
26034 --
26035 IF g_log_enabled THEN
26036 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
26037 END IF;
26038 --
26039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26040
26041 trace
26042 (p_msg => 'BEGIN of AcctLineType_66'
26043 ,p_level => C_LEVEL_PROCEDURE
26044 ,p_module => l_log_module);
26045
26046 END IF;
26047 --
26048 l_component_type := 'AMB_JLT';
26049 l_component_code := 'AP_CASH_CLEAR_REF_AOS_AS';
26050 l_component_type_code := 'S';
26051 l_component_appl_id := 200;
26052 l_amb_context_code := 'DEFAULT';
26053 l_entity_code := 'AP_PAYMENTS';
26054 l_event_class_code := 'REFUNDS';
26055 l_event_type_code := 'REFUNDS_ALL';
26056 l_line_definition_owner_code := 'S';
26057 l_line_definition_code := 'CASH_REFUNDS_ALL';
26058 --
26059 l_balance_type_code := 'A';
26060 l_segment := NULL;
26061 l_ccid := NULL;
26062 l_adr_transaction_coa_id := NULL;
26063 l_adr_accounting_coa_id := NULL;
26064 l_adr_flexfield_segment_code := NULL;
26065 l_adr_flex_value_set_id := NULL;
26066 l_adr_value_type_code := NULL;
26067 l_adr_value_combination_id := NULL;
26068 l_adr_value_segment_code := NULL;
26069
26070 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
26071 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
26072 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26073 l_budgetary_control_flag := 'N';
26074
26075 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26076 l_bflow_applied_to_amt := NULL; -- 5132302
26077 l_entered_amt_idx := NULL; -- 4262811
26078 l_accted_amt_idx := NULL; -- 4262811
26079 l_acc_rev_flag := NULL; -- 4262811
26080 l_accrual_line_num := NULL; -- 4262811
26081 l_tmp_amt := NULL; -- 4262811
26082 --
26083
26084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26085 l_balance_type_code <> 'B' THEN
26086 IF NVL(p_source_50,'
26087 ') = 'ALWAYS_ALWAYS' AND
26088 (NVL(p_source_117,'
26089 ') = 'Y' AND
26090 NVL(p_source_16,'
26091 ') = 'ACCOUNT_SEGMENT_VALUE') AND
26092 p_source_118 IS NULL AND
26093 NVL(p_source_51,'
26094 ') = 'CASH' AND
26095 NVL(p_source_71,'
26096 ') = 'R'
26097 THEN
26098
26099 --
26100 XLA_AE_LINES_PKG.SetNewLine;
26101
26102 p_balance_type_code := l_balance_type_code;
26103 -- set the flag so later we will know whether the gain loss line needs to be created
26104
26105 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26106 p_actual_flag :='A';
26107 END IF;
26108
26109 --
26110 -- bulk performance
26111 --
26112 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26113 p_header_num => 0); -- 4262811
26114 --
26115 -- set accounting line options
26116 --
26120 , p_gl_transfer_mode_code => 'S'
26117 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26118 p_natural_side_code => 'C'
26119 , p_gain_or_loss_flag => 'N'
26121 , p_acct_entry_type_code => 'A'
26122 , p_switch_side_flag => 'Y'
26123 , p_merge_duplicate_code => 'A'
26124 );
26125 --
26126 l_acc_rev_natural_side_code := 'D'; -- 4262811
26127 --
26128 --
26129 -- set accounting line type info
26130 --
26131 xla_ae_lines_pkg.SetAcctLineType
26132 (p_component_type => l_component_type
26133 ,p_event_type_code => l_event_type_code
26134 ,p_line_definition_owner_code => l_line_definition_owner_code
26135 ,p_line_definition_code => l_line_definition_code
26136 ,p_accounting_line_code => l_component_code
26137 ,p_accounting_line_type_code => l_component_type_code
26138 ,p_accounting_line_appl_id => l_component_appl_id
26139 ,p_amb_context_code => l_amb_context_code
26140 ,p_entity_code => l_entity_code
26141 ,p_event_class_code => l_event_class_code);
26142 --
26143 -- set accounting class
26144 --
26145 xla_ae_lines_pkg.SetAcctClass(
26146 p_accounting_class_code => 'CASH_CLEARING'
26147 , p_ae_header_id => l_ae_header_id
26148 );
26149
26150 --
26151 -- set rounding class
26152 --
26153 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26154 'CASH_CLEARING';
26155
26156 --
26157 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26158 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26159 --
26160 -- bulk performance
26161 --
26162 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26163
26164 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26165 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26166
26167 -- 4955764
26168 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26169 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26170
26171 -- 4458381 Public Sector Enh
26172
26173 --
26174 -- set accounting attributes for the line type
26175 --
26176 l_entered_amt_idx := 9;
26177 l_accted_amt_idx := 14;
26178 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26179 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26180 l_rec_acct_attrs.array_char_value(1) := p_source_52;
26181 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26182 l_rec_acct_attrs.array_num_value(2) := p_source_54;
26183 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26184 l_rec_acct_attrs.array_char_value(3) := p_source_73;
26185 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26186 l_rec_acct_attrs.array_char_value(4) := p_source_74;
26187 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26188 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
26189 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26190 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
26191 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26192 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
26193 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26194 l_rec_acct_attrs.array_char_value(8) := p_source_60;
26195 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26196 l_rec_acct_attrs.array_num_value(9) := p_source_53;
26197 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26198 l_rec_acct_attrs.array_char_value(10) := p_source_12;
26199 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26200 l_rec_acct_attrs.array_date_value(11) := p_source_121;
26201 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26202 l_rec_acct_attrs.array_num_value(12) := p_source_122;
26203 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26204 l_rec_acct_attrs.array_char_value(13) := p_source_123;
26205 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26206 l_rec_acct_attrs.array_num_value(14) := p_source_21;
26207 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26208 l_rec_acct_attrs.array_char_value(15) := p_source_64;
26209 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26210 l_rec_acct_attrs.array_num_value(16) := p_source_65;
26211 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26212 l_rec_acct_attrs.array_num_value(17) := p_source_66;
26213 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26214 l_rec_acct_attrs.array_char_value(18) := p_source_67;
26215 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26216 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
26217 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26218 l_rec_acct_attrs.array_char_value(20) := p_source_60;
26219 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26223 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26220 l_rec_acct_attrs.array_num_value(21) := p_source_69;
26221 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26222 l_rec_acct_attrs.array_num_value(22) := p_source_77;
26224 l_rec_acct_attrs.array_num_value(23) := p_source_70;
26225
26226 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26227 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26228
26229 ---------------------------------------------------------------------------------------------------------------
26230 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26231 ---------------------------------------------------------------------------------------------------------------
26232 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26233
26234 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26235 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26236
26237 IF xla_accounting_cache_pkg.GetValueChar
26238 (p_source_code => 'LEDGER_CATEGORY_CODE'
26239 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26240 AND l_bflow_method_code = 'PRIOR_ENTRY'
26241 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26242 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26243 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26244 )
26245 THEN
26246 xla_ae_lines_pkg.BflowUpgEntry
26247 (p_business_method_code => l_bflow_method_code
26248 ,p_business_class_code => l_bflow_class_code
26249 ,p_balance_type => l_balance_type_code);
26250 ELSE
26251 NULL;
26252 XLA_AE_LINES_PKG.business_flow_validation(
26253 p_business_method_code => l_bflow_method_code
26254 ,p_business_class_code => l_bflow_class_code
26255 ,p_inherit_description_flag => l_inherit_desc_flag);
26256 END IF;
26257
26258 --
26259 -- call analytical criteria
26260 --
26261
26262 --
26263 -- call description
26264 --
26265 -- No description or it is inherited.
26266 --
26267 -- call ADRs
26268 -- Bug 4922099
26269 --
26270 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26271 (NVL(l_actual_upg_option, 'N') = 'O') OR
26272 (NVL(l_enc_upg_option, 'N') = 'O')
26273 )
26274 THEN
26275 NULL;
26276 --
26277 --
26278
26279 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
26280 p_code_combination_id => TO_NUMBER(C_NUM)
26281 , p_value_type_code => NULL
26282 , p_transaction_coa_id => null
26283 , p_accounting_coa_id => null
26284 , p_adr_code => NULL
26285 , p_adr_type_code => NULL
26286 , p_component_type => l_component_type
26287 , p_component_code => l_component_code
26288 , p_component_type_code => l_component_type_code
26289 , p_component_appl_id => l_component_appl_id
26290 , p_amb_context_code => l_amb_context_code
26291 , p_side => NULL
26292 );
26293
26294
26295 -- initialise segments
26296 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26297 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26298 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26299 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26300 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26301 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26302 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26303 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26304 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26305 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26306 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26307 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26308 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26309 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26310 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26311 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26312 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26313 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26314 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26315 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26316 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26317 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26318 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26322 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26319 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26320 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26321 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26323 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26324 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26325 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26326 --
26327
26328 --
26329
26330
26331 l_segment := AcctDerRule_13(
26332 p_application_id => p_application_id
26333 , p_ae_header_id => l_ae_header_id
26334 , p_source_33 => p_source_33
26335 , x_transaction_coa_id => l_adr_transaction_coa_id
26336 , x_accounting_coa_id => l_adr_accounting_coa_id
26337 , x_flexfield_segment_code => l_adr_flexfield_segment_code
26338 , x_flex_value_set_id => l_adr_flex_value_set_id
26339 , x_value_type_code => l_adr_value_type_code
26340 , x_value_combination_id => l_adr_value_combination_id
26341 , x_value_segment_code => l_adr_value_segment_code
26342 , p_side => 'NA'
26343 , p_override_seg_flag => 'Y'
26344 );
26345
26346 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
26347
26348 xla_ae_lines_pkg.set_segment(
26349 p_to_segment_code => 'GL_ACCOUNT'
26350 , p_segment_value => l_segment
26351 , p_from_segment_code => l_adr_value_segment_code
26352 , p_from_combination_id => l_adr_value_combination_id
26353 , p_value_type_code => l_adr_value_type_code
26354 , p_transaction_coa_id => l_adr_transaction_coa_id
26355 , p_accounting_coa_id => l_adr_accounting_coa_id
26356 , p_flexfield_segment_code => l_adr_flexfield_segment_code
26357 , p_flex_value_set_id => l_adr_flex_value_set_id
26358 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26359 , p_adr_type_code => 'S'
26360 , p_component_type => l_component_type
26361 , p_component_code => l_component_code
26362 , p_component_type_code => l_component_type_code
26363 , p_component_appl_id => l_component_appl_id
26364 , p_amb_context_code => l_amb_context_code
26365 , p_entity_code => 'AP_PAYMENTS'
26366 , p_event_class_code => 'REFUNDS'
26367 , p_side => 'NA'
26368 );
26369
26370 END IF;
26371
26372 --
26373 --
26374 END IF;
26375 --
26376 -- Bug 4922099
26377 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26378 (NVL(l_enc_upg_option, 'N') = 'O')
26379 ) AND
26380 (l_bflow_method_code = 'PRIOR_ENTRY')
26381 )
26382 THEN
26383 IF
26384 --
26385 1 = 2
26386 --
26387 THEN
26388 xla_accounting_err_pkg.build_message
26389 (p_appli_s_name => 'XLA'
26390 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26391 ,p_token_1 => 'LINE_NUMBER'
26392 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26393 ,p_token_2 => 'LINE_TYPE_NAME'
26394 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26395 l_component_type
26396 ,l_component_code
26397 ,l_component_type_code
26398 ,l_component_appl_id
26399 ,l_amb_context_code
26400 ,l_entity_code
26401 ,l_event_class_code
26402 )
26403 ,p_token_3 => 'OWNER'
26404 ,p_value_3 => xla_lookups_pkg.get_meaning(
26405 p_lookup_type => 'XLA_OWNER_TYPE'
26406 ,p_lookup_code => l_component_type_code
26407 )
26408 ,p_token_4 => 'PRODUCT_NAME'
26409 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26410 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26411 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26415
26412 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26413 ,p_ae_header_id => NULL
26414 );
26416 IF (C_LEVEL_ERROR>= g_log_level) THEN
26417 trace
26418 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26419 ,p_level => C_LEVEL_ERROR
26420 ,p_module => l_log_module);
26421 END IF;
26422 END IF;
26423 END IF;
26424 --
26425 --
26426 ------------------------------------------------------------------------------------------------
26427 -- 4219869 Business Flow
26428 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26429 -- Prior Entry. Currently, the following code is always generated.
26430 ------------------------------------------------------------------------------------------------
26431 XLA_AE_LINES_PKG.ValidateCurrentLine;
26432
26433 ------------------------------------------------------------------------------------
26434 -- 4219869 Business Flow
26435 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26436 ------------------------------------------------------------------------------------
26437 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26438
26439 ----------------------------------------------------------------------------------
26440 -- 4219869 Business Flow
26441 -- Update journal entry status -- Need to generate this within IF <condition>
26442 ----------------------------------------------------------------------------------
26443 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26444 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26445 ,p_balance_type_code => l_balance_type_code
26446 );
26447
26448 -------------------------------------------------------------------------------------------
26449 -- 4262811 - Generate the Accrual Reversal lines
26450 -------------------------------------------------------------------------------------------
26451 BEGIN
26452 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26453 (g_array_event(p_event_id).array_value_num('header_index'));
26454 IF l_acc_rev_flag IS NULL THEN
26455 l_acc_rev_flag := 'N';
26456 END IF;
26457 EXCEPTION
26458 WHEN OTHERS THEN
26459 l_acc_rev_flag := 'N';
26460 END;
26461 --
26462 IF (l_acc_rev_flag = 'Y') THEN
26463
26464 -- 4645092 ------------------------------------------------------------------------------
26465 -- To allow MPA report to determine if it should generate report process
26466 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26467 ------------------------------------------------------------------------------------------
26468
26469 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26470 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26471 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26472 -- call ADRs
26473 -- Bug 4922099
26474 --
26475 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26476 (NVL(l_actual_upg_option, 'N') = 'O') OR
26477 (NVL(l_enc_upg_option, 'N') = 'O')
26478 )
26479 THEN
26480 NULL;
26481 --
26482 --
26483
26484 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
26485 p_code_combination_id => TO_NUMBER(C_NUM)
26486 , p_value_type_code => NULL
26487 , p_transaction_coa_id => null
26488 , p_accounting_coa_id => null
26489 , p_adr_code => NULL
26490 , p_adr_type_code => NULL
26491 , p_component_type => l_component_type
26492 , p_component_code => l_component_code
26493 , p_component_type_code => l_component_type_code
26494 , p_component_appl_id => l_component_appl_id
26495 , p_amb_context_code => l_amb_context_code
26496 , p_side => NULL
26497 );
26498
26499
26500 -- initialise segments
26501 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26502 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26503 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26504 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26505 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26506 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26507 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26508 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26509 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26510 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26511 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26512 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26513 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26514 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26518 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26515 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26516 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26517 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26519 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26520 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26521 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26522 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26523 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26524 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26525 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26526 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26527 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26528 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26529 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26530 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26531 --
26532
26533 --
26534
26535
26536 l_segment := AcctDerRule_13(
26537 p_application_id => p_application_id
26538 , p_ae_header_id => l_ae_header_id
26539 , p_source_33 => p_source_33
26540 , x_transaction_coa_id => l_adr_transaction_coa_id
26541 , x_accounting_coa_id => l_adr_accounting_coa_id
26542 , x_flexfield_segment_code => l_adr_flexfield_segment_code
26543 , x_flex_value_set_id => l_adr_flex_value_set_id
26544 , x_value_type_code => l_adr_value_type_code
26545 , x_value_combination_id => l_adr_value_combination_id
26546 , x_value_segment_code => l_adr_value_segment_code
26547 , p_side => 'NA'
26548 , p_override_seg_flag => 'Y'
26549 );
26550
26551 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
26552
26553 xla_ae_lines_pkg.set_segment(
26554 p_to_segment_code => 'GL_ACCOUNT'
26555 , p_segment_value => l_segment
26556 , p_from_segment_code => l_adr_value_segment_code
26557 , p_from_combination_id => l_adr_value_combination_id
26558 , p_value_type_code => l_adr_value_type_code
26559 , p_transaction_coa_id => l_adr_transaction_coa_id
26560 , p_accounting_coa_id => l_adr_accounting_coa_id
26561 , p_flexfield_segment_code => l_adr_flexfield_segment_code
26562 , p_flex_value_set_id => l_adr_flex_value_set_id
26563 , p_adr_code => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26564 , p_adr_type_code => 'S'
26565 , p_component_type => l_component_type
26566 , p_component_code => l_component_code
26567 , p_component_type_code => l_component_type_code
26568 , p_component_appl_id => l_component_appl_id
26569 , p_amb_context_code => l_amb_context_code
26570 , p_entity_code => 'AP_PAYMENTS'
26571 , p_event_class_code => 'REFUNDS'
26572 , p_side => 'NA'
26573 );
26574
26575 END IF;
26576
26577 --
26578 --
26579 END IF;
26580
26581 --
26582 -- Update the line information that should be overwritten
26583 --
26584 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26585 p_header_num => 1);
26586 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26587
26588 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26589
26590 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26591 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26592 END IF;
26593
26594 --
26595 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26596 --
26597 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26598 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26599 ELSE
26600 ---------------------------------------------------------------------------------------------------
26601 -- 4262811a Switch Sign
26602 ---------------------------------------------------------------------------------------------------
26603 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26604 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26605 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26606 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26607 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26608 -- 5132302
26612 END IF;
26609 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26610 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26611
26613
26614 -- 4955764
26615 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26616 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26617
26618
26619 XLA_AE_LINES_PKG.ValidateCurrentLine;
26620 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26621
26622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26624 ,p_balance_type_code => l_balance_type_code);
26625
26626 END IF;
26627
26628 -----------------------------------------------------------------------------------------
26629 -- 4262811 Multiperiod Accounting
26630 -----------------------------------------------------------------------------------------
26631 -- No MPA option is assigned.
26632
26633
26634 END IF;
26635 END IF;
26636 --
26637
26638 --
26639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26640 trace
26641 (p_msg => 'END of AcctLineType_66'
26642 ,p_level => C_LEVEL_PROCEDURE
26643 ,p_module => l_log_module);
26644 END IF;
26645 --
26646 EXCEPTION
26647 WHEN xla_exceptions_pkg.application_exception THEN
26648 RAISE;
26649 WHEN OTHERS THEN
26650 xla_exceptions_pkg.raise_message
26651 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_66');
26652 END AcctLineType_66;
26653 --
26654
26655 ---------------------------------------
26656 --
26657 -- PRIVATE FUNCTION
26658 -- AcctLineType_67
26659 --
26660 ---------------------------------------
26661 PROCEDURE AcctLineType_67 (
26662 p_application_id IN NUMBER
26663 ,p_event_id IN NUMBER
26664 ,p_calculate_acctd_flag IN VARCHAR2
26665 ,p_calculate_g_l_flag IN VARCHAR2
26666 ,p_actual_flag IN OUT VARCHAR2
26667 ,p_balance_type_code OUT VARCHAR2
26668 ,p_gain_or_loss_ref OUT VARCHAR2
26669
26670 --Payment Currency Code
26671 , p_source_12 IN VARCHAR2
26672 --Automatic Offsets Value
26673 , p_source_16 IN VARCHAR2
26674 , p_source_16_meaning IN VARCHAR2
26675 --Payment Distribution (Payment Rate) Ledger Amount
26676 , p_source_21 IN NUMBER
26677 --Bank Cash Clearing Account
26678 , p_source_33 IN NUMBER
26679 --When to Account for Payment Option
26680 , p_source_50 IN VARCHAR2
26681 --Payment Distribution Type
26682 , p_source_51 IN VARCHAR2
26683 , p_source_51_meaning IN VARCHAR2
26684 --Accounting Reversal Indicator
26685 , p_source_52 IN VARCHAR2
26686 --Payment Distribution Amount
26687 , p_source_53 IN NUMBER
26688 --Business Flow Accounts Payable Application Identifier
26689 , p_source_54 IN NUMBER
26690 --Payment Distribution Identifier
26691 , p_source_59 IN NUMBER
26692 --Distribution Link Type
26693 , p_source_60 IN VARCHAR2
26694 --Override Accounted Amount Indicator
26695 , p_source_64 IN VARCHAR2
26696 , p_source_64_meaning IN VARCHAR2
26697 --Payment Supplier Identifier
26698 , p_source_65 IN NUMBER
26699 --Payment Supplier Site Identifier
26700 , p_source_66 IN NUMBER
26701 --Third Party Type
26702 , p_source_67 IN VARCHAR2
26703 --Payment Distribution Reversed Identifier
26704 , p_source_68 IN NUMBER
26705 --Invoice Distribution Tax Line Identifier
26706 , p_source_69 IN NUMBER
26707 --Invoice Distribution Summary Tax Line Identifier
26708 , p_source_70 IN NUMBER
26709 --Payment Type
26710 , p_source_71 IN VARCHAR2
26711 , p_source_71_meaning IN VARCHAR2
26712 --Business Flow Invoice Distribution Type
26713 , p_source_73 IN VARCHAR2
26714 --Business Flow Invoice Entity Code
26715 , p_source_74 IN VARCHAR2
26716 --Business Flow Invoice Distribution Identifier
26717 , p_source_75 IN NUMBER
26718 --Business Flow Invoice Identifier
26719 , p_source_76 IN NUMBER
26720 --Invoice Distribution Tax Distribution Identifier from Tax
26721 , p_source_77 IN NUMBER
26722 --Pooled Bank Account Option
26723 , p_source_117 IN VARCHAR2
26724 , p_source_117_meaning IN VARCHAR2
26725 --Payment Maturity Date
26726 , p_source_118 IN DATE
26727 --Payment Exchange Date
26728 , p_source_121 IN DATE
26729 --Payment Exchange Rate
26730 , p_source_122 IN NUMBER
26731 --Payment Exchange Rate Type
26732 , p_source_123 IN VARCHAR2
26733 )
26734 IS
26735
26736 l_component_type VARCHAR2(80);
26737 l_component_code VARCHAR2(30);
26738 l_component_type_code VARCHAR2(1);
26739 l_component_appl_id INTEGER;
26740 l_amb_context_code VARCHAR2(30);
26741 l_entity_code VARCHAR2(30);
26742 l_event_class_code VARCHAR2(30);
26743 l_ae_header_id NUMBER;
26744 l_event_type_code VARCHAR2(30);
26745 l_line_definition_code VARCHAR2(30);
26746 l_line_definition_owner_code VARCHAR2(1);
26747 --
26751 l_adr_transaction_coa_id NUMBER;
26748 -- adr variables
26749 l_segment VARCHAR2(30);
26750 l_ccid NUMBER;
26752 l_adr_accounting_coa_id NUMBER;
26753 l_adr_flexfield_segment_code VARCHAR2(30);
26754 l_adr_flex_value_set_id NUMBER;
26755 l_adr_value_type_code VARCHAR2(30);
26756 l_adr_value_combination_id NUMBER;
26757 l_adr_value_segment_code VARCHAR2(30);
26758
26759 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26760 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26761 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26762 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26763
26764 -- 4262811 Variables ------------------------------------------------------------------------------------------
26765 l_entered_amt_idx NUMBER;
26766 l_accted_amt_idx NUMBER;
26767 l_acc_rev_flag VARCHAR2(1);
26768 l_accrual_line_num NUMBER;
26769 l_tmp_amt NUMBER;
26770 l_acc_rev_natural_side_code VARCHAR2(1);
26771
26772 l_num_entries NUMBER;
26773 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26774 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26775 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26776 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26777 l_recog_line_1 NUMBER;
26778 l_recog_line_2 NUMBER;
26779
26780 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26781 l_bflow_applied_to_amt NUMBER; -- 5132302
26782 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26783
26784 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26785
26786 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26787 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26788
26789 ---------------------------------------------------------------------------------------------------------------
26790
26791
26792 --
26793 -- bulk performance
26794 --
26795 l_balance_type_code VARCHAR2(1);
26796 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26797 l_log_module VARCHAR2(240);
26798
26799 --
26800 -- Upgrade strategy
26801 --
26802 l_actual_upg_option VARCHAR2(1);
26803 l_enc_upg_option VARCHAR2(1);
26804
26805 --
26806 BEGIN
26807 --
26808 IF g_log_enabled THEN
26809 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
26810 END IF;
26811 --
26812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26813
26814 trace
26815 (p_msg => 'BEGIN of AcctLineType_67'
26816 ,p_level => C_LEVEL_PROCEDURE
26817 ,p_module => l_log_module);
26818
26819 END IF;
26820 --
26821 l_component_type := 'AMB_JLT';
26822 l_component_code := 'AP_CASH_CLEAR_REF_AOS_BS';
26823 l_component_type_code := 'S';
26824 l_component_appl_id := 200;
26825 l_amb_context_code := 'DEFAULT';
26826 l_entity_code := 'AP_PAYMENTS';
26827 l_event_class_code := 'REFUNDS';
26828 l_event_type_code := 'REFUNDS_ALL';
26829 l_line_definition_owner_code := 'S';
26830 l_line_definition_code := 'CASH_REFUNDS_ALL';
26831 --
26832 l_balance_type_code := 'A';
26833 l_segment := NULL;
26834 l_ccid := NULL;
26835 l_adr_transaction_coa_id := NULL;
26836 l_adr_accounting_coa_id := NULL;
26837 l_adr_flexfield_segment_code := NULL;
26838 l_adr_flex_value_set_id := NULL;
26839 l_adr_value_type_code := NULL;
26840 l_adr_value_combination_id := NULL;
26841 l_adr_value_segment_code := NULL;
26842
26843 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
26844 l_bflow_class_code := 'AP_CASH_CLEARING'; -- 4219869 Business Flow
26845 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26846 l_budgetary_control_flag := 'N';
26847
26848 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26849 l_bflow_applied_to_amt := NULL; -- 5132302
26850 l_entered_amt_idx := NULL; -- 4262811
26851 l_accted_amt_idx := NULL; -- 4262811
26852 l_acc_rev_flag := NULL; -- 4262811
26853 l_accrual_line_num := NULL; -- 4262811
26854 l_tmp_amt := NULL; -- 4262811
26855 --
26856
26857 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26858 l_balance_type_code <> 'B' THEN
26859 IF NVL(p_source_50,'
26860 ') = 'ALWAYS_ALWAYS' AND
26861 (NVL(p_source_117,'
26862 ') = 'Y' AND
26863 NVL(p_source_16,'
26864 ') = 'BALANCING_SEGMENT') AND
26865 p_source_118 IS NULL AND
26866 NVL(p_source_51,'
26867 ') = 'CASH' AND
26868 NVL(p_source_71,'
26869 ') = 'R'
26870 THEN
26871
26872 --
26873 XLA_AE_LINES_PKG.SetNewLine;
26874
26875 p_balance_type_code := l_balance_type_code;
26876 -- set the flag so later we will know whether the gain loss line needs to be created
26877
26881
26878 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26879 p_actual_flag :='A';
26880 END IF;
26882 --
26883 -- bulk performance
26884 --
26885 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26886 p_header_num => 0); -- 4262811
26887 --
26888 -- set accounting line options
26889 --
26890 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26891 p_natural_side_code => 'C'
26892 , p_gain_or_loss_flag => 'N'
26893 , p_gl_transfer_mode_code => 'S'
26894 , p_acct_entry_type_code => 'A'
26895 , p_switch_side_flag => 'Y'
26896 , p_merge_duplicate_code => 'A'
26897 );
26898 --
26899 l_acc_rev_natural_side_code := 'D'; -- 4262811
26900 --
26901 --
26902 -- set accounting line type info
26903 --
26904 xla_ae_lines_pkg.SetAcctLineType
26905 (p_component_type => l_component_type
26906 ,p_event_type_code => l_event_type_code
26907 ,p_line_definition_owner_code => l_line_definition_owner_code
26908 ,p_line_definition_code => l_line_definition_code
26909 ,p_accounting_line_code => l_component_code
26910 ,p_accounting_line_type_code => l_component_type_code
26911 ,p_accounting_line_appl_id => l_component_appl_id
26912 ,p_amb_context_code => l_amb_context_code
26913 ,p_entity_code => l_entity_code
26914 ,p_event_class_code => l_event_class_code);
26915 --
26916 -- set accounting class
26917 --
26918 xla_ae_lines_pkg.SetAcctClass(
26919 p_accounting_class_code => 'CASH_CLEARING'
26920 , p_ae_header_id => l_ae_header_id
26921 );
26922
26923 --
26924 -- set rounding class
26925 --
26926 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26927 'CASH_CLEARING';
26928
26929 --
26930 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26931 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26932 --
26933 -- bulk performance
26934 --
26935 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26936
26937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26938 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26939
26940 -- 4955764
26941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26943
26944 -- 4458381 Public Sector Enh
26945
26946 --
26947 -- set accounting attributes for the line type
26948 --
26949 l_entered_amt_idx := 9;
26950 l_accted_amt_idx := 14;
26951 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26952 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26953 l_rec_acct_attrs.array_char_value(1) := p_source_52;
26954 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26955 l_rec_acct_attrs.array_num_value(2) := p_source_54;
26956 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26957 l_rec_acct_attrs.array_char_value(3) := p_source_73;
26958 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26959 l_rec_acct_attrs.array_char_value(4) := p_source_74;
26960 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26961 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
26962 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26963 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
26964 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26965 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
26966 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26967 l_rec_acct_attrs.array_char_value(8) := p_source_60;
26968 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26969 l_rec_acct_attrs.array_num_value(9) := p_source_53;
26970 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26971 l_rec_acct_attrs.array_char_value(10) := p_source_12;
26972 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26973 l_rec_acct_attrs.array_date_value(11) := p_source_121;
26974 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26975 l_rec_acct_attrs.array_num_value(12) := p_source_122;
26976 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26977 l_rec_acct_attrs.array_char_value(13) := p_source_123;
26978 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26979 l_rec_acct_attrs.array_num_value(14) := p_source_21;
26980 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26981 l_rec_acct_attrs.array_char_value(15) := p_source_64;
26982 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26983 l_rec_acct_attrs.array_num_value(16) := p_source_65;
26984 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26985 l_rec_acct_attrs.array_num_value(17) := p_source_66;
26986 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26987 l_rec_acct_attrs.array_char_value(18) := p_source_67;
26988 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26992 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26989 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
26990 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26991 l_rec_acct_attrs.array_char_value(20) := p_source_60;
26993 l_rec_acct_attrs.array_num_value(21) := p_source_69;
26994 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26995 l_rec_acct_attrs.array_num_value(22) := p_source_77;
26996 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26997 l_rec_acct_attrs.array_num_value(23) := p_source_70;
26998
26999 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27000 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27001
27002 ---------------------------------------------------------------------------------------------------------------
27003 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27004 ---------------------------------------------------------------------------------------------------------------
27005 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27006
27007 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27008 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27009
27010 IF xla_accounting_cache_pkg.GetValueChar
27011 (p_source_code => 'LEDGER_CATEGORY_CODE'
27012 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27013 AND l_bflow_method_code = 'PRIOR_ENTRY'
27014 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27015 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27016 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27017 )
27018 THEN
27019 xla_ae_lines_pkg.BflowUpgEntry
27020 (p_business_method_code => l_bflow_method_code
27021 ,p_business_class_code => l_bflow_class_code
27022 ,p_balance_type => l_balance_type_code);
27023 ELSE
27024 NULL;
27025 XLA_AE_LINES_PKG.business_flow_validation(
27026 p_business_method_code => l_bflow_method_code
27027 ,p_business_class_code => l_bflow_class_code
27028 ,p_inherit_description_flag => l_inherit_desc_flag);
27029 END IF;
27030
27031 --
27032 -- call analytical criteria
27033 --
27034
27035 --
27036 -- call description
27037 --
27038 -- No description or it is inherited.
27039 --
27040 -- call ADRs
27041 -- Bug 4922099
27042 --
27043 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27044 (NVL(l_actual_upg_option, 'N') = 'O') OR
27045 (NVL(l_enc_upg_option, 'N') = 'O')
27046 )
27047 THEN
27048 NULL;
27049 --
27050 --
27051
27052 l_ccid := AcctDerRule_30(
27053 p_application_id => p_application_id
27054 , p_ae_header_id => l_ae_header_id
27055 , p_source_33 => p_source_33
27056 , x_transaction_coa_id => l_adr_transaction_coa_id
27057 , x_accounting_coa_id => l_adr_accounting_coa_id
27058 , x_value_type_code => l_adr_value_type_code
27059 , p_side => 'NA'
27060 );
27061
27062 xla_ae_lines_pkg.set_ccid(
27063 p_code_combination_id => l_ccid
27064 , p_value_type_code => l_adr_value_type_code
27065 , p_transaction_coa_id => l_adr_transaction_coa_id
27066 , p_accounting_coa_id => l_adr_accounting_coa_id
27067 , p_adr_code => 'AP_PMT_CASH_CLEAR'
27068 , p_adr_type_code => 'S'
27069 , p_component_type => l_component_type
27070 , p_component_code => l_component_code
27071 , p_component_type_code => l_component_type_code
27072 , p_component_appl_id => l_component_appl_id
27073 , p_amb_context_code => l_amb_context_code
27074 , p_side => 'NA'
27075 );
27076
27077
27078 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
27079 p_to_segment_code => 'GL_BALANCING'
27080 , p_segment_value => C_CHAR
27081 , p_from_segment_code => NULL
27082 , p_from_combination_id => NULL
27083 , p_value_type_code => NULL
27084 , p_transaction_coa_id => null
27085 , p_accounting_coa_id => null
27086 , p_flexfield_segment_code => NULL
27087 , p_flex_value_set_id => NULL
27088 , p_adr_code => NULL
27089 , p_adr_type_code => NULL
27090 , p_component_type => l_component_type
27091 , p_component_code => l_component_code
27092 , p_component_type_code => l_component_type_code
27093 , p_component_appl_id => l_component_appl_id
27094 , p_amb_context_code => l_amb_context_code
27095 , p_entity_code => 'AP_PAYMENTS'
27096 , p_event_class_code => 'REFUNDS'
27097 , p_side => 'NA'
27098 );
27099 --
27100
27101
27102 --
27103 --
27104 END IF;
27105 --
27109 ) AND
27106 -- Bug 4922099
27107 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27108 (NVL(l_enc_upg_option, 'N') = 'O')
27110 (l_bflow_method_code = 'PRIOR_ENTRY')
27111 )
27112 THEN
27113 IF
27114 --
27115 1 = 2
27116 --
27117 THEN
27118 xla_accounting_err_pkg.build_message
27119 (p_appli_s_name => 'XLA'
27120 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27121 ,p_token_1 => 'LINE_NUMBER'
27122 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27123 ,p_token_2 => 'LINE_TYPE_NAME'
27124 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27125 l_component_type
27126 ,l_component_code
27127 ,l_component_type_code
27128 ,l_component_appl_id
27129 ,l_amb_context_code
27130 ,l_entity_code
27131 ,l_event_class_code
27132 )
27133 ,p_token_3 => 'OWNER'
27134 ,p_value_3 => xla_lookups_pkg.get_meaning(
27135 p_lookup_type => 'XLA_OWNER_TYPE'
27136 ,p_lookup_code => l_component_type_code
27137 )
27138 ,p_token_4 => 'PRODUCT_NAME'
27139 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27140 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27141 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27142 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27143 ,p_ae_header_id => NULL
27144 );
27145
27146 IF (C_LEVEL_ERROR>= g_log_level) THEN
27147 trace
27148 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27149 ,p_level => C_LEVEL_ERROR
27150 ,p_module => l_log_module);
27151 END IF;
27152 END IF;
27153 END IF;
27154 --
27155 --
27156 ------------------------------------------------------------------------------------------------
27157 -- 4219869 Business Flow
27158 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27159 -- Prior Entry. Currently, the following code is always generated.
27160 ------------------------------------------------------------------------------------------------
27161 XLA_AE_LINES_PKG.ValidateCurrentLine;
27162
27163 ------------------------------------------------------------------------------------
27164 -- 4219869 Business Flow
27165 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27166 ------------------------------------------------------------------------------------
27167 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27168
27169 ----------------------------------------------------------------------------------
27170 -- 4219869 Business Flow
27171 -- Update journal entry status -- Need to generate this within IF <condition>
27172 ----------------------------------------------------------------------------------
27173 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27174 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27175 ,p_balance_type_code => l_balance_type_code
27176 );
27177
27178 -------------------------------------------------------------------------------------------
27179 -- 4262811 - Generate the Accrual Reversal lines
27180 -------------------------------------------------------------------------------------------
27181 BEGIN
27182 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27183 (g_array_event(p_event_id).array_value_num('header_index'));
27184 IF l_acc_rev_flag IS NULL THEN
27185 l_acc_rev_flag := 'N';
27186 END IF;
27187 EXCEPTION
27188 WHEN OTHERS THEN
27189 l_acc_rev_flag := 'N';
27190 END;
27191 --
27192 IF (l_acc_rev_flag = 'Y') THEN
27193
27194 -- 4645092 ------------------------------------------------------------------------------
27195 -- To allow MPA report to determine if it should generate report process
27196 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27197 ------------------------------------------------------------------------------------------
27201 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27198
27199 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27200 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27202 -- call ADRs
27203 -- Bug 4922099
27204 --
27205 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27206 (NVL(l_actual_upg_option, 'N') = 'O') OR
27207 (NVL(l_enc_upg_option, 'N') = 'O')
27208 )
27209 THEN
27210 NULL;
27211 --
27212 --
27213
27214 l_ccid := AcctDerRule_30(
27215 p_application_id => p_application_id
27216 , p_ae_header_id => l_ae_header_id
27217 , p_source_33 => p_source_33
27218 , x_transaction_coa_id => l_adr_transaction_coa_id
27219 , x_accounting_coa_id => l_adr_accounting_coa_id
27220 , x_value_type_code => l_adr_value_type_code
27221 , p_side => 'NA'
27222 );
27223
27224 xla_ae_lines_pkg.set_ccid(
27225 p_code_combination_id => l_ccid
27226 , p_value_type_code => l_adr_value_type_code
27227 , p_transaction_coa_id => l_adr_transaction_coa_id
27228 , p_accounting_coa_id => l_adr_accounting_coa_id
27229 , p_adr_code => 'AP_PMT_CASH_CLEAR'
27230 , p_adr_type_code => 'S'
27231 , p_component_type => l_component_type
27232 , p_component_code => l_component_code
27233 , p_component_type_code => l_component_type_code
27234 , p_component_appl_id => l_component_appl_id
27235 , p_amb_context_code => l_amb_context_code
27236 , p_side => 'NA'
27237 );
27238
27239
27240 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
27241 p_to_segment_code => 'GL_BALANCING'
27242 , p_segment_value => C_CHAR
27243 , p_from_segment_code => NULL
27244 , p_from_combination_id => NULL
27245 , p_value_type_code => NULL
27246 , p_transaction_coa_id => null
27247 , p_accounting_coa_id => null
27248 , p_flexfield_segment_code => NULL
27249 , p_flex_value_set_id => NULL
27250 , p_adr_code => NULL
27251 , p_adr_type_code => NULL
27252 , p_component_type => l_component_type
27253 , p_component_code => l_component_code
27254 , p_component_type_code => l_component_type_code
27255 , p_component_appl_id => l_component_appl_id
27256 , p_amb_context_code => l_amb_context_code
27257 , p_entity_code => 'AP_PAYMENTS'
27258 , p_event_class_code => 'REFUNDS'
27259 , p_side => 'NA'
27260 );
27261 --
27262
27263
27264 --
27265 --
27266 END IF;
27267
27268 --
27269 -- Update the line information that should be overwritten
27270 --
27271 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27272 p_header_num => 1);
27273 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27274
27275 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27276
27277 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27278 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27279 END IF;
27280
27281 --
27282 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27283 --
27284 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27285 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27286 ELSE
27287 ---------------------------------------------------------------------------------------------------
27288 -- 4262811a Switch Sign
27289 ---------------------------------------------------------------------------------------------------
27290 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27291 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27292 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27293 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27294 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27295 -- 5132302
27296 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27297 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27298
27299 END IF;
27300
27301 -- 4955764
27302 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27303 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27304
27305
27306 XLA_AE_LINES_PKG.ValidateCurrentLine;
27307 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27308
27309 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27313 END IF;
27310 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27311 ,p_balance_type_code => l_balance_type_code);
27312
27314
27315 -----------------------------------------------------------------------------------------
27316 -- 4262811 Multiperiod Accounting
27317 -----------------------------------------------------------------------------------------
27318 -- No MPA option is assigned.
27319
27320
27321 END IF;
27322 END IF;
27323 --
27324
27325 --
27326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27327 trace
27328 (p_msg => 'END of AcctLineType_67'
27329 ,p_level => C_LEVEL_PROCEDURE
27330 ,p_module => l_log_module);
27331 END IF;
27332 --
27333 EXCEPTION
27334 WHEN xla_exceptions_pkg.application_exception THEN
27335 RAISE;
27336 WHEN OTHERS THEN
27337 xla_exceptions_pkg.raise_message
27338 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_67');
27339 END AcctLineType_67;
27340 --
27341
27342 ---------------------------------------
27343 --
27344 -- PRIVATE FUNCTION
27345 -- AcctLineType_68
27346 --
27347 ---------------------------------------
27348 PROCEDURE AcctLineType_68 (
27349 p_application_id IN NUMBER
27350 ,p_event_id IN NUMBER
27351 ,p_calculate_acctd_flag IN VARCHAR2
27352 ,p_calculate_g_l_flag IN VARCHAR2
27353 ,p_actual_flag IN OUT VARCHAR2
27354 ,p_balance_type_code OUT VARCHAR2
27355 ,p_gain_or_loss_ref OUT VARCHAR2
27356
27357 --Payment Currency Code
27358 , p_source_12 IN VARCHAR2
27359 --Bank Cash Account
27360 , p_source_13 IN NUMBER
27361 --Payment Distribution (Payment Rate) Ledger Amount
27362 , p_source_21 IN NUMBER
27363 --Automatic Offsets Flag
27364 , p_source_42 IN VARCHAR2
27365 , p_source_42_meaning IN VARCHAR2
27366 --When to Account for Payment Option
27367 , p_source_50 IN VARCHAR2
27368 --Payment Distribution Type
27369 , p_source_51 IN VARCHAR2
27370 , p_source_51_meaning IN VARCHAR2
27371 --Accounting Reversal Indicator
27372 , p_source_52 IN VARCHAR2
27373 --Payment Distribution Amount
27374 , p_source_53 IN NUMBER
27375 --Business Flow Accounts Payable Application Identifier
27376 , p_source_54 IN NUMBER
27377 --Payment Distribution Identifier
27378 , p_source_59 IN NUMBER
27379 --Distribution Link Type
27380 , p_source_60 IN VARCHAR2
27381 --Override Accounted Amount Indicator
27382 , p_source_64 IN VARCHAR2
27383 , p_source_64_meaning IN VARCHAR2
27384 --Payment Supplier Identifier
27385 , p_source_65 IN NUMBER
27386 --Payment Supplier Site Identifier
27387 , p_source_66 IN NUMBER
27388 --Third Party Type
27389 , p_source_67 IN VARCHAR2
27390 --Payment Distribution Reversed Identifier
27391 , p_source_68 IN NUMBER
27392 --Invoice Distribution Tax Line Identifier
27393 , p_source_69 IN NUMBER
27394 --Invoice Distribution Summary Tax Line Identifier
27395 , p_source_70 IN NUMBER
27396 --Payment Type
27397 , p_source_71 IN VARCHAR2
27398 , p_source_71_meaning IN VARCHAR2
27399 --Invoice Distribution Amount of the Payment Distribution
27400 , p_source_72 IN NUMBER
27401 --Business Flow Invoice Distribution Type
27402 , p_source_73 IN VARCHAR2
27403 --Business Flow Invoice Entity Code
27404 , p_source_74 IN VARCHAR2
27405 --Business Flow Invoice Distribution Identifier
27406 , p_source_75 IN NUMBER
27407 --Business Flow Invoice Identifier
27408 , p_source_76 IN NUMBER
27409 --Invoice Distribution Tax Distribution Identifier from Tax
27410 , p_source_77 IN NUMBER
27411 --Pooled Bank Account Option
27412 , p_source_117 IN VARCHAR2
27413 , p_source_117_meaning IN VARCHAR2
27414 --Payment Maturity Date
27415 , p_source_118 IN DATE
27416 --Payment Processing Type
27417 , p_source_120 IN VARCHAR2
27418 --Payment Exchange Date
27419 , p_source_121 IN DATE
27420 --Payment Exchange Rate
27421 , p_source_122 IN NUMBER
27422 --Payment Exchange Rate Type
27423 , p_source_123 IN VARCHAR2
27424 )
27425 IS
27426
27427 l_component_type VARCHAR2(80);
27428 l_component_code VARCHAR2(30);
27429 l_component_type_code VARCHAR2(1);
27430 l_component_appl_id INTEGER;
27431 l_amb_context_code VARCHAR2(30);
27432 l_entity_code VARCHAR2(30);
27433 l_event_class_code VARCHAR2(30);
27434 l_ae_header_id NUMBER;
27435 l_event_type_code VARCHAR2(30);
27436 l_line_definition_code VARCHAR2(30);
27437 l_line_definition_owner_code VARCHAR2(1);
27438 --
27439 -- adr variables
27440 l_segment VARCHAR2(30);
27441 l_ccid NUMBER;
27442 l_adr_transaction_coa_id NUMBER;
27443 l_adr_accounting_coa_id NUMBER;
27444 l_adr_flexfield_segment_code VARCHAR2(30);
27445 l_adr_flex_value_set_id NUMBER;
27446 l_adr_value_type_code VARCHAR2(30);
27447 l_adr_value_combination_id NUMBER;
27448 l_adr_value_segment_code VARCHAR2(30);
27449
27453 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27450 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27451 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27452 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27454
27455 -- 4262811 Variables ------------------------------------------------------------------------------------------
27456 l_entered_amt_idx NUMBER;
27457 l_accted_amt_idx NUMBER;
27458 l_acc_rev_flag VARCHAR2(1);
27459 l_accrual_line_num NUMBER;
27460 l_tmp_amt NUMBER;
27461 l_acc_rev_natural_side_code VARCHAR2(1);
27462
27463 l_num_entries NUMBER;
27464 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27465 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27466 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27467 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27468 l_recog_line_1 NUMBER;
27469 l_recog_line_2 NUMBER;
27470
27471 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27472 l_bflow_applied_to_amt NUMBER; -- 5132302
27473 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27474
27475 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27476
27477 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27478 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27479
27480 ---------------------------------------------------------------------------------------------------------------
27481
27482
27483 --
27484 -- bulk performance
27485 --
27486 l_balance_type_code VARCHAR2(1);
27487 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27488 l_log_module VARCHAR2(240);
27489
27490 --
27491 -- Upgrade strategy
27492 --
27493 l_actual_upg_option VARCHAR2(1);
27494 l_enc_upg_option VARCHAR2(1);
27495
27496 --
27497 BEGIN
27498 --
27499 IF g_log_enabled THEN
27500 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
27501 END IF;
27502 --
27503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27504
27505 trace
27506 (p_msg => 'BEGIN of AcctLineType_68'
27507 ,p_level => C_LEVEL_PROCEDURE
27508 ,p_module => l_log_module);
27509
27510 END IF;
27511 --
27512 l_component_type := 'AMB_JLT';
27513 l_component_code := 'AP_CASH_PMT';
27514 l_component_type_code := 'S';
27515 l_component_appl_id := 200;
27516 l_amb_context_code := 'DEFAULT';
27517 l_entity_code := 'AP_PAYMENTS';
27518 l_event_class_code := 'PAYMENTS';
27519 l_event_type_code := 'PAYMENTS_ALL';
27520 l_line_definition_owner_code := 'S';
27521 l_line_definition_code := 'CASH_PAYMENTS_ALL';
27522 --
27523 l_balance_type_code := 'A';
27524 l_segment := NULL;
27525 l_ccid := NULL;
27526 l_adr_transaction_coa_id := NULL;
27527 l_adr_accounting_coa_id := NULL;
27528 l_adr_flexfield_segment_code := NULL;
27529 l_adr_flex_value_set_id := NULL;
27530 l_adr_value_type_code := NULL;
27531 l_adr_value_combination_id := NULL;
27532 l_adr_value_segment_code := NULL;
27533
27534 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27535 l_bflow_class_code := ''; -- 4219869 Business Flow
27536 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27537 l_budgetary_control_flag := 'N';
27538
27539 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27540 l_bflow_applied_to_amt := NULL; -- 5132302
27541 l_entered_amt_idx := NULL; -- 4262811
27542 l_accted_amt_idx := NULL; -- 4262811
27543 l_acc_rev_flag := NULL; -- 4262811
27544 l_accrual_line_num := NULL; -- 4262811
27545 l_tmp_amt := NULL; -- 4262811
27546 --
27547
27548 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27549 l_balance_type_code <> 'B' THEN
27550 IF NVL(p_source_50,'
27551 ') = 'ISSUE_ISSUE' AND
27552 (NVL(p_source_42,'
27553 ') <> 'Y' OR
27554 NVL(p_source_42,'
27555 ') = 'Y' AND
27556 NVL(p_source_117,'
27557 ') <> 'Y') AND
27558 p_source_118 IS NULL AND
27559 NVL(p_source_51,'
27560 ') = 'CASH' AND
27561 NVL(p_source_71,'
27562 ') <> 'R' AND
27563 NVL(p_source_120,'
27564 ') <> 'PAYMENTCARD'
27565 THEN
27566
27567 --
27568 XLA_AE_LINES_PKG.SetNewLine;
27569
27570 p_balance_type_code := l_balance_type_code;
27571 -- set the flag so later we will know whether the gain loss line needs to be created
27572
27573 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27574 p_actual_flag :='A';
27575 END IF;
27576
27577 --
27578 -- bulk performance
27579 --
27580 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27581 p_header_num => 0); -- 4262811
27582 --
27583 -- set accounting line options
27584 --
27585 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27589 , p_acct_entry_type_code => 'A'
27586 p_natural_side_code => 'C'
27587 , p_gain_or_loss_flag => 'N'
27588 , p_gl_transfer_mode_code => 'S'
27590 , p_switch_side_flag => 'Y'
27591 , p_merge_duplicate_code => 'A'
27592 );
27593 --
27594 l_acc_rev_natural_side_code := 'D'; -- 4262811
27595 --
27596 --
27597 -- set accounting line type info
27598 --
27599 xla_ae_lines_pkg.SetAcctLineType
27600 (p_component_type => l_component_type
27601 ,p_event_type_code => l_event_type_code
27602 ,p_line_definition_owner_code => l_line_definition_owner_code
27603 ,p_line_definition_code => l_line_definition_code
27604 ,p_accounting_line_code => l_component_code
27605 ,p_accounting_line_type_code => l_component_type_code
27606 ,p_accounting_line_appl_id => l_component_appl_id
27607 ,p_amb_context_code => l_amb_context_code
27608 ,p_entity_code => l_entity_code
27609 ,p_event_class_code => l_event_class_code);
27610 --
27611 -- set accounting class
27612 --
27613 xla_ae_lines_pkg.SetAcctClass(
27614 p_accounting_class_code => 'CASH'
27615 , p_ae_header_id => l_ae_header_id
27616 );
27617
27618 --
27619 -- set rounding class
27620 --
27621 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27622 'CASH';
27623
27624 --
27625 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27626 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27627 --
27628 -- bulk performance
27629 --
27630 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27631
27632 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27633 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27634
27635 -- 4955764
27636 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27637 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27638
27639 -- 4458381 Public Sector Enh
27640
27641 --
27642 -- set accounting attributes for the line type
27643 --
27644 l_entered_amt_idx := 10;
27645 l_accted_amt_idx := 15;
27646 l_bflow_applied_to_amt_idx := 2; -- 5132302
27647 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27648 l_rec_acct_attrs.array_char_value(1) := p_source_52;
27649 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27650 l_rec_acct_attrs.array_num_value(2) := p_source_72;
27651 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27652 l_rec_acct_attrs.array_num_value(3) := p_source_54;
27653 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27654 l_rec_acct_attrs.array_char_value(4) := p_source_73;
27655 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27656 l_rec_acct_attrs.array_char_value(5) := p_source_74;
27657 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27658 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
27659 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27660 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
27661 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27662 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
27663 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27664 l_rec_acct_attrs.array_char_value(9) := p_source_60;
27665 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27666 l_rec_acct_attrs.array_num_value(10) := p_source_53;
27667 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27668 l_rec_acct_attrs.array_char_value(11) := p_source_12;
27669 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27670 l_rec_acct_attrs.array_date_value(12) := p_source_121;
27671 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27672 l_rec_acct_attrs.array_num_value(13) := p_source_122;
27673 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27674 l_rec_acct_attrs.array_char_value(14) := p_source_123;
27675 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27676 l_rec_acct_attrs.array_num_value(15) := p_source_21;
27677 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27678 l_rec_acct_attrs.array_char_value(16) := p_source_64;
27679 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27680 l_rec_acct_attrs.array_num_value(17) := p_source_65;
27681 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27682 l_rec_acct_attrs.array_num_value(18) := p_source_66;
27683 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27684 l_rec_acct_attrs.array_char_value(19) := p_source_67;
27685 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27686 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
27687 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27691 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27688 l_rec_acct_attrs.array_char_value(21) := p_source_60;
27689 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27690 l_rec_acct_attrs.array_num_value(22) := p_source_69;
27692 l_rec_acct_attrs.array_num_value(23) := p_source_77;
27693 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27694 l_rec_acct_attrs.array_num_value(24) := p_source_70;
27695
27696 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27697 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27698
27699 ---------------------------------------------------------------------------------------------------------------
27700 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27701 ---------------------------------------------------------------------------------------------------------------
27702 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27703
27704 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27705 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27706
27707 IF xla_accounting_cache_pkg.GetValueChar
27708 (p_source_code => 'LEDGER_CATEGORY_CODE'
27709 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27710 AND l_bflow_method_code = 'PRIOR_ENTRY'
27711 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27712 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27713 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27714 )
27715 THEN
27716 xla_ae_lines_pkg.BflowUpgEntry
27717 (p_business_method_code => l_bflow_method_code
27718 ,p_business_class_code => l_bflow_class_code
27719 ,p_balance_type => l_balance_type_code);
27720 ELSE
27721 NULL;
27722 -- No business flow processing for business flow method of NONE.
27723 END IF;
27724
27725 --
27726 -- call analytical criteria
27727 --
27728
27729 --
27730 -- call description
27731 --
27732 -- No description or it is inherited.
27733 --
27734 -- call ADRs
27735 -- Bug 4922099
27736 --
27737 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27738 (NVL(l_actual_upg_option, 'N') = 'O') OR
27739 (NVL(l_enc_upg_option, 'N') = 'O')
27740 )
27741 THEN
27742 NULL;
27743 --
27744 --
27745
27746 l_ccid := AcctDerRule_22(
27747 p_application_id => p_application_id
27748 , p_ae_header_id => l_ae_header_id
27749 , p_source_13 => p_source_13
27750 , x_transaction_coa_id => l_adr_transaction_coa_id
27751 , x_accounting_coa_id => l_adr_accounting_coa_id
27752 , x_value_type_code => l_adr_value_type_code
27753 , p_side => 'NA'
27754 );
27755
27756 xla_ae_lines_pkg.set_ccid(
27757 p_code_combination_id => l_ccid
27758 , p_value_type_code => l_adr_value_type_code
27759 , p_transaction_coa_id => l_adr_transaction_coa_id
27760 , p_accounting_coa_id => l_adr_accounting_coa_id
27761 , p_adr_code => 'AP_CASH'
27762 , p_adr_type_code => 'S'
27763 , p_component_type => l_component_type
27764 , p_component_code => l_component_code
27765 , p_component_type_code => l_component_type_code
27766 , p_component_appl_id => l_component_appl_id
27767 , p_amb_context_code => l_amb_context_code
27768 , p_side => 'NA'
27769 );
27770
27771
27772 --
27773 --
27774 END IF;
27775 --
27776 -- Bug 4922099
27777 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27778 (NVL(l_enc_upg_option, 'N') = 'O')
27779 ) AND
27780 (l_bflow_method_code = 'PRIOR_ENTRY')
27781 )
27782 THEN
27783 IF
27784 --
27785 1 = 2
27786 --
27787 THEN
27788 xla_accounting_err_pkg.build_message
27789 (p_appli_s_name => 'XLA'
27790 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27791 ,p_token_1 => 'LINE_NUMBER'
27792 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27793 ,p_token_2 => 'LINE_TYPE_NAME'
27794 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27795 l_component_type
27796 ,l_component_code
27797 ,l_component_type_code
27798 ,l_component_appl_id
27799 ,l_amb_context_code
27800 ,l_entity_code
27804 ,p_value_3 => xla_lookups_pkg.get_meaning(
27801 ,l_event_class_code
27802 )
27803 ,p_token_3 => 'OWNER'
27805 p_lookup_type => 'XLA_OWNER_TYPE'
27806 ,p_lookup_code => l_component_type_code
27807 )
27808 ,p_token_4 => 'PRODUCT_NAME'
27809 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27810 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27811 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27812 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27813 ,p_ae_header_id => NULL
27814 );
27815
27816 IF (C_LEVEL_ERROR>= g_log_level) THEN
27817 trace
27818 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27819 ,p_level => C_LEVEL_ERROR
27820 ,p_module => l_log_module);
27821 END IF;
27822 END IF;
27823 END IF;
27824 --
27825 --
27826 ------------------------------------------------------------------------------------------------
27827 -- 4219869 Business Flow
27828 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27829 -- Prior Entry. Currently, the following code is always generated.
27830 ------------------------------------------------------------------------------------------------
27831 XLA_AE_LINES_PKG.ValidateCurrentLine;
27832
27833 ------------------------------------------------------------------------------------
27834 -- 4219869 Business Flow
27835 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27836 ------------------------------------------------------------------------------------
27837 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27838
27839 ----------------------------------------------------------------------------------
27840 -- 4219869 Business Flow
27841 -- Update journal entry status -- Need to generate this within IF <condition>
27842 ----------------------------------------------------------------------------------
27843 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27844 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27845 ,p_balance_type_code => l_balance_type_code
27846 );
27847
27848 -------------------------------------------------------------------------------------------
27849 -- 4262811 - Generate the Accrual Reversal lines
27850 -------------------------------------------------------------------------------------------
27851 BEGIN
27852 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27853 (g_array_event(p_event_id).array_value_num('header_index'));
27854 IF l_acc_rev_flag IS NULL THEN
27855 l_acc_rev_flag := 'N';
27856 END IF;
27857 EXCEPTION
27858 WHEN OTHERS THEN
27859 l_acc_rev_flag := 'N';
27860 END;
27861 --
27862 IF (l_acc_rev_flag = 'Y') THEN
27863
27864 -- 4645092 ------------------------------------------------------------------------------
27865 -- To allow MPA report to determine if it should generate report process
27866 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27867 ------------------------------------------------------------------------------------------
27868
27869 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27870 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27871 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27872 -- call ADRs
27873 -- Bug 4922099
27874 --
27875 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27876 (NVL(l_actual_upg_option, 'N') = 'O') OR
27877 (NVL(l_enc_upg_option, 'N') = 'O')
27878 )
27879 THEN
27880 NULL;
27881 --
27882 --
27883
27884 l_ccid := AcctDerRule_22(
27885 p_application_id => p_application_id
27886 , p_ae_header_id => l_ae_header_id
27887 , p_source_13 => p_source_13
27888 , x_transaction_coa_id => l_adr_transaction_coa_id
27889 , x_accounting_coa_id => l_adr_accounting_coa_id
27890 , x_value_type_code => l_adr_value_type_code
27891 , p_side => 'NA'
27892 );
27893
27894 xla_ae_lines_pkg.set_ccid(
27895 p_code_combination_id => l_ccid
27896 , p_value_type_code => l_adr_value_type_code
27897 , p_transaction_coa_id => l_adr_transaction_coa_id
27898 , p_accounting_coa_id => l_adr_accounting_coa_id
27899 , p_adr_code => 'AP_CASH'
27900 , p_adr_type_code => 'S'
27901 , p_component_type => l_component_type
27902 , p_component_code => l_component_code
27906 , p_side => 'NA'
27903 , p_component_type_code => l_component_type_code
27904 , p_component_appl_id => l_component_appl_id
27905 , p_amb_context_code => l_amb_context_code
27907 );
27908
27909
27910 --
27911 --
27912 END IF;
27913
27914 --
27915 -- Update the line information that should be overwritten
27916 --
27917 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27918 p_header_num => 1);
27919 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27920
27921 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27922
27923 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27924 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27925 END IF;
27926
27927 --
27928 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27929 --
27930 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27931 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27932 ELSE
27933 ---------------------------------------------------------------------------------------------------
27934 -- 4262811a Switch Sign
27935 ---------------------------------------------------------------------------------------------------
27936 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27939 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27941 -- 5132302
27942 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27944
27945 END IF;
27946
27947 -- 4955764
27948 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27949 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27950
27951
27952 XLA_AE_LINES_PKG.ValidateCurrentLine;
27953 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27954
27955 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27956 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27957 ,p_balance_type_code => l_balance_type_code);
27958
27959 END IF;
27960
27961 -----------------------------------------------------------------------------------------
27962 -- 4262811 Multiperiod Accounting
27963 -----------------------------------------------------------------------------------------
27964 -- No MPA option is assigned.
27965
27966
27967 END IF;
27968 END IF;
27969 --
27970
27971 --
27972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27973 trace
27974 (p_msg => 'END of AcctLineType_68'
27975 ,p_level => C_LEVEL_PROCEDURE
27976 ,p_module => l_log_module);
27977 END IF;
27978 --
27979 EXCEPTION
27980 WHEN xla_exceptions_pkg.application_exception THEN
27981 RAISE;
27982 WHEN OTHERS THEN
27983 xla_exceptions_pkg.raise_message
27984 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_68');
27985 END AcctLineType_68;
27986 --
27987
27988 ---------------------------------------
27989 --
27990 -- PRIVATE FUNCTION
27991 -- AcctLineType_69
27992 --
27993 ---------------------------------------
27994 PROCEDURE AcctLineType_69 (
27995 p_application_id IN NUMBER
27996 ,p_event_id IN NUMBER
27997 ,p_calculate_acctd_flag IN VARCHAR2
27998 ,p_calculate_g_l_flag IN VARCHAR2
27999 ,p_actual_flag IN OUT VARCHAR2
28000 ,p_balance_type_code OUT VARCHAR2
28001 ,p_gain_or_loss_ref OUT VARCHAR2
28002
28003 --Payment Currency Code
28004 , p_source_12 IN VARCHAR2
28005 --Bank Cash Account
28006 , p_source_13 IN NUMBER
28007 --Automatic Offsets Value
28008 , p_source_16 IN VARCHAR2
28009 , p_source_16_meaning IN VARCHAR2
28010 --Payment Distribution (Payment Rate) Ledger Amount
28011 , p_source_21 IN NUMBER
28012 --When to Account for Payment Option
28013 , p_source_50 IN VARCHAR2
28014 --Payment Distribution Type
28015 , p_source_51 IN VARCHAR2
28016 , p_source_51_meaning IN VARCHAR2
28017 --Accounting Reversal Indicator
28018 , p_source_52 IN VARCHAR2
28019 --Payment Distribution Amount
28020 , p_source_53 IN NUMBER
28021 --Business Flow Accounts Payable Application Identifier
28022 , p_source_54 IN NUMBER
28023 --Payment Distribution Identifier
28024 , p_source_59 IN NUMBER
28025 --Distribution Link Type
28026 , p_source_60 IN VARCHAR2
28027 --Override Accounted Amount Indicator
28028 , p_source_64 IN VARCHAR2
28032 --Payment Supplier Site Identifier
28029 , p_source_64_meaning IN VARCHAR2
28030 --Payment Supplier Identifier
28031 , p_source_65 IN NUMBER
28033 , p_source_66 IN NUMBER
28034 --Third Party Type
28035 , p_source_67 IN VARCHAR2
28036 --Payment Distribution Reversed Identifier
28037 , p_source_68 IN NUMBER
28038 --Invoice Distribution Tax Line Identifier
28039 , p_source_69 IN NUMBER
28040 --Invoice Distribution Summary Tax Line Identifier
28041 , p_source_70 IN NUMBER
28042 --Payment Type
28043 , p_source_71 IN VARCHAR2
28044 , p_source_71_meaning IN VARCHAR2
28045 --Invoice Distribution Amount of the Payment Distribution
28046 , p_source_72 IN NUMBER
28047 --Business Flow Invoice Distribution Type
28048 , p_source_73 IN VARCHAR2
28049 --Business Flow Invoice Entity Code
28050 , p_source_74 IN VARCHAR2
28051 --Business Flow Invoice Distribution Identifier
28052 , p_source_75 IN NUMBER
28053 --Business Flow Invoice Identifier
28054 , p_source_76 IN NUMBER
28055 --Invoice Distribution Tax Distribution Identifier from Tax
28056 , p_source_77 IN NUMBER
28057 --Pooled Bank Account Option
28058 , p_source_117 IN VARCHAR2
28059 , p_source_117_meaning IN VARCHAR2
28060 --Payment Maturity Date
28061 , p_source_118 IN DATE
28062 --Payment Processing Type
28063 , p_source_120 IN VARCHAR2
28064 --Payment Exchange Date
28065 , p_source_121 IN DATE
28066 --Payment Exchange Rate
28067 , p_source_122 IN NUMBER
28068 --Payment Exchange Rate Type
28069 , p_source_123 IN VARCHAR2
28070 )
28071 IS
28072
28073 l_component_type VARCHAR2(80);
28074 l_component_code VARCHAR2(30);
28075 l_component_type_code VARCHAR2(1);
28076 l_component_appl_id INTEGER;
28077 l_amb_context_code VARCHAR2(30);
28078 l_entity_code VARCHAR2(30);
28079 l_event_class_code VARCHAR2(30);
28080 l_ae_header_id NUMBER;
28081 l_event_type_code VARCHAR2(30);
28082 l_line_definition_code VARCHAR2(30);
28083 l_line_definition_owner_code VARCHAR2(1);
28084 --
28085 -- adr variables
28086 l_segment VARCHAR2(30);
28087 l_ccid NUMBER;
28088 l_adr_transaction_coa_id NUMBER;
28089 l_adr_accounting_coa_id NUMBER;
28090 l_adr_flexfield_segment_code VARCHAR2(30);
28091 l_adr_flex_value_set_id NUMBER;
28092 l_adr_value_type_code VARCHAR2(30);
28093 l_adr_value_combination_id NUMBER;
28094 l_adr_value_segment_code VARCHAR2(30);
28095
28096 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28097 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28098 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28099 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28100
28101 -- 4262811 Variables ------------------------------------------------------------------------------------------
28102 l_entered_amt_idx NUMBER;
28103 l_accted_amt_idx NUMBER;
28104 l_acc_rev_flag VARCHAR2(1);
28105 l_accrual_line_num NUMBER;
28106 l_tmp_amt NUMBER;
28107 l_acc_rev_natural_side_code VARCHAR2(1);
28108
28109 l_num_entries NUMBER;
28110 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28111 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28112 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28113 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28114 l_recog_line_1 NUMBER;
28115 l_recog_line_2 NUMBER;
28116
28117 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28118 l_bflow_applied_to_amt NUMBER; -- 5132302
28119 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28120
28121 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28122
28123 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28124 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28125
28126 ---------------------------------------------------------------------------------------------------------------
28127
28128
28129 --
28130 -- bulk performance
28131 --
28132 l_balance_type_code VARCHAR2(1);
28133 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28134 l_log_module VARCHAR2(240);
28135
28136 --
28137 -- Upgrade strategy
28138 --
28139 l_actual_upg_option VARCHAR2(1);
28140 l_enc_upg_option VARCHAR2(1);
28141
28142 --
28143 BEGIN
28144 --
28145 IF g_log_enabled THEN
28146 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
28147 END IF;
28148 --
28149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28150
28151 trace
28152 (p_msg => 'BEGIN of AcctLineType_69'
28153 ,p_level => C_LEVEL_PROCEDURE
28154 ,p_module => l_log_module);
28155
28156 END IF;
28157 --
28158 l_component_type := 'AMB_JLT';
28159 l_component_code := 'AP_CASH_PMT_AOS_AS';
28160 l_component_type_code := 'S';
28164 l_event_class_code := 'PAYMENTS';
28161 l_component_appl_id := 200;
28162 l_amb_context_code := 'DEFAULT';
28163 l_entity_code := 'AP_PAYMENTS';
28165 l_event_type_code := 'PAYMENTS_ALL';
28166 l_line_definition_owner_code := 'S';
28167 l_line_definition_code := 'CASH_PAYMENTS_ALL';
28168 --
28169 l_balance_type_code := 'A';
28170 l_segment := NULL;
28171 l_ccid := NULL;
28172 l_adr_transaction_coa_id := NULL;
28173 l_adr_accounting_coa_id := NULL;
28174 l_adr_flexfield_segment_code := NULL;
28175 l_adr_flex_value_set_id := NULL;
28176 l_adr_value_type_code := NULL;
28177 l_adr_value_combination_id := NULL;
28178 l_adr_value_segment_code := NULL;
28179
28180 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
28181 l_bflow_class_code := ''; -- 4219869 Business Flow
28182 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28183 l_budgetary_control_flag := 'N';
28184
28185 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28186 l_bflow_applied_to_amt := NULL; -- 5132302
28187 l_entered_amt_idx := NULL; -- 4262811
28188 l_accted_amt_idx := NULL; -- 4262811
28189 l_acc_rev_flag := NULL; -- 4262811
28190 l_accrual_line_num := NULL; -- 4262811
28191 l_tmp_amt := NULL; -- 4262811
28192 --
28193
28194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28195 l_balance_type_code <> 'B' THEN
28196 IF NVL(p_source_50,'
28197 ') = 'ISSUE_ISSUE' AND
28198 (NVL(p_source_117,'
28199 ') = 'Y' AND
28200 NVL(p_source_16,'
28201 ') = 'ACCOUNT_SEGMENT_VALUE') AND
28202 p_source_118 IS NULL AND
28203 NVL(p_source_51,'
28204 ') = 'CASH' AND
28205 NVL(p_source_71,'
28206 ') <> 'R' AND
28207 NVL(p_source_120,'
28208 ') <> 'PAYMENTCARD'
28209 THEN
28210
28211 --
28212 XLA_AE_LINES_PKG.SetNewLine;
28213
28214 p_balance_type_code := l_balance_type_code;
28215 -- set the flag so later we will know whether the gain loss line needs to be created
28216
28217 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28218 p_actual_flag :='A';
28219 END IF;
28220
28221 --
28222 -- bulk performance
28223 --
28224 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28225 p_header_num => 0); -- 4262811
28226 --
28227 -- set accounting line options
28228 --
28229 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28230 p_natural_side_code => 'C'
28231 , p_gain_or_loss_flag => 'N'
28232 , p_gl_transfer_mode_code => 'S'
28233 , p_acct_entry_type_code => 'A'
28234 , p_switch_side_flag => 'Y'
28235 , p_merge_duplicate_code => 'A'
28236 );
28237 --
28238 l_acc_rev_natural_side_code := 'D'; -- 4262811
28239 --
28240 --
28241 -- set accounting line type info
28242 --
28243 xla_ae_lines_pkg.SetAcctLineType
28244 (p_component_type => l_component_type
28245 ,p_event_type_code => l_event_type_code
28246 ,p_line_definition_owner_code => l_line_definition_owner_code
28247 ,p_line_definition_code => l_line_definition_code
28248 ,p_accounting_line_code => l_component_code
28249 ,p_accounting_line_type_code => l_component_type_code
28250 ,p_accounting_line_appl_id => l_component_appl_id
28251 ,p_amb_context_code => l_amb_context_code
28252 ,p_entity_code => l_entity_code
28253 ,p_event_class_code => l_event_class_code);
28254 --
28255 -- set accounting class
28256 --
28257 xla_ae_lines_pkg.SetAcctClass(
28258 p_accounting_class_code => 'CASH'
28259 , p_ae_header_id => l_ae_header_id
28260 );
28261
28262 --
28263 -- set rounding class
28264 --
28265 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28266 'CASH';
28267
28268 --
28269 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28270 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28271 --
28272 -- bulk performance
28273 --
28274 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28275
28276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28277 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28278
28279 -- 4955764
28280 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28281 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28282
28283 -- 4458381 Public Sector Enh
28284
28285 --
28286 -- set accounting attributes for the line type
28287 --
28288 l_entered_amt_idx := 10;
28289 l_accted_amt_idx := 15;
28290 l_bflow_applied_to_amt_idx := 2; -- 5132302
28294 l_rec_acct_attrs.array_num_value(2) := p_source_72;
28291 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28292 l_rec_acct_attrs.array_char_value(1) := p_source_52;
28293 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28295 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28296 l_rec_acct_attrs.array_num_value(3) := p_source_54;
28297 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28298 l_rec_acct_attrs.array_char_value(4) := p_source_73;
28299 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28300 l_rec_acct_attrs.array_char_value(5) := p_source_74;
28301 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28302 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
28303 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28304 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
28305 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28306 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
28307 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28308 l_rec_acct_attrs.array_char_value(9) := p_source_60;
28309 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28310 l_rec_acct_attrs.array_num_value(10) := p_source_53;
28311 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28312 l_rec_acct_attrs.array_char_value(11) := p_source_12;
28313 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28314 l_rec_acct_attrs.array_date_value(12) := p_source_121;
28315 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28316 l_rec_acct_attrs.array_num_value(13) := p_source_122;
28317 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28318 l_rec_acct_attrs.array_char_value(14) := p_source_123;
28319 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28320 l_rec_acct_attrs.array_num_value(15) := p_source_21;
28321 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28322 l_rec_acct_attrs.array_char_value(16) := p_source_64;
28323 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28324 l_rec_acct_attrs.array_num_value(17) := p_source_65;
28325 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28326 l_rec_acct_attrs.array_num_value(18) := p_source_66;
28327 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28328 l_rec_acct_attrs.array_char_value(19) := p_source_67;
28329 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28330 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
28331 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28332 l_rec_acct_attrs.array_char_value(21) := p_source_60;
28333 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28334 l_rec_acct_attrs.array_num_value(22) := p_source_69;
28335 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28336 l_rec_acct_attrs.array_num_value(23) := p_source_77;
28337 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28338 l_rec_acct_attrs.array_num_value(24) := p_source_70;
28339
28340 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28341 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28342
28343 ---------------------------------------------------------------------------------------------------------------
28344 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28345 ---------------------------------------------------------------------------------------------------------------
28346 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28347
28348 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28349 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28350
28351 IF xla_accounting_cache_pkg.GetValueChar
28352 (p_source_code => 'LEDGER_CATEGORY_CODE'
28353 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28354 AND l_bflow_method_code = 'PRIOR_ENTRY'
28355 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28356 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28357 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28358 )
28359 THEN
28360 xla_ae_lines_pkg.BflowUpgEntry
28361 (p_business_method_code => l_bflow_method_code
28362 ,p_business_class_code => l_bflow_class_code
28363 ,p_balance_type => l_balance_type_code);
28364 ELSE
28365 NULL;
28366 XLA_AE_LINES_PKG.business_flow_validation(
28367 p_business_method_code => l_bflow_method_code
28368 ,p_business_class_code => l_bflow_class_code
28369 ,p_inherit_description_flag => l_inherit_desc_flag);
28370 END IF;
28371
28372 --
28373 -- call analytical criteria
28374 --
28375
28376 --
28377 -- call description
28378 --
28379 -- No description or it is inherited.
28380 --
28381 -- call ADRs
28382 -- Bug 4922099
28383 --
28387 )
28384 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28385 (NVL(l_actual_upg_option, 'N') = 'O') OR
28386 (NVL(l_enc_upg_option, 'N') = 'O')
28388 THEN
28389 NULL;
28390 --
28391 --
28392
28393 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
28394 p_code_combination_id => TO_NUMBER(C_NUM)
28395 , p_value_type_code => NULL
28396 , p_transaction_coa_id => null
28397 , p_accounting_coa_id => null
28398 , p_adr_code => NULL
28399 , p_adr_type_code => NULL
28400 , p_component_type => l_component_type
28401 , p_component_code => l_component_code
28402 , p_component_type_code => l_component_type_code
28403 , p_component_appl_id => l_component_appl_id
28404 , p_amb_context_code => l_amb_context_code
28405 , p_side => NULL
28406 );
28407
28408
28409 -- initialise segments
28410 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28411 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28412 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28413 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28414 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28415 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28416 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28417 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28418 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28419 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28420 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28421 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28422 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28423 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28424 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28425 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28426 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28427 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28428 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28429 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28430 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28431 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28432 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28433 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28434 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28435 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28436 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28437 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28438 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28439 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28440 --
28441
28442 --
28443
28444
28445 l_segment := AcctDerRule_3(
28446 p_application_id => p_application_id
28447 , p_ae_header_id => l_ae_header_id
28448 , p_source_13 => p_source_13
28449 , x_transaction_coa_id => l_adr_transaction_coa_id
28450 , x_accounting_coa_id => l_adr_accounting_coa_id
28451 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28452 , x_flex_value_set_id => l_adr_flex_value_set_id
28453 , x_value_type_code => l_adr_value_type_code
28454 , x_value_combination_id => l_adr_value_combination_id
28455 , x_value_segment_code => l_adr_value_segment_code
28456 , p_side => 'NA'
28457 , p_override_seg_flag => 'Y'
28458 );
28459
28460 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28461
28462 xla_ae_lines_pkg.set_segment(
28463 p_to_segment_code => 'GL_ACCOUNT'
28464 , p_segment_value => l_segment
28465 , p_from_segment_code => l_adr_value_segment_code
28466 , p_from_combination_id => l_adr_value_combination_id
28467 , p_value_type_code => l_adr_value_type_code
28468 , p_transaction_coa_id => l_adr_transaction_coa_id
28469 , p_accounting_coa_id => l_adr_accounting_coa_id
28470 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28471 , p_flex_value_set_id => l_adr_flex_value_set_id
28472 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
28473 , p_adr_type_code => 'S'
28474 , p_component_type => l_component_type
28475 , p_component_code => l_component_code
28476 , p_component_type_code => l_component_type_code
28477 , p_component_appl_id => l_component_appl_id
28481 , p_side => 'NA'
28478 , p_amb_context_code => l_amb_context_code
28479 , p_entity_code => 'AP_PAYMENTS'
28480 , p_event_class_code => 'PAYMENTS'
28482 );
28483
28484 END IF;
28485
28486 --
28487 --
28488 END IF;
28489 --
28490 -- Bug 4922099
28491 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28492 (NVL(l_enc_upg_option, 'N') = 'O')
28493 ) AND
28494 (l_bflow_method_code = 'PRIOR_ENTRY')
28495 )
28496 THEN
28497 IF
28498 --
28499 1 = 2
28500 --
28501 THEN
28502 xla_accounting_err_pkg.build_message
28503 (p_appli_s_name => 'XLA'
28504 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28505 ,p_token_1 => 'LINE_NUMBER'
28506 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28507 ,p_token_2 => 'LINE_TYPE_NAME'
28508 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28509 l_component_type
28510 ,l_component_code
28511 ,l_component_type_code
28512 ,l_component_appl_id
28513 ,l_amb_context_code
28514 ,l_entity_code
28515 ,l_event_class_code
28516 )
28517 ,p_token_3 => 'OWNER'
28518 ,p_value_3 => xla_lookups_pkg.get_meaning(
28519 p_lookup_type => 'XLA_OWNER_TYPE'
28520 ,p_lookup_code => l_component_type_code
28521 )
28522 ,p_token_4 => 'PRODUCT_NAME'
28523 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28524 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28525 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28526 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28527 ,p_ae_header_id => NULL
28528 );
28529
28530 IF (C_LEVEL_ERROR>= g_log_level) THEN
28531 trace
28532 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28533 ,p_level => C_LEVEL_ERROR
28534 ,p_module => l_log_module);
28535 END IF;
28536 END IF;
28537 END IF;
28538 --
28539 --
28540 ------------------------------------------------------------------------------------------------
28541 -- 4219869 Business Flow
28542 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28543 -- Prior Entry. Currently, the following code is always generated.
28544 ------------------------------------------------------------------------------------------------
28545 XLA_AE_LINES_PKG.ValidateCurrentLine;
28546
28547 ------------------------------------------------------------------------------------
28548 -- 4219869 Business Flow
28549 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28550 ------------------------------------------------------------------------------------
28551 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28552
28553 ----------------------------------------------------------------------------------
28554 -- 4219869 Business Flow
28555 -- Update journal entry status -- Need to generate this within IF <condition>
28556 ----------------------------------------------------------------------------------
28557 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28558 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28559 ,p_balance_type_code => l_balance_type_code
28560 );
28561
28562 -------------------------------------------------------------------------------------------
28563 -- 4262811 - Generate the Accrual Reversal lines
28564 -------------------------------------------------------------------------------------------
28565 BEGIN
28566 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28567 (g_array_event(p_event_id).array_value_num('header_index'));
28568 IF l_acc_rev_flag IS NULL THEN
28569 l_acc_rev_flag := 'N';
28570 END IF;
28571 EXCEPTION
28572 WHEN OTHERS THEN
28573 l_acc_rev_flag := 'N';
28574 END;
28575 --
28576 IF (l_acc_rev_flag = 'Y') THEN
28577
28578 -- 4645092 ------------------------------------------------------------------------------
28582
28579 -- To allow MPA report to determine if it should generate report process
28580 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28581 ------------------------------------------------------------------------------------------
28583 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28584 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28585 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28586 -- call ADRs
28587 -- Bug 4922099
28588 --
28589 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28590 (NVL(l_actual_upg_option, 'N') = 'O') OR
28591 (NVL(l_enc_upg_option, 'N') = 'O')
28592 )
28593 THEN
28594 NULL;
28595 --
28596 --
28597
28598 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
28599 p_code_combination_id => TO_NUMBER(C_NUM)
28600 , p_value_type_code => NULL
28601 , p_transaction_coa_id => null
28602 , p_accounting_coa_id => null
28603 , p_adr_code => NULL
28604 , p_adr_type_code => NULL
28605 , p_component_type => l_component_type
28606 , p_component_code => l_component_code
28607 , p_component_type_code => l_component_type_code
28608 , p_component_appl_id => l_component_appl_id
28609 , p_amb_context_code => l_amb_context_code
28610 , p_side => NULL
28611 );
28612
28613
28614 -- initialise segments
28615 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28616 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28617 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28618 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28619 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28620 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28621 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28622 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28623 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28624 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28625 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28626 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28627 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28628 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28629 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28630 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28631 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28632 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28633 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28634 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28635 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28636 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28637 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28638 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28639 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28640 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28641 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28642 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28643 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28644 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28645 --
28646
28647 --
28648
28649
28650 l_segment := AcctDerRule_3(
28651 p_application_id => p_application_id
28652 , p_ae_header_id => l_ae_header_id
28653 , p_source_13 => p_source_13
28654 , x_transaction_coa_id => l_adr_transaction_coa_id
28655 , x_accounting_coa_id => l_adr_accounting_coa_id
28656 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28657 , x_flex_value_set_id => l_adr_flex_value_set_id
28658 , x_value_type_code => l_adr_value_type_code
28659 , x_value_combination_id => l_adr_value_combination_id
28660 , x_value_segment_code => l_adr_value_segment_code
28661 , p_side => 'NA'
28662 , p_override_seg_flag => 'Y'
28663 );
28664
28665 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28666
28667 xla_ae_lines_pkg.set_segment(
28668 p_to_segment_code => 'GL_ACCOUNT'
28669 , p_segment_value => l_segment
28670 , p_from_segment_code => l_adr_value_segment_code
28671 , p_from_combination_id => l_adr_value_combination_id
28672 , p_value_type_code => l_adr_value_type_code
28673 , p_transaction_coa_id => l_adr_transaction_coa_id
28674 , p_accounting_coa_id => l_adr_accounting_coa_id
28678 , p_adr_type_code => 'S'
28675 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28676 , p_flex_value_set_id => l_adr_flex_value_set_id
28677 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
28679 , p_component_type => l_component_type
28680 , p_component_code => l_component_code
28681 , p_component_type_code => l_component_type_code
28682 , p_component_appl_id => l_component_appl_id
28683 , p_amb_context_code => l_amb_context_code
28684 , p_entity_code => 'AP_PAYMENTS'
28685 , p_event_class_code => 'PAYMENTS'
28686 , p_side => 'NA'
28687 );
28688
28689 END IF;
28690
28691 --
28692 --
28693 END IF;
28694
28695 --
28696 -- Update the line information that should be overwritten
28697 --
28698 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28699 p_header_num => 1);
28700 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28701
28702 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28703
28704 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28705 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28706 END IF;
28707
28708 --
28709 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28710 --
28711 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28712 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28713 ELSE
28714 ---------------------------------------------------------------------------------------------------
28715 -- 4262811a Switch Sign
28716 ---------------------------------------------------------------------------------------------------
28717 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28719 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28720 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28721 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28722 -- 5132302
28723 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28724 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28725
28726 END IF;
28727
28728 -- 4955764
28729 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28730 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28731
28732
28733 XLA_AE_LINES_PKG.ValidateCurrentLine;
28734 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28735
28736 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28737 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28738 ,p_balance_type_code => l_balance_type_code);
28739
28740 END IF;
28741
28742 -----------------------------------------------------------------------------------------
28743 -- 4262811 Multiperiod Accounting
28744 -----------------------------------------------------------------------------------------
28745 -- No MPA option is assigned.
28746
28747
28748 END IF;
28749 END IF;
28750 --
28751
28752 --
28753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28754 trace
28755 (p_msg => 'END of AcctLineType_69'
28756 ,p_level => C_LEVEL_PROCEDURE
28757 ,p_module => l_log_module);
28758 END IF;
28759 --
28760 EXCEPTION
28761 WHEN xla_exceptions_pkg.application_exception THEN
28762 RAISE;
28763 WHEN OTHERS THEN
28764 xla_exceptions_pkg.raise_message
28765 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_69');
28766 END AcctLineType_69;
28767 --
28768
28769 ---------------------------------------
28770 --
28771 -- PRIVATE FUNCTION
28772 -- AcctLineType_70
28773 --
28774 ---------------------------------------
28775 PROCEDURE AcctLineType_70 (
28776 p_application_id IN NUMBER
28777 ,p_event_id IN NUMBER
28778 ,p_calculate_acctd_flag IN VARCHAR2
28779 ,p_calculate_g_l_flag IN VARCHAR2
28780 ,p_actual_flag IN OUT VARCHAR2
28781 ,p_balance_type_code OUT VARCHAR2
28782 ,p_gain_or_loss_ref OUT VARCHAR2
28783
28784 --Payment Currency Code
28785 , p_source_12 IN VARCHAR2
28786 --Bank Cash Account
28787 , p_source_13 IN NUMBER
28788 --Automatic Offsets Value
28789 , p_source_16 IN VARCHAR2
28790 , p_source_16_meaning IN VARCHAR2
28791 --Payment Distribution (Payment Rate) Ledger Amount
28792 , p_source_21 IN NUMBER
28793 --When to Account for Payment Option
28794 , p_source_50 IN VARCHAR2
28798 --Accounting Reversal Indicator
28795 --Payment Distribution Type
28796 , p_source_51 IN VARCHAR2
28797 , p_source_51_meaning IN VARCHAR2
28799 , p_source_52 IN VARCHAR2
28800 --Payment Distribution Amount
28801 , p_source_53 IN NUMBER
28802 --Business Flow Accounts Payable Application Identifier
28803 , p_source_54 IN NUMBER
28804 --Payment Distribution Identifier
28805 , p_source_59 IN NUMBER
28806 --Distribution Link Type
28807 , p_source_60 IN VARCHAR2
28808 --Override Accounted Amount Indicator
28809 , p_source_64 IN VARCHAR2
28810 , p_source_64_meaning IN VARCHAR2
28811 --Payment Supplier Identifier
28812 , p_source_65 IN NUMBER
28813 --Payment Supplier Site Identifier
28814 , p_source_66 IN NUMBER
28815 --Third Party Type
28816 , p_source_67 IN VARCHAR2
28817 --Payment Distribution Reversed Identifier
28818 , p_source_68 IN NUMBER
28819 --Invoice Distribution Tax Line Identifier
28820 , p_source_69 IN NUMBER
28821 --Invoice Distribution Summary Tax Line Identifier
28822 , p_source_70 IN NUMBER
28823 --Payment Type
28824 , p_source_71 IN VARCHAR2
28825 , p_source_71_meaning IN VARCHAR2
28826 --Invoice Distribution Amount of the Payment Distribution
28827 , p_source_72 IN NUMBER
28828 --Business Flow Invoice Distribution Type
28829 , p_source_73 IN VARCHAR2
28830 --Business Flow Invoice Entity Code
28831 , p_source_74 IN VARCHAR2
28832 --Business Flow Invoice Distribution Identifier
28833 , p_source_75 IN NUMBER
28834 --Business Flow Invoice Identifier
28835 , p_source_76 IN NUMBER
28836 --Invoice Distribution Tax Distribution Identifier from Tax
28837 , p_source_77 IN NUMBER
28838 --Pooled Bank Account Option
28839 , p_source_117 IN VARCHAR2
28840 , p_source_117_meaning IN VARCHAR2
28841 --Payment Maturity Date
28842 , p_source_118 IN DATE
28843 --Payment Processing Type
28844 , p_source_120 IN VARCHAR2
28845 --Payment Exchange Date
28846 , p_source_121 IN DATE
28847 --Payment Exchange Rate
28848 , p_source_122 IN NUMBER
28849 --Payment Exchange Rate Type
28850 , p_source_123 IN VARCHAR2
28851 )
28852 IS
28853
28854 l_component_type VARCHAR2(80);
28855 l_component_code VARCHAR2(30);
28856 l_component_type_code VARCHAR2(1);
28857 l_component_appl_id INTEGER;
28858 l_amb_context_code VARCHAR2(30);
28859 l_entity_code VARCHAR2(30);
28860 l_event_class_code VARCHAR2(30);
28861 l_ae_header_id NUMBER;
28862 l_event_type_code VARCHAR2(30);
28863 l_line_definition_code VARCHAR2(30);
28864 l_line_definition_owner_code VARCHAR2(1);
28865 --
28866 -- adr variables
28867 l_segment VARCHAR2(30);
28868 l_ccid NUMBER;
28869 l_adr_transaction_coa_id NUMBER;
28870 l_adr_accounting_coa_id NUMBER;
28871 l_adr_flexfield_segment_code VARCHAR2(30);
28872 l_adr_flex_value_set_id NUMBER;
28873 l_adr_value_type_code VARCHAR2(30);
28874 l_adr_value_combination_id NUMBER;
28875 l_adr_value_segment_code VARCHAR2(30);
28876
28877 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28878 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28879 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28880 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28881
28882 -- 4262811 Variables ------------------------------------------------------------------------------------------
28883 l_entered_amt_idx NUMBER;
28884 l_accted_amt_idx NUMBER;
28885 l_acc_rev_flag VARCHAR2(1);
28886 l_accrual_line_num NUMBER;
28887 l_tmp_amt NUMBER;
28888 l_acc_rev_natural_side_code VARCHAR2(1);
28889
28890 l_num_entries NUMBER;
28891 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28892 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28893 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28894 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28895 l_recog_line_1 NUMBER;
28896 l_recog_line_2 NUMBER;
28897
28898 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28899 l_bflow_applied_to_amt NUMBER; -- 5132302
28900 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28901
28902 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28903
28904 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28905 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28906
28907 ---------------------------------------------------------------------------------------------------------------
28908
28909
28910 --
28911 -- bulk performance
28912 --
28913 l_balance_type_code VARCHAR2(1);
28914 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28915 l_log_module VARCHAR2(240);
28916
28917 --
28918 -- Upgrade strategy
28919 --
28923 --
28920 l_actual_upg_option VARCHAR2(1);
28921 l_enc_upg_option VARCHAR2(1);
28922
28924 BEGIN
28925 --
28926 IF g_log_enabled THEN
28927 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
28928 END IF;
28929 --
28930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28931
28932 trace
28933 (p_msg => 'BEGIN of AcctLineType_70'
28934 ,p_level => C_LEVEL_PROCEDURE
28935 ,p_module => l_log_module);
28936
28937 END IF;
28938 --
28939 l_component_type := 'AMB_JLT';
28940 l_component_code := 'AP_CASH_PMT_AOS_BS';
28941 l_component_type_code := 'S';
28942 l_component_appl_id := 200;
28943 l_amb_context_code := 'DEFAULT';
28944 l_entity_code := 'AP_PAYMENTS';
28945 l_event_class_code := 'PAYMENTS';
28946 l_event_type_code := 'PAYMENTS_ALL';
28947 l_line_definition_owner_code := 'S';
28948 l_line_definition_code := 'CASH_PAYMENTS_ALL';
28949 --
28950 l_balance_type_code := 'A';
28951 l_segment := NULL;
28952 l_ccid := NULL;
28953 l_adr_transaction_coa_id := NULL;
28954 l_adr_accounting_coa_id := NULL;
28955 l_adr_flexfield_segment_code := NULL;
28956 l_adr_flex_value_set_id := NULL;
28957 l_adr_value_type_code := NULL;
28958 l_adr_value_combination_id := NULL;
28959 l_adr_value_segment_code := NULL;
28960
28961 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
28962 l_bflow_class_code := ''; -- 4219869 Business Flow
28963 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28964 l_budgetary_control_flag := 'N';
28965
28966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28967 l_bflow_applied_to_amt := NULL; -- 5132302
28968 l_entered_amt_idx := NULL; -- 4262811
28969 l_accted_amt_idx := NULL; -- 4262811
28970 l_acc_rev_flag := NULL; -- 4262811
28971 l_accrual_line_num := NULL; -- 4262811
28972 l_tmp_amt := NULL; -- 4262811
28973 --
28974
28975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28976 l_balance_type_code <> 'B' THEN
28977 IF NVL(p_source_50,'
28978 ') = 'ISSUE_ISSUE' AND
28979 (NVL(p_source_117,'
28980 ') = 'Y' AND
28981 NVL(p_source_16,'
28982 ') = 'BALANCING_SEGMENT') AND
28983 p_source_118 IS NULL AND
28984 NVL(p_source_51,'
28985 ') = 'CASH' AND
28986 NVL(p_source_71,'
28987 ') <> 'R' AND
28988 NVL(p_source_120,'
28989 ') <> 'PAYMENTCARD'
28990 THEN
28991
28992 --
28993 XLA_AE_LINES_PKG.SetNewLine;
28994
28995 p_balance_type_code := l_balance_type_code;
28996 -- set the flag so later we will know whether the gain loss line needs to be created
28997
28998 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28999 p_actual_flag :='A';
29000 END IF;
29001
29002 --
29003 -- bulk performance
29004 --
29005 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29006 p_header_num => 0); -- 4262811
29007 --
29008 -- set accounting line options
29009 --
29010 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29011 p_natural_side_code => 'C'
29012 , p_gain_or_loss_flag => 'N'
29013 , p_gl_transfer_mode_code => 'S'
29014 , p_acct_entry_type_code => 'A'
29015 , p_switch_side_flag => 'Y'
29016 , p_merge_duplicate_code => 'A'
29017 );
29018 --
29019 l_acc_rev_natural_side_code := 'D'; -- 4262811
29020 --
29021 --
29022 -- set accounting line type info
29023 --
29024 xla_ae_lines_pkg.SetAcctLineType
29025 (p_component_type => l_component_type
29026 ,p_event_type_code => l_event_type_code
29027 ,p_line_definition_owner_code => l_line_definition_owner_code
29028 ,p_line_definition_code => l_line_definition_code
29029 ,p_accounting_line_code => l_component_code
29030 ,p_accounting_line_type_code => l_component_type_code
29031 ,p_accounting_line_appl_id => l_component_appl_id
29032 ,p_amb_context_code => l_amb_context_code
29033 ,p_entity_code => l_entity_code
29034 ,p_event_class_code => l_event_class_code);
29035 --
29036 -- set accounting class
29037 --
29038 xla_ae_lines_pkg.SetAcctClass(
29039 p_accounting_class_code => 'CASH'
29040 , p_ae_header_id => l_ae_header_id
29041 );
29042
29043 --
29044 -- set rounding class
29045 --
29046 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29047 'CASH';
29048
29049 --
29050 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29051 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29052 --
29053 -- bulk performance
29054 --
29055 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29056
29060 -- 4955764
29057 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29058 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29059
29061 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29062 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29063
29064 -- 4458381 Public Sector Enh
29065
29066 --
29067 -- set accounting attributes for the line type
29068 --
29069 l_entered_amt_idx := 10;
29070 l_accted_amt_idx := 15;
29071 l_bflow_applied_to_amt_idx := 2; -- 5132302
29072 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29073 l_rec_acct_attrs.array_char_value(1) := p_source_52;
29074 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29075 l_rec_acct_attrs.array_num_value(2) := p_source_72;
29076 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29077 l_rec_acct_attrs.array_num_value(3) := p_source_54;
29078 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29079 l_rec_acct_attrs.array_char_value(4) := p_source_73;
29080 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29081 l_rec_acct_attrs.array_char_value(5) := p_source_74;
29082 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29083 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
29084 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29085 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
29086 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29087 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
29088 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29089 l_rec_acct_attrs.array_char_value(9) := p_source_60;
29090 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29091 l_rec_acct_attrs.array_num_value(10) := p_source_53;
29092 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29093 l_rec_acct_attrs.array_char_value(11) := p_source_12;
29094 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29095 l_rec_acct_attrs.array_date_value(12) := p_source_121;
29096 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29097 l_rec_acct_attrs.array_num_value(13) := p_source_122;
29098 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29099 l_rec_acct_attrs.array_char_value(14) := p_source_123;
29100 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29101 l_rec_acct_attrs.array_num_value(15) := p_source_21;
29102 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29103 l_rec_acct_attrs.array_char_value(16) := p_source_64;
29104 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29105 l_rec_acct_attrs.array_num_value(17) := p_source_65;
29106 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29107 l_rec_acct_attrs.array_num_value(18) := p_source_66;
29108 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29109 l_rec_acct_attrs.array_char_value(19) := p_source_67;
29110 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29111 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
29112 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29113 l_rec_acct_attrs.array_char_value(21) := p_source_60;
29114 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29115 l_rec_acct_attrs.array_num_value(22) := p_source_69;
29116 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29117 l_rec_acct_attrs.array_num_value(23) := p_source_77;
29118 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29119 l_rec_acct_attrs.array_num_value(24) := p_source_70;
29120
29121 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29122 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29123
29124 ---------------------------------------------------------------------------------------------------------------
29125 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29126 ---------------------------------------------------------------------------------------------------------------
29127 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29128
29129 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29130 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29131
29132 IF xla_accounting_cache_pkg.GetValueChar
29133 (p_source_code => 'LEDGER_CATEGORY_CODE'
29134 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29135 AND l_bflow_method_code = 'PRIOR_ENTRY'
29136 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29137 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29138 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29139 )
29140 THEN
29141 xla_ae_lines_pkg.BflowUpgEntry
29142 (p_business_method_code => l_bflow_method_code
29143 ,p_business_class_code => l_bflow_class_code
29144 ,p_balance_type => l_balance_type_code);
29145 ELSE
29146 NULL;
29147 XLA_AE_LINES_PKG.business_flow_validation(
29148 p_business_method_code => l_bflow_method_code
29152
29149 ,p_business_class_code => l_bflow_class_code
29150 ,p_inherit_description_flag => l_inherit_desc_flag);
29151 END IF;
29153 --
29154 -- call analytical criteria
29155 --
29156
29157 --
29158 -- call description
29159 --
29160 -- No description or it is inherited.
29161 --
29162 -- call ADRs
29163 -- Bug 4922099
29164 --
29165 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29166 (NVL(l_actual_upg_option, 'N') = 'O') OR
29167 (NVL(l_enc_upg_option, 'N') = 'O')
29168 )
29169 THEN
29170 NULL;
29171 --
29172 --
29173
29174 l_ccid := AcctDerRule_22(
29175 p_application_id => p_application_id
29176 , p_ae_header_id => l_ae_header_id
29177 , p_source_13 => p_source_13
29178 , x_transaction_coa_id => l_adr_transaction_coa_id
29179 , x_accounting_coa_id => l_adr_accounting_coa_id
29180 , x_value_type_code => l_adr_value_type_code
29181 , p_side => 'NA'
29182 );
29183
29184 xla_ae_lines_pkg.set_ccid(
29185 p_code_combination_id => l_ccid
29186 , p_value_type_code => l_adr_value_type_code
29187 , p_transaction_coa_id => l_adr_transaction_coa_id
29188 , p_accounting_coa_id => l_adr_accounting_coa_id
29189 , p_adr_code => 'AP_CASH'
29190 , p_adr_type_code => 'S'
29191 , p_component_type => l_component_type
29192 , p_component_code => l_component_code
29193 , p_component_type_code => l_component_type_code
29194 , p_component_appl_id => l_component_appl_id
29195 , p_amb_context_code => l_amb_context_code
29196 , p_side => 'NA'
29197 );
29198
29199
29200 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
29201 p_to_segment_code => 'GL_BALANCING'
29202 , p_segment_value => C_CHAR
29203 , p_from_segment_code => NULL
29204 , p_from_combination_id => NULL
29205 , p_value_type_code => NULL
29206 , p_transaction_coa_id => null
29207 , p_accounting_coa_id => null
29208 , p_flexfield_segment_code => NULL
29209 , p_flex_value_set_id => NULL
29210 , p_adr_code => NULL
29211 , p_adr_type_code => NULL
29212 , p_component_type => l_component_type
29213 , p_component_code => l_component_code
29214 , p_component_type_code => l_component_type_code
29215 , p_component_appl_id => l_component_appl_id
29216 , p_amb_context_code => l_amb_context_code
29217 , p_entity_code => 'AP_PAYMENTS'
29218 , p_event_class_code => 'PAYMENTS'
29219 , p_side => 'NA'
29220 );
29221 --
29222
29223
29224 --
29225 --
29226 END IF;
29227 --
29228 -- Bug 4922099
29229 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29230 (NVL(l_enc_upg_option, 'N') = 'O')
29231 ) AND
29232 (l_bflow_method_code = 'PRIOR_ENTRY')
29233 )
29234 THEN
29235 IF
29236 --
29237 1 = 2
29238 --
29239 THEN
29240 xla_accounting_err_pkg.build_message
29241 (p_appli_s_name => 'XLA'
29242 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29243 ,p_token_1 => 'LINE_NUMBER'
29244 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29245 ,p_token_2 => 'LINE_TYPE_NAME'
29246 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29247 l_component_type
29248 ,l_component_code
29249 ,l_component_type_code
29250 ,l_component_appl_id
29251 ,l_amb_context_code
29252 ,l_entity_code
29253 ,l_event_class_code
29254 )
29255 ,p_token_3 => 'OWNER'
29256 ,p_value_3 => xla_lookups_pkg.get_meaning(
29257 p_lookup_type => 'XLA_OWNER_TYPE'
29258 ,p_lookup_code => l_component_type_code
29259 )
29260 ,p_token_4 => 'PRODUCT_NAME'
29261 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29262 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29263 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29267
29264 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29265 ,p_ae_header_id => NULL
29266 );
29268 IF (C_LEVEL_ERROR>= g_log_level) THEN
29269 trace
29270 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29271 ,p_level => C_LEVEL_ERROR
29272 ,p_module => l_log_module);
29273 END IF;
29274 END IF;
29275 END IF;
29276 --
29277 --
29278 ------------------------------------------------------------------------------------------------
29279 -- 4219869 Business Flow
29280 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29281 -- Prior Entry. Currently, the following code is always generated.
29282 ------------------------------------------------------------------------------------------------
29283 XLA_AE_LINES_PKG.ValidateCurrentLine;
29284
29285 ------------------------------------------------------------------------------------
29286 -- 4219869 Business Flow
29287 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29288 ------------------------------------------------------------------------------------
29289 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29290
29291 ----------------------------------------------------------------------------------
29292 -- 4219869 Business Flow
29293 -- Update journal entry status -- Need to generate this within IF <condition>
29294 ----------------------------------------------------------------------------------
29295 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29296 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29297 ,p_balance_type_code => l_balance_type_code
29298 );
29299
29300 -------------------------------------------------------------------------------------------
29301 -- 4262811 - Generate the Accrual Reversal lines
29302 -------------------------------------------------------------------------------------------
29303 BEGIN
29304 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29305 (g_array_event(p_event_id).array_value_num('header_index'));
29306 IF l_acc_rev_flag IS NULL THEN
29307 l_acc_rev_flag := 'N';
29308 END IF;
29309 EXCEPTION
29310 WHEN OTHERS THEN
29311 l_acc_rev_flag := 'N';
29312 END;
29313 --
29314 IF (l_acc_rev_flag = 'Y') THEN
29315
29316 -- 4645092 ------------------------------------------------------------------------------
29317 -- To allow MPA report to determine if it should generate report process
29318 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29319 ------------------------------------------------------------------------------------------
29320
29321 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29322 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29323 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29324 -- call ADRs
29325 -- Bug 4922099
29326 --
29327 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29328 (NVL(l_actual_upg_option, 'N') = 'O') OR
29329 (NVL(l_enc_upg_option, 'N') = 'O')
29330 )
29331 THEN
29332 NULL;
29333 --
29334 --
29335
29336 l_ccid := AcctDerRule_22(
29337 p_application_id => p_application_id
29338 , p_ae_header_id => l_ae_header_id
29339 , p_source_13 => p_source_13
29340 , x_transaction_coa_id => l_adr_transaction_coa_id
29341 , x_accounting_coa_id => l_adr_accounting_coa_id
29342 , x_value_type_code => l_adr_value_type_code
29343 , p_side => 'NA'
29344 );
29345
29346 xla_ae_lines_pkg.set_ccid(
29347 p_code_combination_id => l_ccid
29348 , p_value_type_code => l_adr_value_type_code
29349 , p_transaction_coa_id => l_adr_transaction_coa_id
29350 , p_accounting_coa_id => l_adr_accounting_coa_id
29351 , p_adr_code => 'AP_CASH'
29352 , p_adr_type_code => 'S'
29353 , p_component_type => l_component_type
29354 , p_component_code => l_component_code
29355 , p_component_type_code => l_component_type_code
29356 , p_component_appl_id => l_component_appl_id
29357 , p_amb_context_code => l_amb_context_code
29358 , p_side => 'NA'
29359 );
29360
29361
29362 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
29363 p_to_segment_code => 'GL_BALANCING'
29364 , p_segment_value => C_CHAR
29365 , p_from_segment_code => NULL
29366 , p_from_combination_id => NULL
29367 , p_value_type_code => NULL
29368 , p_transaction_coa_id => null
29369 , p_accounting_coa_id => null
29370 , p_flexfield_segment_code => NULL
29371 , p_flex_value_set_id => NULL
29372 , p_adr_code => NULL
29373 , p_adr_type_code => NULL
29374 , p_component_type => l_component_type
29375 , p_component_code => l_component_code
29379 , p_entity_code => 'AP_PAYMENTS'
29376 , p_component_type_code => l_component_type_code
29377 , p_component_appl_id => l_component_appl_id
29378 , p_amb_context_code => l_amb_context_code
29380 , p_event_class_code => 'PAYMENTS'
29381 , p_side => 'NA'
29382 );
29383 --
29384
29385
29386 --
29387 --
29388 END IF;
29389
29390 --
29391 -- Update the line information that should be overwritten
29392 --
29393 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29394 p_header_num => 1);
29395 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29396
29397 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29398
29399 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29400 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29401 END IF;
29402
29403 --
29404 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29405 --
29406 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29407 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29408 ELSE
29409 ---------------------------------------------------------------------------------------------------
29410 -- 4262811a Switch Sign
29411 ---------------------------------------------------------------------------------------------------
29412 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29413 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29414 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29415 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29416 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29417 -- 5132302
29418 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29419 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29420
29421 END IF;
29422
29423 -- 4955764
29424 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29425 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29426
29427
29428 XLA_AE_LINES_PKG.ValidateCurrentLine;
29429 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29430
29431 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29432 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29433 ,p_balance_type_code => l_balance_type_code);
29434
29435 END IF;
29436
29437 -----------------------------------------------------------------------------------------
29438 -- 4262811 Multiperiod Accounting
29439 -----------------------------------------------------------------------------------------
29440 -- No MPA option is assigned.
29441
29442
29443 END IF;
29444 END IF;
29445 --
29446
29447 --
29448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29449 trace
29450 (p_msg => 'END of AcctLineType_70'
29451 ,p_level => C_LEVEL_PROCEDURE
29452 ,p_module => l_log_module);
29453 END IF;
29454 --
29455 EXCEPTION
29456 WHEN xla_exceptions_pkg.application_exception THEN
29457 RAISE;
29458 WHEN OTHERS THEN
29459 xla_exceptions_pkg.raise_message
29460 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_70');
29461 END AcctLineType_70;
29462 --
29463
29464 ---------------------------------------
29465 --
29466 -- PRIVATE FUNCTION
29467 -- AcctLineType_71
29468 --
29469 ---------------------------------------
29470 PROCEDURE AcctLineType_71 (
29471 p_application_id IN NUMBER
29472 ,p_event_id IN NUMBER
29473 ,p_calculate_acctd_flag IN VARCHAR2
29474 ,p_calculate_g_l_flag IN VARCHAR2
29475 ,p_actual_flag IN OUT VARCHAR2
29476 ,p_balance_type_code OUT VARCHAR2
29477 ,p_gain_or_loss_ref OUT VARCHAR2
29478
29479 --Payment Currency Code
29480 , p_source_12 IN VARCHAR2
29481 --Bank Cash Account
29482 , p_source_13 IN NUMBER
29483 --Automatic Offsets Flag
29484 , p_source_42 IN VARCHAR2
29485 , p_source_42_meaning IN VARCHAR2
29486 --When to Account for Payment Option
29487 , p_source_50 IN VARCHAR2
29488 --Payment Distribution Type
29489 , p_source_51 IN VARCHAR2
29490 , p_source_51_meaning IN VARCHAR2
29491 --Accounting Reversal Indicator
29492 , p_source_52 IN VARCHAR2
29493 --Payment Distribution Amount
29494 , p_source_53 IN NUMBER
29495 --Business Flow Accounts Payable Application Identifier
29496 , p_source_54 IN NUMBER
29497 --Business Flow Payment Distribution Type
29498 , p_source_55 IN VARCHAR2
29499 --Business Flow Payment Entity Code
29503 --Business Flow Payment Identifier
29500 , p_source_56 IN VARCHAR2
29501 --Business Flow Payment Distribution Identifier
29502 , p_source_57 IN NUMBER
29504 , p_source_58 IN NUMBER
29505 --Payment Distribution Identifier
29506 , p_source_59 IN NUMBER
29507 --Distribution Link Type
29508 , p_source_60 IN VARCHAR2
29509 --Override Accounted Amount Indicator
29510 , p_source_64 IN VARCHAR2
29511 , p_source_64_meaning IN VARCHAR2
29512 --Payment Supplier Identifier
29513 , p_source_65 IN NUMBER
29514 --Payment Supplier Site Identifier
29515 , p_source_66 IN NUMBER
29516 --Third Party Type
29517 , p_source_67 IN VARCHAR2
29518 --Payment Distribution Reversed Identifier
29519 , p_source_68 IN NUMBER
29520 --Pooled Bank Account Option
29521 , p_source_117 IN VARCHAR2
29522 , p_source_117_meaning IN VARCHAR2
29523 --Payment Maturity Date
29524 , p_source_118 IN DATE
29525 --Payment Exchange Date
29526 , p_source_121 IN DATE
29527 --Payment Exchange Rate
29528 , p_source_122 IN NUMBER
29529 --Payment Exchange Rate Type
29530 , p_source_123 IN VARCHAR2
29531 --Payment Distribution (Matured Rate) Ledger Amount
29532 , p_source_124 IN NUMBER
29533 )
29534 IS
29535
29536 l_component_type VARCHAR2(80);
29537 l_component_code VARCHAR2(30);
29538 l_component_type_code VARCHAR2(1);
29539 l_component_appl_id INTEGER;
29540 l_amb_context_code VARCHAR2(30);
29541 l_entity_code VARCHAR2(30);
29542 l_event_class_code VARCHAR2(30);
29543 l_ae_header_id NUMBER;
29544 l_event_type_code VARCHAR2(30);
29545 l_line_definition_code VARCHAR2(30);
29546 l_line_definition_owner_code VARCHAR2(1);
29547 --
29548 -- adr variables
29549 l_segment VARCHAR2(30);
29550 l_ccid NUMBER;
29551 l_adr_transaction_coa_id NUMBER;
29552 l_adr_accounting_coa_id NUMBER;
29553 l_adr_flexfield_segment_code VARCHAR2(30);
29554 l_adr_flex_value_set_id NUMBER;
29555 l_adr_value_type_code VARCHAR2(30);
29556 l_adr_value_combination_id NUMBER;
29557 l_adr_value_segment_code VARCHAR2(30);
29558
29559 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29560 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29561 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29562 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29563
29564 -- 4262811 Variables ------------------------------------------------------------------------------------------
29565 l_entered_amt_idx NUMBER;
29566 l_accted_amt_idx NUMBER;
29567 l_acc_rev_flag VARCHAR2(1);
29568 l_accrual_line_num NUMBER;
29569 l_tmp_amt NUMBER;
29570 l_acc_rev_natural_side_code VARCHAR2(1);
29571
29572 l_num_entries NUMBER;
29573 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29574 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29575 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29576 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29577 l_recog_line_1 NUMBER;
29578 l_recog_line_2 NUMBER;
29579
29580 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29581 l_bflow_applied_to_amt NUMBER; -- 5132302
29582 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29583
29584 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29585
29586 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29587 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29588
29589 ---------------------------------------------------------------------------------------------------------------
29590
29591
29592 --
29593 -- bulk performance
29594 --
29595 l_balance_type_code VARCHAR2(1);
29596 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29597 l_log_module VARCHAR2(240);
29598
29599 --
29600 -- Upgrade strategy
29601 --
29602 l_actual_upg_option VARCHAR2(1);
29603 l_enc_upg_option VARCHAR2(1);
29604
29605 --
29606 BEGIN
29607 --
29608 IF g_log_enabled THEN
29609 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
29610 END IF;
29611 --
29612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29613
29614 trace
29615 (p_msg => 'BEGIN of AcctLineType_71'
29616 ,p_level => C_LEVEL_PROCEDURE
29617 ,p_module => l_log_module);
29618
29619 END IF;
29620 --
29621 l_component_type := 'AMB_JLT';
29622 l_component_code := 'AP_CASH_PMT_MAT';
29623 l_component_type_code := 'S';
29624 l_component_appl_id := 200;
29625 l_amb_context_code := 'DEFAULT';
29626 l_entity_code := 'AP_PAYMENTS';
29627 l_event_class_code := 'FUTURE DATED PAYMENTS';
29628 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
29629 l_line_definition_owner_code := 'S';
29633 l_segment := NULL;
29630 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
29631 --
29632 l_balance_type_code := 'A';
29634 l_ccid := NULL;
29635 l_adr_transaction_coa_id := NULL;
29636 l_adr_accounting_coa_id := NULL;
29637 l_adr_flexfield_segment_code := NULL;
29638 l_adr_flex_value_set_id := NULL;
29639 l_adr_value_type_code := NULL;
29640 l_adr_value_combination_id := NULL;
29641 l_adr_value_segment_code := NULL;
29642
29643 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29644 l_bflow_class_code := ''; -- 4219869 Business Flow
29645 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29646 l_budgetary_control_flag := 'N';
29647
29648 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29649 l_bflow_applied_to_amt := NULL; -- 5132302
29650 l_entered_amt_idx := NULL; -- 4262811
29651 l_accted_amt_idx := NULL; -- 4262811
29652 l_acc_rev_flag := NULL; -- 4262811
29653 l_accrual_line_num := NULL; -- 4262811
29654 l_tmp_amt := NULL; -- 4262811
29655 --
29656
29657 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29658 l_balance_type_code <> 'B' THEN
29659 IF NVL(p_source_50,'
29660 ') = 'ISSUE_ISSUE' AND
29661 (NVL(p_source_42,'
29662 ') <> 'Y' OR
29663 NVL(p_source_42,'
29664 ') = 'Y' AND
29665 NVL(p_source_117,'
29666 ') <> 'Y') AND
29667 p_source_118 IS NOT NULL AND
29668 NVL(p_source_51,'
29669 ') = 'CASH'
29670 THEN
29671
29672 --
29673 XLA_AE_LINES_PKG.SetNewLine;
29674
29675 p_balance_type_code := l_balance_type_code;
29676 -- set the flag so later we will know whether the gain loss line needs to be created
29677
29678 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29679 p_actual_flag :='A';
29680 END IF;
29681
29682 --
29683 -- bulk performance
29684 --
29685 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29686 p_header_num => 0); -- 4262811
29687 --
29688 -- set accounting line options
29689 --
29690 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29691 p_natural_side_code => 'C'
29692 , p_gain_or_loss_flag => 'N'
29693 , p_gl_transfer_mode_code => 'S'
29694 , p_acct_entry_type_code => 'A'
29695 , p_switch_side_flag => 'Y'
29696 , p_merge_duplicate_code => 'A'
29697 );
29698 --
29699 l_acc_rev_natural_side_code := 'D'; -- 4262811
29700 --
29701 --
29702 -- set accounting line type info
29703 --
29704 xla_ae_lines_pkg.SetAcctLineType
29705 (p_component_type => l_component_type
29706 ,p_event_type_code => l_event_type_code
29707 ,p_line_definition_owner_code => l_line_definition_owner_code
29708 ,p_line_definition_code => l_line_definition_code
29709 ,p_accounting_line_code => l_component_code
29710 ,p_accounting_line_type_code => l_component_type_code
29711 ,p_accounting_line_appl_id => l_component_appl_id
29712 ,p_amb_context_code => l_amb_context_code
29713 ,p_entity_code => l_entity_code
29714 ,p_event_class_code => l_event_class_code);
29715 --
29716 -- set accounting class
29717 --
29718 xla_ae_lines_pkg.SetAcctClass(
29719 p_accounting_class_code => 'CASH'
29720 , p_ae_header_id => l_ae_header_id
29721 );
29722
29723 --
29724 -- set rounding class
29725 --
29726 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29727 'CASH';
29728
29729 --
29730 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29731 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29732 --
29733 -- bulk performance
29734 --
29735 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29736
29737 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29738 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29739
29740 -- 4955764
29741 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29742 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29743
29744 -- 4458381 Public Sector Enh
29745
29746 --
29747 -- set accounting attributes for the line type
29748 --
29749 l_entered_amt_idx := 9;
29750 l_accted_amt_idx := 14;
29751 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29752 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29753 l_rec_acct_attrs.array_char_value(1) := p_source_52;
29754 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29755 l_rec_acct_attrs.array_num_value(2) := p_source_54;
29756 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29757 l_rec_acct_attrs.array_char_value(3) := p_source_55;
29758 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29762 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29759 l_rec_acct_attrs.array_char_value(4) := p_source_56;
29760 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29761 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
29763 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
29764 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
29765 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
29766 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
29767 l_rec_acct_attrs.array_char_value(8) := p_source_60;
29768 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
29769 l_rec_acct_attrs.array_num_value(9) := p_source_53;
29770 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
29771 l_rec_acct_attrs.array_char_value(10) := p_source_12;
29772 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
29773 l_rec_acct_attrs.array_date_value(11) := p_source_121;
29774 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
29775 l_rec_acct_attrs.array_num_value(12) := p_source_122;
29776 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
29777 l_rec_acct_attrs.array_char_value(13) := p_source_123;
29778 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
29779 l_rec_acct_attrs.array_num_value(14) := p_source_124;
29780 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
29781 l_rec_acct_attrs.array_char_value(15) := p_source_64;
29782 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29783 l_rec_acct_attrs.array_num_value(16) := p_source_65;
29784 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29785 l_rec_acct_attrs.array_num_value(17) := p_source_66;
29786 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29787 l_rec_acct_attrs.array_char_value(18) := p_source_67;
29788 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
29789 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
29790 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
29791 l_rec_acct_attrs.array_char_value(20) := p_source_60;
29792
29793 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29794 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29795
29796 ---------------------------------------------------------------------------------------------------------------
29797 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29798 ---------------------------------------------------------------------------------------------------------------
29799 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29800
29801 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29802 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29803
29804 IF xla_accounting_cache_pkg.GetValueChar
29805 (p_source_code => 'LEDGER_CATEGORY_CODE'
29806 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29807 AND l_bflow_method_code = 'PRIOR_ENTRY'
29808 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29809 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29810 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29811 )
29812 THEN
29813 xla_ae_lines_pkg.BflowUpgEntry
29814 (p_business_method_code => l_bflow_method_code
29815 ,p_business_class_code => l_bflow_class_code
29816 ,p_balance_type => l_balance_type_code);
29817 ELSE
29818 NULL;
29819 -- No business flow processing for business flow method of NONE.
29820 END IF;
29821
29822 --
29823 -- call analytical criteria
29824 --
29825
29826 --
29827 -- call description
29828 --
29829 -- No description or it is inherited.
29830 --
29831 -- call ADRs
29832 -- Bug 4922099
29833 --
29834 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29835 (NVL(l_actual_upg_option, 'N') = 'O') OR
29836 (NVL(l_enc_upg_option, 'N') = 'O')
29837 )
29838 THEN
29839 NULL;
29840 --
29841 --
29842
29843 l_ccid := AcctDerRule_22(
29844 p_application_id => p_application_id
29845 , p_ae_header_id => l_ae_header_id
29846 , p_source_13 => p_source_13
29847 , x_transaction_coa_id => l_adr_transaction_coa_id
29848 , x_accounting_coa_id => l_adr_accounting_coa_id
29849 , x_value_type_code => l_adr_value_type_code
29850 , p_side => 'NA'
29851 );
29852
29853 xla_ae_lines_pkg.set_ccid(
29854 p_code_combination_id => l_ccid
29855 , p_value_type_code => l_adr_value_type_code
29856 , p_transaction_coa_id => l_adr_transaction_coa_id
29857 , p_accounting_coa_id => l_adr_accounting_coa_id
29858 , p_adr_code => 'AP_CASH'
29859 , p_adr_type_code => 'S'
29860 , p_component_type => l_component_type
29861 , p_component_code => l_component_code
29862 , p_component_type_code => l_component_type_code
29863 , p_component_appl_id => l_component_appl_id
29864 , p_amb_context_code => l_amb_context_code
29868
29865 , p_side => 'NA'
29866 );
29867
29869 --
29870 --
29871 END IF;
29872 --
29873 -- Bug 4922099
29874 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29875 (NVL(l_enc_upg_option, 'N') = 'O')
29876 ) AND
29877 (l_bflow_method_code = 'PRIOR_ENTRY')
29878 )
29879 THEN
29880 IF
29881 --
29882 1 = 2
29883 --
29884 THEN
29885 xla_accounting_err_pkg.build_message
29886 (p_appli_s_name => 'XLA'
29887 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29888 ,p_token_1 => 'LINE_NUMBER'
29889 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29890 ,p_token_2 => 'LINE_TYPE_NAME'
29891 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29892 l_component_type
29893 ,l_component_code
29894 ,l_component_type_code
29895 ,l_component_appl_id
29896 ,l_amb_context_code
29897 ,l_entity_code
29898 ,l_event_class_code
29899 )
29900 ,p_token_3 => 'OWNER'
29901 ,p_value_3 => xla_lookups_pkg.get_meaning(
29902 p_lookup_type => 'XLA_OWNER_TYPE'
29903 ,p_lookup_code => l_component_type_code
29904 )
29905 ,p_token_4 => 'PRODUCT_NAME'
29906 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29907 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29908 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29909 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29910 ,p_ae_header_id => NULL
29911 );
29912
29913 IF (C_LEVEL_ERROR>= g_log_level) THEN
29914 trace
29915 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29916 ,p_level => C_LEVEL_ERROR
29917 ,p_module => l_log_module);
29918 END IF;
29919 END IF;
29920 END IF;
29921 --
29922 --
29923 ------------------------------------------------------------------------------------------------
29924 -- 4219869 Business Flow
29925 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29926 -- Prior Entry. Currently, the following code is always generated.
29927 ------------------------------------------------------------------------------------------------
29928 XLA_AE_LINES_PKG.ValidateCurrentLine;
29929
29930 ------------------------------------------------------------------------------------
29931 -- 4219869 Business Flow
29932 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29933 ------------------------------------------------------------------------------------
29934 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29935
29936 ----------------------------------------------------------------------------------
29937 -- 4219869 Business Flow
29938 -- Update journal entry status -- Need to generate this within IF <condition>
29939 ----------------------------------------------------------------------------------
29940 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29941 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29942 ,p_balance_type_code => l_balance_type_code
29943 );
29944
29945 -------------------------------------------------------------------------------------------
29946 -- 4262811 - Generate the Accrual Reversal lines
29947 -------------------------------------------------------------------------------------------
29948 BEGIN
29949 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29950 (g_array_event(p_event_id).array_value_num('header_index'));
29951 IF l_acc_rev_flag IS NULL THEN
29952 l_acc_rev_flag := 'N';
29953 END IF;
29954 EXCEPTION
29955 WHEN OTHERS THEN
29956 l_acc_rev_flag := 'N';
29957 END;
29958 --
29959 IF (l_acc_rev_flag = 'Y') THEN
29960
29961 -- 4645092 ------------------------------------------------------------------------------
29962 -- To allow MPA report to determine if it should generate report process
29963 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29967 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29964 ------------------------------------------------------------------------------------------
29965
29966 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29968 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29969 -- call ADRs
29970 -- Bug 4922099
29971 --
29972 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29973 (NVL(l_actual_upg_option, 'N') = 'O') OR
29974 (NVL(l_enc_upg_option, 'N') = 'O')
29975 )
29976 THEN
29977 NULL;
29978 --
29979 --
29980
29981 l_ccid := AcctDerRule_22(
29982 p_application_id => p_application_id
29983 , p_ae_header_id => l_ae_header_id
29984 , p_source_13 => p_source_13
29985 , x_transaction_coa_id => l_adr_transaction_coa_id
29986 , x_accounting_coa_id => l_adr_accounting_coa_id
29987 , x_value_type_code => l_adr_value_type_code
29988 , p_side => 'NA'
29989 );
29990
29991 xla_ae_lines_pkg.set_ccid(
29992 p_code_combination_id => l_ccid
29993 , p_value_type_code => l_adr_value_type_code
29994 , p_transaction_coa_id => l_adr_transaction_coa_id
29995 , p_accounting_coa_id => l_adr_accounting_coa_id
29996 , p_adr_code => 'AP_CASH'
29997 , p_adr_type_code => 'S'
29998 , p_component_type => l_component_type
29999 , p_component_code => l_component_code
30000 , p_component_type_code => l_component_type_code
30001 , p_component_appl_id => l_component_appl_id
30002 , p_amb_context_code => l_amb_context_code
30003 , p_side => 'NA'
30004 );
30005
30006
30007 --
30008 --
30009 END IF;
30010
30011 --
30012 -- Update the line information that should be overwritten
30013 --
30014 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30015 p_header_num => 1);
30016 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30017
30018 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30019
30020 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30021 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30022 END IF;
30023
30024 --
30025 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30026 --
30027 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30028 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30029 ELSE
30030 ---------------------------------------------------------------------------------------------------
30031 -- 4262811a Switch Sign
30032 ---------------------------------------------------------------------------------------------------
30033 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30034 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30035 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30036 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30037 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30038 -- 5132302
30039 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30040 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30041
30042 END IF;
30043
30044 -- 4955764
30045 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30046 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30047
30048
30049 XLA_AE_LINES_PKG.ValidateCurrentLine;
30050 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30051
30052 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30053 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30054 ,p_balance_type_code => l_balance_type_code);
30055
30056 END IF;
30057
30058 -----------------------------------------------------------------------------------------
30059 -- 4262811 Multiperiod Accounting
30060 -----------------------------------------------------------------------------------------
30061 -- No MPA option is assigned.
30062
30063
30064 END IF;
30065 END IF;
30066 --
30067
30068 --
30069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30070 trace
30071 (p_msg => 'END of AcctLineType_71'
30072 ,p_level => C_LEVEL_PROCEDURE
30073 ,p_module => l_log_module);
30074 END IF;
30075 --
30076 EXCEPTION
30077 WHEN xla_exceptions_pkg.application_exception THEN
30078 RAISE;
30079 WHEN OTHERS THEN
30080 xla_exceptions_pkg.raise_message
30081 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_71');
30082 END AcctLineType_71;
30083 --
30084
30088 -- AcctLineType_72
30085 ---------------------------------------
30086 --
30087 -- PRIVATE FUNCTION
30089 --
30090 ---------------------------------------
30091 PROCEDURE AcctLineType_72 (
30092 p_application_id IN NUMBER
30093 ,p_event_id IN NUMBER
30094 ,p_calculate_acctd_flag IN VARCHAR2
30095 ,p_calculate_g_l_flag IN VARCHAR2
30096 ,p_actual_flag IN OUT VARCHAR2
30097 ,p_balance_type_code OUT VARCHAR2
30098 ,p_gain_or_loss_ref OUT VARCHAR2
30099
30100 --Payment Currency Code
30101 , p_source_12 IN VARCHAR2
30102 --Bank Cash Account
30103 , p_source_13 IN NUMBER
30104 --Automatic Offsets Value
30105 , p_source_16 IN VARCHAR2
30106 , p_source_16_meaning IN VARCHAR2
30107 --When to Account for Payment Option
30108 , p_source_50 IN VARCHAR2
30109 --Payment Distribution Type
30110 , p_source_51 IN VARCHAR2
30111 , p_source_51_meaning IN VARCHAR2
30112 --Accounting Reversal Indicator
30113 , p_source_52 IN VARCHAR2
30114 --Payment Distribution Amount
30115 , p_source_53 IN NUMBER
30116 --Business Flow Accounts Payable Application Identifier
30117 , p_source_54 IN NUMBER
30118 --Business Flow Payment Distribution Type
30119 , p_source_55 IN VARCHAR2
30120 --Business Flow Payment Entity Code
30121 , p_source_56 IN VARCHAR2
30122 --Business Flow Payment Distribution Identifier
30123 , p_source_57 IN NUMBER
30124 --Business Flow Payment Identifier
30125 , p_source_58 IN NUMBER
30126 --Payment Distribution Identifier
30127 , p_source_59 IN NUMBER
30128 --Distribution Link Type
30129 , p_source_60 IN VARCHAR2
30130 --Override Accounted Amount Indicator
30131 , p_source_64 IN VARCHAR2
30132 , p_source_64_meaning IN VARCHAR2
30133 --Payment Supplier Identifier
30134 , p_source_65 IN NUMBER
30135 --Payment Supplier Site Identifier
30136 , p_source_66 IN NUMBER
30137 --Third Party Type
30138 , p_source_67 IN VARCHAR2
30139 --Payment Distribution Reversed Identifier
30140 , p_source_68 IN NUMBER
30141 --Pooled Bank Account Option
30142 , p_source_117 IN VARCHAR2
30143 , p_source_117_meaning IN VARCHAR2
30144 --Payment Maturity Date
30145 , p_source_118 IN DATE
30146 --Payment Exchange Date
30147 , p_source_121 IN DATE
30148 --Payment Exchange Rate
30149 , p_source_122 IN NUMBER
30150 --Payment Exchange Rate Type
30151 , p_source_123 IN VARCHAR2
30152 --Payment Distribution (Matured Rate) Ledger Amount
30153 , p_source_124 IN NUMBER
30154 )
30155 IS
30156
30157 l_component_type VARCHAR2(80);
30158 l_component_code VARCHAR2(30);
30159 l_component_type_code VARCHAR2(1);
30160 l_component_appl_id INTEGER;
30161 l_amb_context_code VARCHAR2(30);
30162 l_entity_code VARCHAR2(30);
30163 l_event_class_code VARCHAR2(30);
30164 l_ae_header_id NUMBER;
30165 l_event_type_code VARCHAR2(30);
30166 l_line_definition_code VARCHAR2(30);
30167 l_line_definition_owner_code VARCHAR2(1);
30168 --
30169 -- adr variables
30170 l_segment VARCHAR2(30);
30171 l_ccid NUMBER;
30172 l_adr_transaction_coa_id NUMBER;
30173 l_adr_accounting_coa_id NUMBER;
30174 l_adr_flexfield_segment_code VARCHAR2(30);
30175 l_adr_flex_value_set_id NUMBER;
30176 l_adr_value_type_code VARCHAR2(30);
30177 l_adr_value_combination_id NUMBER;
30178 l_adr_value_segment_code VARCHAR2(30);
30179
30180 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30181 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30182 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30183 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30184
30185 -- 4262811 Variables ------------------------------------------------------------------------------------------
30186 l_entered_amt_idx NUMBER;
30187 l_accted_amt_idx NUMBER;
30188 l_acc_rev_flag VARCHAR2(1);
30189 l_accrual_line_num NUMBER;
30190 l_tmp_amt NUMBER;
30191 l_acc_rev_natural_side_code VARCHAR2(1);
30192
30193 l_num_entries NUMBER;
30194 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30195 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30196 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30197 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30198 l_recog_line_1 NUMBER;
30199 l_recog_line_2 NUMBER;
30200
30201 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30202 l_bflow_applied_to_amt NUMBER; -- 5132302
30203 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30204
30205 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30206
30207 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30208 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30212
30209
30210 ---------------------------------------------------------------------------------------------------------------
30211
30213 --
30214 -- bulk performance
30215 --
30216 l_balance_type_code VARCHAR2(1);
30217 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30218 l_log_module VARCHAR2(240);
30219
30220 --
30221 -- Upgrade strategy
30222 --
30223 l_actual_upg_option VARCHAR2(1);
30224 l_enc_upg_option VARCHAR2(1);
30225
30226 --
30227 BEGIN
30228 --
30229 IF g_log_enabled THEN
30230 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
30231 END IF;
30232 --
30233 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30234
30235 trace
30236 (p_msg => 'BEGIN of AcctLineType_72'
30237 ,p_level => C_LEVEL_PROCEDURE
30238 ,p_module => l_log_module);
30239
30240 END IF;
30241 --
30242 l_component_type := 'AMB_JLT';
30243 l_component_code := 'AP_CASH_PMT_MAT_AOS_AS';
30244 l_component_type_code := 'S';
30245 l_component_appl_id := 200;
30246 l_amb_context_code := 'DEFAULT';
30247 l_entity_code := 'AP_PAYMENTS';
30248 l_event_class_code := 'FUTURE DATED PAYMENTS';
30249 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
30250 l_line_definition_owner_code := 'S';
30251 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
30252 --
30253 l_balance_type_code := 'A';
30254 l_segment := NULL;
30255 l_ccid := NULL;
30256 l_adr_transaction_coa_id := NULL;
30257 l_adr_accounting_coa_id := NULL;
30258 l_adr_flexfield_segment_code := NULL;
30259 l_adr_flex_value_set_id := NULL;
30260 l_adr_value_type_code := NULL;
30261 l_adr_value_combination_id := NULL;
30262 l_adr_value_segment_code := NULL;
30263
30264 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
30265 l_bflow_class_code := ''; -- 4219869 Business Flow
30266 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30267 l_budgetary_control_flag := 'N';
30268
30269 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30270 l_bflow_applied_to_amt := NULL; -- 5132302
30271 l_entered_amt_idx := NULL; -- 4262811
30272 l_accted_amt_idx := NULL; -- 4262811
30273 l_acc_rev_flag := NULL; -- 4262811
30274 l_accrual_line_num := NULL; -- 4262811
30275 l_tmp_amt := NULL; -- 4262811
30276 --
30277
30278 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30279 l_balance_type_code <> 'B' THEN
30280 IF NVL(p_source_50,'
30281 ') = 'ISSUE_ISSUE' AND
30282 (NVL(p_source_117,'
30283 ') = 'Y' AND
30284 NVL(p_source_16,'
30285 ') = 'ACCOUNT_SEGMENT_VALUE') AND
30286 p_source_118 IS NOT NULL AND
30287 NVL(p_source_51,'
30288 ') = 'CASH'
30289 THEN
30290
30291 --
30292 XLA_AE_LINES_PKG.SetNewLine;
30293
30294 p_balance_type_code := l_balance_type_code;
30295 -- set the flag so later we will know whether the gain loss line needs to be created
30296
30297 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30298 p_actual_flag :='A';
30299 END IF;
30300
30301 --
30302 -- bulk performance
30303 --
30304 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30305 p_header_num => 0); -- 4262811
30306 --
30307 -- set accounting line options
30308 --
30309 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30310 p_natural_side_code => 'C'
30311 , p_gain_or_loss_flag => 'N'
30312 , p_gl_transfer_mode_code => 'S'
30313 , p_acct_entry_type_code => 'A'
30314 , p_switch_side_flag => 'Y'
30315 , p_merge_duplicate_code => 'A'
30316 );
30317 --
30318 l_acc_rev_natural_side_code := 'D'; -- 4262811
30319 --
30320 --
30321 -- set accounting line type info
30322 --
30323 xla_ae_lines_pkg.SetAcctLineType
30324 (p_component_type => l_component_type
30325 ,p_event_type_code => l_event_type_code
30326 ,p_line_definition_owner_code => l_line_definition_owner_code
30327 ,p_line_definition_code => l_line_definition_code
30328 ,p_accounting_line_code => l_component_code
30329 ,p_accounting_line_type_code => l_component_type_code
30330 ,p_accounting_line_appl_id => l_component_appl_id
30331 ,p_amb_context_code => l_amb_context_code
30332 ,p_entity_code => l_entity_code
30333 ,p_event_class_code => l_event_class_code);
30334 --
30335 -- set accounting class
30336 --
30337 xla_ae_lines_pkg.SetAcctClass(
30338 p_accounting_class_code => 'CASH'
30339 , p_ae_header_id => l_ae_header_id
30340 );
30341
30342 --
30343 -- set rounding class
30344 --
30345 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30346 'CASH';
30347
30348 --
30352 -- bulk performance
30349 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30350 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30351 --
30353 --
30354 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30355
30356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30357 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30358
30359 -- 4955764
30360 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30361 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30362
30363 -- 4458381 Public Sector Enh
30364
30365 --
30366 -- set accounting attributes for the line type
30367 --
30368 l_entered_amt_idx := 9;
30369 l_accted_amt_idx := 14;
30370 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30371 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30372 l_rec_acct_attrs.array_char_value(1) := p_source_52;
30373 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30374 l_rec_acct_attrs.array_num_value(2) := p_source_54;
30375 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30376 l_rec_acct_attrs.array_char_value(3) := p_source_55;
30377 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30378 l_rec_acct_attrs.array_char_value(4) := p_source_56;
30379 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30380 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
30381 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30382 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
30383 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30384 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
30385 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30386 l_rec_acct_attrs.array_char_value(8) := p_source_60;
30387 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30388 l_rec_acct_attrs.array_num_value(9) := p_source_53;
30389 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30390 l_rec_acct_attrs.array_char_value(10) := p_source_12;
30391 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30392 l_rec_acct_attrs.array_date_value(11) := p_source_121;
30393 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30394 l_rec_acct_attrs.array_num_value(12) := p_source_122;
30395 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30396 l_rec_acct_attrs.array_char_value(13) := p_source_123;
30397 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30398 l_rec_acct_attrs.array_num_value(14) := p_source_124;
30399 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30400 l_rec_acct_attrs.array_char_value(15) := p_source_64;
30401 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30402 l_rec_acct_attrs.array_num_value(16) := p_source_65;
30403 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30404 l_rec_acct_attrs.array_num_value(17) := p_source_66;
30405 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30406 l_rec_acct_attrs.array_char_value(18) := p_source_67;
30407 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30408 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
30409 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30410 l_rec_acct_attrs.array_char_value(20) := p_source_60;
30411
30412 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30413 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30414
30415 ---------------------------------------------------------------------------------------------------------------
30416 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30417 ---------------------------------------------------------------------------------------------------------------
30418 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30419
30420 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30421 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30422
30423 IF xla_accounting_cache_pkg.GetValueChar
30424 (p_source_code => 'LEDGER_CATEGORY_CODE'
30425 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30426 AND l_bflow_method_code = 'PRIOR_ENTRY'
30427 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30428 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30429 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30430 )
30431 THEN
30432 xla_ae_lines_pkg.BflowUpgEntry
30433 (p_business_method_code => l_bflow_method_code
30434 ,p_business_class_code => l_bflow_class_code
30435 ,p_balance_type => l_balance_type_code);
30436 ELSE
30437 NULL;
30438 XLA_AE_LINES_PKG.business_flow_validation(
30439 p_business_method_code => l_bflow_method_code
30443
30440 ,p_business_class_code => l_bflow_class_code
30441 ,p_inherit_description_flag => l_inherit_desc_flag);
30442 END IF;
30444 --
30445 -- call analytical criteria
30446 --
30447
30448 --
30449 -- call description
30450 --
30451 -- No description or it is inherited.
30452 --
30453 -- call ADRs
30454 -- Bug 4922099
30455 --
30456 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30457 (NVL(l_actual_upg_option, 'N') = 'O') OR
30458 (NVL(l_enc_upg_option, 'N') = 'O')
30459 )
30460 THEN
30461 NULL;
30462 --
30463 --
30464
30465 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
30466 p_code_combination_id => TO_NUMBER(C_NUM)
30467 , p_value_type_code => NULL
30468 , p_transaction_coa_id => null
30469 , p_accounting_coa_id => null
30470 , p_adr_code => NULL
30471 , p_adr_type_code => NULL
30472 , p_component_type => l_component_type
30473 , p_component_code => l_component_code
30474 , p_component_type_code => l_component_type_code
30475 , p_component_appl_id => l_component_appl_id
30476 , p_amb_context_code => l_amb_context_code
30477 , p_side => NULL
30478 );
30479
30480
30481 -- initialise segments
30482 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30483 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30484 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30485 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30486 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30487 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30488 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30489 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30490 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30491 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30492 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30493 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30494 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30495 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30496 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30497 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30498 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30499 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30500 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30501 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30502 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30503 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30504 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30505 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30506 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30507 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30508 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30509 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30510 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30511 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30512 --
30513
30514 --
30515
30516
30517 l_segment := AcctDerRule_3(
30518 p_application_id => p_application_id
30519 , p_ae_header_id => l_ae_header_id
30520 , p_source_13 => p_source_13
30521 , x_transaction_coa_id => l_adr_transaction_coa_id
30522 , x_accounting_coa_id => l_adr_accounting_coa_id
30523 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30524 , x_flex_value_set_id => l_adr_flex_value_set_id
30525 , x_value_type_code => l_adr_value_type_code
30526 , x_value_combination_id => l_adr_value_combination_id
30527 , x_value_segment_code => l_adr_value_segment_code
30528 , p_side => 'NA'
30529 , p_override_seg_flag => 'Y'
30530 );
30531
30532 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30533
30534 xla_ae_lines_pkg.set_segment(
30535 p_to_segment_code => 'GL_ACCOUNT'
30536 , p_segment_value => l_segment
30537 , p_from_segment_code => l_adr_value_segment_code
30538 , p_from_combination_id => l_adr_value_combination_id
30539 , p_value_type_code => l_adr_value_type_code
30540 , p_transaction_coa_id => l_adr_transaction_coa_id
30541 , p_accounting_coa_id => l_adr_accounting_coa_id
30542 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30546 , p_component_type => l_component_type
30543 , p_flex_value_set_id => l_adr_flex_value_set_id
30544 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
30545 , p_adr_type_code => 'S'
30547 , p_component_code => l_component_code
30548 , p_component_type_code => l_component_type_code
30549 , p_component_appl_id => l_component_appl_id
30550 , p_amb_context_code => l_amb_context_code
30551 , p_entity_code => 'AP_PAYMENTS'
30552 , p_event_class_code => 'FUTURE DATED PAYMENTS'
30553 , p_side => 'NA'
30554 );
30555
30556 END IF;
30557
30558 --
30559 --
30560 END IF;
30561 --
30562 -- Bug 4922099
30563 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30564 (NVL(l_enc_upg_option, 'N') = 'O')
30565 ) AND
30566 (l_bflow_method_code = 'PRIOR_ENTRY')
30567 )
30568 THEN
30569 IF
30570 --
30571 1 = 2
30572 --
30573 THEN
30574 xla_accounting_err_pkg.build_message
30575 (p_appli_s_name => 'XLA'
30576 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30577 ,p_token_1 => 'LINE_NUMBER'
30578 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30579 ,p_token_2 => 'LINE_TYPE_NAME'
30580 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30581 l_component_type
30582 ,l_component_code
30583 ,l_component_type_code
30584 ,l_component_appl_id
30585 ,l_amb_context_code
30586 ,l_entity_code
30587 ,l_event_class_code
30588 )
30589 ,p_token_3 => 'OWNER'
30590 ,p_value_3 => xla_lookups_pkg.get_meaning(
30591 p_lookup_type => 'XLA_OWNER_TYPE'
30592 ,p_lookup_code => l_component_type_code
30593 )
30594 ,p_token_4 => 'PRODUCT_NAME'
30595 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30596 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30597 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30598 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30599 ,p_ae_header_id => NULL
30600 );
30601
30602 IF (C_LEVEL_ERROR>= g_log_level) THEN
30603 trace
30604 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30605 ,p_level => C_LEVEL_ERROR
30606 ,p_module => l_log_module);
30607 END IF;
30608 END IF;
30609 END IF;
30610 --
30611 --
30612 ------------------------------------------------------------------------------------------------
30613 -- 4219869 Business Flow
30614 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30615 -- Prior Entry. Currently, the following code is always generated.
30616 ------------------------------------------------------------------------------------------------
30617 XLA_AE_LINES_PKG.ValidateCurrentLine;
30618
30619 ------------------------------------------------------------------------------------
30620 -- 4219869 Business Flow
30621 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30622 ------------------------------------------------------------------------------------
30623 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30624
30625 ----------------------------------------------------------------------------------
30626 -- 4219869 Business Flow
30627 -- Update journal entry status -- Need to generate this within IF <condition>
30628 ----------------------------------------------------------------------------------
30629 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30630 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30631 ,p_balance_type_code => l_balance_type_code
30632 );
30633
30634 -------------------------------------------------------------------------------------------
30635 -- 4262811 - Generate the Accrual Reversal lines
30636 -------------------------------------------------------------------------------------------
30637 BEGIN
30641 l_acc_rev_flag := 'N';
30638 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30639 (g_array_event(p_event_id).array_value_num('header_index'));
30640 IF l_acc_rev_flag IS NULL THEN
30642 END IF;
30643 EXCEPTION
30644 WHEN OTHERS THEN
30645 l_acc_rev_flag := 'N';
30646 END;
30647 --
30648 IF (l_acc_rev_flag = 'Y') THEN
30649
30650 -- 4645092 ------------------------------------------------------------------------------
30651 -- To allow MPA report to determine if it should generate report process
30652 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30653 ------------------------------------------------------------------------------------------
30654
30655 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30656 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30657 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30658 -- call ADRs
30659 -- Bug 4922099
30660 --
30661 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30662 (NVL(l_actual_upg_option, 'N') = 'O') OR
30663 (NVL(l_enc_upg_option, 'N') = 'O')
30664 )
30665 THEN
30666 NULL;
30667 --
30668 --
30669
30670 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
30671 p_code_combination_id => TO_NUMBER(C_NUM)
30672 , p_value_type_code => NULL
30673 , p_transaction_coa_id => null
30674 , p_accounting_coa_id => null
30675 , p_adr_code => NULL
30676 , p_adr_type_code => NULL
30677 , p_component_type => l_component_type
30678 , p_component_code => l_component_code
30679 , p_component_type_code => l_component_type_code
30680 , p_component_appl_id => l_component_appl_id
30681 , p_amb_context_code => l_amb_context_code
30682 , p_side => NULL
30683 );
30684
30685
30686 -- initialise segments
30687 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30688 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30689 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30690 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30691 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30692 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30693 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30694 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30695 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30696 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30697 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30698 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30699 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30700 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30701 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30702 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30703 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30704 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30705 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30706 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30707 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30708 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30709 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30710 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30711 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30712 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30713 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30714 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30715 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30716 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30717 --
30718
30719 --
30720
30721
30722 l_segment := AcctDerRule_3(
30723 p_application_id => p_application_id
30724 , p_ae_header_id => l_ae_header_id
30725 , p_source_13 => p_source_13
30726 , x_transaction_coa_id => l_adr_transaction_coa_id
30727 , x_accounting_coa_id => l_adr_accounting_coa_id
30728 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30729 , x_flex_value_set_id => l_adr_flex_value_set_id
30730 , x_value_type_code => l_adr_value_type_code
30731 , x_value_combination_id => l_adr_value_combination_id
30732 , x_value_segment_code => l_adr_value_segment_code
30733 , p_side => 'NA'
30737 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30734 , p_override_seg_flag => 'Y'
30735 );
30736
30738
30739 xla_ae_lines_pkg.set_segment(
30740 p_to_segment_code => 'GL_ACCOUNT'
30741 , p_segment_value => l_segment
30742 , p_from_segment_code => l_adr_value_segment_code
30743 , p_from_combination_id => l_adr_value_combination_id
30744 , p_value_type_code => l_adr_value_type_code
30745 , p_transaction_coa_id => l_adr_transaction_coa_id
30746 , p_accounting_coa_id => l_adr_accounting_coa_id
30747 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30748 , p_flex_value_set_id => l_adr_flex_value_set_id
30749 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
30750 , p_adr_type_code => 'S'
30751 , p_component_type => l_component_type
30752 , p_component_code => l_component_code
30753 , p_component_type_code => l_component_type_code
30754 , p_component_appl_id => l_component_appl_id
30755 , p_amb_context_code => l_amb_context_code
30756 , p_entity_code => 'AP_PAYMENTS'
30757 , p_event_class_code => 'FUTURE DATED PAYMENTS'
30758 , p_side => 'NA'
30759 );
30760
30761 END IF;
30762
30763 --
30764 --
30765 END IF;
30766
30767 --
30768 -- Update the line information that should be overwritten
30769 --
30770 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30771 p_header_num => 1);
30772 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30773
30774 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30775
30776 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30777 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30778 END IF;
30779
30780 --
30781 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30782 --
30783 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30784 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30785 ELSE
30786 ---------------------------------------------------------------------------------------------------
30787 -- 4262811a Switch Sign
30788 ---------------------------------------------------------------------------------------------------
30789 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30790 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30791 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30792 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30793 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30794 -- 5132302
30795 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30796 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30797
30798 END IF;
30799
30800 -- 4955764
30801 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30802 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30803
30804
30805 XLA_AE_LINES_PKG.ValidateCurrentLine;
30806 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30807
30808 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30809 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30810 ,p_balance_type_code => l_balance_type_code);
30811
30812 END IF;
30813
30814 -----------------------------------------------------------------------------------------
30815 -- 4262811 Multiperiod Accounting
30816 -----------------------------------------------------------------------------------------
30817 -- No MPA option is assigned.
30818
30819
30820 END IF;
30821 END IF;
30822 --
30823
30824 --
30825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30826 trace
30827 (p_msg => 'END of AcctLineType_72'
30828 ,p_level => C_LEVEL_PROCEDURE
30829 ,p_module => l_log_module);
30830 END IF;
30831 --
30832 EXCEPTION
30833 WHEN xla_exceptions_pkg.application_exception THEN
30834 RAISE;
30835 WHEN OTHERS THEN
30836 xla_exceptions_pkg.raise_message
30837 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_72');
30838 END AcctLineType_72;
30839 --
30840
30841 ---------------------------------------
30842 --
30843 -- PRIVATE FUNCTION
30844 -- AcctLineType_73
30845 --
30846 ---------------------------------------
30847 PROCEDURE AcctLineType_73 (
30848 p_application_id IN NUMBER
30849 ,p_event_id IN NUMBER
30850 ,p_calculate_acctd_flag IN VARCHAR2
30851 ,p_calculate_g_l_flag IN VARCHAR2
30852 ,p_actual_flag IN OUT VARCHAR2
30853 ,p_balance_type_code OUT VARCHAR2
30857 , p_source_12 IN VARCHAR2
30854 ,p_gain_or_loss_ref OUT VARCHAR2
30855
30856 --Payment Currency Code
30858 --Bank Cash Account
30859 , p_source_13 IN NUMBER
30860 --Automatic Offsets Value
30861 , p_source_16 IN VARCHAR2
30862 , p_source_16_meaning IN VARCHAR2
30863 --When to Account for Payment Option
30864 , p_source_50 IN VARCHAR2
30865 --Payment Distribution Type
30866 , p_source_51 IN VARCHAR2
30867 , p_source_51_meaning IN VARCHAR2
30868 --Accounting Reversal Indicator
30869 , p_source_52 IN VARCHAR2
30870 --Payment Distribution Amount
30871 , p_source_53 IN NUMBER
30872 --Business Flow Accounts Payable Application Identifier
30873 , p_source_54 IN NUMBER
30874 --Business Flow Payment Distribution Type
30875 , p_source_55 IN VARCHAR2
30876 --Business Flow Payment Entity Code
30877 , p_source_56 IN VARCHAR2
30878 --Business Flow Payment Distribution Identifier
30879 , p_source_57 IN NUMBER
30880 --Business Flow Payment Identifier
30881 , p_source_58 IN NUMBER
30882 --Payment Distribution Identifier
30883 , p_source_59 IN NUMBER
30884 --Distribution Link Type
30885 , p_source_60 IN VARCHAR2
30886 --Override Accounted Amount Indicator
30887 , p_source_64 IN VARCHAR2
30888 , p_source_64_meaning IN VARCHAR2
30889 --Payment Supplier Identifier
30890 , p_source_65 IN NUMBER
30891 --Payment Supplier Site Identifier
30892 , p_source_66 IN NUMBER
30893 --Third Party Type
30894 , p_source_67 IN VARCHAR2
30895 --Payment Distribution Reversed Identifier
30896 , p_source_68 IN NUMBER
30897 --Pooled Bank Account Option
30898 , p_source_117 IN VARCHAR2
30899 , p_source_117_meaning IN VARCHAR2
30900 --Payment Maturity Date
30901 , p_source_118 IN DATE
30902 --Payment Exchange Date
30903 , p_source_121 IN DATE
30904 --Payment Exchange Rate
30905 , p_source_122 IN NUMBER
30906 --Payment Exchange Rate Type
30907 , p_source_123 IN VARCHAR2
30908 --Payment Distribution (Matured Rate) Ledger Amount
30909 , p_source_124 IN NUMBER
30910 )
30911 IS
30912
30913 l_component_type VARCHAR2(80);
30914 l_component_code VARCHAR2(30);
30915 l_component_type_code VARCHAR2(1);
30916 l_component_appl_id INTEGER;
30917 l_amb_context_code VARCHAR2(30);
30918 l_entity_code VARCHAR2(30);
30919 l_event_class_code VARCHAR2(30);
30920 l_ae_header_id NUMBER;
30921 l_event_type_code VARCHAR2(30);
30922 l_line_definition_code VARCHAR2(30);
30923 l_line_definition_owner_code VARCHAR2(1);
30924 --
30925 -- adr variables
30926 l_segment VARCHAR2(30);
30927 l_ccid NUMBER;
30928 l_adr_transaction_coa_id NUMBER;
30929 l_adr_accounting_coa_id NUMBER;
30930 l_adr_flexfield_segment_code VARCHAR2(30);
30931 l_adr_flex_value_set_id NUMBER;
30932 l_adr_value_type_code VARCHAR2(30);
30933 l_adr_value_combination_id NUMBER;
30934 l_adr_value_segment_code VARCHAR2(30);
30935
30936 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30937 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30938 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30939 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30940
30941 -- 4262811 Variables ------------------------------------------------------------------------------------------
30942 l_entered_amt_idx NUMBER;
30943 l_accted_amt_idx NUMBER;
30944 l_acc_rev_flag VARCHAR2(1);
30945 l_accrual_line_num NUMBER;
30946 l_tmp_amt NUMBER;
30947 l_acc_rev_natural_side_code VARCHAR2(1);
30948
30949 l_num_entries NUMBER;
30950 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30951 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30952 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30953 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30954 l_recog_line_1 NUMBER;
30955 l_recog_line_2 NUMBER;
30956
30957 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30958 l_bflow_applied_to_amt NUMBER; -- 5132302
30959 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30960
30961 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30962
30963 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30964 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30965
30966 ---------------------------------------------------------------------------------------------------------------
30967
30968
30969 --
30970 -- bulk performance
30971 --
30972 l_balance_type_code VARCHAR2(1);
30973 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30974 l_log_module VARCHAR2(240);
30975
30976 --
30977 -- Upgrade strategy
30978 --
30979 l_actual_upg_option VARCHAR2(1);
30983 BEGIN
30980 l_enc_upg_option VARCHAR2(1);
30981
30982 --
30984 --
30985 IF g_log_enabled THEN
30986 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
30987 END IF;
30988 --
30989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30990
30991 trace
30992 (p_msg => 'BEGIN of AcctLineType_73'
30993 ,p_level => C_LEVEL_PROCEDURE
30994 ,p_module => l_log_module);
30995
30996 END IF;
30997 --
30998 l_component_type := 'AMB_JLT';
30999 l_component_code := 'AP_CASH_PMT_MAT_AOS_BS';
31000 l_component_type_code := 'S';
31001 l_component_appl_id := 200;
31002 l_amb_context_code := 'DEFAULT';
31003 l_entity_code := 'AP_PAYMENTS';
31004 l_event_class_code := 'FUTURE DATED PAYMENTS';
31005 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
31006 l_line_definition_owner_code := 'S';
31007 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
31008 --
31009 l_balance_type_code := 'A';
31010 l_segment := NULL;
31011 l_ccid := NULL;
31012 l_adr_transaction_coa_id := NULL;
31013 l_adr_accounting_coa_id := NULL;
31014 l_adr_flexfield_segment_code := NULL;
31015 l_adr_flex_value_set_id := NULL;
31016 l_adr_value_type_code := NULL;
31017 l_adr_value_combination_id := NULL;
31018 l_adr_value_segment_code := NULL;
31019
31020 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
31021 l_bflow_class_code := ''; -- 4219869 Business Flow
31022 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31023 l_budgetary_control_flag := 'N';
31024
31025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31026 l_bflow_applied_to_amt := NULL; -- 5132302
31027 l_entered_amt_idx := NULL; -- 4262811
31028 l_accted_amt_idx := NULL; -- 4262811
31029 l_acc_rev_flag := NULL; -- 4262811
31030 l_accrual_line_num := NULL; -- 4262811
31031 l_tmp_amt := NULL; -- 4262811
31032 --
31033
31034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31035 l_balance_type_code <> 'B' THEN
31036 IF NVL(p_source_50,'
31037 ') = 'ISSUE_ISSUE' AND
31038 (NVL(p_source_117,'
31039 ') = 'Y' AND
31040 NVL(p_source_16,'
31041 ') = 'BALANCING_SEGMENT') AND
31042 p_source_118 IS NOT NULL AND
31043 NVL(p_source_51,'
31044 ') = 'CASH'
31045 THEN
31046
31047 --
31048 XLA_AE_LINES_PKG.SetNewLine;
31049
31050 p_balance_type_code := l_balance_type_code;
31051 -- set the flag so later we will know whether the gain loss line needs to be created
31052
31053 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31054 p_actual_flag :='A';
31055 END IF;
31056
31057 --
31058 -- bulk performance
31059 --
31060 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31061 p_header_num => 0); -- 4262811
31062 --
31063 -- set accounting line options
31064 --
31065 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31066 p_natural_side_code => 'C'
31067 , p_gain_or_loss_flag => 'N'
31068 , p_gl_transfer_mode_code => 'S'
31069 , p_acct_entry_type_code => 'A'
31070 , p_switch_side_flag => 'Y'
31071 , p_merge_duplicate_code => 'A'
31072 );
31073 --
31074 l_acc_rev_natural_side_code := 'D'; -- 4262811
31075 --
31076 --
31077 -- set accounting line type info
31078 --
31079 xla_ae_lines_pkg.SetAcctLineType
31080 (p_component_type => l_component_type
31081 ,p_event_type_code => l_event_type_code
31082 ,p_line_definition_owner_code => l_line_definition_owner_code
31083 ,p_line_definition_code => l_line_definition_code
31084 ,p_accounting_line_code => l_component_code
31085 ,p_accounting_line_type_code => l_component_type_code
31086 ,p_accounting_line_appl_id => l_component_appl_id
31087 ,p_amb_context_code => l_amb_context_code
31088 ,p_entity_code => l_entity_code
31089 ,p_event_class_code => l_event_class_code);
31090 --
31091 -- set accounting class
31092 --
31093 xla_ae_lines_pkg.SetAcctClass(
31094 p_accounting_class_code => 'CASH'
31095 , p_ae_header_id => l_ae_header_id
31096 );
31097
31098 --
31099 -- set rounding class
31100 --
31101 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31102 'CASH';
31103
31104 --
31105 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31106 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31107 --
31108 -- bulk performance
31109 --
31110 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31111
31112 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31116 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31113 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31114
31115 -- 4955764
31117 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31118
31119 -- 4458381 Public Sector Enh
31120
31121 --
31122 -- set accounting attributes for the line type
31123 --
31124 l_entered_amt_idx := 9;
31125 l_accted_amt_idx := 14;
31126 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31127 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31128 l_rec_acct_attrs.array_char_value(1) := p_source_52;
31129 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31130 l_rec_acct_attrs.array_num_value(2) := p_source_54;
31131 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31132 l_rec_acct_attrs.array_char_value(3) := p_source_55;
31133 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31134 l_rec_acct_attrs.array_char_value(4) := p_source_56;
31135 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31136 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
31137 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31138 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
31139 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31140 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
31141 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31142 l_rec_acct_attrs.array_char_value(8) := p_source_60;
31143 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31144 l_rec_acct_attrs.array_num_value(9) := p_source_53;
31145 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31146 l_rec_acct_attrs.array_char_value(10) := p_source_12;
31147 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31148 l_rec_acct_attrs.array_date_value(11) := p_source_121;
31149 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31150 l_rec_acct_attrs.array_num_value(12) := p_source_122;
31151 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31152 l_rec_acct_attrs.array_char_value(13) := p_source_123;
31153 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31154 l_rec_acct_attrs.array_num_value(14) := p_source_124;
31155 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31156 l_rec_acct_attrs.array_char_value(15) := p_source_64;
31157 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31158 l_rec_acct_attrs.array_num_value(16) := p_source_65;
31159 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31160 l_rec_acct_attrs.array_num_value(17) := p_source_66;
31161 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31162 l_rec_acct_attrs.array_char_value(18) := p_source_67;
31163 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31164 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
31165 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31166 l_rec_acct_attrs.array_char_value(20) := p_source_60;
31167
31168 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31169 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31170
31171 ---------------------------------------------------------------------------------------------------------------
31172 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31173 ---------------------------------------------------------------------------------------------------------------
31174 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31175
31176 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31177 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31178
31179 IF xla_accounting_cache_pkg.GetValueChar
31180 (p_source_code => 'LEDGER_CATEGORY_CODE'
31181 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31182 AND l_bflow_method_code = 'PRIOR_ENTRY'
31183 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31184 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31185 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31186 )
31187 THEN
31188 xla_ae_lines_pkg.BflowUpgEntry
31189 (p_business_method_code => l_bflow_method_code
31190 ,p_business_class_code => l_bflow_class_code
31191 ,p_balance_type => l_balance_type_code);
31192 ELSE
31193 NULL;
31194 XLA_AE_LINES_PKG.business_flow_validation(
31195 p_business_method_code => l_bflow_method_code
31196 ,p_business_class_code => l_bflow_class_code
31197 ,p_inherit_description_flag => l_inherit_desc_flag);
31198 END IF;
31199
31200 --
31201 -- call analytical criteria
31202 --
31203
31204 --
31205 -- call description
31206 --
31207 -- No description or it is inherited.
31208 --
31209 -- call ADRs
31210 -- Bug 4922099
31211 --
31215 )
31212 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31213 (NVL(l_actual_upg_option, 'N') = 'O') OR
31214 (NVL(l_enc_upg_option, 'N') = 'O')
31216 THEN
31217 NULL;
31218 --
31219 --
31220
31221 l_ccid := AcctDerRule_22(
31222 p_application_id => p_application_id
31223 , p_ae_header_id => l_ae_header_id
31224 , p_source_13 => p_source_13
31225 , x_transaction_coa_id => l_adr_transaction_coa_id
31226 , x_accounting_coa_id => l_adr_accounting_coa_id
31227 , x_value_type_code => l_adr_value_type_code
31228 , p_side => 'NA'
31229 );
31230
31231 xla_ae_lines_pkg.set_ccid(
31232 p_code_combination_id => l_ccid
31233 , p_value_type_code => l_adr_value_type_code
31234 , p_transaction_coa_id => l_adr_transaction_coa_id
31235 , p_accounting_coa_id => l_adr_accounting_coa_id
31236 , p_adr_code => 'AP_CASH'
31237 , p_adr_type_code => 'S'
31238 , p_component_type => l_component_type
31239 , p_component_code => l_component_code
31240 , p_component_type_code => l_component_type_code
31241 , p_component_appl_id => l_component_appl_id
31242 , p_amb_context_code => l_amb_context_code
31243 , p_side => 'NA'
31244 );
31245
31246
31247 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
31248 p_to_segment_code => 'GL_BALANCING'
31249 , p_segment_value => C_CHAR
31250 , p_from_segment_code => NULL
31251 , p_from_combination_id => NULL
31252 , p_value_type_code => NULL
31253 , p_transaction_coa_id => null
31254 , p_accounting_coa_id => null
31255 , p_flexfield_segment_code => NULL
31256 , p_flex_value_set_id => NULL
31257 , p_adr_code => NULL
31258 , p_adr_type_code => NULL
31259 , p_component_type => l_component_type
31260 , p_component_code => l_component_code
31261 , p_component_type_code => l_component_type_code
31262 , p_component_appl_id => l_component_appl_id
31263 , p_amb_context_code => l_amb_context_code
31264 , p_entity_code => 'AP_PAYMENTS'
31265 , p_event_class_code => 'FUTURE DATED PAYMENTS'
31266 , p_side => 'NA'
31267 );
31268 --
31269
31270
31271 --
31272 --
31273 END IF;
31274 --
31275 -- Bug 4922099
31276 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31277 (NVL(l_enc_upg_option, 'N') = 'O')
31278 ) AND
31279 (l_bflow_method_code = 'PRIOR_ENTRY')
31280 )
31281 THEN
31282 IF
31283 --
31284 1 = 2
31285 --
31286 THEN
31287 xla_accounting_err_pkg.build_message
31288 (p_appli_s_name => 'XLA'
31289 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31290 ,p_token_1 => 'LINE_NUMBER'
31291 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31292 ,p_token_2 => 'LINE_TYPE_NAME'
31293 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31294 l_component_type
31295 ,l_component_code
31296 ,l_component_type_code
31297 ,l_component_appl_id
31298 ,l_amb_context_code
31299 ,l_entity_code
31300 ,l_event_class_code
31301 )
31302 ,p_token_3 => 'OWNER'
31303 ,p_value_3 => xla_lookups_pkg.get_meaning(
31304 p_lookup_type => 'XLA_OWNER_TYPE'
31305 ,p_lookup_code => l_component_type_code
31306 )
31307 ,p_token_4 => 'PRODUCT_NAME'
31308 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31309 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31310 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31311 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31312 ,p_ae_header_id => NULL
31313 );
31314
31315 IF (C_LEVEL_ERROR>= g_log_level) THEN
31316 trace
31317 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31321 END IF;
31318 ,p_level => C_LEVEL_ERROR
31319 ,p_module => l_log_module);
31320 END IF;
31322 END IF;
31323 --
31324 --
31325 ------------------------------------------------------------------------------------------------
31326 -- 4219869 Business Flow
31327 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31328 -- Prior Entry. Currently, the following code is always generated.
31329 ------------------------------------------------------------------------------------------------
31330 XLA_AE_LINES_PKG.ValidateCurrentLine;
31331
31332 ------------------------------------------------------------------------------------
31333 -- 4219869 Business Flow
31334 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31335 ------------------------------------------------------------------------------------
31336 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31337
31338 ----------------------------------------------------------------------------------
31339 -- 4219869 Business Flow
31340 -- Update journal entry status -- Need to generate this within IF <condition>
31341 ----------------------------------------------------------------------------------
31342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31343 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31344 ,p_balance_type_code => l_balance_type_code
31345 );
31346
31347 -------------------------------------------------------------------------------------------
31348 -- 4262811 - Generate the Accrual Reversal lines
31349 -------------------------------------------------------------------------------------------
31350 BEGIN
31351 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31352 (g_array_event(p_event_id).array_value_num('header_index'));
31353 IF l_acc_rev_flag IS NULL THEN
31354 l_acc_rev_flag := 'N';
31355 END IF;
31356 EXCEPTION
31357 WHEN OTHERS THEN
31358 l_acc_rev_flag := 'N';
31359 END;
31360 --
31361 IF (l_acc_rev_flag = 'Y') THEN
31362
31363 -- 4645092 ------------------------------------------------------------------------------
31364 -- To allow MPA report to determine if it should generate report process
31365 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31366 ------------------------------------------------------------------------------------------
31367
31368 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31369 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31370 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
31371 -- call ADRs
31372 -- Bug 4922099
31373 --
31374 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31375 (NVL(l_actual_upg_option, 'N') = 'O') OR
31376 (NVL(l_enc_upg_option, 'N') = 'O')
31377 )
31378 THEN
31379 NULL;
31380 --
31381 --
31382
31383 l_ccid := AcctDerRule_22(
31384 p_application_id => p_application_id
31385 , p_ae_header_id => l_ae_header_id
31386 , p_source_13 => p_source_13
31387 , x_transaction_coa_id => l_adr_transaction_coa_id
31388 , x_accounting_coa_id => l_adr_accounting_coa_id
31389 , x_value_type_code => l_adr_value_type_code
31390 , p_side => 'NA'
31391 );
31392
31393 xla_ae_lines_pkg.set_ccid(
31394 p_code_combination_id => l_ccid
31395 , p_value_type_code => l_adr_value_type_code
31396 , p_transaction_coa_id => l_adr_transaction_coa_id
31397 , p_accounting_coa_id => l_adr_accounting_coa_id
31398 , p_adr_code => 'AP_CASH'
31399 , p_adr_type_code => 'S'
31400 , p_component_type => l_component_type
31401 , p_component_code => l_component_code
31402 , p_component_type_code => l_component_type_code
31403 , p_component_appl_id => l_component_appl_id
31404 , p_amb_context_code => l_amb_context_code
31405 , p_side => 'NA'
31406 );
31407
31408
31409 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
31410 p_to_segment_code => 'GL_BALANCING'
31411 , p_segment_value => C_CHAR
31412 , p_from_segment_code => NULL
31413 , p_from_combination_id => NULL
31414 , p_value_type_code => NULL
31415 , p_transaction_coa_id => null
31416 , p_accounting_coa_id => null
31417 , p_flexfield_segment_code => NULL
31418 , p_flex_value_set_id => NULL
31419 , p_adr_code => NULL
31420 , p_adr_type_code => NULL
31421 , p_component_type => l_component_type
31422 , p_component_code => l_component_code
31423 , p_component_type_code => l_component_type_code
31424 , p_component_appl_id => l_component_appl_id
31425 , p_amb_context_code => l_amb_context_code
31426 , p_entity_code => 'AP_PAYMENTS'
31427 , p_event_class_code => 'FUTURE DATED PAYMENTS'
31428 , p_side => 'NA'
31429 );
31430 --
31431
31432
31433 --
31434 --
31435 END IF;
31436
31440 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31437 --
31438 -- Update the line information that should be overwritten
31439 --
31441 p_header_num => 1);
31442 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31443
31444 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31445
31446 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31447 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31448 END IF;
31449
31450 --
31451 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31452 --
31453 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31454 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31455 ELSE
31456 ---------------------------------------------------------------------------------------------------
31457 -- 4262811a Switch Sign
31458 ---------------------------------------------------------------------------------------------------
31459 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31461 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31462 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31463 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31464 -- 5132302
31465 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31466 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31467
31468 END IF;
31469
31470 -- 4955764
31471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31473
31474
31475 XLA_AE_LINES_PKG.ValidateCurrentLine;
31476 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31477
31478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31479 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31480 ,p_balance_type_code => l_balance_type_code);
31481
31482 END IF;
31483
31484 -----------------------------------------------------------------------------------------
31485 -- 4262811 Multiperiod Accounting
31486 -----------------------------------------------------------------------------------------
31487 -- No MPA option is assigned.
31488
31489
31490 END IF;
31491 END IF;
31492 --
31493
31494 --
31495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31496 trace
31497 (p_msg => 'END of AcctLineType_73'
31498 ,p_level => C_LEVEL_PROCEDURE
31499 ,p_module => l_log_module);
31500 END IF;
31501 --
31502 EXCEPTION
31503 WHEN xla_exceptions_pkg.application_exception THEN
31504 RAISE;
31505 WHEN OTHERS THEN
31506 xla_exceptions_pkg.raise_message
31507 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_73');
31508 END AcctLineType_73;
31509 --
31510
31511 ---------------------------------------
31512 --
31513 -- PRIVATE FUNCTION
31514 -- AcctLineType_74
31515 --
31516 ---------------------------------------
31517 PROCEDURE AcctLineType_74 (
31518 p_application_id IN NUMBER
31519 ,p_event_id IN NUMBER
31520 ,p_calculate_acctd_flag IN VARCHAR2
31521 ,p_calculate_g_l_flag IN VARCHAR2
31522 ,p_actual_flag IN OUT VARCHAR2
31523 ,p_balance_type_code OUT VARCHAR2
31524 ,p_gain_or_loss_ref OUT VARCHAR2
31525
31526 --Payment Currency Code
31527 , p_source_12 IN VARCHAR2
31528 --Bank Cash Account
31529 , p_source_13 IN NUMBER
31530 --Payment Distribution (Payment Rate) Ledger Amount
31531 , p_source_21 IN NUMBER
31532 --Automatic Offsets Flag
31533 , p_source_42 IN VARCHAR2
31534 , p_source_42_meaning IN VARCHAR2
31535 --When to Account for Payment Option
31536 , p_source_50 IN VARCHAR2
31537 --Payment Distribution Type
31538 , p_source_51 IN VARCHAR2
31539 , p_source_51_meaning IN VARCHAR2
31540 --Accounting Reversal Indicator
31541 , p_source_52 IN VARCHAR2
31542 --Payment Distribution Amount
31543 , p_source_53 IN NUMBER
31544 --Business Flow Accounts Payable Application Identifier
31545 , p_source_54 IN NUMBER
31546 --Payment Distribution Identifier
31547 , p_source_59 IN NUMBER
31548 --Distribution Link Type
31549 , p_source_60 IN VARCHAR2
31550 --Override Accounted Amount Indicator
31551 , p_source_64 IN VARCHAR2
31552 , p_source_64_meaning IN VARCHAR2
31553 --Payment Supplier Identifier
31554 , p_source_65 IN NUMBER
31555 --Payment Supplier Site Identifier
31556 , p_source_66 IN NUMBER
31557 --Third Party Type
31558 , p_source_67 IN VARCHAR2
31559 --Payment Distribution Reversed Identifier
31560 , p_source_68 IN NUMBER
31564 , p_source_70 IN NUMBER
31561 --Invoice Distribution Tax Line Identifier
31562 , p_source_69 IN NUMBER
31563 --Invoice Distribution Summary Tax Line Identifier
31565 --Payment Type
31566 , p_source_71 IN VARCHAR2
31567 , p_source_71_meaning IN VARCHAR2
31568 --Business Flow Invoice Distribution Type
31569 , p_source_73 IN VARCHAR2
31570 --Business Flow Invoice Entity Code
31571 , p_source_74 IN VARCHAR2
31572 --Business Flow Invoice Distribution Identifier
31573 , p_source_75 IN NUMBER
31574 --Business Flow Invoice Identifier
31575 , p_source_76 IN NUMBER
31576 --Invoice Distribution Tax Distribution Identifier from Tax
31577 , p_source_77 IN NUMBER
31578 --Pooled Bank Account Option
31579 , p_source_117 IN VARCHAR2
31580 , p_source_117_meaning IN VARCHAR2
31581 --Payment Maturity Date
31582 , p_source_118 IN DATE
31583 --Payment Exchange Date
31584 , p_source_121 IN DATE
31585 --Payment Exchange Rate
31586 , p_source_122 IN NUMBER
31587 --Payment Exchange Rate Type
31588 , p_source_123 IN VARCHAR2
31589 )
31590 IS
31591
31592 l_component_type VARCHAR2(80);
31593 l_component_code VARCHAR2(30);
31594 l_component_type_code VARCHAR2(1);
31595 l_component_appl_id INTEGER;
31596 l_amb_context_code VARCHAR2(30);
31597 l_entity_code VARCHAR2(30);
31598 l_event_class_code VARCHAR2(30);
31599 l_ae_header_id NUMBER;
31600 l_event_type_code VARCHAR2(30);
31601 l_line_definition_code VARCHAR2(30);
31602 l_line_definition_owner_code VARCHAR2(1);
31603 --
31604 -- adr variables
31605 l_segment VARCHAR2(30);
31606 l_ccid NUMBER;
31607 l_adr_transaction_coa_id NUMBER;
31608 l_adr_accounting_coa_id NUMBER;
31609 l_adr_flexfield_segment_code VARCHAR2(30);
31610 l_adr_flex_value_set_id NUMBER;
31611 l_adr_value_type_code VARCHAR2(30);
31612 l_adr_value_combination_id NUMBER;
31613 l_adr_value_segment_code VARCHAR2(30);
31614
31615 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31616 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31617 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31618 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31619
31620 -- 4262811 Variables ------------------------------------------------------------------------------------------
31621 l_entered_amt_idx NUMBER;
31622 l_accted_amt_idx NUMBER;
31623 l_acc_rev_flag VARCHAR2(1);
31624 l_accrual_line_num NUMBER;
31625 l_tmp_amt NUMBER;
31626 l_acc_rev_natural_side_code VARCHAR2(1);
31627
31628 l_num_entries NUMBER;
31629 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31630 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31631 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31632 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31633 l_recog_line_1 NUMBER;
31634 l_recog_line_2 NUMBER;
31635
31636 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31637 l_bflow_applied_to_amt NUMBER; -- 5132302
31638 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31639
31640 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31641
31642 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31643 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31644
31645 ---------------------------------------------------------------------------------------------------------------
31646
31647
31648 --
31649 -- bulk performance
31650 --
31651 l_balance_type_code VARCHAR2(1);
31652 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31653 l_log_module VARCHAR2(240);
31654
31655 --
31656 -- Upgrade strategy
31657 --
31658 l_actual_upg_option VARCHAR2(1);
31659 l_enc_upg_option VARCHAR2(1);
31660
31661 --
31662 BEGIN
31663 --
31664 IF g_log_enabled THEN
31665 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
31666 END IF;
31667 --
31668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31669
31670 trace
31671 (p_msg => 'BEGIN of AcctLineType_74'
31672 ,p_level => C_LEVEL_PROCEDURE
31673 ,p_module => l_log_module);
31674
31675 END IF;
31676 --
31677 l_component_type := 'AMB_JLT';
31678 l_component_code := 'AP_CASH_REF';
31679 l_component_type_code := 'S';
31680 l_component_appl_id := 200;
31681 l_amb_context_code := 'DEFAULT';
31682 l_entity_code := 'AP_PAYMENTS';
31683 l_event_class_code := 'REFUNDS';
31684 l_event_type_code := 'REFUNDS_ALL';
31685 l_line_definition_owner_code := 'S';
31686 l_line_definition_code := 'CASH_REFUNDS_ALL';
31687 --
31688 l_balance_type_code := 'A';
31689 l_segment := NULL;
31693 l_adr_flexfield_segment_code := NULL;
31690 l_ccid := NULL;
31691 l_adr_transaction_coa_id := NULL;
31692 l_adr_accounting_coa_id := NULL;
31694 l_adr_flex_value_set_id := NULL;
31695 l_adr_value_type_code := NULL;
31696 l_adr_value_combination_id := NULL;
31697 l_adr_value_segment_code := NULL;
31698
31699 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31700 l_bflow_class_code := ''; -- 4219869 Business Flow
31701 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31702 l_budgetary_control_flag := 'N';
31703
31704 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31705 l_bflow_applied_to_amt := NULL; -- 5132302
31706 l_entered_amt_idx := NULL; -- 4262811
31707 l_accted_amt_idx := NULL; -- 4262811
31708 l_acc_rev_flag := NULL; -- 4262811
31709 l_accrual_line_num := NULL; -- 4262811
31710 l_tmp_amt := NULL; -- 4262811
31711 --
31712
31713 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31714 l_balance_type_code <> 'B' THEN
31715 IF NVL(p_source_50,'
31716 ') = 'ISSUE_ISSUE' AND
31717 (NVL(p_source_42,'
31718 ') <> 'Y' OR
31719 NVL(p_source_42,'
31720 ') = 'Y' AND
31721 NVL(p_source_117,'
31722 ') <> 'Y') AND
31723 p_source_118 IS NULL AND
31724 NVL(p_source_51,'
31725 ') = 'CASH' AND
31726 NVL(p_source_71,'
31727 ') = 'R'
31728 THEN
31729
31730 --
31731 XLA_AE_LINES_PKG.SetNewLine;
31732
31733 p_balance_type_code := l_balance_type_code;
31734 -- set the flag so later we will know whether the gain loss line needs to be created
31735
31736 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31737 p_actual_flag :='A';
31738 END IF;
31739
31740 --
31741 -- bulk performance
31742 --
31743 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31744 p_header_num => 0); -- 4262811
31745 --
31746 -- set accounting line options
31747 --
31748 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31749 p_natural_side_code => 'C'
31750 , p_gain_or_loss_flag => 'N'
31751 , p_gl_transfer_mode_code => 'S'
31752 , p_acct_entry_type_code => 'A'
31753 , p_switch_side_flag => 'Y'
31754 , p_merge_duplicate_code => 'A'
31755 );
31756 --
31757 l_acc_rev_natural_side_code := 'D'; -- 4262811
31758 --
31759 --
31760 -- set accounting line type info
31761 --
31762 xla_ae_lines_pkg.SetAcctLineType
31763 (p_component_type => l_component_type
31764 ,p_event_type_code => l_event_type_code
31765 ,p_line_definition_owner_code => l_line_definition_owner_code
31766 ,p_line_definition_code => l_line_definition_code
31767 ,p_accounting_line_code => l_component_code
31768 ,p_accounting_line_type_code => l_component_type_code
31769 ,p_accounting_line_appl_id => l_component_appl_id
31770 ,p_amb_context_code => l_amb_context_code
31771 ,p_entity_code => l_entity_code
31772 ,p_event_class_code => l_event_class_code);
31773 --
31774 -- set accounting class
31775 --
31776 xla_ae_lines_pkg.SetAcctClass(
31777 p_accounting_class_code => 'CASH'
31778 , p_ae_header_id => l_ae_header_id
31779 );
31780
31781 --
31782 -- set rounding class
31783 --
31784 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31785 'CASH';
31786
31787 --
31788 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31789 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31790 --
31791 -- bulk performance
31792 --
31793 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31794
31795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31796 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31797
31798 -- 4955764
31799 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31800 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31801
31802 -- 4458381 Public Sector Enh
31803
31804 --
31805 -- set accounting attributes for the line type
31806 --
31807 l_entered_amt_idx := 9;
31808 l_accted_amt_idx := 14;
31809 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31810 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31811 l_rec_acct_attrs.array_char_value(1) := p_source_52;
31812 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31813 l_rec_acct_attrs.array_num_value(2) := p_source_54;
31814 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31815 l_rec_acct_attrs.array_char_value(3) := p_source_73;
31816 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31820 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31817 l_rec_acct_attrs.array_char_value(4) := p_source_74;
31818 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31819 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
31821 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
31822 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31823 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
31824 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31825 l_rec_acct_attrs.array_char_value(8) := p_source_60;
31826 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31827 l_rec_acct_attrs.array_num_value(9) := p_source_53;
31828 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31829 l_rec_acct_attrs.array_char_value(10) := p_source_12;
31830 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31831 l_rec_acct_attrs.array_date_value(11) := p_source_121;
31832 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31833 l_rec_acct_attrs.array_num_value(12) := p_source_122;
31834 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31835 l_rec_acct_attrs.array_char_value(13) := p_source_123;
31836 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31837 l_rec_acct_attrs.array_num_value(14) := p_source_21;
31838 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31839 l_rec_acct_attrs.array_char_value(15) := p_source_64;
31840 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31841 l_rec_acct_attrs.array_num_value(16) := p_source_65;
31842 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31843 l_rec_acct_attrs.array_num_value(17) := p_source_66;
31844 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31845 l_rec_acct_attrs.array_char_value(18) := p_source_67;
31846 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31847 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
31848 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31849 l_rec_acct_attrs.array_char_value(20) := p_source_60;
31850 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
31851 l_rec_acct_attrs.array_num_value(21) := p_source_69;
31852 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
31853 l_rec_acct_attrs.array_num_value(22) := p_source_77;
31854 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
31855 l_rec_acct_attrs.array_num_value(23) := p_source_70;
31856
31857 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31858 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31859
31860 ---------------------------------------------------------------------------------------------------------------
31861 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31862 ---------------------------------------------------------------------------------------------------------------
31863 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31864
31865 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31866 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31867
31868 IF xla_accounting_cache_pkg.GetValueChar
31869 (p_source_code => 'LEDGER_CATEGORY_CODE'
31870 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31871 AND l_bflow_method_code = 'PRIOR_ENTRY'
31872 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31873 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31874 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31875 )
31876 THEN
31877 xla_ae_lines_pkg.BflowUpgEntry
31878 (p_business_method_code => l_bflow_method_code
31879 ,p_business_class_code => l_bflow_class_code
31880 ,p_balance_type => l_balance_type_code);
31881 ELSE
31882 NULL;
31883 -- No business flow processing for business flow method of NONE.
31884 END IF;
31885
31886 --
31887 -- call analytical criteria
31888 --
31889
31890 --
31891 -- call description
31892 --
31893 -- No description or it is inherited.
31894 --
31895 -- call ADRs
31896 -- Bug 4922099
31897 --
31898 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31899 (NVL(l_actual_upg_option, 'N') = 'O') OR
31900 (NVL(l_enc_upg_option, 'N') = 'O')
31901 )
31902 THEN
31903 NULL;
31904 --
31905 --
31906
31907 l_ccid := AcctDerRule_22(
31908 p_application_id => p_application_id
31909 , p_ae_header_id => l_ae_header_id
31910 , p_source_13 => p_source_13
31911 , x_transaction_coa_id => l_adr_transaction_coa_id
31912 , x_accounting_coa_id => l_adr_accounting_coa_id
31913 , x_value_type_code => l_adr_value_type_code
31914 , p_side => 'NA'
31915 );
31916
31917 xla_ae_lines_pkg.set_ccid(
31918 p_code_combination_id => l_ccid
31919 , p_value_type_code => l_adr_value_type_code
31923 , p_adr_type_code => 'S'
31920 , p_transaction_coa_id => l_adr_transaction_coa_id
31921 , p_accounting_coa_id => l_adr_accounting_coa_id
31922 , p_adr_code => 'AP_CASH'
31924 , p_component_type => l_component_type
31925 , p_component_code => l_component_code
31926 , p_component_type_code => l_component_type_code
31927 , p_component_appl_id => l_component_appl_id
31928 , p_amb_context_code => l_amb_context_code
31929 , p_side => 'NA'
31930 );
31931
31932
31933 --
31934 --
31935 END IF;
31936 --
31937 -- Bug 4922099
31938 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31939 (NVL(l_enc_upg_option, 'N') = 'O')
31940 ) AND
31941 (l_bflow_method_code = 'PRIOR_ENTRY')
31942 )
31943 THEN
31944 IF
31945 --
31946 1 = 2
31947 --
31948 THEN
31949 xla_accounting_err_pkg.build_message
31950 (p_appli_s_name => 'XLA'
31951 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31952 ,p_token_1 => 'LINE_NUMBER'
31953 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31954 ,p_token_2 => 'LINE_TYPE_NAME'
31955 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31956 l_component_type
31957 ,l_component_code
31958 ,l_component_type_code
31959 ,l_component_appl_id
31960 ,l_amb_context_code
31961 ,l_entity_code
31962 ,l_event_class_code
31963 )
31964 ,p_token_3 => 'OWNER'
31965 ,p_value_3 => xla_lookups_pkg.get_meaning(
31966 p_lookup_type => 'XLA_OWNER_TYPE'
31967 ,p_lookup_code => l_component_type_code
31968 )
31969 ,p_token_4 => 'PRODUCT_NAME'
31970 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31971 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31972 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31973 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31974 ,p_ae_header_id => NULL
31975 );
31976
31977 IF (C_LEVEL_ERROR>= g_log_level) THEN
31978 trace
31979 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31980 ,p_level => C_LEVEL_ERROR
31981 ,p_module => l_log_module);
31982 END IF;
31983 END IF;
31984 END IF;
31985 --
31986 --
31987 ------------------------------------------------------------------------------------------------
31988 -- 4219869 Business Flow
31989 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31990 -- Prior Entry. Currently, the following code is always generated.
31991 ------------------------------------------------------------------------------------------------
31992 XLA_AE_LINES_PKG.ValidateCurrentLine;
31993
31994 ------------------------------------------------------------------------------------
31995 -- 4219869 Business Flow
31996 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31997 ------------------------------------------------------------------------------------
31998 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31999
32000 ----------------------------------------------------------------------------------
32001 -- 4219869 Business Flow
32002 -- Update journal entry status -- Need to generate this within IF <condition>
32003 ----------------------------------------------------------------------------------
32004 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32005 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32006 ,p_balance_type_code => l_balance_type_code
32007 );
32008
32009 -------------------------------------------------------------------------------------------
32010 -- 4262811 - Generate the Accrual Reversal lines
32011 -------------------------------------------------------------------------------------------
32012 BEGIN
32013 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32014 (g_array_event(p_event_id).array_value_num('header_index'));
32015 IF l_acc_rev_flag IS NULL THEN
32019 WHEN OTHERS THEN
32016 l_acc_rev_flag := 'N';
32017 END IF;
32018 EXCEPTION
32020 l_acc_rev_flag := 'N';
32021 END;
32022 --
32023 IF (l_acc_rev_flag = 'Y') THEN
32024
32025 -- 4645092 ------------------------------------------------------------------------------
32026 -- To allow MPA report to determine if it should generate report process
32027 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32028 ------------------------------------------------------------------------------------------
32029
32030 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32031 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32032 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32033 -- call ADRs
32034 -- Bug 4922099
32035 --
32036 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32037 (NVL(l_actual_upg_option, 'N') = 'O') OR
32038 (NVL(l_enc_upg_option, 'N') = 'O')
32039 )
32040 THEN
32041 NULL;
32042 --
32043 --
32044
32045 l_ccid := AcctDerRule_22(
32046 p_application_id => p_application_id
32047 , p_ae_header_id => l_ae_header_id
32048 , p_source_13 => p_source_13
32049 , x_transaction_coa_id => l_adr_transaction_coa_id
32050 , x_accounting_coa_id => l_adr_accounting_coa_id
32051 , x_value_type_code => l_adr_value_type_code
32052 , p_side => 'NA'
32053 );
32054
32055 xla_ae_lines_pkg.set_ccid(
32056 p_code_combination_id => l_ccid
32057 , p_value_type_code => l_adr_value_type_code
32058 , p_transaction_coa_id => l_adr_transaction_coa_id
32059 , p_accounting_coa_id => l_adr_accounting_coa_id
32060 , p_adr_code => 'AP_CASH'
32061 , p_adr_type_code => 'S'
32062 , p_component_type => l_component_type
32063 , p_component_code => l_component_code
32064 , p_component_type_code => l_component_type_code
32065 , p_component_appl_id => l_component_appl_id
32066 , p_amb_context_code => l_amb_context_code
32067 , p_side => 'NA'
32068 );
32069
32070
32071 --
32072 --
32073 END IF;
32074
32075 --
32076 -- Update the line information that should be overwritten
32077 --
32078 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32079 p_header_num => 1);
32080 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32081
32082 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32083
32084 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32085 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32086 END IF;
32087
32088 --
32089 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32090 --
32091 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32092 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32093 ELSE
32094 ---------------------------------------------------------------------------------------------------
32095 -- 4262811a Switch Sign
32096 ---------------------------------------------------------------------------------------------------
32097 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32098 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32099 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32100 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32101 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32102 -- 5132302
32103 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32104 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32105
32106 END IF;
32107
32108 -- 4955764
32109 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32110 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32111
32112
32113 XLA_AE_LINES_PKG.ValidateCurrentLine;
32114 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32115
32116 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32117 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32118 ,p_balance_type_code => l_balance_type_code);
32119
32120 END IF;
32121
32122 -----------------------------------------------------------------------------------------
32123 -- 4262811 Multiperiod Accounting
32124 -----------------------------------------------------------------------------------------
32125 -- No MPA option is assigned.
32126
32127
32128 END IF;
32129 END IF;
32130 --
32131
32132 --
32136 ,p_level => C_LEVEL_PROCEDURE
32133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32134 trace
32135 (p_msg => 'END of AcctLineType_74'
32137 ,p_module => l_log_module);
32138 END IF;
32139 --
32140 EXCEPTION
32141 WHEN xla_exceptions_pkg.application_exception THEN
32142 RAISE;
32143 WHEN OTHERS THEN
32144 xla_exceptions_pkg.raise_message
32145 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_74');
32146 END AcctLineType_74;
32147 --
32148
32149 ---------------------------------------
32150 --
32151 -- PRIVATE FUNCTION
32152 -- AcctLineType_75
32153 --
32154 ---------------------------------------
32155 PROCEDURE AcctLineType_75 (
32156 p_application_id IN NUMBER
32157 ,p_event_id IN NUMBER
32158 ,p_calculate_acctd_flag IN VARCHAR2
32159 ,p_calculate_g_l_flag IN VARCHAR2
32160 ,p_actual_flag IN OUT VARCHAR2
32161 ,p_balance_type_code OUT VARCHAR2
32162 ,p_gain_or_loss_ref OUT VARCHAR2
32163
32164 --Payment Currency Code
32165 , p_source_12 IN VARCHAR2
32166 --Bank Cash Account
32167 , p_source_13 IN NUMBER
32168 --Automatic Offsets Value
32169 , p_source_16 IN VARCHAR2
32170 , p_source_16_meaning IN VARCHAR2
32171 --Payment Distribution (Payment Rate) Ledger Amount
32172 , p_source_21 IN NUMBER
32173 --When to Account for Payment Option
32174 , p_source_50 IN VARCHAR2
32175 --Payment Distribution Type
32176 , p_source_51 IN VARCHAR2
32177 , p_source_51_meaning IN VARCHAR2
32178 --Accounting Reversal Indicator
32179 , p_source_52 IN VARCHAR2
32180 --Payment Distribution Amount
32181 , p_source_53 IN NUMBER
32182 --Business Flow Accounts Payable Application Identifier
32183 , p_source_54 IN NUMBER
32184 --Payment Distribution Identifier
32185 , p_source_59 IN NUMBER
32186 --Distribution Link Type
32187 , p_source_60 IN VARCHAR2
32188 --Override Accounted Amount Indicator
32189 , p_source_64 IN VARCHAR2
32190 , p_source_64_meaning IN VARCHAR2
32191 --Payment Supplier Identifier
32192 , p_source_65 IN NUMBER
32193 --Payment Supplier Site Identifier
32194 , p_source_66 IN NUMBER
32195 --Third Party Type
32196 , p_source_67 IN VARCHAR2
32197 --Payment Distribution Reversed Identifier
32198 , p_source_68 IN NUMBER
32199 --Invoice Distribution Tax Line Identifier
32200 , p_source_69 IN NUMBER
32201 --Invoice Distribution Summary Tax Line Identifier
32202 , p_source_70 IN NUMBER
32203 --Payment Type
32204 , p_source_71 IN VARCHAR2
32205 , p_source_71_meaning IN VARCHAR2
32206 --Business Flow Invoice Distribution Type
32207 , p_source_73 IN VARCHAR2
32208 --Business Flow Invoice Entity Code
32209 , p_source_74 IN VARCHAR2
32210 --Business Flow Invoice Distribution Identifier
32211 , p_source_75 IN NUMBER
32212 --Business Flow Invoice Identifier
32213 , p_source_76 IN NUMBER
32214 --Invoice Distribution Tax Distribution Identifier from Tax
32215 , p_source_77 IN NUMBER
32216 --Pooled Bank Account Option
32217 , p_source_117 IN VARCHAR2
32218 , p_source_117_meaning IN VARCHAR2
32219 --Payment Maturity Date
32220 , p_source_118 IN DATE
32221 --Payment Exchange Date
32222 , p_source_121 IN DATE
32223 --Payment Exchange Rate
32224 , p_source_122 IN NUMBER
32225 --Payment Exchange Rate Type
32226 , p_source_123 IN VARCHAR2
32227 )
32228 IS
32229
32230 l_component_type VARCHAR2(80);
32231 l_component_code VARCHAR2(30);
32232 l_component_type_code VARCHAR2(1);
32233 l_component_appl_id INTEGER;
32234 l_amb_context_code VARCHAR2(30);
32235 l_entity_code VARCHAR2(30);
32236 l_event_class_code VARCHAR2(30);
32237 l_ae_header_id NUMBER;
32238 l_event_type_code VARCHAR2(30);
32239 l_line_definition_code VARCHAR2(30);
32240 l_line_definition_owner_code VARCHAR2(1);
32241 --
32242 -- adr variables
32243 l_segment VARCHAR2(30);
32244 l_ccid NUMBER;
32245 l_adr_transaction_coa_id NUMBER;
32246 l_adr_accounting_coa_id NUMBER;
32247 l_adr_flexfield_segment_code VARCHAR2(30);
32248 l_adr_flex_value_set_id NUMBER;
32249 l_adr_value_type_code VARCHAR2(30);
32250 l_adr_value_combination_id NUMBER;
32251 l_adr_value_segment_code VARCHAR2(30);
32252
32253 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32254 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32255 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32256 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32257
32258 -- 4262811 Variables ------------------------------------------------------------------------------------------
32259 l_entered_amt_idx NUMBER;
32260 l_accted_amt_idx NUMBER;
32261 l_acc_rev_flag VARCHAR2(1);
32262 l_accrual_line_num NUMBER;
32263 l_tmp_amt NUMBER;
32264 l_acc_rev_natural_side_code VARCHAR2(1);
32265
32266 l_num_entries NUMBER;
32267 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32271 l_recog_line_1 NUMBER;
32268 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32269 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32270 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32272 l_recog_line_2 NUMBER;
32273
32274 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32275 l_bflow_applied_to_amt NUMBER; -- 5132302
32276 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32277
32278 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32279
32280 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32281 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32282
32283 ---------------------------------------------------------------------------------------------------------------
32284
32285
32286 --
32287 -- bulk performance
32288 --
32289 l_balance_type_code VARCHAR2(1);
32290 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32291 l_log_module VARCHAR2(240);
32292
32293 --
32294 -- Upgrade strategy
32295 --
32296 l_actual_upg_option VARCHAR2(1);
32297 l_enc_upg_option VARCHAR2(1);
32298
32299 --
32300 BEGIN
32301 --
32302 IF g_log_enabled THEN
32303 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
32304 END IF;
32305 --
32306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32307
32308 trace
32309 (p_msg => 'BEGIN of AcctLineType_75'
32310 ,p_level => C_LEVEL_PROCEDURE
32311 ,p_module => l_log_module);
32312
32313 END IF;
32314 --
32315 l_component_type := 'AMB_JLT';
32316 l_component_code := 'AP_CASH_REF_AOS_AS';
32317 l_component_type_code := 'S';
32318 l_component_appl_id := 200;
32319 l_amb_context_code := 'DEFAULT';
32320 l_entity_code := 'AP_PAYMENTS';
32321 l_event_class_code := 'REFUNDS';
32322 l_event_type_code := 'REFUNDS_ALL';
32323 l_line_definition_owner_code := 'S';
32324 l_line_definition_code := 'CASH_REFUNDS_ALL';
32325 --
32326 l_balance_type_code := 'A';
32327 l_segment := NULL;
32328 l_ccid := NULL;
32329 l_adr_transaction_coa_id := NULL;
32330 l_adr_accounting_coa_id := NULL;
32331 l_adr_flexfield_segment_code := NULL;
32332 l_adr_flex_value_set_id := NULL;
32333 l_adr_value_type_code := NULL;
32334 l_adr_value_combination_id := NULL;
32335 l_adr_value_segment_code := NULL;
32336
32337 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
32338 l_bflow_class_code := ''; -- 4219869 Business Flow
32339 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32340 l_budgetary_control_flag := 'N';
32341
32342 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32343 l_bflow_applied_to_amt := NULL; -- 5132302
32344 l_entered_amt_idx := NULL; -- 4262811
32345 l_accted_amt_idx := NULL; -- 4262811
32346 l_acc_rev_flag := NULL; -- 4262811
32347 l_accrual_line_num := NULL; -- 4262811
32348 l_tmp_amt := NULL; -- 4262811
32349 --
32350
32351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32352 l_balance_type_code <> 'B' THEN
32353 IF NVL(p_source_50,'
32354 ') = 'ISSUE_ISSUE' AND
32355 (NVL(p_source_117,'
32356 ') = 'Y' AND
32357 NVL(p_source_16,'
32358 ') = 'ACCOUNT_SEGMENT_VALUE') AND
32359 p_source_118 IS NULL AND
32360 NVL(p_source_51,'
32361 ') = 'CASH' AND
32362 NVL(p_source_71,'
32363 ') = 'R'
32364 THEN
32365
32366 --
32367 XLA_AE_LINES_PKG.SetNewLine;
32368
32369 p_balance_type_code := l_balance_type_code;
32370 -- set the flag so later we will know whether the gain loss line needs to be created
32371
32372 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32373 p_actual_flag :='A';
32374 END IF;
32375
32376 --
32377 -- bulk performance
32378 --
32379 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32380 p_header_num => 0); -- 4262811
32381 --
32382 -- set accounting line options
32383 --
32384 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32385 p_natural_side_code => 'C'
32386 , p_gain_or_loss_flag => 'N'
32387 , p_gl_transfer_mode_code => 'S'
32388 , p_acct_entry_type_code => 'A'
32389 , p_switch_side_flag => 'Y'
32390 , p_merge_duplicate_code => 'A'
32391 );
32392 --
32393 l_acc_rev_natural_side_code := 'D'; -- 4262811
32394 --
32395 --
32396 -- set accounting line type info
32397 --
32398 xla_ae_lines_pkg.SetAcctLineType
32399 (p_component_type => l_component_type
32400 ,p_event_type_code => l_event_type_code
32401 ,p_line_definition_owner_code => l_line_definition_owner_code
32405 ,p_accounting_line_appl_id => l_component_appl_id
32402 ,p_line_definition_code => l_line_definition_code
32403 ,p_accounting_line_code => l_component_code
32404 ,p_accounting_line_type_code => l_component_type_code
32406 ,p_amb_context_code => l_amb_context_code
32407 ,p_entity_code => l_entity_code
32408 ,p_event_class_code => l_event_class_code);
32409 --
32410 -- set accounting class
32411 --
32412 xla_ae_lines_pkg.SetAcctClass(
32413 p_accounting_class_code => 'CASH'
32414 , p_ae_header_id => l_ae_header_id
32415 );
32416
32417 --
32418 -- set rounding class
32419 --
32420 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32421 'CASH';
32422
32423 --
32424 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32425 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32426 --
32427 -- bulk performance
32428 --
32429 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32430
32431 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32432 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32433
32434 -- 4955764
32435 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32436 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32437
32438 -- 4458381 Public Sector Enh
32439
32440 --
32441 -- set accounting attributes for the line type
32442 --
32443 l_entered_amt_idx := 9;
32444 l_accted_amt_idx := 14;
32445 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32446 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32447 l_rec_acct_attrs.array_char_value(1) := p_source_52;
32448 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32449 l_rec_acct_attrs.array_num_value(2) := p_source_54;
32450 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32451 l_rec_acct_attrs.array_char_value(3) := p_source_73;
32452 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32453 l_rec_acct_attrs.array_char_value(4) := p_source_74;
32454 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32455 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
32456 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32457 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
32458 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32459 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
32460 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32461 l_rec_acct_attrs.array_char_value(8) := p_source_60;
32462 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32463 l_rec_acct_attrs.array_num_value(9) := p_source_53;
32464 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32465 l_rec_acct_attrs.array_char_value(10) := p_source_12;
32466 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32467 l_rec_acct_attrs.array_date_value(11) := p_source_121;
32468 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32469 l_rec_acct_attrs.array_num_value(12) := p_source_122;
32470 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32471 l_rec_acct_attrs.array_char_value(13) := p_source_123;
32472 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32473 l_rec_acct_attrs.array_num_value(14) := p_source_21;
32474 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32475 l_rec_acct_attrs.array_char_value(15) := p_source_64;
32476 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32477 l_rec_acct_attrs.array_num_value(16) := p_source_65;
32478 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32479 l_rec_acct_attrs.array_num_value(17) := p_source_66;
32480 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32481 l_rec_acct_attrs.array_char_value(18) := p_source_67;
32482 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32483 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
32484 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32485 l_rec_acct_attrs.array_char_value(20) := p_source_60;
32486 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32487 l_rec_acct_attrs.array_num_value(21) := p_source_69;
32488 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32489 l_rec_acct_attrs.array_num_value(22) := p_source_77;
32490 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32491 l_rec_acct_attrs.array_num_value(23) := p_source_70;
32492
32493 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32494 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32495
32496 ---------------------------------------------------------------------------------------------------------------
32497 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32501 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32498 ---------------------------------------------------------------------------------------------------------------
32499 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32500
32502 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32503
32504 IF xla_accounting_cache_pkg.GetValueChar
32505 (p_source_code => 'LEDGER_CATEGORY_CODE'
32506 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32507 AND l_bflow_method_code = 'PRIOR_ENTRY'
32508 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32509 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32510 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32511 )
32512 THEN
32513 xla_ae_lines_pkg.BflowUpgEntry
32514 (p_business_method_code => l_bflow_method_code
32515 ,p_business_class_code => l_bflow_class_code
32516 ,p_balance_type => l_balance_type_code);
32517 ELSE
32518 NULL;
32519 XLA_AE_LINES_PKG.business_flow_validation(
32520 p_business_method_code => l_bflow_method_code
32521 ,p_business_class_code => l_bflow_class_code
32522 ,p_inherit_description_flag => l_inherit_desc_flag);
32523 END IF;
32524
32525 --
32526 -- call analytical criteria
32527 --
32528
32529 --
32530 -- call description
32531 --
32532 -- No description or it is inherited.
32533 --
32534 -- call ADRs
32535 -- Bug 4922099
32536 --
32537 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32538 (NVL(l_actual_upg_option, 'N') = 'O') OR
32539 (NVL(l_enc_upg_option, 'N') = 'O')
32540 )
32541 THEN
32542 NULL;
32543 --
32544 --
32545
32546 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
32547 p_code_combination_id => TO_NUMBER(C_NUM)
32548 , p_value_type_code => NULL
32549 , p_transaction_coa_id => null
32550 , p_accounting_coa_id => null
32551 , p_adr_code => NULL
32552 , p_adr_type_code => NULL
32553 , p_component_type => l_component_type
32554 , p_component_code => l_component_code
32555 , p_component_type_code => l_component_type_code
32556 , p_component_appl_id => l_component_appl_id
32557 , p_amb_context_code => l_amb_context_code
32558 , p_side => NULL
32559 );
32560
32561
32562 -- initialise segments
32563 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32564 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32565 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32566 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32567 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32568 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32569 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32570 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32571 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32572 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32573 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32574 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32575 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32576 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32577 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32578 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32579 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32580 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32581 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32582 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32583 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32584 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32585 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32586 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32587 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32588 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32589 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32590 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32591 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32592 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32593 --
32594
32595 --
32596
32597
32598 l_segment := AcctDerRule_3(
32602 , x_transaction_coa_id => l_adr_transaction_coa_id
32599 p_application_id => p_application_id
32600 , p_ae_header_id => l_ae_header_id
32601 , p_source_13 => p_source_13
32603 , x_accounting_coa_id => l_adr_accounting_coa_id
32604 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32605 , x_flex_value_set_id => l_adr_flex_value_set_id
32606 , x_value_type_code => l_adr_value_type_code
32607 , x_value_combination_id => l_adr_value_combination_id
32608 , x_value_segment_code => l_adr_value_segment_code
32609 , p_side => 'NA'
32610 , p_override_seg_flag => 'Y'
32611 );
32612
32613 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32614
32615 xla_ae_lines_pkg.set_segment(
32616 p_to_segment_code => 'GL_ACCOUNT'
32617 , p_segment_value => l_segment
32618 , p_from_segment_code => l_adr_value_segment_code
32619 , p_from_combination_id => l_adr_value_combination_id
32620 , p_value_type_code => l_adr_value_type_code
32621 , p_transaction_coa_id => l_adr_transaction_coa_id
32622 , p_accounting_coa_id => l_adr_accounting_coa_id
32623 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32624 , p_flex_value_set_id => l_adr_flex_value_set_id
32625 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
32626 , p_adr_type_code => 'S'
32627 , p_component_type => l_component_type
32628 , p_component_code => l_component_code
32629 , p_component_type_code => l_component_type_code
32630 , p_component_appl_id => l_component_appl_id
32631 , p_amb_context_code => l_amb_context_code
32632 , p_entity_code => 'AP_PAYMENTS'
32633 , p_event_class_code => 'REFUNDS'
32634 , p_side => 'NA'
32635 );
32636
32637 END IF;
32638
32639 --
32640 --
32641 END IF;
32642 --
32643 -- Bug 4922099
32644 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32645 (NVL(l_enc_upg_option, 'N') = 'O')
32646 ) AND
32647 (l_bflow_method_code = 'PRIOR_ENTRY')
32648 )
32649 THEN
32650 IF
32651 --
32652 1 = 2
32653 --
32654 THEN
32655 xla_accounting_err_pkg.build_message
32656 (p_appli_s_name => 'XLA'
32657 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32658 ,p_token_1 => 'LINE_NUMBER'
32659 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32660 ,p_token_2 => 'LINE_TYPE_NAME'
32661 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32662 l_component_type
32663 ,l_component_code
32664 ,l_component_type_code
32665 ,l_component_appl_id
32666 ,l_amb_context_code
32667 ,l_entity_code
32668 ,l_event_class_code
32669 )
32670 ,p_token_3 => 'OWNER'
32671 ,p_value_3 => xla_lookups_pkg.get_meaning(
32672 p_lookup_type => 'XLA_OWNER_TYPE'
32673 ,p_lookup_code => l_component_type_code
32674 )
32675 ,p_token_4 => 'PRODUCT_NAME'
32676 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32677 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32678 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32679 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32680 ,p_ae_header_id => NULL
32681 );
32682
32683 IF (C_LEVEL_ERROR>= g_log_level) THEN
32684 trace
32685 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32686 ,p_level => C_LEVEL_ERROR
32687 ,p_module => l_log_module);
32688 END IF;
32689 END IF;
32690 END IF;
32691 --
32692 --
32693 ------------------------------------------------------------------------------------------------
32694 -- 4219869 Business Flow
32695 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32696 -- Prior Entry. Currently, the following code is always generated.
32700 ------------------------------------------------------------------------------------
32697 ------------------------------------------------------------------------------------------------
32698 XLA_AE_LINES_PKG.ValidateCurrentLine;
32699
32701 -- 4219869 Business Flow
32702 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32703 ------------------------------------------------------------------------------------
32704 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32705
32706 ----------------------------------------------------------------------------------
32707 -- 4219869 Business Flow
32708 -- Update journal entry status -- Need to generate this within IF <condition>
32709 ----------------------------------------------------------------------------------
32710 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32711 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32712 ,p_balance_type_code => l_balance_type_code
32713 );
32714
32715 -------------------------------------------------------------------------------------------
32716 -- 4262811 - Generate the Accrual Reversal lines
32717 -------------------------------------------------------------------------------------------
32718 BEGIN
32719 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32720 (g_array_event(p_event_id).array_value_num('header_index'));
32721 IF l_acc_rev_flag IS NULL THEN
32722 l_acc_rev_flag := 'N';
32723 END IF;
32724 EXCEPTION
32725 WHEN OTHERS THEN
32726 l_acc_rev_flag := 'N';
32727 END;
32728 --
32729 IF (l_acc_rev_flag = 'Y') THEN
32730
32731 -- 4645092 ------------------------------------------------------------------------------
32732 -- To allow MPA report to determine if it should generate report process
32733 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32734 ------------------------------------------------------------------------------------------
32735
32736 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32737 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32738 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32739 -- call ADRs
32740 -- Bug 4922099
32741 --
32742 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32743 (NVL(l_actual_upg_option, 'N') = 'O') OR
32744 (NVL(l_enc_upg_option, 'N') = 'O')
32745 )
32746 THEN
32747 NULL;
32748 --
32749 --
32750
32751 xla_ae_lines_pkg.Set_Ccid( -- replaced SetCcid
32752 p_code_combination_id => TO_NUMBER(C_NUM)
32753 , p_value_type_code => NULL
32754 , p_transaction_coa_id => null
32755 , p_accounting_coa_id => null
32756 , p_adr_code => NULL
32757 , p_adr_type_code => NULL
32758 , p_component_type => l_component_type
32759 , p_component_code => l_component_code
32760 , p_component_type_code => l_component_type_code
32761 , p_component_appl_id => l_component_appl_id
32762 , p_amb_context_code => l_amb_context_code
32763 , p_side => NULL
32764 );
32765
32766
32767 -- initialise segments
32768 XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32769 XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32770 XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32771 XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32772 XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32773 XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32774 XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32775 XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32776 XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32777 XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32778 XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32779 XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32780 XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32781 XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32782 XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32783 XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32784 XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32785 XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32786 XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32787 XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32788 XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32789 XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32790 XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32791 XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32792 XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32796 XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32793 XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32794 XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32795 XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32797 XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32798 --
32799
32800 --
32801
32802
32803 l_segment := AcctDerRule_3(
32804 p_application_id => p_application_id
32805 , p_ae_header_id => l_ae_header_id
32806 , p_source_13 => p_source_13
32807 , x_transaction_coa_id => l_adr_transaction_coa_id
32808 , x_accounting_coa_id => l_adr_accounting_coa_id
32809 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32810 , x_flex_value_set_id => l_adr_flex_value_set_id
32811 , x_value_type_code => l_adr_value_type_code
32812 , x_value_combination_id => l_adr_value_combination_id
32813 , x_value_segment_code => l_adr_value_segment_code
32814 , p_side => 'NA'
32815 , p_override_seg_flag => 'Y'
32816 );
32817
32818 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32819
32820 xla_ae_lines_pkg.set_segment(
32821 p_to_segment_code => 'GL_ACCOUNT'
32822 , p_segment_value => l_segment
32823 , p_from_segment_code => l_adr_value_segment_code
32824 , p_from_combination_id => l_adr_value_combination_id
32825 , p_value_type_code => l_adr_value_type_code
32826 , p_transaction_coa_id => l_adr_transaction_coa_id
32827 , p_accounting_coa_id => l_adr_accounting_coa_id
32828 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32829 , p_flex_value_set_id => l_adr_flex_value_set_id
32830 , p_adr_code => 'AP_CASH_NATURAL_ACCT_SEG'
32831 , p_adr_type_code => 'S'
32832 , p_component_type => l_component_type
32833 , p_component_code => l_component_code
32834 , p_component_type_code => l_component_type_code
32835 , p_component_appl_id => l_component_appl_id
32836 , p_amb_context_code => l_amb_context_code
32837 , p_entity_code => 'AP_PAYMENTS'
32838 , p_event_class_code => 'REFUNDS'
32839 , p_side => 'NA'
32840 );
32841
32842 END IF;
32843
32844 --
32845 --
32846 END IF;
32847
32848 --
32849 -- Update the line information that should be overwritten
32850 --
32851 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32852 p_header_num => 1);
32853 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32854
32855 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32856
32857 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32858 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32859 END IF;
32860
32861 --
32862 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32863 --
32864 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32865 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32866 ELSE
32867 ---------------------------------------------------------------------------------------------------
32868 -- 4262811a Switch Sign
32869 ---------------------------------------------------------------------------------------------------
32870 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32871 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32872 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32873 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32874 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32875 -- 5132302
32876 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32877 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32878
32879 END IF;
32880
32881 -- 4955764
32882 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32883 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32884
32885
32886 XLA_AE_LINES_PKG.ValidateCurrentLine;
32887 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32888
32889 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32890 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32891 ,p_balance_type_code => l_balance_type_code);
32892
32893 END IF;
32894
32898 -- No MPA option is assigned.
32895 -----------------------------------------------------------------------------------------
32896 -- 4262811 Multiperiod Accounting
32897 -----------------------------------------------------------------------------------------
32899
32900
32901 END IF;
32902 END IF;
32903 --
32904
32905 --
32906 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32907 trace
32908 (p_msg => 'END of AcctLineType_75'
32909 ,p_level => C_LEVEL_PROCEDURE
32910 ,p_module => l_log_module);
32911 END IF;
32912 --
32913 EXCEPTION
32914 WHEN xla_exceptions_pkg.application_exception THEN
32915 RAISE;
32916 WHEN OTHERS THEN
32917 xla_exceptions_pkg.raise_message
32918 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_75');
32919 END AcctLineType_75;
32920 --
32921
32922 ---------------------------------------
32923 --
32924 -- PRIVATE FUNCTION
32925 -- AcctLineType_76
32926 --
32927 ---------------------------------------
32928 PROCEDURE AcctLineType_76 (
32929 p_application_id IN NUMBER
32930 ,p_event_id IN NUMBER
32931 ,p_calculate_acctd_flag IN VARCHAR2
32932 ,p_calculate_g_l_flag IN VARCHAR2
32933 ,p_actual_flag IN OUT VARCHAR2
32934 ,p_balance_type_code OUT VARCHAR2
32935 ,p_gain_or_loss_ref OUT VARCHAR2
32936
32937 --Payment Currency Code
32938 , p_source_12 IN VARCHAR2
32939 --Bank Cash Account
32940 , p_source_13 IN NUMBER
32941 --Automatic Offsets Value
32942 , p_source_16 IN VARCHAR2
32943 , p_source_16_meaning IN VARCHAR2
32944 --Payment Distribution (Payment Rate) Ledger Amount
32945 , p_source_21 IN NUMBER
32946 --When to Account for Payment Option
32947 , p_source_50 IN VARCHAR2
32948 --Payment Distribution Type
32949 , p_source_51 IN VARCHAR2
32950 , p_source_51_meaning IN VARCHAR2
32951 --Accounting Reversal Indicator
32952 , p_source_52 IN VARCHAR2
32953 --Payment Distribution Amount
32954 , p_source_53 IN NUMBER
32955 --Business Flow Accounts Payable Application Identifier
32956 , p_source_54 IN NUMBER
32957 --Payment Distribution Identifier
32958 , p_source_59 IN NUMBER
32959 --Distribution Link Type
32960 , p_source_60 IN VARCHAR2
32961 --Override Accounted Amount Indicator
32962 , p_source_64 IN VARCHAR2
32963 , p_source_64_meaning IN VARCHAR2
32964 --Payment Supplier Identifier
32965 , p_source_65 IN NUMBER
32966 --Payment Supplier Site Identifier
32967 , p_source_66 IN NUMBER
32968 --Third Party Type
32969 , p_source_67 IN VARCHAR2
32970 --Payment Distribution Reversed Identifier
32971 , p_source_68 IN NUMBER
32972 --Invoice Distribution Tax Line Identifier
32973 , p_source_69 IN NUMBER
32974 --Invoice Distribution Summary Tax Line Identifier
32975 , p_source_70 IN NUMBER
32976 --Payment Type
32977 , p_source_71 IN VARCHAR2
32978 , p_source_71_meaning IN VARCHAR2
32979 --Business Flow Invoice Distribution Type
32980 , p_source_73 IN VARCHAR2
32981 --Business Flow Invoice Entity Code
32982 , p_source_74 IN VARCHAR2
32983 --Business Flow Invoice Distribution Identifier
32984 , p_source_75 IN NUMBER
32985 --Business Flow Invoice Identifier
32986 , p_source_76 IN NUMBER
32987 --Invoice Distribution Tax Distribution Identifier from Tax
32988 , p_source_77 IN NUMBER
32989 --Pooled Bank Account Option
32990 , p_source_117 IN VARCHAR2
32991 , p_source_117_meaning IN VARCHAR2
32992 --Payment Maturity Date
32993 , p_source_118 IN DATE
32994 --Payment Exchange Date
32995 , p_source_121 IN DATE
32996 --Payment Exchange Rate
32997 , p_source_122 IN NUMBER
32998 --Payment Exchange Rate Type
32999 , p_source_123 IN VARCHAR2
33000 )
33001 IS
33002
33003 l_component_type VARCHAR2(80);
33004 l_component_code VARCHAR2(30);
33005 l_component_type_code VARCHAR2(1);
33006 l_component_appl_id INTEGER;
33007 l_amb_context_code VARCHAR2(30);
33008 l_entity_code VARCHAR2(30);
33009 l_event_class_code VARCHAR2(30);
33010 l_ae_header_id NUMBER;
33011 l_event_type_code VARCHAR2(30);
33012 l_line_definition_code VARCHAR2(30);
33013 l_line_definition_owner_code VARCHAR2(1);
33014 --
33015 -- adr variables
33016 l_segment VARCHAR2(30);
33017 l_ccid NUMBER;
33018 l_adr_transaction_coa_id NUMBER;
33019 l_adr_accounting_coa_id NUMBER;
33020 l_adr_flexfield_segment_code VARCHAR2(30);
33021 l_adr_flex_value_set_id NUMBER;
33022 l_adr_value_type_code VARCHAR2(30);
33023 l_adr_value_combination_id NUMBER;
33024 l_adr_value_segment_code VARCHAR2(30);
33025
33026 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33027 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33028 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33029 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33030
33034 l_acc_rev_flag VARCHAR2(1);
33031 -- 4262811 Variables ------------------------------------------------------------------------------------------
33032 l_entered_amt_idx NUMBER;
33033 l_accted_amt_idx NUMBER;
33035 l_accrual_line_num NUMBER;
33036 l_tmp_amt NUMBER;
33037 l_acc_rev_natural_side_code VARCHAR2(1);
33038
33039 l_num_entries NUMBER;
33040 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33041 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33042 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33043 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33044 l_recog_line_1 NUMBER;
33045 l_recog_line_2 NUMBER;
33046
33047 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33048 l_bflow_applied_to_amt NUMBER; -- 5132302
33049 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33050
33051 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33052
33053 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33054 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33055
33056 ---------------------------------------------------------------------------------------------------------------
33057
33058
33059 --
33060 -- bulk performance
33061 --
33062 l_balance_type_code VARCHAR2(1);
33063 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33064 l_log_module VARCHAR2(240);
33065
33066 --
33067 -- Upgrade strategy
33068 --
33069 l_actual_upg_option VARCHAR2(1);
33070 l_enc_upg_option VARCHAR2(1);
33071
33072 --
33073 BEGIN
33074 --
33075 IF g_log_enabled THEN
33076 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
33077 END IF;
33078 --
33079 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33080
33081 trace
33082 (p_msg => 'BEGIN of AcctLineType_76'
33083 ,p_level => C_LEVEL_PROCEDURE
33084 ,p_module => l_log_module);
33085
33086 END IF;
33087 --
33088 l_component_type := 'AMB_JLT';
33089 l_component_code := 'AP_CASH_REF_AOS_BS';
33090 l_component_type_code := 'S';
33091 l_component_appl_id := 200;
33092 l_amb_context_code := 'DEFAULT';
33093 l_entity_code := 'AP_PAYMENTS';
33094 l_event_class_code := 'REFUNDS';
33095 l_event_type_code := 'REFUNDS_ALL';
33096 l_line_definition_owner_code := 'S';
33097 l_line_definition_code := 'CASH_REFUNDS_ALL';
33098 --
33099 l_balance_type_code := 'A';
33100 l_segment := NULL;
33101 l_ccid := NULL;
33102 l_adr_transaction_coa_id := NULL;
33103 l_adr_accounting_coa_id := NULL;
33104 l_adr_flexfield_segment_code := NULL;
33105 l_adr_flex_value_set_id := NULL;
33106 l_adr_value_type_code := NULL;
33107 l_adr_value_combination_id := NULL;
33108 l_adr_value_segment_code := NULL;
33109
33110 l_bflow_method_code := 'SAME_ENTRY'; -- 4219869 Business Flow
33111 l_bflow_class_code := ''; -- 4219869 Business Flow
33112 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33113 l_budgetary_control_flag := 'N';
33114
33115 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33116 l_bflow_applied_to_amt := NULL; -- 5132302
33117 l_entered_amt_idx := NULL; -- 4262811
33118 l_accted_amt_idx := NULL; -- 4262811
33119 l_acc_rev_flag := NULL; -- 4262811
33120 l_accrual_line_num := NULL; -- 4262811
33121 l_tmp_amt := NULL; -- 4262811
33122 --
33123
33124 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33125 l_balance_type_code <> 'B' THEN
33126 IF NVL(p_source_50,'
33127 ') = 'ISSUE_ISSUE' AND
33128 (NVL(p_source_117,'
33129 ') = 'Y' AND
33130 NVL(p_source_16,'
33131 ') = 'BALANCING_SEGMENT') AND
33132 p_source_118 IS NULL AND
33133 NVL(p_source_51,'
33134 ') = 'CASH' AND
33135 NVL(p_source_71,'
33136 ') = 'R'
33137 THEN
33138
33139 --
33140 XLA_AE_LINES_PKG.SetNewLine;
33141
33142 p_balance_type_code := l_balance_type_code;
33143 -- set the flag so later we will know whether the gain loss line needs to be created
33144
33145 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33146 p_actual_flag :='A';
33147 END IF;
33148
33149 --
33150 -- bulk performance
33151 --
33152 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33153 p_header_num => 0); -- 4262811
33154 --
33155 -- set accounting line options
33156 --
33157 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33158 p_natural_side_code => 'C'
33159 , p_gain_or_loss_flag => 'N'
33160 , p_gl_transfer_mode_code => 'S'
33161 , p_acct_entry_type_code => 'A'
33162 , p_switch_side_flag => 'Y'
33163 , p_merge_duplicate_code => 'A'
33164 );
33168 --
33165 --
33166 l_acc_rev_natural_side_code := 'D'; -- 4262811
33167 --
33169 -- set accounting line type info
33170 --
33171 xla_ae_lines_pkg.SetAcctLineType
33172 (p_component_type => l_component_type
33173 ,p_event_type_code => l_event_type_code
33174 ,p_line_definition_owner_code => l_line_definition_owner_code
33175 ,p_line_definition_code => l_line_definition_code
33176 ,p_accounting_line_code => l_component_code
33177 ,p_accounting_line_type_code => l_component_type_code
33178 ,p_accounting_line_appl_id => l_component_appl_id
33179 ,p_amb_context_code => l_amb_context_code
33180 ,p_entity_code => l_entity_code
33181 ,p_event_class_code => l_event_class_code);
33182 --
33183 -- set accounting class
33184 --
33185 xla_ae_lines_pkg.SetAcctClass(
33186 p_accounting_class_code => 'CASH'
33187 , p_ae_header_id => l_ae_header_id
33188 );
33189
33190 --
33191 -- set rounding class
33192 --
33193 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33194 'CASH';
33195
33196 --
33197 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33198 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33199 --
33200 -- bulk performance
33201 --
33202 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33203
33204 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33205 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33206
33207 -- 4955764
33208 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33209 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33210
33211 -- 4458381 Public Sector Enh
33212
33213 --
33214 -- set accounting attributes for the line type
33215 --
33216 l_entered_amt_idx := 9;
33217 l_accted_amt_idx := 14;
33218 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33219 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33220 l_rec_acct_attrs.array_char_value(1) := p_source_52;
33221 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33222 l_rec_acct_attrs.array_num_value(2) := p_source_54;
33223 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33224 l_rec_acct_attrs.array_char_value(3) := p_source_73;
33225 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33226 l_rec_acct_attrs.array_char_value(4) := p_source_74;
33227 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33228 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
33229 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33230 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
33231 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33232 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
33233 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33234 l_rec_acct_attrs.array_char_value(8) := p_source_60;
33235 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33236 l_rec_acct_attrs.array_num_value(9) := p_source_53;
33237 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33238 l_rec_acct_attrs.array_char_value(10) := p_source_12;
33239 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33240 l_rec_acct_attrs.array_date_value(11) := p_source_121;
33241 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33242 l_rec_acct_attrs.array_num_value(12) := p_source_122;
33243 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33244 l_rec_acct_attrs.array_char_value(13) := p_source_123;
33245 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33246 l_rec_acct_attrs.array_num_value(14) := p_source_21;
33247 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33248 l_rec_acct_attrs.array_char_value(15) := p_source_64;
33249 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33250 l_rec_acct_attrs.array_num_value(16) := p_source_65;
33251 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33252 l_rec_acct_attrs.array_num_value(17) := p_source_66;
33253 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33254 l_rec_acct_attrs.array_char_value(18) := p_source_67;
33255 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33256 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
33257 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33258 l_rec_acct_attrs.array_char_value(20) := p_source_60;
33259 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33260 l_rec_acct_attrs.array_num_value(21) := p_source_69;
33261 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33262 l_rec_acct_attrs.array_num_value(22) := p_source_77;
33263 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33264 l_rec_acct_attrs.array_num_value(23) := p_source_70;
33265
33266 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33267 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33268
33272 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33269 ---------------------------------------------------------------------------------------------------------------
33270 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33271 ---------------------------------------------------------------------------------------------------------------
33273
33274 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33275 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33276
33277 IF xla_accounting_cache_pkg.GetValueChar
33278 (p_source_code => 'LEDGER_CATEGORY_CODE'
33279 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33280 AND l_bflow_method_code = 'PRIOR_ENTRY'
33281 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33282 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33283 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33284 )
33285 THEN
33286 xla_ae_lines_pkg.BflowUpgEntry
33287 (p_business_method_code => l_bflow_method_code
33288 ,p_business_class_code => l_bflow_class_code
33289 ,p_balance_type => l_balance_type_code);
33290 ELSE
33291 NULL;
33292 XLA_AE_LINES_PKG.business_flow_validation(
33293 p_business_method_code => l_bflow_method_code
33294 ,p_business_class_code => l_bflow_class_code
33295 ,p_inherit_description_flag => l_inherit_desc_flag);
33296 END IF;
33297
33298 --
33299 -- call analytical criteria
33300 --
33301
33302 --
33303 -- call description
33304 --
33305 -- No description or it is inherited.
33306 --
33307 -- call ADRs
33308 -- Bug 4922099
33309 --
33310 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33311 (NVL(l_actual_upg_option, 'N') = 'O') OR
33312 (NVL(l_enc_upg_option, 'N') = 'O')
33313 )
33314 THEN
33315 NULL;
33316 --
33317 --
33318
33319 l_ccid := AcctDerRule_22(
33320 p_application_id => p_application_id
33321 , p_ae_header_id => l_ae_header_id
33322 , p_source_13 => p_source_13
33323 , x_transaction_coa_id => l_adr_transaction_coa_id
33324 , x_accounting_coa_id => l_adr_accounting_coa_id
33325 , x_value_type_code => l_adr_value_type_code
33326 , p_side => 'NA'
33327 );
33328
33329 xla_ae_lines_pkg.set_ccid(
33330 p_code_combination_id => l_ccid
33331 , p_value_type_code => l_adr_value_type_code
33332 , p_transaction_coa_id => l_adr_transaction_coa_id
33333 , p_accounting_coa_id => l_adr_accounting_coa_id
33334 , p_adr_code => 'AP_CASH'
33335 , p_adr_type_code => 'S'
33336 , p_component_type => l_component_type
33337 , p_component_code => l_component_code
33338 , p_component_type_code => l_component_type_code
33339 , p_component_appl_id => l_component_appl_id
33340 , p_amb_context_code => l_amb_context_code
33341 , p_side => 'NA'
33342 );
33343
33344
33345 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
33346 p_to_segment_code => 'GL_BALANCING'
33347 , p_segment_value => C_CHAR
33348 , p_from_segment_code => NULL
33349 , p_from_combination_id => NULL
33350 , p_value_type_code => NULL
33351 , p_transaction_coa_id => null
33352 , p_accounting_coa_id => null
33353 , p_flexfield_segment_code => NULL
33354 , p_flex_value_set_id => NULL
33355 , p_adr_code => NULL
33356 , p_adr_type_code => NULL
33357 , p_component_type => l_component_type
33358 , p_component_code => l_component_code
33359 , p_component_type_code => l_component_type_code
33360 , p_component_appl_id => l_component_appl_id
33361 , p_amb_context_code => l_amb_context_code
33362 , p_entity_code => 'AP_PAYMENTS'
33363 , p_event_class_code => 'REFUNDS'
33364 , p_side => 'NA'
33365 );
33366 --
33367
33368
33369 --
33370 --
33371 END IF;
33372 --
33373 -- Bug 4922099
33374 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33375 (NVL(l_enc_upg_option, 'N') = 'O')
33376 ) AND
33377 (l_bflow_method_code = 'PRIOR_ENTRY')
33378 )
33379 THEN
33380 IF
33381 --
33382 1 = 2
33383 --
33384 THEN
33385 xla_accounting_err_pkg.build_message
33386 (p_appli_s_name => 'XLA'
33387 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33388 ,p_token_1 => 'LINE_NUMBER'
33389 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33390 ,p_token_2 => 'LINE_TYPE_NAME'
33391 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33395 ,l_component_appl_id
33392 l_component_type
33393 ,l_component_code
33394 ,l_component_type_code
33396 ,l_amb_context_code
33397 ,l_entity_code
33398 ,l_event_class_code
33399 )
33400 ,p_token_3 => 'OWNER'
33401 ,p_value_3 => xla_lookups_pkg.get_meaning(
33402 p_lookup_type => 'XLA_OWNER_TYPE'
33403 ,p_lookup_code => l_component_type_code
33404 )
33405 ,p_token_4 => 'PRODUCT_NAME'
33406 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33407 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33408 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33409 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33410 ,p_ae_header_id => NULL
33411 );
33412
33413 IF (C_LEVEL_ERROR>= g_log_level) THEN
33414 trace
33415 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33416 ,p_level => C_LEVEL_ERROR
33417 ,p_module => l_log_module);
33418 END IF;
33419 END IF;
33420 END IF;
33421 --
33422 --
33423 ------------------------------------------------------------------------------------------------
33424 -- 4219869 Business Flow
33425 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33426 -- Prior Entry. Currently, the following code is always generated.
33427 ------------------------------------------------------------------------------------------------
33428 XLA_AE_LINES_PKG.ValidateCurrentLine;
33429
33430 ------------------------------------------------------------------------------------
33431 -- 4219869 Business Flow
33432 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33433 ------------------------------------------------------------------------------------
33434 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33435
33436 ----------------------------------------------------------------------------------
33437 -- 4219869 Business Flow
33438 -- Update journal entry status -- Need to generate this within IF <condition>
33439 ----------------------------------------------------------------------------------
33440 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33441 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33442 ,p_balance_type_code => l_balance_type_code
33443 );
33444
33445 -------------------------------------------------------------------------------------------
33446 -- 4262811 - Generate the Accrual Reversal lines
33447 -------------------------------------------------------------------------------------------
33448 BEGIN
33449 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33450 (g_array_event(p_event_id).array_value_num('header_index'));
33451 IF l_acc_rev_flag IS NULL THEN
33452 l_acc_rev_flag := 'N';
33453 END IF;
33454 EXCEPTION
33455 WHEN OTHERS THEN
33456 l_acc_rev_flag := 'N';
33457 END;
33458 --
33459 IF (l_acc_rev_flag = 'Y') THEN
33460
33461 -- 4645092 ------------------------------------------------------------------------------
33462 -- To allow MPA report to determine if it should generate report process
33463 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33464 ------------------------------------------------------------------------------------------
33465
33466 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33467 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33468 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33469 -- call ADRs
33470 -- Bug 4922099
33471 --
33472 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33473 (NVL(l_actual_upg_option, 'N') = 'O') OR
33474 (NVL(l_enc_upg_option, 'N') = 'O')
33475 )
33476 THEN
33477 NULL;
33478 --
33479 --
33480
33481 l_ccid := AcctDerRule_22(
33482 p_application_id => p_application_id
33483 , p_ae_header_id => l_ae_header_id
33484 , p_source_13 => p_source_13
33485 , x_transaction_coa_id => l_adr_transaction_coa_id
33486 , x_accounting_coa_id => l_adr_accounting_coa_id
33490
33487 , x_value_type_code => l_adr_value_type_code
33488 , p_side => 'NA'
33489 );
33491 xla_ae_lines_pkg.set_ccid(
33492 p_code_combination_id => l_ccid
33493 , p_value_type_code => l_adr_value_type_code
33494 , p_transaction_coa_id => l_adr_transaction_coa_id
33495 , p_accounting_coa_id => l_adr_accounting_coa_id
33496 , p_adr_code => 'AP_CASH'
33497 , p_adr_type_code => 'S'
33498 , p_component_type => l_component_type
33499 , p_component_code => l_component_code
33500 , p_component_type_code => l_component_type_code
33501 , p_component_appl_id => l_component_appl_id
33502 , p_amb_context_code => l_amb_context_code
33503 , p_side => 'NA'
33504 );
33505
33506
33507 xla_ae_lines_pkg.Set_Segment( -- replaced SetSegment
33508 p_to_segment_code => 'GL_BALANCING'
33509 , p_segment_value => C_CHAR
33510 , p_from_segment_code => NULL
33511 , p_from_combination_id => NULL
33512 , p_value_type_code => NULL
33513 , p_transaction_coa_id => null
33514 , p_accounting_coa_id => null
33515 , p_flexfield_segment_code => NULL
33516 , p_flex_value_set_id => NULL
33517 , p_adr_code => NULL
33518 , p_adr_type_code => NULL
33519 , p_component_type => l_component_type
33520 , p_component_code => l_component_code
33521 , p_component_type_code => l_component_type_code
33522 , p_component_appl_id => l_component_appl_id
33523 , p_amb_context_code => l_amb_context_code
33524 , p_entity_code => 'AP_PAYMENTS'
33525 , p_event_class_code => 'REFUNDS'
33526 , p_side => 'NA'
33527 );
33528 --
33529
33530
33531 --
33532 --
33533 END IF;
33534
33535 --
33536 -- Update the line information that should be overwritten
33537 --
33538 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33539 p_header_num => 1);
33540 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33541
33542 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33543
33544 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33545 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33546 END IF;
33547
33548 --
33549 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33550 --
33551 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33552 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33553 ELSE
33554 ---------------------------------------------------------------------------------------------------
33555 -- 4262811a Switch Sign
33556 ---------------------------------------------------------------------------------------------------
33557 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33558 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33559 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33560 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33561 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33562 -- 5132302
33563 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33564 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33565
33566 END IF;
33567
33568 -- 4955764
33569 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33570 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33571
33572
33573 XLA_AE_LINES_PKG.ValidateCurrentLine;
33574 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33575
33576 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33577 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33578 ,p_balance_type_code => l_balance_type_code);
33579
33580 END IF;
33581
33582 -----------------------------------------------------------------------------------------
33583 -- 4262811 Multiperiod Accounting
33584 -----------------------------------------------------------------------------------------
33585 -- No MPA option is assigned.
33586
33587
33588 END IF;
33589 END IF;
33590 --
33591
33592 --
33593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33594 trace
33595 (p_msg => 'END of AcctLineType_76'
33596 ,p_level => C_LEVEL_PROCEDURE
33597 ,p_module => l_log_module);
33598 END IF;
33599 --
33600 EXCEPTION
33601 WHEN xla_exceptions_pkg.application_exception THEN
33602 RAISE;
33606 END AcctLineType_76;
33603 WHEN OTHERS THEN
33604 xla_exceptions_pkg.raise_message
33605 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_76');
33607 --
33608
33609 ---------------------------------------
33610 --
33611 -- PRIVATE FUNCTION
33612 -- AcctLineType_77
33613 --
33614 ---------------------------------------
33615 PROCEDURE AcctLineType_77 (
33616 p_application_id IN NUMBER
33617 ,p_event_id IN NUMBER
33618 ,p_calculate_acctd_flag IN VARCHAR2
33619 ,p_calculate_g_l_flag IN VARCHAR2
33620 ,p_actual_flag IN OUT VARCHAR2
33621 ,p_balance_type_code OUT VARCHAR2
33622 ,p_gain_or_loss_ref OUT VARCHAR2
33623
33624 --Payment Currency Code
33625 , p_source_12 IN VARCHAR2
33626 --System Discount Account
33627 , p_source_14 IN NUMBER
33628 --Discount Distribution Method
33629 , p_source_15 IN VARCHAR2
33630 , p_source_15_meaning IN VARCHAR2
33631 --Automatic Offsets Value
33632 , p_source_16 IN VARCHAR2
33633 , p_source_16_meaning IN VARCHAR2
33634 --Payment Distribution (Payment Rate) Ledger Amount
33635 , p_source_21 IN NUMBER
33636 --Invoice Distribution Account
33637 , p_source_29 IN NUMBER
33638 --Invoice Distribution Type
33639 , p_source_32 IN VARCHAR2
33640 , p_source_32_meaning IN VARCHAR2
33641 --Discount Account
33642 , p_source_39 IN NUMBER
33643 --Purchase Order Charge Account
33644 , p_source_40 IN NUMBER
33645 --Purchase Order Variance Account
33646 , p_source_41 IN NUMBER
33647 --When to Account for Payment Option
33648 , p_source_50 IN VARCHAR2
33649 --Payment Distribution Type
33650 , p_source_51 IN VARCHAR2
33651 , p_source_51_meaning IN VARCHAR2
33652 --Accounting Reversal Indicator
33653 , p_source_52 IN VARCHAR2
33654 --Payment Distribution Amount
33655 , p_source_53 IN NUMBER
33656 --Business Flow Accounts Payable Application Identifier
33657 , p_source_54 IN NUMBER
33658 --Business Flow Payment Distribution Type
33659 , p_source_55 IN VARCHAR2
33660 --Business Flow Payment Entity Code
33661 , p_source_56 IN VARCHAR2
33662 --Business Flow Payment Distribution Identifier
33663 , p_source_57 IN NUMBER
33664 --Business Flow Payment Identifier
33665 , p_source_58 IN NUMBER
33666 --Payment Distribution Identifier
33667 , p_source_59 IN NUMBER
33668 --Distribution Link Type
33669 , p_source_60 IN VARCHAR2
33670 --Override Accounted Amount Indicator
33671 , p_source_64 IN VARCHAR2
33672 , p_source_64_meaning IN VARCHAR2
33673 --Payment Supplier Identifier
33674 , p_source_65 IN NUMBER
33675 --Payment Supplier Site Identifier
33676 , p_source_66 IN NUMBER
33677 --Third Party Type
33678 , p_source_67 IN VARCHAR2
33679 --Payment Distribution Reversed Identifier
33680 , p_source_68 IN NUMBER
33681 --Invoice Distribution Tax Line Identifier
33682 , p_source_69 IN NUMBER
33683 --Invoice Distribution Summary Tax Line Identifier
33684 , p_source_70 IN NUMBER
33685 --Payment Exchange Date
33686 , p_source_121 IN DATE
33687 --Payment Exchange Rate
33688 , p_source_122 IN NUMBER
33689 --Payment Exchange Rate Type
33690 , p_source_123 IN VARCHAR2
33691 )
33692 IS
33693
33694 l_component_type VARCHAR2(80);
33695 l_component_code VARCHAR2(30);
33696 l_component_type_code VARCHAR2(1);
33697 l_component_appl_id INTEGER;
33698 l_amb_context_code VARCHAR2(30);
33699 l_entity_code VARCHAR2(30);
33700 l_event_class_code VARCHAR2(30);
33701 l_ae_header_id NUMBER;
33702 l_event_type_code VARCHAR2(30);
33703 l_line_definition_code VARCHAR2(30);
33704 l_line_definition_owner_code VARCHAR2(1);
33705 --
33706 -- adr variables
33707 l_segment VARCHAR2(30);
33708 l_ccid NUMBER;
33709 l_adr_transaction_coa_id NUMBER;
33710 l_adr_accounting_coa_id NUMBER;
33711 l_adr_flexfield_segment_code VARCHAR2(30);
33712 l_adr_flex_value_set_id NUMBER;
33713 l_adr_value_type_code VARCHAR2(30);
33714 l_adr_value_combination_id NUMBER;
33715 l_adr_value_segment_code VARCHAR2(30);
33716
33717 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33718 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33719 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33720 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33721
33722 -- 4262811 Variables ------------------------------------------------------------------------------------------
33723 l_entered_amt_idx NUMBER;
33724 l_accted_amt_idx NUMBER;
33725 l_acc_rev_flag VARCHAR2(1);
33726 l_accrual_line_num NUMBER;
33727 l_tmp_amt NUMBER;
33728 l_acc_rev_natural_side_code VARCHAR2(1);
33729
33730 l_num_entries NUMBER;
33731 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33732 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33733 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33737
33734 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33735 l_recog_line_1 NUMBER;
33736 l_recog_line_2 NUMBER;
33738 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33739 l_bflow_applied_to_amt NUMBER; -- 5132302
33740 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33741
33742 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33743
33744 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33745 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33746
33747 ---------------------------------------------------------------------------------------------------------------
33748
33749
33750 --
33751 -- bulk performance
33752 --
33753 l_balance_type_code VARCHAR2(1);
33754 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33755 l_log_module VARCHAR2(240);
33756
33757 --
33758 -- Upgrade strategy
33759 --
33760 l_actual_upg_option VARCHAR2(1);
33761 l_enc_upg_option VARCHAR2(1);
33762
33763 --
33764 BEGIN
33765 --
33766 IF g_log_enabled THEN
33767 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
33768 END IF;
33769 --
33770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33771
33772 trace
33773 (p_msg => 'BEGIN of AcctLineType_77'
33774 ,p_level => C_LEVEL_PROCEDURE
33775 ,p_module => l_log_module);
33776
33777 END IF;
33778 --
33779 l_component_type := 'AMB_JLT';
33780 l_component_code := 'AP_DISCOUNT_CASH_CLEAR';
33781 l_component_type_code := 'S';
33782 l_component_appl_id := 200;
33783 l_amb_context_code := 'DEFAULT';
33784 l_entity_code := 'AP_PAYMENTS';
33785 l_event_class_code := 'RECONCILED PAYMENTS';
33786 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
33787 l_line_definition_owner_code := 'S';
33788 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
33789 --
33790 l_balance_type_code := 'A';
33791 l_segment := NULL;
33792 l_ccid := NULL;
33793 l_adr_transaction_coa_id := NULL;
33794 l_adr_accounting_coa_id := NULL;
33795 l_adr_flexfield_segment_code := NULL;
33796 l_adr_flex_value_set_id := NULL;
33797 l_adr_value_type_code := NULL;
33798 l_adr_value_combination_id := NULL;
33799 l_adr_value_segment_code := NULL;
33800
33801 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33802 l_bflow_class_code := ''; -- 4219869 Business Flow
33803 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33804 l_budgetary_control_flag := 'N';
33805
33806 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33807 l_bflow_applied_to_amt := NULL; -- 5132302
33808 l_entered_amt_idx := NULL; -- 4262811
33809 l_accted_amt_idx := NULL; -- 4262811
33810 l_acc_rev_flag := NULL; -- 4262811
33811 l_accrual_line_num := NULL; -- 4262811
33812 l_tmp_amt := NULL; -- 4262811
33813 --
33814
33815 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33816 l_balance_type_code <> 'B' THEN
33817 IF NVL(p_source_50,'
33818 ') = 'CLEAR_CLEAR' AND
33819 NVL(p_source_51,'
33820 ') = 'DISCOUNT' AND
33821 (NVL(p_source_32,'
33822 ') = 'ITEM' OR
33823 NVL(p_source_32,'
33824 ') = 'MISCELLANEOUS' OR
33825 NVL(p_source_32,'
33826 ') = 'FREIGHT' OR
33827 NVL(p_source_32,'
33828 ') = 'REC_TAX' OR
33829 NVL(p_source_32,'
33830 ') = 'NONREC_TAX' OR
33831 NVL(p_source_32,'
33832 ') = 'TIPV' OR
33833 NVL(p_source_32,'
33834 ') = 'TRV' OR
33835 NVL(p_source_32,'
33836 ') = 'IPV' OR
33837 NVL(p_source_32,'
33838 ') = 'ACCRUAL' OR
33839 NVL(p_source_32,'
33840 ') = 'RETROACCRUAL' OR
33841 NVL(p_source_32,'
33842 ') = 'RETROEXPENSE')
33843 THEN
33844
33845 --
33846 XLA_AE_LINES_PKG.SetNewLine;
33847
33848 p_balance_type_code := l_balance_type_code;
33849 -- set the flag so later we will know whether the gain loss line needs to be created
33850
33851 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33852 p_actual_flag :='A';
33853 END IF;
33854
33855 --
33856 -- bulk performance
33857 --
33858 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33859 p_header_num => 0); -- 4262811
33860 --
33861 -- set accounting line options
33862 --
33863 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33864 p_natural_side_code => 'C'
33865 , p_gain_or_loss_flag => 'N'
33866 , p_gl_transfer_mode_code => 'S'
33867 , p_acct_entry_type_code => 'A'
33868 , p_switch_side_flag => 'Y'
33869 , p_merge_duplicate_code => 'A'
33870 );
33871 --
33872 l_acc_rev_natural_side_code := 'D'; -- 4262811
33873 --
33874 --
33875 -- set accounting line type info
33876 --
33877 xla_ae_lines_pkg.SetAcctLineType
33881 ,p_line_definition_code => l_line_definition_code
33878 (p_component_type => l_component_type
33879 ,p_event_type_code => l_event_type_code
33880 ,p_line_definition_owner_code => l_line_definition_owner_code
33882 ,p_accounting_line_code => l_component_code
33883 ,p_accounting_line_type_code => l_component_type_code
33884 ,p_accounting_line_appl_id => l_component_appl_id
33885 ,p_amb_context_code => l_amb_context_code
33886 ,p_entity_code => l_entity_code
33887 ,p_event_class_code => l_event_class_code);
33888 --
33889 -- set accounting class
33890 --
33891 xla_ae_lines_pkg.SetAcctClass(
33892 p_accounting_class_code => 'DISCOUNT'
33893 , p_ae_header_id => l_ae_header_id
33894 );
33895
33896 --
33897 -- set rounding class
33898 --
33899 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33900 'DISCOUNT';
33901
33902 --
33903 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33904 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33905 --
33906 -- bulk performance
33907 --
33908 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33909
33910 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33911 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33912
33913 -- 4955764
33914 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33915 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33916
33917 -- 4458381 Public Sector Enh
33918
33919 --
33920 -- set accounting attributes for the line type
33921 --
33922 l_entered_amt_idx := 10;
33923 l_accted_amt_idx := 15;
33924 l_bflow_applied_to_amt_idx := 2; -- 5132302
33925 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33926 l_rec_acct_attrs.array_char_value(1) := p_source_52;
33927 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
33928 l_rec_acct_attrs.array_num_value(2) := p_source_53;
33929 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
33930 l_rec_acct_attrs.array_num_value(3) := p_source_54;
33931 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33932 l_rec_acct_attrs.array_char_value(4) := p_source_55;
33933 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
33934 l_rec_acct_attrs.array_char_value(5) := p_source_56;
33935 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
33936 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
33937 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33938 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
33939 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
33940 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
33941 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
33942 l_rec_acct_attrs.array_char_value(9) := p_source_60;
33943 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
33944 l_rec_acct_attrs.array_num_value(10) := p_source_53;
33945 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
33946 l_rec_acct_attrs.array_char_value(11) := p_source_12;
33947 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
33948 l_rec_acct_attrs.array_date_value(12) := p_source_121;
33949 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
33950 l_rec_acct_attrs.array_num_value(13) := p_source_122;
33951 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
33952 l_rec_acct_attrs.array_char_value(14) := p_source_123;
33953 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
33954 l_rec_acct_attrs.array_num_value(15) := p_source_21;
33955 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
33956 l_rec_acct_attrs.array_char_value(16) := p_source_64;
33957 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
33958 l_rec_acct_attrs.array_num_value(17) := p_source_65;
33959 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
33960 l_rec_acct_attrs.array_num_value(18) := p_source_66;
33961 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
33962 l_rec_acct_attrs.array_char_value(19) := p_source_67;
33963 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
33964 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
33965 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
33966 l_rec_acct_attrs.array_char_value(21) := p_source_60;
33967 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
33968 l_rec_acct_attrs.array_num_value(22) := p_source_69;
33969 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
33970 l_rec_acct_attrs.array_num_value(23) := p_source_69;
33971 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
33972 l_rec_acct_attrs.array_num_value(24) := p_source_70;
33973
33974 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33975 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33976
33980 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33977 ---------------------------------------------------------------------------------------------------------------
33978 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33979 ---------------------------------------------------------------------------------------------------------------
33981
33982 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33983 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33984
33985 IF xla_accounting_cache_pkg.GetValueChar
33986 (p_source_code => 'LEDGER_CATEGORY_CODE'
33987 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33988 AND l_bflow_method_code = 'PRIOR_ENTRY'
33989 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33990 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33991 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33992 )
33993 THEN
33994 xla_ae_lines_pkg.BflowUpgEntry
33995 (p_business_method_code => l_bflow_method_code
33996 ,p_business_class_code => l_bflow_class_code
33997 ,p_balance_type => l_balance_type_code);
33998 ELSE
33999 NULL;
34000 -- No business flow processing for business flow method of NONE.
34001 END IF;
34002
34003 --
34004 -- call analytical criteria
34005 --
34006
34007 --
34008 -- call description
34009 --
34010 -- No description or it is inherited.
34011 --
34012 -- call ADRs
34013 -- Bug 4922099
34014 --
34015 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34016 (NVL(l_actual_upg_option, 'N') = 'O') OR
34017 (NVL(l_enc_upg_option, 'N') = 'O')
34018 )
34019 THEN
34020 NULL;
34021 --
34022 --
34023
34024 l_ccid := AcctDerRule_23(
34025 p_application_id => p_application_id
34026 , p_ae_header_id => l_ae_header_id
34027 , p_source_14 => p_source_14
34028 , p_source_15 => p_source_15
34029 , p_source_15_meaning => p_source_15_meaning
34030 , p_source_16 => p_source_16
34031 , p_source_16_meaning => p_source_16_meaning
34032 , p_source_29 => p_source_29
34033 , p_source_32 => p_source_32
34034 , p_source_32_meaning => p_source_32_meaning
34035 , p_source_39 => p_source_39
34036 , p_source_40 => p_source_40
34037 , p_source_41 => p_source_41
34038 , x_transaction_coa_id => l_adr_transaction_coa_id
34039 , x_accounting_coa_id => l_adr_accounting_coa_id
34040 , x_value_type_code => l_adr_value_type_code
34041 , p_side => 'NA'
34042 );
34043
34044 xla_ae_lines_pkg.set_ccid(
34045 p_code_combination_id => l_ccid
34046 , p_value_type_code => l_adr_value_type_code
34047 , p_transaction_coa_id => l_adr_transaction_coa_id
34048 , p_accounting_coa_id => l_adr_accounting_coa_id
34049 , p_adr_code => 'AP_DISCOUNT'
34050 , p_adr_type_code => 'S'
34051 , p_component_type => l_component_type
34052 , p_component_code => l_component_code
34053 , p_component_type_code => l_component_type_code
34054 , p_component_appl_id => l_component_appl_id
34055 , p_amb_context_code => l_amb_context_code
34056 , p_side => 'NA'
34057 );
34058
34059
34060 l_segment := AcctDerRule_4(
34061 p_application_id => p_application_id
34062 , p_ae_header_id => l_ae_header_id
34063 , p_source_14 => p_source_14
34064 , p_source_15 => p_source_15
34065 , p_source_15_meaning => p_source_15_meaning
34066 , p_source_16 => p_source_16
34067 , p_source_16_meaning => p_source_16_meaning
34068 , x_transaction_coa_id => l_adr_transaction_coa_id
34069 , x_accounting_coa_id => l_adr_accounting_coa_id
34070 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34071 , x_flex_value_set_id => l_adr_flex_value_set_id
34072 , x_value_type_code => l_adr_value_type_code
34073 , x_value_combination_id => l_adr_value_combination_id
34074 , x_value_segment_code => l_adr_value_segment_code
34075 , p_side => 'NA'
34076 , p_override_seg_flag => 'Y'
34077 );
34078
34079 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34080
34081 xla_ae_lines_pkg.set_segment(
34082 p_to_segment_code => 'GL_ACCOUNT'
34083 , p_segment_value => l_segment
34084 , p_from_segment_code => l_adr_value_segment_code
34085 , p_from_combination_id => l_adr_value_combination_id
34086 , p_value_type_code => l_adr_value_type_code
34087 , p_transaction_coa_id => l_adr_transaction_coa_id
34088 , p_accounting_coa_id => l_adr_accounting_coa_id
34089 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34090 , p_flex_value_set_id => l_adr_flex_value_set_id
34091 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
34092 , p_adr_type_code => 'S'
34096 , p_component_appl_id => l_component_appl_id
34093 , p_component_type => l_component_type
34094 , p_component_code => l_component_code
34095 , p_component_type_code => l_component_type_code
34097 , p_amb_context_code => l_amb_context_code
34098 , p_entity_code => 'AP_PAYMENTS'
34099 , p_event_class_code => 'RECONCILED PAYMENTS'
34100 , p_side => 'NA'
34101 );
34102
34103 END IF;
34104
34105 l_segment := AcctDerRule_16(
34106 p_application_id => p_application_id
34107 , p_ae_header_id => l_ae_header_id
34108 , p_source_16 => p_source_16
34109 , p_source_16_meaning => p_source_16_meaning
34110 , p_source_29 => p_source_29
34111 , x_transaction_coa_id => l_adr_transaction_coa_id
34112 , x_accounting_coa_id => l_adr_accounting_coa_id
34113 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34114 , x_flex_value_set_id => l_adr_flex_value_set_id
34115 , x_value_type_code => l_adr_value_type_code
34116 , x_value_combination_id => l_adr_value_combination_id
34117 , x_value_segment_code => l_adr_value_segment_code
34118 , p_side => 'NA'
34119 , p_override_seg_flag => 'Y'
34120 );
34121
34122 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34123
34124 xla_ae_lines_pkg.set_segment(
34125 p_to_segment_code => 'GL_BALANCING'
34126 , p_segment_value => l_segment
34127 , p_from_segment_code => l_adr_value_segment_code
34128 , p_from_combination_id => l_adr_value_combination_id
34129 , p_value_type_code => l_adr_value_type_code
34130 , p_transaction_coa_id => l_adr_transaction_coa_id
34131 , p_accounting_coa_id => l_adr_accounting_coa_id
34132 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34133 , p_flex_value_set_id => l_adr_flex_value_set_id
34134 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
34135 , p_adr_type_code => 'S'
34136 , p_component_type => l_component_type
34137 , p_component_code => l_component_code
34138 , p_component_type_code => l_component_type_code
34139 , p_component_appl_id => l_component_appl_id
34140 , p_amb_context_code => l_amb_context_code
34141 , p_entity_code => 'AP_PAYMENTS'
34142 , p_event_class_code => 'RECONCILED PAYMENTS'
34143 , p_side => 'NA'
34144 );
34145
34146 END IF;
34147
34148 --
34149 --
34150 END IF;
34151 --
34152 -- Bug 4922099
34153 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34154 (NVL(l_enc_upg_option, 'N') = 'O')
34155 ) AND
34156 (l_bflow_method_code = 'PRIOR_ENTRY')
34157 )
34158 THEN
34159 IF
34160 --
34161 1 = 2
34162 --
34163 THEN
34164 xla_accounting_err_pkg.build_message
34165 (p_appli_s_name => 'XLA'
34166 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34167 ,p_token_1 => 'LINE_NUMBER'
34168 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34169 ,p_token_2 => 'LINE_TYPE_NAME'
34170 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34171 l_component_type
34172 ,l_component_code
34173 ,l_component_type_code
34174 ,l_component_appl_id
34175 ,l_amb_context_code
34176 ,l_entity_code
34177 ,l_event_class_code
34178 )
34179 ,p_token_3 => 'OWNER'
34180 ,p_value_3 => xla_lookups_pkg.get_meaning(
34181 p_lookup_type => 'XLA_OWNER_TYPE'
34182 ,p_lookup_code => l_component_type_code
34183 )
34184 ,p_token_4 => 'PRODUCT_NAME'
34185 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34186 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34187 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34188 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34192 IF (C_LEVEL_ERROR>= g_log_level) THEN
34189 ,p_ae_header_id => NULL
34190 );
34191
34193 trace
34194 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34195 ,p_level => C_LEVEL_ERROR
34196 ,p_module => l_log_module);
34197 END IF;
34198 END IF;
34199 END IF;
34200 --
34201 --
34202 ------------------------------------------------------------------------------------------------
34203 -- 4219869 Business Flow
34204 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34205 -- Prior Entry. Currently, the following code is always generated.
34206 ------------------------------------------------------------------------------------------------
34207 XLA_AE_LINES_PKG.ValidateCurrentLine;
34208
34209 ------------------------------------------------------------------------------------
34210 -- 4219869 Business Flow
34211 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34212 ------------------------------------------------------------------------------------
34213 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34214
34215 ----------------------------------------------------------------------------------
34216 -- 4219869 Business Flow
34217 -- Update journal entry status -- Need to generate this within IF <condition>
34218 ----------------------------------------------------------------------------------
34219 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34220 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34221 ,p_balance_type_code => l_balance_type_code
34222 );
34223
34224 -------------------------------------------------------------------------------------------
34225 -- 4262811 - Generate the Accrual Reversal lines
34226 -------------------------------------------------------------------------------------------
34227 BEGIN
34228 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34229 (g_array_event(p_event_id).array_value_num('header_index'));
34230 IF l_acc_rev_flag IS NULL THEN
34231 l_acc_rev_flag := 'N';
34232 END IF;
34233 EXCEPTION
34234 WHEN OTHERS THEN
34235 l_acc_rev_flag := 'N';
34236 END;
34237 --
34238 IF (l_acc_rev_flag = 'Y') THEN
34239
34240 -- 4645092 ------------------------------------------------------------------------------
34241 -- To allow MPA report to determine if it should generate report process
34242 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34243 ------------------------------------------------------------------------------------------
34244
34245 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34246 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34247 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34248 -- call ADRs
34249 -- Bug 4922099
34250 --
34251 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34252 (NVL(l_actual_upg_option, 'N') = 'O') OR
34253 (NVL(l_enc_upg_option, 'N') = 'O')
34254 )
34255 THEN
34256 NULL;
34257 --
34258 --
34259
34260 l_ccid := AcctDerRule_23(
34261 p_application_id => p_application_id
34262 , p_ae_header_id => l_ae_header_id
34263 , p_source_14 => p_source_14
34264 , p_source_15 => p_source_15
34265 , p_source_15_meaning => p_source_15_meaning
34266 , p_source_16 => p_source_16
34267 , p_source_16_meaning => p_source_16_meaning
34268 , p_source_29 => p_source_29
34269 , p_source_32 => p_source_32
34270 , p_source_32_meaning => p_source_32_meaning
34271 , p_source_39 => p_source_39
34272 , p_source_40 => p_source_40
34273 , p_source_41 => p_source_41
34274 , x_transaction_coa_id => l_adr_transaction_coa_id
34275 , x_accounting_coa_id => l_adr_accounting_coa_id
34276 , x_value_type_code => l_adr_value_type_code
34277 , p_side => 'NA'
34278 );
34279
34280 xla_ae_lines_pkg.set_ccid(
34281 p_code_combination_id => l_ccid
34282 , p_value_type_code => l_adr_value_type_code
34283 , p_transaction_coa_id => l_adr_transaction_coa_id
34284 , p_accounting_coa_id => l_adr_accounting_coa_id
34285 , p_adr_code => 'AP_DISCOUNT'
34286 , p_adr_type_code => 'S'
34287 , p_component_type => l_component_type
34288 , p_component_code => l_component_code
34289 , p_component_type_code => l_component_type_code
34290 , p_component_appl_id => l_component_appl_id
34291 , p_amb_context_code => l_amb_context_code
34292 , p_side => 'NA'
34293 );
34294
34295
34296 l_segment := AcctDerRule_4(
34297 p_application_id => p_application_id
34298 , p_ae_header_id => l_ae_header_id
34299 , p_source_14 => p_source_14
34300 , p_source_15 => p_source_15
34301 , p_source_15_meaning => p_source_15_meaning
34302 , p_source_16 => p_source_16
34303 , p_source_16_meaning => p_source_16_meaning
34304 , x_transaction_coa_id => l_adr_transaction_coa_id
34308 , x_value_type_code => l_adr_value_type_code
34305 , x_accounting_coa_id => l_adr_accounting_coa_id
34306 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34307 , x_flex_value_set_id => l_adr_flex_value_set_id
34309 , x_value_combination_id => l_adr_value_combination_id
34310 , x_value_segment_code => l_adr_value_segment_code
34311 , p_side => 'NA'
34312 , p_override_seg_flag => 'Y'
34313 );
34314
34315 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34316
34317 xla_ae_lines_pkg.set_segment(
34318 p_to_segment_code => 'GL_ACCOUNT'
34319 , p_segment_value => l_segment
34320 , p_from_segment_code => l_adr_value_segment_code
34321 , p_from_combination_id => l_adr_value_combination_id
34322 , p_value_type_code => l_adr_value_type_code
34323 , p_transaction_coa_id => l_adr_transaction_coa_id
34324 , p_accounting_coa_id => l_adr_accounting_coa_id
34325 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34326 , p_flex_value_set_id => l_adr_flex_value_set_id
34327 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
34328 , p_adr_type_code => 'S'
34329 , p_component_type => l_component_type
34330 , p_component_code => l_component_code
34331 , p_component_type_code => l_component_type_code
34332 , p_component_appl_id => l_component_appl_id
34333 , p_amb_context_code => l_amb_context_code
34334 , p_entity_code => 'AP_PAYMENTS'
34335 , p_event_class_code => 'RECONCILED PAYMENTS'
34336 , p_side => 'NA'
34337 );
34338
34339 END IF;
34340
34341 l_segment := AcctDerRule_16(
34342 p_application_id => p_application_id
34343 , p_ae_header_id => l_ae_header_id
34344 , p_source_16 => p_source_16
34345 , p_source_16_meaning => p_source_16_meaning
34346 , p_source_29 => p_source_29
34347 , x_transaction_coa_id => l_adr_transaction_coa_id
34348 , x_accounting_coa_id => l_adr_accounting_coa_id
34349 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34350 , x_flex_value_set_id => l_adr_flex_value_set_id
34351 , x_value_type_code => l_adr_value_type_code
34352 , x_value_combination_id => l_adr_value_combination_id
34353 , x_value_segment_code => l_adr_value_segment_code
34354 , p_side => 'NA'
34355 , p_override_seg_flag => 'Y'
34356 );
34357
34358 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34359
34360 xla_ae_lines_pkg.set_segment(
34361 p_to_segment_code => 'GL_BALANCING'
34362 , p_segment_value => l_segment
34363 , p_from_segment_code => l_adr_value_segment_code
34364 , p_from_combination_id => l_adr_value_combination_id
34365 , p_value_type_code => l_adr_value_type_code
34366 , p_transaction_coa_id => l_adr_transaction_coa_id
34367 , p_accounting_coa_id => l_adr_accounting_coa_id
34368 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34369 , p_flex_value_set_id => l_adr_flex_value_set_id
34370 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
34371 , p_adr_type_code => 'S'
34372 , p_component_type => l_component_type
34373 , p_component_code => l_component_code
34374 , p_component_type_code => l_component_type_code
34375 , p_component_appl_id => l_component_appl_id
34376 , p_amb_context_code => l_amb_context_code
34377 , p_entity_code => 'AP_PAYMENTS'
34378 , p_event_class_code => 'RECONCILED PAYMENTS'
34379 , p_side => 'NA'
34380 );
34381
34382 END IF;
34383
34384 --
34385 --
34386 END IF;
34387
34388 --
34389 -- Update the line information that should be overwritten
34390 --
34391 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34392 p_header_num => 1);
34393 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34394
34395 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34396
34397 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34398 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34399 END IF;
34400
34401 --
34402 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34403 --
34404 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34405 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34406 ELSE
34407 ---------------------------------------------------------------------------------------------------
34408 -- 4262811a Switch Sign
34409 ---------------------------------------------------------------------------------------------------
34410 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34414 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34411 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34412 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34413 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34415 -- 5132302
34416 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34417 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34418
34419 END IF;
34420
34421 -- 4955764
34422 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34423 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34424
34425
34426 XLA_AE_LINES_PKG.ValidateCurrentLine;
34427 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34428
34429 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34430 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34431 ,p_balance_type_code => l_balance_type_code);
34432
34433 END IF;
34434
34435 -----------------------------------------------------------------------------------------
34436 -- 4262811 Multiperiod Accounting
34437 -----------------------------------------------------------------------------------------
34438 -- No MPA option is assigned.
34439
34440
34441 END IF;
34442 END IF;
34443 --
34444
34445 --
34446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34447 trace
34448 (p_msg => 'END of AcctLineType_77'
34449 ,p_level => C_LEVEL_PROCEDURE
34450 ,p_module => l_log_module);
34451 END IF;
34452 --
34453 EXCEPTION
34454 WHEN xla_exceptions_pkg.application_exception THEN
34455 RAISE;
34456 WHEN OTHERS THEN
34457 xla_exceptions_pkg.raise_message
34458 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_77');
34459 END AcctLineType_77;
34460 --
34461
34462 ---------------------------------------
34463 --
34464 -- PRIVATE FUNCTION
34465 -- AcctLineType_78
34466 --
34467 ---------------------------------------
34468 PROCEDURE AcctLineType_78 (
34469 p_application_id IN NUMBER
34470 ,p_event_id IN NUMBER
34471 ,p_calculate_acctd_flag IN VARCHAR2
34472 ,p_calculate_g_l_flag IN VARCHAR2
34473 ,p_actual_flag IN OUT VARCHAR2
34474 ,p_balance_type_code OUT VARCHAR2
34475 ,p_gain_or_loss_ref OUT VARCHAR2
34476
34477 --Payment Currency Code
34478 , p_source_12 IN VARCHAR2
34479 --System Discount Account
34480 , p_source_14 IN NUMBER
34481 --Discount Distribution Method
34482 , p_source_15 IN VARCHAR2
34483 , p_source_15_meaning IN VARCHAR2
34484 --Automatic Offsets Value
34485 , p_source_16 IN VARCHAR2
34486 , p_source_16_meaning IN VARCHAR2
34487 --Payment Distribution (Payment Rate) Ledger Amount
34488 , p_source_21 IN NUMBER
34489 --Invoice Distribution Account
34490 , p_source_29 IN NUMBER
34491 --Invoice Distribution Type
34492 , p_source_32 IN VARCHAR2
34493 , p_source_32_meaning IN VARCHAR2
34494 --Discount Account
34495 , p_source_39 IN NUMBER
34496 --Purchase Order Charge Account
34497 , p_source_40 IN NUMBER
34498 --Purchase Order Variance Account
34499 , p_source_41 IN NUMBER
34500 --When to Account for Payment Option
34501 , p_source_50 IN VARCHAR2
34502 --Payment Distribution Type
34503 , p_source_51 IN VARCHAR2
34504 , p_source_51_meaning IN VARCHAR2
34505 --Accounting Reversal Indicator
34506 , p_source_52 IN VARCHAR2
34507 --Payment Distribution Amount
34508 , p_source_53 IN NUMBER
34509 --Business Flow Accounts Payable Application Identifier
34510 , p_source_54 IN NUMBER
34511 --Payment Distribution Identifier
34512 , p_source_59 IN NUMBER
34513 --Distribution Link Type
34514 , p_source_60 IN VARCHAR2
34515 --Override Accounted Amount Indicator
34516 , p_source_64 IN VARCHAR2
34517 , p_source_64_meaning IN VARCHAR2
34518 --Payment Supplier Identifier
34519 , p_source_65 IN NUMBER
34520 --Payment Supplier Site Identifier
34521 , p_source_66 IN NUMBER
34522 --Third Party Type
34523 , p_source_67 IN VARCHAR2
34524 --Payment Distribution Reversed Identifier
34525 , p_source_68 IN NUMBER
34526 --Invoice Distribution Tax Line Identifier
34527 , p_source_69 IN NUMBER
34528 --Invoice Distribution Summary Tax Line Identifier
34529 , p_source_70 IN NUMBER
34530 --Payment Type
34531 , p_source_71 IN VARCHAR2
34532 , p_source_71_meaning IN VARCHAR2
34533 --Invoice Distribution Amount of the Payment Distribution
34534 , p_source_72 IN NUMBER
34535 --Business Flow Invoice Distribution Type
34536 , p_source_73 IN VARCHAR2
34537 --Business Flow Invoice Entity Code
34538 , p_source_74 IN VARCHAR2
34539 --Business Flow Invoice Distribution Identifier
34540 , p_source_75 IN NUMBER
34541 --Business Flow Invoice Identifier
34542 , p_source_76 IN NUMBER
34546 , p_source_121 IN DATE
34543 --Invoice Distribution Tax Distribution Identifier from Tax
34544 , p_source_77 IN NUMBER
34545 --Payment Exchange Date
34547 --Payment Exchange Rate
34548 , p_source_122 IN NUMBER
34549 --Payment Exchange Rate Type
34550 , p_source_123 IN VARCHAR2
34551 )
34552 IS
34553
34554 l_component_type VARCHAR2(80);
34555 l_component_code VARCHAR2(30);
34556 l_component_type_code VARCHAR2(1);
34557 l_component_appl_id INTEGER;
34558 l_amb_context_code VARCHAR2(30);
34559 l_entity_code VARCHAR2(30);
34560 l_event_class_code VARCHAR2(30);
34561 l_ae_header_id NUMBER;
34562 l_event_type_code VARCHAR2(30);
34563 l_line_definition_code VARCHAR2(30);
34564 l_line_definition_owner_code VARCHAR2(1);
34565 --
34566 -- adr variables
34567 l_segment VARCHAR2(30);
34568 l_ccid NUMBER;
34569 l_adr_transaction_coa_id NUMBER;
34570 l_adr_accounting_coa_id NUMBER;
34571 l_adr_flexfield_segment_code VARCHAR2(30);
34572 l_adr_flex_value_set_id NUMBER;
34573 l_adr_value_type_code VARCHAR2(30);
34574 l_adr_value_combination_id NUMBER;
34575 l_adr_value_segment_code VARCHAR2(30);
34576
34577 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34578 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34579 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34580 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34581
34582 -- 4262811 Variables ------------------------------------------------------------------------------------------
34583 l_entered_amt_idx NUMBER;
34584 l_accted_amt_idx NUMBER;
34585 l_acc_rev_flag VARCHAR2(1);
34586 l_accrual_line_num NUMBER;
34587 l_tmp_amt NUMBER;
34588 l_acc_rev_natural_side_code VARCHAR2(1);
34589
34590 l_num_entries NUMBER;
34591 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34592 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34593 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34594 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34595 l_recog_line_1 NUMBER;
34596 l_recog_line_2 NUMBER;
34597
34598 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34599 l_bflow_applied_to_amt NUMBER; -- 5132302
34600 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34601
34602 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34603
34604 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34605 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34606
34607 ---------------------------------------------------------------------------------------------------------------
34608
34609
34610 --
34611 -- bulk performance
34612 --
34613 l_balance_type_code VARCHAR2(1);
34614 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34615 l_log_module VARCHAR2(240);
34616
34617 --
34618 -- Upgrade strategy
34619 --
34620 l_actual_upg_option VARCHAR2(1);
34621 l_enc_upg_option VARCHAR2(1);
34622
34623 --
34624 BEGIN
34625 --
34626 IF g_log_enabled THEN
34627 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
34628 END IF;
34629 --
34630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34631
34632 trace
34633 (p_msg => 'BEGIN of AcctLineType_78'
34634 ,p_level => C_LEVEL_PROCEDURE
34635 ,p_module => l_log_module);
34636
34637 END IF;
34638 --
34639 l_component_type := 'AMB_JLT';
34640 l_component_code := 'AP_DISCOUNT_CASH_PMT';
34641 l_component_type_code := 'S';
34642 l_component_appl_id := 200;
34643 l_amb_context_code := 'DEFAULT';
34644 l_entity_code := 'AP_PAYMENTS';
34645 l_event_class_code := 'PAYMENTS';
34646 l_event_type_code := 'PAYMENTS_ALL';
34647 l_line_definition_owner_code := 'S';
34648 l_line_definition_code := 'CASH_PAYMENTS_ALL';
34649 --
34650 l_balance_type_code := 'A';
34651 l_segment := NULL;
34652 l_ccid := NULL;
34653 l_adr_transaction_coa_id := NULL;
34654 l_adr_accounting_coa_id := NULL;
34655 l_adr_flexfield_segment_code := NULL;
34656 l_adr_flex_value_set_id := NULL;
34657 l_adr_value_type_code := NULL;
34658 l_adr_value_combination_id := NULL;
34659 l_adr_value_segment_code := NULL;
34660
34661 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34662 l_bflow_class_code := ''; -- 4219869 Business Flow
34663 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34664 l_budgetary_control_flag := 'N';
34665
34666 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34667 l_bflow_applied_to_amt := NULL; -- 5132302
34668 l_entered_amt_idx := NULL; -- 4262811
34669 l_accted_amt_idx := NULL; -- 4262811
34670 l_acc_rev_flag := NULL; -- 4262811
34671 l_accrual_line_num := NULL; -- 4262811
34675 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34672 l_tmp_amt := NULL; -- 4262811
34673 --
34674
34676 l_balance_type_code <> 'B' THEN
34677 IF NVL(p_source_50,'
34678 ') <> 'CLEAR_CLEAR' AND
34679 NVL(p_source_51,'
34680 ') = 'DISCOUNT' AND
34681 NVL(p_source_71,'
34682 ') <> 'R'
34683 THEN
34684
34685 --
34686 XLA_AE_LINES_PKG.SetNewLine;
34687
34688 p_balance_type_code := l_balance_type_code;
34689 -- set the flag so later we will know whether the gain loss line needs to be created
34690
34691 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34692 p_actual_flag :='A';
34693 END IF;
34694
34695 --
34696 -- bulk performance
34697 --
34698 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34699 p_header_num => 0); -- 4262811
34700 --
34701 -- set accounting line options
34702 --
34703 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34704 p_natural_side_code => 'C'
34705 , p_gain_or_loss_flag => 'N'
34706 , p_gl_transfer_mode_code => 'S'
34707 , p_acct_entry_type_code => 'A'
34708 , p_switch_side_flag => 'Y'
34709 , p_merge_duplicate_code => 'A'
34710 );
34711 --
34712 l_acc_rev_natural_side_code := 'D'; -- 4262811
34713 --
34714 --
34715 -- set accounting line type info
34716 --
34717 xla_ae_lines_pkg.SetAcctLineType
34718 (p_component_type => l_component_type
34719 ,p_event_type_code => l_event_type_code
34720 ,p_line_definition_owner_code => l_line_definition_owner_code
34721 ,p_line_definition_code => l_line_definition_code
34722 ,p_accounting_line_code => l_component_code
34723 ,p_accounting_line_type_code => l_component_type_code
34724 ,p_accounting_line_appl_id => l_component_appl_id
34725 ,p_amb_context_code => l_amb_context_code
34726 ,p_entity_code => l_entity_code
34727 ,p_event_class_code => l_event_class_code);
34728 --
34729 -- set accounting class
34730 --
34731 xla_ae_lines_pkg.SetAcctClass(
34732 p_accounting_class_code => 'DISCOUNT'
34733 , p_ae_header_id => l_ae_header_id
34734 );
34735
34736 --
34737 -- set rounding class
34738 --
34739 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34740 'DISCOUNT';
34741
34742 --
34743 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34744 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34745 --
34746 -- bulk performance
34747 --
34748 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34749
34750 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34751 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34752
34753 -- 4955764
34754 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34755 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34756
34757 -- 4458381 Public Sector Enh
34758
34759 --
34760 -- set accounting attributes for the line type
34761 --
34762 l_entered_amt_idx := 10;
34763 l_accted_amt_idx := 15;
34764 l_bflow_applied_to_amt_idx := 2; -- 5132302
34765 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34766 l_rec_acct_attrs.array_char_value(1) := p_source_52;
34767 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
34768 l_rec_acct_attrs.array_num_value(2) := p_source_72;
34769 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
34770 l_rec_acct_attrs.array_num_value(3) := p_source_54;
34771 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34772 l_rec_acct_attrs.array_char_value(4) := p_source_73;
34773 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
34774 l_rec_acct_attrs.array_char_value(5) := p_source_74;
34775 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
34776 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
34777 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34778 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
34779 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
34780 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
34781 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
34782 l_rec_acct_attrs.array_char_value(9) := p_source_60;
34783 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
34784 l_rec_acct_attrs.array_num_value(10) := p_source_53;
34785 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
34786 l_rec_acct_attrs.array_char_value(11) := p_source_12;
34787 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
34788 l_rec_acct_attrs.array_date_value(12) := p_source_121;
34792 l_rec_acct_attrs.array_char_value(14) := p_source_123;
34789 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
34790 l_rec_acct_attrs.array_num_value(13) := p_source_122;
34791 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
34793 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
34794 l_rec_acct_attrs.array_num_value(15) := p_source_21;
34795 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
34796 l_rec_acct_attrs.array_char_value(16) := p_source_64;
34797 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
34798 l_rec_acct_attrs.array_num_value(17) := p_source_65;
34799 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
34800 l_rec_acct_attrs.array_num_value(18) := p_source_66;
34801 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
34802 l_rec_acct_attrs.array_char_value(19) := p_source_67;
34803 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
34804 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
34805 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
34806 l_rec_acct_attrs.array_char_value(21) := p_source_60;
34807 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
34808 l_rec_acct_attrs.array_num_value(22) := p_source_69;
34809 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
34810 l_rec_acct_attrs.array_num_value(23) := p_source_77;
34811 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
34812 l_rec_acct_attrs.array_num_value(24) := p_source_70;
34813
34814 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34815 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34816
34817 ---------------------------------------------------------------------------------------------------------------
34818 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34819 ---------------------------------------------------------------------------------------------------------------
34820 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34821
34822 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34823 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34824
34825 IF xla_accounting_cache_pkg.GetValueChar
34826 (p_source_code => 'LEDGER_CATEGORY_CODE'
34827 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34828 AND l_bflow_method_code = 'PRIOR_ENTRY'
34829 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34830 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34831 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34832 )
34833 THEN
34834 xla_ae_lines_pkg.BflowUpgEntry
34835 (p_business_method_code => l_bflow_method_code
34836 ,p_business_class_code => l_bflow_class_code
34837 ,p_balance_type => l_balance_type_code);
34838 ELSE
34839 NULL;
34840 -- No business flow processing for business flow method of NONE.
34841 END IF;
34842
34843 --
34844 -- call analytical criteria
34845 --
34846
34847 --
34848 -- call description
34849 --
34850 -- No description or it is inherited.
34851 --
34852 -- call ADRs
34853 -- Bug 4922099
34854 --
34855 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34856 (NVL(l_actual_upg_option, 'N') = 'O') OR
34857 (NVL(l_enc_upg_option, 'N') = 'O')
34858 )
34859 THEN
34860 NULL;
34861 --
34862 --
34863
34864 l_ccid := AcctDerRule_23(
34865 p_application_id => p_application_id
34866 , p_ae_header_id => l_ae_header_id
34867 , p_source_14 => p_source_14
34868 , p_source_15 => p_source_15
34869 , p_source_15_meaning => p_source_15_meaning
34870 , p_source_16 => p_source_16
34871 , p_source_16_meaning => p_source_16_meaning
34872 , p_source_29 => p_source_29
34873 , p_source_32 => p_source_32
34874 , p_source_32_meaning => p_source_32_meaning
34875 , p_source_39 => p_source_39
34876 , p_source_40 => p_source_40
34877 , p_source_41 => p_source_41
34878 , x_transaction_coa_id => l_adr_transaction_coa_id
34879 , x_accounting_coa_id => l_adr_accounting_coa_id
34880 , x_value_type_code => l_adr_value_type_code
34881 , p_side => 'NA'
34882 );
34883
34884 xla_ae_lines_pkg.set_ccid(
34885 p_code_combination_id => l_ccid
34886 , p_value_type_code => l_adr_value_type_code
34887 , p_transaction_coa_id => l_adr_transaction_coa_id
34888 , p_accounting_coa_id => l_adr_accounting_coa_id
34889 , p_adr_code => 'AP_DISCOUNT'
34890 , p_adr_type_code => 'S'
34891 , p_component_type => l_component_type
34892 , p_component_code => l_component_code
34893 , p_component_type_code => l_component_type_code
34894 , p_component_appl_id => l_component_appl_id
34895 , p_amb_context_code => l_amb_context_code
34896 , p_side => 'NA'
34897 );
34898
34899
34900 l_segment := AcctDerRule_15(
34904 , p_source_15_meaning => p_source_15_meaning
34901 p_application_id => p_application_id
34902 , p_ae_header_id => l_ae_header_id
34903 , p_source_15 => p_source_15
34905 , p_source_16 => p_source_16
34906 , p_source_16_meaning => p_source_16_meaning
34907 , p_source_29 => p_source_29
34908 , x_transaction_coa_id => l_adr_transaction_coa_id
34909 , x_accounting_coa_id => l_adr_accounting_coa_id
34910 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34911 , x_flex_value_set_id => l_adr_flex_value_set_id
34912 , x_value_type_code => l_adr_value_type_code
34913 , x_value_combination_id => l_adr_value_combination_id
34914 , x_value_segment_code => l_adr_value_segment_code
34915 , p_side => 'NA'
34916 , p_override_seg_flag => 'Y'
34917 );
34918
34919 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34920
34921 xla_ae_lines_pkg.set_segment(
34922 p_to_segment_code => 'GL_BALANCING'
34923 , p_segment_value => l_segment
34924 , p_from_segment_code => l_adr_value_segment_code
34925 , p_from_combination_id => l_adr_value_combination_id
34926 , p_value_type_code => l_adr_value_type_code
34927 , p_transaction_coa_id => l_adr_transaction_coa_id
34928 , p_accounting_coa_id => l_adr_accounting_coa_id
34929 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34930 , p_flex_value_set_id => l_adr_flex_value_set_id
34931 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
34932 , p_adr_type_code => 'S'
34933 , p_component_type => l_component_type
34934 , p_component_code => l_component_code
34935 , p_component_type_code => l_component_type_code
34936 , p_component_appl_id => l_component_appl_id
34937 , p_amb_context_code => l_amb_context_code
34938 , p_entity_code => 'AP_PAYMENTS'
34939 , p_event_class_code => 'PAYMENTS'
34940 , p_side => 'NA'
34941 );
34942
34943 END IF;
34944
34945 l_segment := AcctDerRule_4(
34946 p_application_id => p_application_id
34947 , p_ae_header_id => l_ae_header_id
34948 , p_source_14 => p_source_14
34949 , p_source_15 => p_source_15
34950 , p_source_15_meaning => p_source_15_meaning
34951 , p_source_16 => p_source_16
34952 , p_source_16_meaning => p_source_16_meaning
34953 , x_transaction_coa_id => l_adr_transaction_coa_id
34954 , x_accounting_coa_id => l_adr_accounting_coa_id
34955 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34956 , x_flex_value_set_id => l_adr_flex_value_set_id
34957 , x_value_type_code => l_adr_value_type_code
34958 , x_value_combination_id => l_adr_value_combination_id
34959 , x_value_segment_code => l_adr_value_segment_code
34960 , p_side => 'NA'
34961 , p_override_seg_flag => 'Y'
34962 );
34963
34964 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34965
34966 xla_ae_lines_pkg.set_segment(
34967 p_to_segment_code => 'GL_ACCOUNT'
34968 , p_segment_value => l_segment
34969 , p_from_segment_code => l_adr_value_segment_code
34970 , p_from_combination_id => l_adr_value_combination_id
34971 , p_value_type_code => l_adr_value_type_code
34972 , p_transaction_coa_id => l_adr_transaction_coa_id
34973 , p_accounting_coa_id => l_adr_accounting_coa_id
34974 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34975 , p_flex_value_set_id => l_adr_flex_value_set_id
34976 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
34977 , p_adr_type_code => 'S'
34978 , p_component_type => l_component_type
34979 , p_component_code => l_component_code
34980 , p_component_type_code => l_component_type_code
34981 , p_component_appl_id => l_component_appl_id
34982 , p_amb_context_code => l_amb_context_code
34983 , p_entity_code => 'AP_PAYMENTS'
34984 , p_event_class_code => 'PAYMENTS'
34985 , p_side => 'NA'
34986 );
34987
34988 END IF;
34989
34990 --
34991 --
34992 END IF;
34993 --
34994 -- Bug 4922099
34995 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34996 (NVL(l_enc_upg_option, 'N') = 'O')
34997 ) AND
34998 (l_bflow_method_code = 'PRIOR_ENTRY')
34999 )
35000 THEN
35001 IF
35002 --
35003 1 = 2
35004 --
35005 THEN
35006 xla_accounting_err_pkg.build_message
35007 (p_appli_s_name => 'XLA'
35008 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35009 ,p_token_1 => 'LINE_NUMBER'
35010 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35011 ,p_token_2 => 'LINE_TYPE_NAME'
35015 ,l_component_type_code
35012 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35013 l_component_type
35014 ,l_component_code
35016 ,l_component_appl_id
35017 ,l_amb_context_code
35018 ,l_entity_code
35019 ,l_event_class_code
35020 )
35021 ,p_token_3 => 'OWNER'
35022 ,p_value_3 => xla_lookups_pkg.get_meaning(
35023 p_lookup_type => 'XLA_OWNER_TYPE'
35024 ,p_lookup_code => l_component_type_code
35025 )
35026 ,p_token_4 => 'PRODUCT_NAME'
35027 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35028 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35029 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35030 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35031 ,p_ae_header_id => NULL
35032 );
35033
35034 IF (C_LEVEL_ERROR>= g_log_level) THEN
35035 trace
35036 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35037 ,p_level => C_LEVEL_ERROR
35038 ,p_module => l_log_module);
35039 END IF;
35040 END IF;
35041 END IF;
35042 --
35043 --
35044 ------------------------------------------------------------------------------------------------
35045 -- 4219869 Business Flow
35046 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35047 -- Prior Entry. Currently, the following code is always generated.
35048 ------------------------------------------------------------------------------------------------
35049 XLA_AE_LINES_PKG.ValidateCurrentLine;
35050
35051 ------------------------------------------------------------------------------------
35052 -- 4219869 Business Flow
35053 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35054 ------------------------------------------------------------------------------------
35055 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35056
35057 ----------------------------------------------------------------------------------
35058 -- 4219869 Business Flow
35059 -- Update journal entry status -- Need to generate this within IF <condition>
35060 ----------------------------------------------------------------------------------
35061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35062 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35063 ,p_balance_type_code => l_balance_type_code
35064 );
35065
35066 -------------------------------------------------------------------------------------------
35067 -- 4262811 - Generate the Accrual Reversal lines
35068 -------------------------------------------------------------------------------------------
35069 BEGIN
35070 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35071 (g_array_event(p_event_id).array_value_num('header_index'));
35072 IF l_acc_rev_flag IS NULL THEN
35073 l_acc_rev_flag := 'N';
35074 END IF;
35075 EXCEPTION
35076 WHEN OTHERS THEN
35077 l_acc_rev_flag := 'N';
35078 END;
35079 --
35080 IF (l_acc_rev_flag = 'Y') THEN
35081
35082 -- 4645092 ------------------------------------------------------------------------------
35083 -- To allow MPA report to determine if it should generate report process
35084 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35085 ------------------------------------------------------------------------------------------
35086
35087 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35088 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35089 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35090 -- call ADRs
35091 -- Bug 4922099
35092 --
35093 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35094 (NVL(l_actual_upg_option, 'N') = 'O') OR
35095 (NVL(l_enc_upg_option, 'N') = 'O')
35096 )
35097 THEN
35098 NULL;
35099 --
35100 --
35101
35102 l_ccid := AcctDerRule_23(
35103 p_application_id => p_application_id
35104 , p_ae_header_id => l_ae_header_id
35105 , p_source_14 => p_source_14
35106 , p_source_15 => p_source_15
35107 , p_source_15_meaning => p_source_15_meaning
35108 , p_source_16 => p_source_16
35109 , p_source_16_meaning => p_source_16_meaning
35110 , p_source_29 => p_source_29
35114 , p_source_40 => p_source_40
35111 , p_source_32 => p_source_32
35112 , p_source_32_meaning => p_source_32_meaning
35113 , p_source_39 => p_source_39
35115 , p_source_41 => p_source_41
35116 , x_transaction_coa_id => l_adr_transaction_coa_id
35117 , x_accounting_coa_id => l_adr_accounting_coa_id
35118 , x_value_type_code => l_adr_value_type_code
35119 , p_side => 'NA'
35120 );
35121
35122 xla_ae_lines_pkg.set_ccid(
35123 p_code_combination_id => l_ccid
35124 , p_value_type_code => l_adr_value_type_code
35125 , p_transaction_coa_id => l_adr_transaction_coa_id
35126 , p_accounting_coa_id => l_adr_accounting_coa_id
35127 , p_adr_code => 'AP_DISCOUNT'
35128 , p_adr_type_code => 'S'
35129 , p_component_type => l_component_type
35130 , p_component_code => l_component_code
35131 , p_component_type_code => l_component_type_code
35132 , p_component_appl_id => l_component_appl_id
35133 , p_amb_context_code => l_amb_context_code
35134 , p_side => 'NA'
35135 );
35136
35137
35138 l_segment := AcctDerRule_15(
35139 p_application_id => p_application_id
35140 , p_ae_header_id => l_ae_header_id
35141 , p_source_15 => p_source_15
35142 , p_source_15_meaning => p_source_15_meaning
35143 , p_source_16 => p_source_16
35144 , p_source_16_meaning => p_source_16_meaning
35145 , p_source_29 => p_source_29
35146 , x_transaction_coa_id => l_adr_transaction_coa_id
35147 , x_accounting_coa_id => l_adr_accounting_coa_id
35148 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35149 , x_flex_value_set_id => l_adr_flex_value_set_id
35150 , x_value_type_code => l_adr_value_type_code
35151 , x_value_combination_id => l_adr_value_combination_id
35152 , x_value_segment_code => l_adr_value_segment_code
35153 , p_side => 'NA'
35154 , p_override_seg_flag => 'Y'
35155 );
35156
35157 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35158
35159 xla_ae_lines_pkg.set_segment(
35160 p_to_segment_code => 'GL_BALANCING'
35161 , p_segment_value => l_segment
35162 , p_from_segment_code => l_adr_value_segment_code
35163 , p_from_combination_id => l_adr_value_combination_id
35164 , p_value_type_code => l_adr_value_type_code
35165 , p_transaction_coa_id => l_adr_transaction_coa_id
35166 , p_accounting_coa_id => l_adr_accounting_coa_id
35167 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35168 , p_flex_value_set_id => l_adr_flex_value_set_id
35169 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
35170 , p_adr_type_code => 'S'
35171 , p_component_type => l_component_type
35172 , p_component_code => l_component_code
35173 , p_component_type_code => l_component_type_code
35174 , p_component_appl_id => l_component_appl_id
35175 , p_amb_context_code => l_amb_context_code
35176 , p_entity_code => 'AP_PAYMENTS'
35177 , p_event_class_code => 'PAYMENTS'
35178 , p_side => 'NA'
35179 );
35180
35181 END IF;
35182
35183 l_segment := AcctDerRule_4(
35184 p_application_id => p_application_id
35185 , p_ae_header_id => l_ae_header_id
35186 , p_source_14 => p_source_14
35187 , p_source_15 => p_source_15
35188 , p_source_15_meaning => p_source_15_meaning
35189 , p_source_16 => p_source_16
35190 , p_source_16_meaning => p_source_16_meaning
35191 , x_transaction_coa_id => l_adr_transaction_coa_id
35192 , x_accounting_coa_id => l_adr_accounting_coa_id
35193 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35194 , x_flex_value_set_id => l_adr_flex_value_set_id
35195 , x_value_type_code => l_adr_value_type_code
35196 , x_value_combination_id => l_adr_value_combination_id
35197 , x_value_segment_code => l_adr_value_segment_code
35198 , p_side => 'NA'
35199 , p_override_seg_flag => 'Y'
35200 );
35201
35202 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35203
35204 xla_ae_lines_pkg.set_segment(
35205 p_to_segment_code => 'GL_ACCOUNT'
35206 , p_segment_value => l_segment
35207 , p_from_segment_code => l_adr_value_segment_code
35208 , p_from_combination_id => l_adr_value_combination_id
35209 , p_value_type_code => l_adr_value_type_code
35210 , p_transaction_coa_id => l_adr_transaction_coa_id
35211 , p_accounting_coa_id => l_adr_accounting_coa_id
35212 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35213 , p_flex_value_set_id => l_adr_flex_value_set_id
35214 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
35215 , p_adr_type_code => 'S'
35216 , p_component_type => l_component_type
35217 , p_component_code => l_component_code
35218 , p_component_type_code => l_component_type_code
35222 , p_event_class_code => 'PAYMENTS'
35219 , p_component_appl_id => l_component_appl_id
35220 , p_amb_context_code => l_amb_context_code
35221 , p_entity_code => 'AP_PAYMENTS'
35223 , p_side => 'NA'
35224 );
35225
35226 END IF;
35227
35228 --
35229 --
35230 END IF;
35231
35232 --
35233 -- Update the line information that should be overwritten
35234 --
35235 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35236 p_header_num => 1);
35237 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35238
35239 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35240
35241 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35242 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35243 END IF;
35244
35245 --
35246 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35247 --
35248 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35249 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35250 ELSE
35251 ---------------------------------------------------------------------------------------------------
35252 -- 4262811a Switch Sign
35253 ---------------------------------------------------------------------------------------------------
35254 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35255 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35256 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35257 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35258 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35259 -- 5132302
35260 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35261 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35262
35263 END IF;
35264
35265 -- 4955764
35266 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35267 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35268
35269
35270 XLA_AE_LINES_PKG.ValidateCurrentLine;
35271 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35272
35273 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35274 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35275 ,p_balance_type_code => l_balance_type_code);
35276
35277 END IF;
35278
35279 -----------------------------------------------------------------------------------------
35280 -- 4262811 Multiperiod Accounting
35281 -----------------------------------------------------------------------------------------
35282 -- No MPA option is assigned.
35283
35284
35285 END IF;
35286 END IF;
35287 --
35288
35289 --
35290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35291 trace
35292 (p_msg => 'END of AcctLineType_78'
35293 ,p_level => C_LEVEL_PROCEDURE
35294 ,p_module => l_log_module);
35295 END IF;
35296 --
35297 EXCEPTION
35298 WHEN xla_exceptions_pkg.application_exception THEN
35299 RAISE;
35300 WHEN OTHERS THEN
35301 xla_exceptions_pkg.raise_message
35302 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_78');
35303 END AcctLineType_78;
35304 --
35305
35306 ---------------------------------------
35307 --
35308 -- PRIVATE FUNCTION
35309 -- AcctLineType_79
35310 --
35311 ---------------------------------------
35312 PROCEDURE AcctLineType_79 (
35313 p_application_id IN NUMBER
35314 ,p_event_id IN NUMBER
35315 ,p_calculate_acctd_flag IN VARCHAR2
35316 ,p_calculate_g_l_flag IN VARCHAR2
35317 ,p_actual_flag IN OUT VARCHAR2
35318 ,p_balance_type_code OUT VARCHAR2
35319 ,p_gain_or_loss_ref OUT VARCHAR2
35320
35321 --Payment Currency Code
35322 , p_source_12 IN VARCHAR2
35323 --System Discount Account
35324 , p_source_14 IN NUMBER
35325 --Discount Distribution Method
35326 , p_source_15 IN VARCHAR2
35327 , p_source_15_meaning IN VARCHAR2
35328 --Automatic Offsets Value
35329 , p_source_16 IN VARCHAR2
35330 , p_source_16_meaning IN VARCHAR2
35331 --Payment Distribution (Payment Rate) Ledger Amount
35332 , p_source_21 IN NUMBER
35333 --Invoice Distribution Account
35334 , p_source_29 IN NUMBER
35335 --Invoice Distribution Type
35336 , p_source_32 IN VARCHAR2
35337 , p_source_32_meaning IN VARCHAR2
35338 --Discount Account
35339 , p_source_39 IN NUMBER
35340 --Purchase Order Charge Account
35341 , p_source_40 IN NUMBER
35342 --Purchase Order Variance Account
35343 , p_source_41 IN NUMBER
35344 --When to Account for Payment Option
35348 , p_source_51_meaning IN VARCHAR2
35345 , p_source_50 IN VARCHAR2
35346 --Payment Distribution Type
35347 , p_source_51 IN VARCHAR2
35349 --Accounting Reversal Indicator
35350 , p_source_52 IN VARCHAR2
35351 --Payment Distribution Amount
35352 , p_source_53 IN NUMBER
35353 --Business Flow Accounts Payable Application Identifier
35354 , p_source_54 IN NUMBER
35355 --Payment Distribution Identifier
35356 , p_source_59 IN NUMBER
35357 --Distribution Link Type
35358 , p_source_60 IN VARCHAR2
35359 --Override Accounted Amount Indicator
35360 , p_source_64 IN VARCHAR2
35361 , p_source_64_meaning IN VARCHAR2
35362 --Payment Supplier Identifier
35363 , p_source_65 IN NUMBER
35364 --Payment Supplier Site Identifier
35365 , p_source_66 IN NUMBER
35366 --Third Party Type
35367 , p_source_67 IN VARCHAR2
35368 --Payment Distribution Reversed Identifier
35369 , p_source_68 IN NUMBER
35370 --Invoice Distribution Tax Line Identifier
35371 , p_source_69 IN NUMBER
35372 --Invoice Distribution Summary Tax Line Identifier
35373 , p_source_70 IN NUMBER
35374 --Payment Type
35375 , p_source_71 IN VARCHAR2
35376 , p_source_71_meaning IN VARCHAR2
35377 --Business Flow Invoice Distribution Type
35378 , p_source_73 IN VARCHAR2
35379 --Business Flow Invoice Entity Code
35380 , p_source_74 IN VARCHAR2
35381 --Business Flow Invoice Distribution Identifier
35382 , p_source_75 IN NUMBER
35383 --Business Flow Invoice Identifier
35384 , p_source_76 IN NUMBER
35385 --Invoice Distribution Tax Distribution Identifier from Tax
35386 , p_source_77 IN NUMBER
35387 --Payment Exchange Date
35388 , p_source_121 IN DATE
35389 --Payment Exchange Rate
35390 , p_source_122 IN NUMBER
35391 --Payment Exchange Rate Type
35392 , p_source_123 IN VARCHAR2
35393 )
35394 IS
35395
35396 l_component_type VARCHAR2(80);
35397 l_component_code VARCHAR2(30);
35398 l_component_type_code VARCHAR2(1);
35399 l_component_appl_id INTEGER;
35400 l_amb_context_code VARCHAR2(30);
35401 l_entity_code VARCHAR2(30);
35402 l_event_class_code VARCHAR2(30);
35403 l_ae_header_id NUMBER;
35404 l_event_type_code VARCHAR2(30);
35405 l_line_definition_code VARCHAR2(30);
35406 l_line_definition_owner_code VARCHAR2(1);
35407 --
35408 -- adr variables
35409 l_segment VARCHAR2(30);
35410 l_ccid NUMBER;
35411 l_adr_transaction_coa_id NUMBER;
35412 l_adr_accounting_coa_id NUMBER;
35413 l_adr_flexfield_segment_code VARCHAR2(30);
35414 l_adr_flex_value_set_id NUMBER;
35415 l_adr_value_type_code VARCHAR2(30);
35416 l_adr_value_combination_id NUMBER;
35417 l_adr_value_segment_code VARCHAR2(30);
35418
35419 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35420 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35421 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35422 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35423
35424 -- 4262811 Variables ------------------------------------------------------------------------------------------
35425 l_entered_amt_idx NUMBER;
35426 l_accted_amt_idx NUMBER;
35427 l_acc_rev_flag VARCHAR2(1);
35428 l_accrual_line_num NUMBER;
35429 l_tmp_amt NUMBER;
35430 l_acc_rev_natural_side_code VARCHAR2(1);
35431
35432 l_num_entries NUMBER;
35433 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35434 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35435 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35436 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35437 l_recog_line_1 NUMBER;
35438 l_recog_line_2 NUMBER;
35439
35440 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35441 l_bflow_applied_to_amt NUMBER; -- 5132302
35442 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35443
35444 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35445
35446 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35447 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35448
35449 ---------------------------------------------------------------------------------------------------------------
35450
35451
35452 --
35453 -- bulk performance
35454 --
35455 l_balance_type_code VARCHAR2(1);
35456 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35457 l_log_module VARCHAR2(240);
35458
35459 --
35460 -- Upgrade strategy
35461 --
35462 l_actual_upg_option VARCHAR2(1);
35463 l_enc_upg_option VARCHAR2(1);
35464
35465 --
35466 BEGIN
35467 --
35468 IF g_log_enabled THEN
35469 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
35470 END IF;
35471 --
35472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35476 ,p_level => C_LEVEL_PROCEDURE
35473
35474 trace
35475 (p_msg => 'BEGIN of AcctLineType_79'
35477 ,p_module => l_log_module);
35478
35479 END IF;
35480 --
35481 l_component_type := 'AMB_JLT';
35482 l_component_code := 'AP_DISCOUNT_CASH_REF';
35483 l_component_type_code := 'S';
35484 l_component_appl_id := 200;
35485 l_amb_context_code := 'DEFAULT';
35486 l_entity_code := 'AP_PAYMENTS';
35487 l_event_class_code := 'REFUNDS';
35488 l_event_type_code := 'REFUNDS_ALL';
35489 l_line_definition_owner_code := 'S';
35490 l_line_definition_code := 'CASH_REFUNDS_ALL';
35491 --
35492 l_balance_type_code := 'A';
35493 l_segment := NULL;
35494 l_ccid := NULL;
35495 l_adr_transaction_coa_id := NULL;
35496 l_adr_accounting_coa_id := NULL;
35497 l_adr_flexfield_segment_code := NULL;
35498 l_adr_flex_value_set_id := NULL;
35499 l_adr_value_type_code := NULL;
35500 l_adr_value_combination_id := NULL;
35501 l_adr_value_segment_code := NULL;
35502
35503 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35504 l_bflow_class_code := ''; -- 4219869 Business Flow
35505 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35506 l_budgetary_control_flag := 'N';
35507
35508 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35509 l_bflow_applied_to_amt := NULL; -- 5132302
35510 l_entered_amt_idx := NULL; -- 4262811
35511 l_accted_amt_idx := NULL; -- 4262811
35512 l_acc_rev_flag := NULL; -- 4262811
35513 l_accrual_line_num := NULL; -- 4262811
35514 l_tmp_amt := NULL; -- 4262811
35515 --
35516
35517 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35518 l_balance_type_code <> 'B' THEN
35519 IF NVL(p_source_50,'
35520 ') <> 'CLEAR_CLEAR' AND
35521 NVL(p_source_51,'
35522 ') = 'DISCOUNT' AND
35523 NVL(p_source_71,'
35524 ') = 'R'
35525 THEN
35526
35527 --
35528 XLA_AE_LINES_PKG.SetNewLine;
35529
35530 p_balance_type_code := l_balance_type_code;
35531 -- set the flag so later we will know whether the gain loss line needs to be created
35532
35533 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35534 p_actual_flag :='A';
35535 END IF;
35536
35537 --
35538 -- bulk performance
35539 --
35540 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35541 p_header_num => 0); -- 4262811
35542 --
35543 -- set accounting line options
35544 --
35545 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35546 p_natural_side_code => 'C'
35547 , p_gain_or_loss_flag => 'N'
35548 , p_gl_transfer_mode_code => 'S'
35549 , p_acct_entry_type_code => 'A'
35550 , p_switch_side_flag => 'Y'
35551 , p_merge_duplicate_code => 'A'
35552 );
35553 --
35554 l_acc_rev_natural_side_code := 'D'; -- 4262811
35555 --
35556 --
35557 -- set accounting line type info
35558 --
35559 xla_ae_lines_pkg.SetAcctLineType
35560 (p_component_type => l_component_type
35561 ,p_event_type_code => l_event_type_code
35562 ,p_line_definition_owner_code => l_line_definition_owner_code
35563 ,p_line_definition_code => l_line_definition_code
35564 ,p_accounting_line_code => l_component_code
35565 ,p_accounting_line_type_code => l_component_type_code
35566 ,p_accounting_line_appl_id => l_component_appl_id
35567 ,p_amb_context_code => l_amb_context_code
35568 ,p_entity_code => l_entity_code
35569 ,p_event_class_code => l_event_class_code);
35570 --
35571 -- set accounting class
35572 --
35573 xla_ae_lines_pkg.SetAcctClass(
35574 p_accounting_class_code => 'DISCOUNT'
35575 , p_ae_header_id => l_ae_header_id
35576 );
35577
35578 --
35579 -- set rounding class
35580 --
35581 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35582 'DISCOUNT';
35583
35584 --
35585 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35586 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35587 --
35588 -- bulk performance
35589 --
35590 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35591
35592 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35593 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35594
35595 -- 4955764
35596 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35597 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35598
35599 -- 4458381 Public Sector Enh
35600
35601 --
35602 -- set accounting attributes for the line type
35603 --
35607 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35604 l_entered_amt_idx := 9;
35605 l_accted_amt_idx := 14;
35606 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35608 l_rec_acct_attrs.array_char_value(1) := p_source_52;
35609 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35610 l_rec_acct_attrs.array_num_value(2) := p_source_54;
35611 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35612 l_rec_acct_attrs.array_char_value(3) := p_source_73;
35613 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35614 l_rec_acct_attrs.array_char_value(4) := p_source_74;
35615 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35616 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
35617 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35618 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
35619 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35620 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
35621 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35622 l_rec_acct_attrs.array_char_value(8) := p_source_60;
35623 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35624 l_rec_acct_attrs.array_num_value(9) := p_source_53;
35625 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35626 l_rec_acct_attrs.array_char_value(10) := p_source_12;
35627 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35628 l_rec_acct_attrs.array_date_value(11) := p_source_121;
35629 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35630 l_rec_acct_attrs.array_num_value(12) := p_source_122;
35631 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35632 l_rec_acct_attrs.array_char_value(13) := p_source_123;
35633 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35634 l_rec_acct_attrs.array_num_value(14) := p_source_21;
35635 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35636 l_rec_acct_attrs.array_char_value(15) := p_source_64;
35637 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35638 l_rec_acct_attrs.array_num_value(16) := p_source_65;
35639 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35640 l_rec_acct_attrs.array_num_value(17) := p_source_66;
35641 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35642 l_rec_acct_attrs.array_char_value(18) := p_source_67;
35643 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35644 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
35645 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35646 l_rec_acct_attrs.array_char_value(20) := p_source_60;
35647 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35648 l_rec_acct_attrs.array_num_value(21) := p_source_69;
35649 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35650 l_rec_acct_attrs.array_num_value(22) := p_source_77;
35651 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35652 l_rec_acct_attrs.array_num_value(23) := p_source_70;
35653
35654 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35655 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35656
35657 ---------------------------------------------------------------------------------------------------------------
35658 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35659 ---------------------------------------------------------------------------------------------------------------
35660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35661
35662 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35663 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35664
35665 IF xla_accounting_cache_pkg.GetValueChar
35666 (p_source_code => 'LEDGER_CATEGORY_CODE'
35667 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35668 AND l_bflow_method_code = 'PRIOR_ENTRY'
35669 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35670 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35671 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35672 )
35673 THEN
35674 xla_ae_lines_pkg.BflowUpgEntry
35675 (p_business_method_code => l_bflow_method_code
35676 ,p_business_class_code => l_bflow_class_code
35677 ,p_balance_type => l_balance_type_code);
35678 ELSE
35679 NULL;
35680 -- No business flow processing for business flow method of NONE.
35681 END IF;
35682
35683 --
35684 -- call analytical criteria
35685 --
35686
35687 --
35688 -- call description
35689 --
35690 -- No description or it is inherited.
35691 --
35692 -- call ADRs
35693 -- Bug 4922099
35694 --
35695 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35696 (NVL(l_actual_upg_option, 'N') = 'O') OR
35697 (NVL(l_enc_upg_option, 'N') = 'O')
35698 )
35699 THEN
35700 NULL;
35701 --
35702 --
35703
35704 l_ccid := AcctDerRule_23(
35705 p_application_id => p_application_id
35709 , p_source_15_meaning => p_source_15_meaning
35706 , p_ae_header_id => l_ae_header_id
35707 , p_source_14 => p_source_14
35708 , p_source_15 => p_source_15
35710 , p_source_16 => p_source_16
35711 , p_source_16_meaning => p_source_16_meaning
35712 , p_source_29 => p_source_29
35713 , p_source_32 => p_source_32
35714 , p_source_32_meaning => p_source_32_meaning
35715 , p_source_39 => p_source_39
35716 , p_source_40 => p_source_40
35717 , p_source_41 => p_source_41
35718 , x_transaction_coa_id => l_adr_transaction_coa_id
35719 , x_accounting_coa_id => l_adr_accounting_coa_id
35720 , x_value_type_code => l_adr_value_type_code
35721 , p_side => 'NA'
35722 );
35723
35724 xla_ae_lines_pkg.set_ccid(
35725 p_code_combination_id => l_ccid
35726 , p_value_type_code => l_adr_value_type_code
35727 , p_transaction_coa_id => l_adr_transaction_coa_id
35728 , p_accounting_coa_id => l_adr_accounting_coa_id
35729 , p_adr_code => 'AP_DISCOUNT'
35730 , p_adr_type_code => 'S'
35731 , p_component_type => l_component_type
35732 , p_component_code => l_component_code
35733 , p_component_type_code => l_component_type_code
35734 , p_component_appl_id => l_component_appl_id
35735 , p_amb_context_code => l_amb_context_code
35736 , p_side => 'NA'
35737 );
35738
35739
35740 l_segment := AcctDerRule_15(
35741 p_application_id => p_application_id
35742 , p_ae_header_id => l_ae_header_id
35743 , p_source_15 => p_source_15
35744 , p_source_15_meaning => p_source_15_meaning
35745 , p_source_16 => p_source_16
35746 , p_source_16_meaning => p_source_16_meaning
35747 , p_source_29 => p_source_29
35748 , x_transaction_coa_id => l_adr_transaction_coa_id
35749 , x_accounting_coa_id => l_adr_accounting_coa_id
35750 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35751 , x_flex_value_set_id => l_adr_flex_value_set_id
35752 , x_value_type_code => l_adr_value_type_code
35753 , x_value_combination_id => l_adr_value_combination_id
35754 , x_value_segment_code => l_adr_value_segment_code
35755 , p_side => 'NA'
35756 , p_override_seg_flag => 'Y'
35757 );
35758
35759 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35760
35761 xla_ae_lines_pkg.set_segment(
35762 p_to_segment_code => 'GL_BALANCING'
35763 , p_segment_value => l_segment
35764 , p_from_segment_code => l_adr_value_segment_code
35765 , p_from_combination_id => l_adr_value_combination_id
35766 , p_value_type_code => l_adr_value_type_code
35767 , p_transaction_coa_id => l_adr_transaction_coa_id
35768 , p_accounting_coa_id => l_adr_accounting_coa_id
35769 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35770 , p_flex_value_set_id => l_adr_flex_value_set_id
35771 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
35772 , p_adr_type_code => 'S'
35773 , p_component_type => l_component_type
35774 , p_component_code => l_component_code
35775 , p_component_type_code => l_component_type_code
35776 , p_component_appl_id => l_component_appl_id
35777 , p_amb_context_code => l_amb_context_code
35778 , p_entity_code => 'AP_PAYMENTS'
35779 , p_event_class_code => 'REFUNDS'
35780 , p_side => 'NA'
35781 );
35782
35783 END IF;
35784
35785 l_segment := AcctDerRule_4(
35786 p_application_id => p_application_id
35787 , p_ae_header_id => l_ae_header_id
35788 , p_source_14 => p_source_14
35789 , p_source_15 => p_source_15
35790 , p_source_15_meaning => p_source_15_meaning
35791 , p_source_16 => p_source_16
35792 , p_source_16_meaning => p_source_16_meaning
35793 , x_transaction_coa_id => l_adr_transaction_coa_id
35794 , x_accounting_coa_id => l_adr_accounting_coa_id
35795 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35796 , x_flex_value_set_id => l_adr_flex_value_set_id
35797 , x_value_type_code => l_adr_value_type_code
35798 , x_value_combination_id => l_adr_value_combination_id
35799 , x_value_segment_code => l_adr_value_segment_code
35800 , p_side => 'NA'
35801 , p_override_seg_flag => 'Y'
35802 );
35803
35804 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35805
35806 xla_ae_lines_pkg.set_segment(
35807 p_to_segment_code => 'GL_ACCOUNT'
35808 , p_segment_value => l_segment
35809 , p_from_segment_code => l_adr_value_segment_code
35810 , p_from_combination_id => l_adr_value_combination_id
35811 , p_value_type_code => l_adr_value_type_code
35812 , p_transaction_coa_id => l_adr_transaction_coa_id
35813 , p_accounting_coa_id => l_adr_accounting_coa_id
35814 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35815 , p_flex_value_set_id => l_adr_flex_value_set_id
35819 , p_component_code => l_component_code
35816 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
35817 , p_adr_type_code => 'S'
35818 , p_component_type => l_component_type
35820 , p_component_type_code => l_component_type_code
35821 , p_component_appl_id => l_component_appl_id
35822 , p_amb_context_code => l_amb_context_code
35823 , p_entity_code => 'AP_PAYMENTS'
35824 , p_event_class_code => 'REFUNDS'
35825 , p_side => 'NA'
35826 );
35827
35828 END IF;
35829
35830 --
35831 --
35832 END IF;
35833 --
35834 -- Bug 4922099
35835 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35836 (NVL(l_enc_upg_option, 'N') = 'O')
35837 ) AND
35838 (l_bflow_method_code = 'PRIOR_ENTRY')
35839 )
35840 THEN
35841 IF
35842 --
35843 1 = 2
35844 --
35845 THEN
35846 xla_accounting_err_pkg.build_message
35847 (p_appli_s_name => 'XLA'
35848 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35849 ,p_token_1 => 'LINE_NUMBER'
35850 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35851 ,p_token_2 => 'LINE_TYPE_NAME'
35852 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35853 l_component_type
35854 ,l_component_code
35855 ,l_component_type_code
35856 ,l_component_appl_id
35857 ,l_amb_context_code
35858 ,l_entity_code
35859 ,l_event_class_code
35860 )
35861 ,p_token_3 => 'OWNER'
35862 ,p_value_3 => xla_lookups_pkg.get_meaning(
35863 p_lookup_type => 'XLA_OWNER_TYPE'
35864 ,p_lookup_code => l_component_type_code
35865 )
35866 ,p_token_4 => 'PRODUCT_NAME'
35867 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35868 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35869 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35870 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35871 ,p_ae_header_id => NULL
35872 );
35873
35874 IF (C_LEVEL_ERROR>= g_log_level) THEN
35875 trace
35876 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35877 ,p_level => C_LEVEL_ERROR
35878 ,p_module => l_log_module);
35879 END IF;
35880 END IF;
35881 END IF;
35882 --
35883 --
35884 ------------------------------------------------------------------------------------------------
35885 -- 4219869 Business Flow
35886 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35887 -- Prior Entry. Currently, the following code is always generated.
35888 ------------------------------------------------------------------------------------------------
35889 XLA_AE_LINES_PKG.ValidateCurrentLine;
35890
35891 ------------------------------------------------------------------------------------
35892 -- 4219869 Business Flow
35893 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35894 ------------------------------------------------------------------------------------
35895 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35896
35897 ----------------------------------------------------------------------------------
35898 -- 4219869 Business Flow
35899 -- Update journal entry status -- Need to generate this within IF <condition>
35900 ----------------------------------------------------------------------------------
35901 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35902 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35903 ,p_balance_type_code => l_balance_type_code
35904 );
35905
35906 -------------------------------------------------------------------------------------------
35907 -- 4262811 - Generate the Accrual Reversal lines
35908 -------------------------------------------------------------------------------------------
35909 BEGIN
35910 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35911 (g_array_event(p_event_id).array_value_num('header_index'));
35915 EXCEPTION
35912 IF l_acc_rev_flag IS NULL THEN
35913 l_acc_rev_flag := 'N';
35914 END IF;
35916 WHEN OTHERS THEN
35917 l_acc_rev_flag := 'N';
35918 END;
35919 --
35920 IF (l_acc_rev_flag = 'Y') THEN
35921
35922 -- 4645092 ------------------------------------------------------------------------------
35923 -- To allow MPA report to determine if it should generate report process
35924 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35925 ------------------------------------------------------------------------------------------
35926
35927 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35928 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35929 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35930 -- call ADRs
35931 -- Bug 4922099
35932 --
35933 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35934 (NVL(l_actual_upg_option, 'N') = 'O') OR
35935 (NVL(l_enc_upg_option, 'N') = 'O')
35936 )
35937 THEN
35938 NULL;
35939 --
35940 --
35941
35942 l_ccid := AcctDerRule_23(
35943 p_application_id => p_application_id
35944 , p_ae_header_id => l_ae_header_id
35945 , p_source_14 => p_source_14
35946 , p_source_15 => p_source_15
35947 , p_source_15_meaning => p_source_15_meaning
35948 , p_source_16 => p_source_16
35949 , p_source_16_meaning => p_source_16_meaning
35950 , p_source_29 => p_source_29
35951 , p_source_32 => p_source_32
35952 , p_source_32_meaning => p_source_32_meaning
35953 , p_source_39 => p_source_39
35954 , p_source_40 => p_source_40
35955 , p_source_41 => p_source_41
35956 , x_transaction_coa_id => l_adr_transaction_coa_id
35957 , x_accounting_coa_id => l_adr_accounting_coa_id
35958 , x_value_type_code => l_adr_value_type_code
35959 , p_side => 'NA'
35960 );
35961
35962 xla_ae_lines_pkg.set_ccid(
35963 p_code_combination_id => l_ccid
35964 , p_value_type_code => l_adr_value_type_code
35965 , p_transaction_coa_id => l_adr_transaction_coa_id
35966 , p_accounting_coa_id => l_adr_accounting_coa_id
35967 , p_adr_code => 'AP_DISCOUNT'
35968 , p_adr_type_code => 'S'
35969 , p_component_type => l_component_type
35970 , p_component_code => l_component_code
35971 , p_component_type_code => l_component_type_code
35972 , p_component_appl_id => l_component_appl_id
35973 , p_amb_context_code => l_amb_context_code
35974 , p_side => 'NA'
35975 );
35976
35977
35978 l_segment := AcctDerRule_15(
35979 p_application_id => p_application_id
35980 , p_ae_header_id => l_ae_header_id
35981 , p_source_15 => p_source_15
35982 , p_source_15_meaning => p_source_15_meaning
35983 , p_source_16 => p_source_16
35984 , p_source_16_meaning => p_source_16_meaning
35985 , p_source_29 => p_source_29
35986 , x_transaction_coa_id => l_adr_transaction_coa_id
35987 , x_accounting_coa_id => l_adr_accounting_coa_id
35988 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35989 , x_flex_value_set_id => l_adr_flex_value_set_id
35990 , x_value_type_code => l_adr_value_type_code
35991 , x_value_combination_id => l_adr_value_combination_id
35992 , x_value_segment_code => l_adr_value_segment_code
35993 , p_side => 'NA'
35994 , p_override_seg_flag => 'Y'
35995 );
35996
35997 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35998
35999 xla_ae_lines_pkg.set_segment(
36000 p_to_segment_code => 'GL_BALANCING'
36001 , p_segment_value => l_segment
36002 , p_from_segment_code => l_adr_value_segment_code
36003 , p_from_combination_id => l_adr_value_combination_id
36004 , p_value_type_code => l_adr_value_type_code
36005 , p_transaction_coa_id => l_adr_transaction_coa_id
36006 , p_accounting_coa_id => l_adr_accounting_coa_id
36007 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36008 , p_flex_value_set_id => l_adr_flex_value_set_id
36009 , p_adr_code => 'AP_DISCOUNT_BAL_ACCT_SEG'
36010 , p_adr_type_code => 'S'
36011 , p_component_type => l_component_type
36012 , p_component_code => l_component_code
36013 , p_component_type_code => l_component_type_code
36014 , p_component_appl_id => l_component_appl_id
36015 , p_amb_context_code => l_amb_context_code
36016 , p_entity_code => 'AP_PAYMENTS'
36017 , p_event_class_code => 'REFUNDS'
36018 , p_side => 'NA'
36019 );
36020
36021 END IF;
36022
36023 l_segment := AcctDerRule_4(
36024 p_application_id => p_application_id
36025 , p_ae_header_id => l_ae_header_id
36026 , p_source_14 => p_source_14
36027 , p_source_15 => p_source_15
36028 , p_source_15_meaning => p_source_15_meaning
36029 , p_source_16 => p_source_16
36030 , p_source_16_meaning => p_source_16_meaning
36034 , x_flex_value_set_id => l_adr_flex_value_set_id
36031 , x_transaction_coa_id => l_adr_transaction_coa_id
36032 , x_accounting_coa_id => l_adr_accounting_coa_id
36033 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36035 , x_value_type_code => l_adr_value_type_code
36036 , x_value_combination_id => l_adr_value_combination_id
36037 , x_value_segment_code => l_adr_value_segment_code
36038 , p_side => 'NA'
36039 , p_override_seg_flag => 'Y'
36040 );
36041
36042 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36043
36044 xla_ae_lines_pkg.set_segment(
36045 p_to_segment_code => 'GL_ACCOUNT'
36046 , p_segment_value => l_segment
36047 , p_from_segment_code => l_adr_value_segment_code
36048 , p_from_combination_id => l_adr_value_combination_id
36049 , p_value_type_code => l_adr_value_type_code
36050 , p_transaction_coa_id => l_adr_transaction_coa_id
36051 , p_accounting_coa_id => l_adr_accounting_coa_id
36052 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36053 , p_flex_value_set_id => l_adr_flex_value_set_id
36054 , p_adr_code => 'AP_DISCOUNT_NAT_ACCT_SEG'
36055 , p_adr_type_code => 'S'
36056 , p_component_type => l_component_type
36057 , p_component_code => l_component_code
36058 , p_component_type_code => l_component_type_code
36059 , p_component_appl_id => l_component_appl_id
36060 , p_amb_context_code => l_amb_context_code
36061 , p_entity_code => 'AP_PAYMENTS'
36062 , p_event_class_code => 'REFUNDS'
36063 , p_side => 'NA'
36064 );
36065
36066 END IF;
36067
36068 --
36069 --
36070 END IF;
36071
36072 --
36073 -- Update the line information that should be overwritten
36074 --
36075 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36076 p_header_num => 1);
36077 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36078
36079 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36080
36081 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36082 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36083 END IF;
36084
36085 --
36086 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36087 --
36088 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36089 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36090 ELSE
36091 ---------------------------------------------------------------------------------------------------
36092 -- 4262811a Switch Sign
36093 ---------------------------------------------------------------------------------------------------
36094 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36095 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36096 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36097 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36098 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36099 -- 5132302
36100 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36101 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36102
36103 END IF;
36104
36105 -- 4955764
36106 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36107 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36108
36109
36110 XLA_AE_LINES_PKG.ValidateCurrentLine;
36111 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36112
36113 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36114 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36115 ,p_balance_type_code => l_balance_type_code);
36116
36117 END IF;
36118
36119 -----------------------------------------------------------------------------------------
36120 -- 4262811 Multiperiod Accounting
36121 -----------------------------------------------------------------------------------------
36122 -- No MPA option is assigned.
36123
36124
36125 END IF;
36126 END IF;
36127 --
36128
36129 --
36130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36131 trace
36132 (p_msg => 'END of AcctLineType_79'
36133 ,p_level => C_LEVEL_PROCEDURE
36134 ,p_module => l_log_module);
36135 END IF;
36136 --
36137 EXCEPTION
36138 WHEN xla_exceptions_pkg.application_exception THEN
36139 RAISE;
36140 WHEN OTHERS THEN
36141 xla_exceptions_pkg.raise_message
36145
36142 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_79');
36143 END AcctLineType_79;
36144 --
36146 ---------------------------------------
36147 --
36148 -- PRIVATE FUNCTION
36149 -- AcctLineType_80
36150 --
36151 ---------------------------------------
36152 PROCEDURE AcctLineType_80 (
36153 p_application_id IN NUMBER
36154 ,p_event_id IN NUMBER
36155 ,p_calculate_acctd_flag IN VARCHAR2
36156 ,p_calculate_g_l_flag IN VARCHAR2
36157 ,p_actual_flag IN OUT VARCHAR2
36158 ,p_balance_type_code OUT VARCHAR2
36159 ,p_gain_or_loss_ref OUT VARCHAR2
36160
36161 --Payment Currency Code
36162 , p_source_12 IN VARCHAR2
36163 --Automatic Offsets Value
36164 , p_source_16 IN VARCHAR2
36165 , p_source_16_meaning IN VARCHAR2
36166 --Purchase Order Rate Variance Gain Account
36167 , p_source_17 IN NUMBER
36168 --Destination Type of the PO Distribution
36169 , p_source_19 IN VARCHAR2
36170 , p_source_19_meaning IN VARCHAR2
36171 --Purchase Order Rate Variance Loss Account
36172 , p_source_20 IN NUMBER
36173 --Payment Distribution (Payment Rate) Ledger Amount
36174 , p_source_21 IN NUMBER
36175 --Payment Distribution (Cleared Rate) Ledger Amount
36176 , p_source_22 IN NUMBER
36177 --Invoice Distribution Account
36178 , p_source_29 IN NUMBER
36179 --Automatic Offsets Flag
36180 , p_source_42 IN VARCHAR2
36181 , p_source_42_meaning IN VARCHAR2
36182 --When to Account for Payment Option
36183 , p_source_50 IN VARCHAR2
36184 --Payment Distribution Type
36185 , p_source_51 IN VARCHAR2
36186 , p_source_51_meaning IN VARCHAR2
36187 --Accounting Reversal Indicator
36188 , p_source_52 IN VARCHAR2
36189 --Payment Distribution Amount
36190 , p_source_53 IN NUMBER
36191 --Business Flow Accounts Payable Application Identifier
36192 , p_source_54 IN NUMBER
36193 --Business Flow Payment Distribution Type
36194 , p_source_55 IN VARCHAR2
36195 --Business Flow Payment Entity Code
36196 , p_source_56 IN VARCHAR2
36197 --Business Flow Payment Distribution Identifier
36198 , p_source_57 IN NUMBER
36199 --Business Flow Payment Identifier
36200 , p_source_58 IN NUMBER
36201 --Payment Distribution Identifier
36202 , p_source_59 IN NUMBER
36203 --Distribution Link Type
36204 , p_source_60 IN VARCHAR2
36205 --Override Accounted Amount Indicator
36206 , p_source_64 IN VARCHAR2
36207 , p_source_64_meaning IN VARCHAR2
36208 --Payment Supplier Identifier
36209 , p_source_65 IN NUMBER
36210 --Payment Supplier Site Identifier
36211 , p_source_66 IN NUMBER
36212 --Third Party Type
36213 , p_source_67 IN VARCHAR2
36214 --Payment Distribution Reversed Identifier
36215 , p_source_68 IN NUMBER
36216 --Invoice Distribution Tax Line Identifier
36217 , p_source_69 IN NUMBER
36218 --Invoice Distribution Summary Tax Line Identifier
36219 , p_source_70 IN NUMBER
36220 --Accrue on Receipt Option
36221 , p_source_111 IN VARCHAR2
36222 , p_source_111_meaning IN VARCHAR2
36223 --Cleared Exchange Date
36224 , p_source_114 IN DATE
36225 --Cleared Exchange Rate
36226 , p_source_115 IN NUMBER
36227 --Cleared Exchange Rate Type
36228 , p_source_116 IN VARCHAR2
36229 )
36230 IS
36231
36232 l_component_type VARCHAR2(80);
36233 l_component_code VARCHAR2(30);
36234 l_component_type_code VARCHAR2(1);
36235 l_component_appl_id INTEGER;
36236 l_amb_context_code VARCHAR2(30);
36237 l_entity_code VARCHAR2(30);
36238 l_event_class_code VARCHAR2(30);
36239 l_ae_header_id NUMBER;
36240 l_event_type_code VARCHAR2(30);
36241 l_line_definition_code VARCHAR2(30);
36242 l_line_definition_owner_code VARCHAR2(1);
36243 --
36244 -- adr variables
36245 l_segment VARCHAR2(30);
36246 l_ccid NUMBER;
36247 l_adr_transaction_coa_id NUMBER;
36248 l_adr_accounting_coa_id NUMBER;
36249 l_adr_flexfield_segment_code VARCHAR2(30);
36250 l_adr_flex_value_set_id NUMBER;
36251 l_adr_value_type_code VARCHAR2(30);
36252 l_adr_value_combination_id NUMBER;
36253 l_adr_value_segment_code VARCHAR2(30);
36254
36255 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36256 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36257 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36258 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36259
36260 -- 4262811 Variables ------------------------------------------------------------------------------------------
36261 l_entered_amt_idx NUMBER;
36262 l_accted_amt_idx NUMBER;
36263 l_acc_rev_flag VARCHAR2(1);
36264 l_accrual_line_num NUMBER;
36265 l_tmp_amt NUMBER;
36266 l_acc_rev_natural_side_code VARCHAR2(1);
36267
36268 l_num_entries NUMBER;
36269 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36270 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36274 l_recog_line_2 NUMBER;
36271 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36272 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36273 l_recog_line_1 NUMBER;
36275
36276 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36277 l_bflow_applied_to_amt NUMBER; -- 5132302
36278 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36279
36280 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36281
36282 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36283 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36284
36285 ---------------------------------------------------------------------------------------------------------------
36286
36287
36288 --
36289 -- bulk performance
36290 --
36291 l_balance_type_code VARCHAR2(1);
36292 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36293 l_log_module VARCHAR2(240);
36294
36295 --
36296 -- Upgrade strategy
36297 --
36298 l_actual_upg_option VARCHAR2(1);
36299 l_enc_upg_option VARCHAR2(1);
36300
36301 --
36302 BEGIN
36303 --
36304 IF g_log_enabled THEN
36305 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
36306 END IF;
36307 --
36308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36309
36310 trace
36311 (p_msg => 'BEGIN of AcctLineType_80'
36312 ,p_level => C_LEVEL_PROCEDURE
36313 ,p_module => l_log_module);
36314
36315 END IF;
36316 --
36317 l_component_type := 'AMB_JLT';
36318 l_component_code := 'AP_EX_RATE_VAR_CLEAR';
36319 l_component_type_code := 'S';
36320 l_component_appl_id := 200;
36321 l_amb_context_code := 'DEFAULT';
36322 l_entity_code := 'AP_PAYMENTS';
36323 l_event_class_code := 'RECONCILED PAYMENTS';
36324 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
36325 l_line_definition_owner_code := 'S';
36326 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
36327 --
36328 l_balance_type_code := 'A';
36329 l_segment := NULL;
36330 l_ccid := NULL;
36331 l_adr_transaction_coa_id := NULL;
36332 l_adr_accounting_coa_id := NULL;
36333 l_adr_flexfield_segment_code := NULL;
36334 l_adr_flex_value_set_id := NULL;
36335 l_adr_value_type_code := NULL;
36336 l_adr_value_combination_id := NULL;
36337 l_adr_value_segment_code := NULL;
36338
36339 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36340 l_bflow_class_code := ''; -- 4219869 Business Flow
36341 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36342 l_budgetary_control_flag := 'N';
36343
36344 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36345 l_bflow_applied_to_amt := NULL; -- 5132302
36346 l_entered_amt_idx := NULL; -- 4262811
36347 l_accted_amt_idx := NULL; -- 4262811
36348 l_acc_rev_flag := NULL; -- 4262811
36349 l_accrual_line_num := NULL; -- 4262811
36350 l_tmp_amt := NULL; -- 4262811
36351 --
36352 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
36353 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
36354 return;
36355 END IF;
36356
36357 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36358 l_balance_type_code <> 'B' THEN
36359 IF NVL(p_source_50,'
36360 ') = 'CLEAR_CLEAR' AND
36361 NVL(p_source_51,'
36362 ') = 'EXCHANGE RATE VARIANCE' AND
36363 NVL(p_source_111,'
36364 ') = 'Y'
36365 THEN
36366
36367 --
36368 XLA_AE_LINES_PKG.SetNewLine;
36369
36370 p_balance_type_code := l_balance_type_code;
36371 -- set the flag so later we will know whether the gain loss line needs to be created
36372
36373 IF(l_balance_type_code = 'A' ) THEN
36374 p_actual_flag :='G';
36375 END IF;
36376
36377 --
36378 -- bulk performance
36379 --
36380 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36381 p_header_num => 0); -- 4262811
36382 --
36383 -- set accounting line options
36384 --
36385 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36386 p_natural_side_code => 'D'
36387 , p_gain_or_loss_flag => 'Y'
36388 , p_gl_transfer_mode_code => 'S'
36389 , p_acct_entry_type_code => 'A'
36390 , p_switch_side_flag => 'Y'
36391 , p_merge_duplicate_code => 'A'
36392 );
36393 --
36394 l_acc_rev_natural_side_code := 'C'; -- 4262811
36395 --
36396 --
36397 -- set accounting line type info
36398 --
36399 xla_ae_lines_pkg.SetAcctLineType
36400 (p_component_type => l_component_type
36401 ,p_event_type_code => l_event_type_code
36402 ,p_line_definition_owner_code => l_line_definition_owner_code
36403 ,p_line_definition_code => l_line_definition_code
36407 ,p_amb_context_code => l_amb_context_code
36404 ,p_accounting_line_code => l_component_code
36405 ,p_accounting_line_type_code => l_component_type_code
36406 ,p_accounting_line_appl_id => l_component_appl_id
36408 ,p_entity_code => l_entity_code
36409 ,p_event_class_code => l_event_class_code);
36410 --
36411 -- set accounting class
36412 --
36413 xla_ae_lines_pkg.SetAcctClass(
36414 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
36415 , p_ae_header_id => l_ae_header_id
36416 );
36417
36418 --
36419 -- set rounding class
36420 --
36421 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36422 'EXCHANGE_RATE_VARIANCE';
36423
36424 --
36425 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36426 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36427 --
36428 -- bulk performance
36429 --
36430 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36431
36432 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36433 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36434
36435 -- 4955764
36436 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36437 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36438
36439 -- 4458381 Public Sector Enh
36440
36441 --
36442 -- set accounting attributes for the line type
36443 --
36444 l_entered_amt_idx := 10;
36445 l_accted_amt_idx := 15;
36446 l_bflow_applied_to_amt_idx := 2; -- 5132302
36447 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36448 l_rec_acct_attrs.array_char_value(1) := p_source_52;
36449 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36450 l_rec_acct_attrs.array_num_value(2) := p_source_53;
36451 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36452 l_rec_acct_attrs.array_num_value(3) := p_source_54;
36453 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36454 l_rec_acct_attrs.array_char_value(4) := p_source_55;
36455 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36456 l_rec_acct_attrs.array_char_value(5) := p_source_56;
36457 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36458 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
36459 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36460 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
36461 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36462 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
36463 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36464 l_rec_acct_attrs.array_char_value(9) := p_source_60;
36465 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36466 l_rec_acct_attrs.array_num_value(10) := p_source_53;
36467 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36468 l_rec_acct_attrs.array_char_value(11) := p_source_12;
36469 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36470 l_rec_acct_attrs.array_date_value(12) := p_source_114;
36471 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36472 l_rec_acct_attrs.array_num_value(13) := p_source_115;
36473 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36474 l_rec_acct_attrs.array_char_value(14) := p_source_116;
36475 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36476 l_rec_acct_attrs.array_num_value(15) := p_source_22;
36477 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36478 l_rec_acct_attrs.array_char_value(16) := p_source_64;
36479 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36480 l_rec_acct_attrs.array_num_value(17) := p_source_65;
36481 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36482 l_rec_acct_attrs.array_num_value(18) := p_source_66;
36483 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36484 l_rec_acct_attrs.array_char_value(19) := p_source_67;
36485 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36486 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
36487 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36488 l_rec_acct_attrs.array_char_value(21) := p_source_60;
36489 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36490 l_rec_acct_attrs.array_num_value(22) := p_source_69;
36491 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36492 l_rec_acct_attrs.array_num_value(23) := p_source_69;
36493 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36494 l_rec_acct_attrs.array_num_value(24) := p_source_70;
36495
36496 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36497 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36498
36499 ---------------------------------------------------------------------------------------------------------------
36500 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36504 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36501 ---------------------------------------------------------------------------------------------------------------
36502 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36503
36505 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36506
36507 IF xla_accounting_cache_pkg.GetValueChar
36508 (p_source_code => 'LEDGER_CATEGORY_CODE'
36509 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36510 AND l_bflow_method_code = 'PRIOR_ENTRY'
36511 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36512 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36513 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36514 )
36515 THEN
36516 xla_ae_lines_pkg.BflowUpgEntry
36517 (p_business_method_code => l_bflow_method_code
36518 ,p_business_class_code => l_bflow_class_code
36519 ,p_balance_type => l_balance_type_code);
36520 ELSE
36521 NULL;
36522 -- No business flow processing for business flow method of NONE.
36523 END IF;
36524
36525 --
36526 -- call analytical criteria
36527 --
36528
36529 --
36530 -- call description
36531 --
36532 -- No description or it is inherited.
36533 --
36534 -- call ADRs
36535 -- Bug 4922099
36536 --
36537 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36538 (NVL(l_actual_upg_option, 'N') = 'O') OR
36539 (NVL(l_enc_upg_option, 'N') = 'O')
36540 )
36541 THEN
36542 NULL;
36543 --
36544 --
36545
36546 l_ccid := AcctDerRule_24(
36547 p_application_id => p_application_id
36548 , p_ae_header_id => l_ae_header_id
36549 , p_source_16 => p_source_16
36550 , p_source_16_meaning => p_source_16_meaning
36551 , p_source_17 => p_source_17
36552 , p_source_19 => p_source_19
36553 , p_source_19_meaning => p_source_19_meaning
36554 , p_source_20 => p_source_20
36555 , p_source_21 => p_source_21
36556 , p_source_22 => p_source_22
36557 , p_source_29 => p_source_29
36558 , p_source_42 => p_source_42
36559 , p_source_42_meaning => p_source_42_meaning
36560 , x_transaction_coa_id => l_adr_transaction_coa_id
36561 , x_accounting_coa_id => l_adr_accounting_coa_id
36562 , x_value_type_code => l_adr_value_type_code
36563 , p_side => 'NA'
36564 );
36565
36566 xla_ae_lines_pkg.set_ccid(
36567 p_code_combination_id => l_ccid
36568 , p_value_type_code => l_adr_value_type_code
36569 , p_transaction_coa_id => l_adr_transaction_coa_id
36570 , p_accounting_coa_id => l_adr_accounting_coa_id
36571 , p_adr_code => 'AP_ERV_TAXERV_CASH'
36572 , p_adr_type_code => 'S'
36573 , p_component_type => l_component_type
36574 , p_component_code => l_component_code
36575 , p_component_type_code => l_component_type_code
36576 , p_component_appl_id => l_component_appl_id
36577 , p_amb_context_code => l_amb_context_code
36578 , p_side => 'NA'
36579 );
36580
36581
36582 l_segment := AcctDerRule_6(
36583 p_application_id => p_application_id
36584 , p_ae_header_id => l_ae_header_id
36585 , p_source_16 => p_source_16
36586 , p_source_16_meaning => p_source_16_meaning
36587 , p_source_17 => p_source_17
36588 , p_source_19 => p_source_19
36589 , p_source_19_meaning => p_source_19_meaning
36590 , p_source_20 => p_source_20
36591 , p_source_21 => p_source_21
36592 , p_source_22 => p_source_22
36593 , x_transaction_coa_id => l_adr_transaction_coa_id
36594 , x_accounting_coa_id => l_adr_accounting_coa_id
36595 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36596 , x_flex_value_set_id => l_adr_flex_value_set_id
36597 , x_value_type_code => l_adr_value_type_code
36598 , x_value_combination_id => l_adr_value_combination_id
36599 , x_value_segment_code => l_adr_value_segment_code
36600 , p_side => 'NA'
36601 , p_override_seg_flag => 'Y'
36602 );
36603
36604 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36605
36606 xla_ae_lines_pkg.set_segment(
36607 p_to_segment_code => 'GL_ACCOUNT'
36608 , p_segment_value => l_segment
36609 , p_from_segment_code => l_adr_value_segment_code
36610 , p_from_combination_id => l_adr_value_combination_id
36611 , p_value_type_code => l_adr_value_type_code
36612 , p_transaction_coa_id => l_adr_transaction_coa_id
36613 , p_accounting_coa_id => l_adr_accounting_coa_id
36614 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36615 , p_flex_value_set_id => l_adr_flex_value_set_id
36616 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
36617 , p_adr_type_code => 'S'
36618 , p_component_type => l_component_type
36619 , p_component_code => l_component_code
36620 , p_component_type_code => l_component_type_code
36624 , p_event_class_code => 'RECONCILED PAYMENTS'
36621 , p_component_appl_id => l_component_appl_id
36622 , p_amb_context_code => l_amb_context_code
36623 , p_entity_code => 'AP_PAYMENTS'
36625 , p_side => 'NA'
36626 );
36627
36628 END IF;
36629
36630 l_segment := AcctDerRule_17(
36631 p_application_id => p_application_id
36632 , p_ae_header_id => l_ae_header_id
36633 , p_source_16 => p_source_16
36634 , p_source_16_meaning => p_source_16_meaning
36635 , p_source_19 => p_source_19
36636 , p_source_19_meaning => p_source_19_meaning
36637 , p_source_29 => p_source_29
36638 , x_transaction_coa_id => l_adr_transaction_coa_id
36639 , x_accounting_coa_id => l_adr_accounting_coa_id
36640 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36641 , x_flex_value_set_id => l_adr_flex_value_set_id
36642 , x_value_type_code => l_adr_value_type_code
36643 , x_value_combination_id => l_adr_value_combination_id
36644 , x_value_segment_code => l_adr_value_segment_code
36645 , p_side => 'NA'
36646 , p_override_seg_flag => 'Y'
36647 );
36648
36649 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36650
36651 xla_ae_lines_pkg.set_segment(
36652 p_to_segment_code => 'GL_BALANCING'
36653 , p_segment_value => l_segment
36654 , p_from_segment_code => l_adr_value_segment_code
36655 , p_from_combination_id => l_adr_value_combination_id
36656 , p_value_type_code => l_adr_value_type_code
36657 , p_transaction_coa_id => l_adr_transaction_coa_id
36658 , p_accounting_coa_id => l_adr_accounting_coa_id
36659 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36660 , p_flex_value_set_id => l_adr_flex_value_set_id
36661 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
36662 , p_adr_type_code => 'S'
36663 , p_component_type => l_component_type
36664 , p_component_code => l_component_code
36665 , p_component_type_code => l_component_type_code
36666 , p_component_appl_id => l_component_appl_id
36667 , p_amb_context_code => l_amb_context_code
36668 , p_entity_code => 'AP_PAYMENTS'
36669 , p_event_class_code => 'RECONCILED PAYMENTS'
36670 , p_side => 'NA'
36671 );
36672
36673 END IF;
36674
36675 --
36676 --
36677 END IF;
36678 --
36679 -- Bug 4922099
36680 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36681 (NVL(l_enc_upg_option, 'N') = 'O')
36682 ) AND
36683 (l_bflow_method_code = 'PRIOR_ENTRY')
36684 )
36685 THEN
36686 IF
36687 --
36688 1 = 2
36689 --
36690 THEN
36691 xla_accounting_err_pkg.build_message
36692 (p_appli_s_name => 'XLA'
36693 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36694 ,p_token_1 => 'LINE_NUMBER'
36695 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36696 ,p_token_2 => 'LINE_TYPE_NAME'
36697 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36698 l_component_type
36699 ,l_component_code
36700 ,l_component_type_code
36701 ,l_component_appl_id
36702 ,l_amb_context_code
36703 ,l_entity_code
36704 ,l_event_class_code
36705 )
36706 ,p_token_3 => 'OWNER'
36707 ,p_value_3 => xla_lookups_pkg.get_meaning(
36708 p_lookup_type => 'XLA_OWNER_TYPE'
36709 ,p_lookup_code => l_component_type_code
36710 )
36711 ,p_token_4 => 'PRODUCT_NAME'
36712 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36713 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36714 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36715 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36716 ,p_ae_header_id => NULL
36717 );
36718
36722 ,p_level => C_LEVEL_ERROR
36719 IF (C_LEVEL_ERROR>= g_log_level) THEN
36720 trace
36721 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36723 ,p_module => l_log_module);
36724 END IF;
36725 END IF;
36726 END IF;
36727 --
36728 --
36729 ------------------------------------------------------------------------------------------------
36730 -- 4219869 Business Flow
36731 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36732 -- Prior Entry. Currently, the following code is always generated.
36733 ------------------------------------------------------------------------------------------------
36734 XLA_AE_LINES_PKG.ValidateCurrentLine;
36735
36736 ------------------------------------------------------------------------------------
36737 -- 4219869 Business Flow
36738 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36739 ------------------------------------------------------------------------------------
36740 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36741
36742 ----------------------------------------------------------------------------------
36743 -- 4219869 Business Flow
36744 -- Update journal entry status -- Need to generate this within IF <condition>
36745 ----------------------------------------------------------------------------------
36746 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36747 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36748 ,p_balance_type_code => l_balance_type_code
36749 );
36750
36751 -------------------------------------------------------------------------------------------
36752 -- 4262811 - Generate the Accrual Reversal lines
36753 -------------------------------------------------------------------------------------------
36754 BEGIN
36755 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36756 (g_array_event(p_event_id).array_value_num('header_index'));
36757 IF l_acc_rev_flag IS NULL THEN
36758 l_acc_rev_flag := 'N';
36759 END IF;
36760 EXCEPTION
36761 WHEN OTHERS THEN
36762 l_acc_rev_flag := 'N';
36763 END;
36764 --
36765 IF (l_acc_rev_flag = 'Y') THEN
36766
36767 -- 4645092 ------------------------------------------------------------------------------
36768 -- To allow MPA report to determine if it should generate report process
36769 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36770 ------------------------------------------------------------------------------------------
36771
36772 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36773 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36774 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36775 -- call ADRs
36776 -- Bug 4922099
36777 --
36778 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36779 (NVL(l_actual_upg_option, 'N') = 'O') OR
36780 (NVL(l_enc_upg_option, 'N') = 'O')
36781 )
36782 THEN
36783 NULL;
36784 --
36785 --
36786
36787 l_ccid := AcctDerRule_24(
36788 p_application_id => p_application_id
36789 , p_ae_header_id => l_ae_header_id
36790 , p_source_16 => p_source_16
36791 , p_source_16_meaning => p_source_16_meaning
36792 , p_source_17 => p_source_17
36793 , p_source_19 => p_source_19
36794 , p_source_19_meaning => p_source_19_meaning
36795 , p_source_20 => p_source_20
36796 , p_source_21 => p_source_21
36797 , p_source_22 => p_source_22
36798 , p_source_29 => p_source_29
36799 , p_source_42 => p_source_42
36800 , p_source_42_meaning => p_source_42_meaning
36801 , x_transaction_coa_id => l_adr_transaction_coa_id
36802 , x_accounting_coa_id => l_adr_accounting_coa_id
36803 , x_value_type_code => l_adr_value_type_code
36804 , p_side => 'NA'
36805 );
36806
36807 xla_ae_lines_pkg.set_ccid(
36808 p_code_combination_id => l_ccid
36809 , p_value_type_code => l_adr_value_type_code
36810 , p_transaction_coa_id => l_adr_transaction_coa_id
36811 , p_accounting_coa_id => l_adr_accounting_coa_id
36812 , p_adr_code => 'AP_ERV_TAXERV_CASH'
36813 , p_adr_type_code => 'S'
36814 , p_component_type => l_component_type
36815 , p_component_code => l_component_code
36816 , p_component_type_code => l_component_type_code
36817 , p_component_appl_id => l_component_appl_id
36818 , p_amb_context_code => l_amb_context_code
36819 , p_side => 'NA'
36820 );
36821
36822
36823 l_segment := AcctDerRule_6(
36824 p_application_id => p_application_id
36825 , p_ae_header_id => l_ae_header_id
36826 , p_source_16 => p_source_16
36827 , p_source_16_meaning => p_source_16_meaning
36828 , p_source_17 => p_source_17
36829 , p_source_19 => p_source_19
36830 , p_source_19_meaning => p_source_19_meaning
36831 , p_source_20 => p_source_20
36832 , p_source_21 => p_source_21
36833 , p_source_22 => p_source_22
36834 , x_transaction_coa_id => l_adr_transaction_coa_id
36838 , x_value_type_code => l_adr_value_type_code
36835 , x_accounting_coa_id => l_adr_accounting_coa_id
36836 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36837 , x_flex_value_set_id => l_adr_flex_value_set_id
36839 , x_value_combination_id => l_adr_value_combination_id
36840 , x_value_segment_code => l_adr_value_segment_code
36841 , p_side => 'NA'
36842 , p_override_seg_flag => 'Y'
36843 );
36844
36845 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36846
36847 xla_ae_lines_pkg.set_segment(
36848 p_to_segment_code => 'GL_ACCOUNT'
36849 , p_segment_value => l_segment
36850 , p_from_segment_code => l_adr_value_segment_code
36851 , p_from_combination_id => l_adr_value_combination_id
36852 , p_value_type_code => l_adr_value_type_code
36853 , p_transaction_coa_id => l_adr_transaction_coa_id
36854 , p_accounting_coa_id => l_adr_accounting_coa_id
36855 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36856 , p_flex_value_set_id => l_adr_flex_value_set_id
36857 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
36858 , p_adr_type_code => 'S'
36859 , p_component_type => l_component_type
36860 , p_component_code => l_component_code
36861 , p_component_type_code => l_component_type_code
36862 , p_component_appl_id => l_component_appl_id
36863 , p_amb_context_code => l_amb_context_code
36864 , p_entity_code => 'AP_PAYMENTS'
36865 , p_event_class_code => 'RECONCILED PAYMENTS'
36866 , p_side => 'NA'
36867 );
36868
36869 END IF;
36870
36871 l_segment := AcctDerRule_17(
36872 p_application_id => p_application_id
36873 , p_ae_header_id => l_ae_header_id
36874 , p_source_16 => p_source_16
36875 , p_source_16_meaning => p_source_16_meaning
36876 , p_source_19 => p_source_19
36877 , p_source_19_meaning => p_source_19_meaning
36878 , p_source_29 => p_source_29
36879 , x_transaction_coa_id => l_adr_transaction_coa_id
36880 , x_accounting_coa_id => l_adr_accounting_coa_id
36881 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36882 , x_flex_value_set_id => l_adr_flex_value_set_id
36883 , x_value_type_code => l_adr_value_type_code
36884 , x_value_combination_id => l_adr_value_combination_id
36885 , x_value_segment_code => l_adr_value_segment_code
36886 , p_side => 'NA'
36887 , p_override_seg_flag => 'Y'
36888 );
36889
36890 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36891
36892 xla_ae_lines_pkg.set_segment(
36893 p_to_segment_code => 'GL_BALANCING'
36894 , p_segment_value => l_segment
36895 , p_from_segment_code => l_adr_value_segment_code
36896 , p_from_combination_id => l_adr_value_combination_id
36897 , p_value_type_code => l_adr_value_type_code
36898 , p_transaction_coa_id => l_adr_transaction_coa_id
36899 , p_accounting_coa_id => l_adr_accounting_coa_id
36900 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36901 , p_flex_value_set_id => l_adr_flex_value_set_id
36902 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
36903 , p_adr_type_code => 'S'
36904 , p_component_type => l_component_type
36905 , p_component_code => l_component_code
36906 , p_component_type_code => l_component_type_code
36907 , p_component_appl_id => l_component_appl_id
36908 , p_amb_context_code => l_amb_context_code
36909 , p_entity_code => 'AP_PAYMENTS'
36910 , p_event_class_code => 'RECONCILED PAYMENTS'
36911 , p_side => 'NA'
36912 );
36913
36914 END IF;
36915
36916 --
36917 --
36918 END IF;
36919
36920 --
36921 -- Update the line information that should be overwritten
36922 --
36923 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36924 p_header_num => 1);
36925 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36926
36927 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36928
36929 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36930 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36931 END IF;
36932
36933 --
36934 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36935 --
36936 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36937 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36938 ELSE
36939 ---------------------------------------------------------------------------------------------------
36940 -- 4262811a Switch Sign
36944 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36941 ---------------------------------------------------------------------------------------------------
36942 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36943 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36945 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36946 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36947 -- 5132302
36948 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36949 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36950
36951 END IF;
36952
36953 -- 4955764
36954 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36955 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36956
36957
36958 XLA_AE_LINES_PKG.ValidateCurrentLine;
36959 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36960
36961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36963 ,p_balance_type_code => l_balance_type_code);
36964
36965 END IF;
36966
36967 -----------------------------------------------------------------------------------------
36968 -- 4262811 Multiperiod Accounting
36969 -----------------------------------------------------------------------------------------
36970 -- No MPA option is assigned.
36971
36972
36973 END IF;
36974 END IF;
36975 --
36976
36977 --
36978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36979 trace
36980 (p_msg => 'END of AcctLineType_80'
36981 ,p_level => C_LEVEL_PROCEDURE
36982 ,p_module => l_log_module);
36983 END IF;
36984 --
36985 EXCEPTION
36986 WHEN xla_exceptions_pkg.application_exception THEN
36987 RAISE;
36988 WHEN OTHERS THEN
36989 xla_exceptions_pkg.raise_message
36990 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_80');
36991 END AcctLineType_80;
36992 --
36993
36994 ---------------------------------------
36995 --
36996 -- PRIVATE FUNCTION
36997 -- AcctLineType_81
36998 --
36999 ---------------------------------------
37000 PROCEDURE AcctLineType_81 (
37001 p_application_id IN NUMBER
37002 ,p_event_id IN NUMBER
37003 ,p_calculate_acctd_flag IN VARCHAR2
37004 ,p_calculate_g_l_flag IN VARCHAR2
37005 ,p_actual_flag IN OUT VARCHAR2
37006 ,p_balance_type_code OUT VARCHAR2
37007 ,p_gain_or_loss_ref OUT VARCHAR2
37008
37009 --Automatic Offsets Value
37010 , p_source_16 IN VARCHAR2
37011 , p_source_16_meaning IN VARCHAR2
37012 --Purchase Order Rate Variance Gain Account
37013 , p_source_17 IN NUMBER
37014 --Invoice Distribution Ledger Amount
37015 , p_source_18 IN NUMBER
37016 --Destination Type of the PO Distribution
37017 , p_source_19 IN VARCHAR2
37018 , p_source_19_meaning IN VARCHAR2
37019 --Purchase Order Rate Variance Loss Account
37020 , p_source_20 IN NUMBER
37021 --Invoice Distribution Account
37022 , p_source_29 IN NUMBER
37023 --Automatic Offsets Flag
37024 , p_source_42 IN VARCHAR2
37025 , p_source_42_meaning IN VARCHAR2
37026 --When to Account for Payment Option
37027 , p_source_50 IN VARCHAR2
37028 --Accounting Reversal Indicator
37029 , p_source_52 IN VARCHAR2
37030 --Business Flow Accounts Payable Application Identifier
37031 , p_source_54 IN NUMBER
37032 --Distribution Link Type
37033 , p_source_60 IN VARCHAR2
37034 --Override Accounted Amount Indicator
37035 , p_source_64 IN VARCHAR2
37036 , p_source_64_meaning IN VARCHAR2
37037 --Third Party Type
37038 , p_source_67 IN VARCHAR2
37039 --Invoice Distribution Tax Line Identifier
37040 , p_source_69 IN NUMBER
37041 --Invoice Distribution Summary Tax Line Identifier
37042 , p_source_70 IN NUMBER
37043 --Invoice Distribution Tax Distribution Identifier from Tax
37044 , p_source_77 IN NUMBER
37045 --Prepayment Distribution Type
37046 , p_source_78 IN VARCHAR2
37047 --Recipient Invoice Distribution Type
37048 , p_source_79 IN VARCHAR2
37049 , p_source_79_meaning IN VARCHAR2
37050 --Prepayment Application Distribution Identifier
37051 , p_source_82 IN NUMBER
37052 --Invoice Identifier
37053 , p_source_83 IN NUMBER
37054 --Business Flow Prepayment Invoice Distribution Type
37055 , p_source_84 IN VARCHAR2
37056 --Business Flow Prepayment Invoice Entity Code
37057 , p_source_85 IN VARCHAR2
37058 --Business Flow Prepayment Invoice Distribution Identifier
37059 , p_source_86 IN NUMBER
37060 --Business Flow Prepayment Invoice Identifier
37061 , p_source_87 IN NUMBER
37062 --Upgrade Encumbrance Credit Account Class
37063 , p_source_88 IN VARCHAR2
37064 --Payables Encumbrance Upgrade Credit Account
37065 , p_source_89 IN NUMBER
37066 --Payables Encumbrance Upgrade Credit Amount
37070 --Payables Encumbrance Upgrade Credit Base Amount
37067 , p_source_90 IN NUMBER
37068 --Invoice Currency Code
37069 , p_source_91 IN VARCHAR2
37071 , p_source_92 IN NUMBER
37072 --Upgrade Encumbrance Debit Account Class
37073 , p_source_93 IN VARCHAR2
37074 --Payables Encumbrance Upgrade Debit Account
37075 , p_source_94 IN NUMBER
37076 --Payables Encumbrance Upgrade Debit Amount
37077 , p_source_95 IN NUMBER
37078 --Payables Encumbrance Upgrade Debit Base Amount
37079 , p_source_96 IN NUMBER
37080 --Payables Encumbrance Upgrade Option
37081 , p_source_97 IN VARCHAR2
37082 --Prepayment Distribution Amount
37083 , p_source_98 IN NUMBER
37084 --Prepayment Clearing Currency Code
37085 , p_source_99 IN VARCHAR2
37086 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
37087 , p_source_100 IN NUMBER
37088 --Deferred Accounting End Date
37089 , p_source_101 IN DATE
37090 --Deferred Accounting Option
37091 , p_source_102 IN VARCHAR2
37092 --Deferred Accounting Start Date
37093 , p_source_103 IN DATE
37094 --Invoice Supplier Identifier
37095 , p_source_104 IN NUMBER
37096 --Invoice Supplier Site Identifier
37097 , p_source_105 IN NUMBER
37098 --Identifier of the Prepayment Application Reversed
37099 , p_source_106 IN NUMBER
37100 --Payables Upgrade Credit Encumbrance Type Identifier
37101 , p_source_107 IN NUMBER
37102 --Payables Upgrade Debit Encumbrance Type Identifier
37103 , p_source_108 IN NUMBER
37104 --Accrue on Receipt Option
37105 , p_source_111 IN VARCHAR2
37106 , p_source_111_meaning IN VARCHAR2
37107 --Prepayment Clearing Exchange Date
37108 , p_source_125 IN DATE
37109 --Prepayment Clearing Exchange Rate
37110 , p_source_126 IN NUMBER
37111 --Prepayment Clearing Exchange Rate Type
37112 , p_source_127 IN VARCHAR2
37113 )
37114 IS
37115
37116 l_component_type VARCHAR2(80);
37117 l_component_code VARCHAR2(30);
37118 l_component_type_code VARCHAR2(1);
37119 l_component_appl_id INTEGER;
37120 l_amb_context_code VARCHAR2(30);
37121 l_entity_code VARCHAR2(30);
37122 l_event_class_code VARCHAR2(30);
37123 l_ae_header_id NUMBER;
37124 l_event_type_code VARCHAR2(30);
37125 l_line_definition_code VARCHAR2(30);
37126 l_line_definition_owner_code VARCHAR2(1);
37127 --
37128 -- adr variables
37129 l_segment VARCHAR2(30);
37130 l_ccid NUMBER;
37131 l_adr_transaction_coa_id NUMBER;
37132 l_adr_accounting_coa_id NUMBER;
37133 l_adr_flexfield_segment_code VARCHAR2(30);
37134 l_adr_flex_value_set_id NUMBER;
37135 l_adr_value_type_code VARCHAR2(30);
37136 l_adr_value_combination_id NUMBER;
37137 l_adr_value_segment_code VARCHAR2(30);
37138
37139 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37140 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37141 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37142 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37143
37144 -- 4262811 Variables ------------------------------------------------------------------------------------------
37145 l_entered_amt_idx NUMBER;
37146 l_accted_amt_idx NUMBER;
37147 l_acc_rev_flag VARCHAR2(1);
37148 l_accrual_line_num NUMBER;
37149 l_tmp_amt NUMBER;
37150 l_acc_rev_natural_side_code VARCHAR2(1);
37151
37152 l_num_entries NUMBER;
37153 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37154 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37155 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37156 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37157 l_recog_line_1 NUMBER;
37158 l_recog_line_2 NUMBER;
37159
37160 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37161 l_bflow_applied_to_amt NUMBER; -- 5132302
37162 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37163
37164 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37165
37166 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37167 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37168
37169 ---------------------------------------------------------------------------------------------------------------
37170
37171
37172 --
37173 -- bulk performance
37174 --
37175 l_balance_type_code VARCHAR2(1);
37176 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37177 l_log_module VARCHAR2(240);
37178
37179 --
37180 -- Upgrade strategy
37181 --
37182 l_actual_upg_option VARCHAR2(1);
37183 l_enc_upg_option VARCHAR2(1);
37184
37185 --
37186 BEGIN
37187 --
37188 IF g_log_enabled THEN
37189 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37190 END IF;
37191 --
37192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37193
37194 trace
37195 (p_msg => 'BEGIN of AcctLineType_81'
37196 ,p_level => C_LEVEL_PROCEDURE
37200 --
37197 ,p_module => l_log_module);
37198
37199 END IF;
37201 l_component_type := 'AMB_JLT';
37202 l_component_code := 'AP_EX_RATE_VAR_CLR_RATE';
37203 l_component_type_code := 'S';
37204 l_component_appl_id := 200;
37205 l_amb_context_code := 'DEFAULT';
37206 l_entity_code := 'AP_INVOICES';
37207 l_event_class_code := 'PREPAYMENT APPLICATIONS';
37208 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
37209 l_line_definition_owner_code := 'S';
37210 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
37211 --
37212 l_balance_type_code := 'A';
37213 l_segment := NULL;
37214 l_ccid := NULL;
37215 l_adr_transaction_coa_id := NULL;
37216 l_adr_accounting_coa_id := NULL;
37217 l_adr_flexfield_segment_code := NULL;
37218 l_adr_flex_value_set_id := NULL;
37219 l_adr_value_type_code := NULL;
37220 l_adr_value_combination_id := NULL;
37221 l_adr_value_segment_code := NULL;
37222
37223 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37224 l_bflow_class_code := ''; -- 4219869 Business Flow
37225 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37226 l_budgetary_control_flag := 'N';
37227
37228 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37229 l_bflow_applied_to_amt := NULL; -- 5132302
37230 l_entered_amt_idx := NULL; -- 4262811
37231 l_accted_amt_idx := NULL; -- 4262811
37232 l_acc_rev_flag := NULL; -- 4262811
37233 l_accrual_line_num := NULL; -- 4262811
37234 l_tmp_amt := NULL; -- 4262811
37235 --
37236 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37237 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
37238 return;
37239 END IF;
37240
37241 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37242 l_balance_type_code <> 'B' THEN
37243 IF NVL(p_source_50,'
37244 ') = 'CLEAR_CLEAR' AND
37245 (NVL(p_source_78,'
37246 ') = 'PREPAY APPL' OR
37247 NVL(p_source_78,'
37248 ') = 'PREPAY APPL NONREC TAX' OR
37249 NVL(p_source_78,'
37250 ') = 'PREPAY APPL REC TAX') AND
37251 NVL(p_source_79,'
37252 ') = 'ERV' AND
37253 NVL(p_source_111,'
37254 ') = 'Y'
37255 THEN
37256
37257 --
37258 XLA_AE_LINES_PKG.SetNewLine;
37259
37260 p_balance_type_code := l_balance_type_code;
37261 -- set the flag so later we will know whether the gain loss line needs to be created
37262
37263 IF(l_balance_type_code = 'A' ) THEN
37264 p_actual_flag :='G';
37265 END IF;
37266
37267 --
37268 -- bulk performance
37269 --
37270 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37271 p_header_num => 0); -- 4262811
37272 --
37273 -- set accounting line options
37274 --
37275 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37276 p_natural_side_code => 'C'
37277 , p_gain_or_loss_flag => 'Y'
37278 , p_gl_transfer_mode_code => 'S'
37279 , p_acct_entry_type_code => 'A'
37280 , p_switch_side_flag => 'Y'
37281 , p_merge_duplicate_code => 'A'
37282 );
37283 --
37284 l_acc_rev_natural_side_code := 'D'; -- 4262811
37285 --
37286 --
37287 -- set accounting line type info
37288 --
37289 xla_ae_lines_pkg.SetAcctLineType
37290 (p_component_type => l_component_type
37291 ,p_event_type_code => l_event_type_code
37292 ,p_line_definition_owner_code => l_line_definition_owner_code
37293 ,p_line_definition_code => l_line_definition_code
37294 ,p_accounting_line_code => l_component_code
37295 ,p_accounting_line_type_code => l_component_type_code
37296 ,p_accounting_line_appl_id => l_component_appl_id
37297 ,p_amb_context_code => l_amb_context_code
37298 ,p_entity_code => l_entity_code
37299 ,p_event_class_code => l_event_class_code);
37300 --
37301 -- set accounting class
37302 --
37303 xla_ae_lines_pkg.SetAcctClass(
37304 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
37305 , p_ae_header_id => l_ae_header_id
37306 );
37307
37308 --
37309 -- set rounding class
37310 --
37311 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37312 'EXCHANGE_RATE_VARIANCE';
37313
37314 --
37315 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37316 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37317 --
37318 -- bulk performance
37319 --
37320 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37321
37322 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37326 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37323 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37324
37325 -- 4955764
37327 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37328
37329 -- 4458381 Public Sector Enh
37330
37331 --
37332 -- set accounting attributes for the line type
37333 --
37334 l_entered_amt_idx := 25;
37335 l_accted_amt_idx := 30;
37336 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37337 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37338 l_rec_acct_attrs.array_char_value(1) := p_source_52;
37339 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
37340 l_rec_acct_attrs.array_num_value(2) :=
37341 xla_ae_sources_pkg.GetSystemSourceNum(
37342 p_source_code => 'XLA_EVENT_APPL_ID'
37343 , p_source_type_code => 'Y'
37344 , p_source_application_id => 602
37345 );
37346 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
37347 l_rec_acct_attrs.array_char_value(3) := p_source_60;
37348 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
37349 l_rec_acct_attrs.array_char_value(4) :=
37350 xla_ae_sources_pkg.GetSystemSourceChar(
37351 p_source_code => 'XLA_ENTITY_CODE'
37352 , p_source_type_code => 'Y'
37353 , p_source_application_id => 602
37354 );
37355 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
37356 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
37357 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
37358 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
37359 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
37360 l_rec_acct_attrs.array_num_value(7) := p_source_54;
37361 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37362 l_rec_acct_attrs.array_char_value(8) := p_source_84;
37363 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37364 l_rec_acct_attrs.array_char_value(9) := p_source_85;
37365 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37366 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
37367 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37368 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
37369 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37370 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
37371 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37372 l_rec_acct_attrs.array_char_value(13) := p_source_60;
37373 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
37374 l_rec_acct_attrs.array_char_value(14) := p_source_88;
37375 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
37376 l_rec_acct_attrs.array_num_value(15) := p_source_89;
37377 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
37378 l_rec_acct_attrs.array_num_value(16) := p_source_90;
37379 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
37380 l_rec_acct_attrs.array_char_value(17) := p_source_91;
37381 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
37382 l_rec_acct_attrs.array_num_value(18) := p_source_92;
37383 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
37384 l_rec_acct_attrs.array_char_value(19) := p_source_93;
37385 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
37386 l_rec_acct_attrs.array_num_value(20) := p_source_94;
37387 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
37388 l_rec_acct_attrs.array_num_value(21) := p_source_95;
37389 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
37390 l_rec_acct_attrs.array_char_value(22) := p_source_91;
37391 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
37392 l_rec_acct_attrs.array_num_value(23) := p_source_96;
37393 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
37394 l_rec_acct_attrs.array_char_value(24) := p_source_97;
37395 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
37396 l_rec_acct_attrs.array_num_value(25) := p_source_98;
37397 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
37398 l_rec_acct_attrs.array_char_value(26) := p_source_99;
37399 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
37400 l_rec_acct_attrs.array_date_value(27) := p_source_125;
37401 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
37402 l_rec_acct_attrs.array_num_value(28) := p_source_126;
37403 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
37404 l_rec_acct_attrs.array_char_value(29) := p_source_127;
37405 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
37406 l_rec_acct_attrs.array_num_value(30) := p_source_100;
37407 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
37408 l_rec_acct_attrs.array_date_value(31) := p_source_101;
37409 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
37410 l_rec_acct_attrs.array_char_value(32) := p_source_102;
37411 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
37412 l_rec_acct_attrs.array_date_value(33) := p_source_103;
37413 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
37414 l_rec_acct_attrs.array_char_value(34) := p_source_64;
37418 l_rec_acct_attrs.array_num_value(36) := p_source_105;
37415 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
37416 l_rec_acct_attrs.array_num_value(35) := p_source_104;
37417 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
37419 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
37420 l_rec_acct_attrs.array_char_value(37) := p_source_67;
37421 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
37422 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
37423 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
37424 l_rec_acct_attrs.array_char_value(39) := p_source_60;
37425 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
37426 l_rec_acct_attrs.array_num_value(40) := p_source_69;
37427 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
37428 l_rec_acct_attrs.array_num_value(41) := p_source_77;
37429 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
37430 l_rec_acct_attrs.array_num_value(42) := p_source_70;
37431 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
37432 l_rec_acct_attrs.array_num_value(43) := p_source_107;
37433 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
37434 l_rec_acct_attrs.array_num_value(44) := p_source_108;
37435
37436 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37437 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37438
37439 ---------------------------------------------------------------------------------------------------------------
37440 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37441 ---------------------------------------------------------------------------------------------------------------
37442 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37443
37444 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37445 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37446
37447 IF xla_accounting_cache_pkg.GetValueChar
37448 (p_source_code => 'LEDGER_CATEGORY_CODE'
37449 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37450 AND l_bflow_method_code = 'PRIOR_ENTRY'
37451 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37452 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37453 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37454 )
37455 THEN
37456 xla_ae_lines_pkg.BflowUpgEntry
37457 (p_business_method_code => l_bflow_method_code
37458 ,p_business_class_code => l_bflow_class_code
37459 ,p_balance_type => l_balance_type_code);
37460 ELSE
37461 NULL;
37462 -- No business flow processing for business flow method of NONE.
37463 END IF;
37464
37465 --
37466 -- call analytical criteria
37467 --
37468
37469 --
37470 -- call description
37471 --
37472 -- No description or it is inherited.
37473 --
37474 -- call ADRs
37475 -- Bug 4922099
37476 --
37477 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37478 (NVL(l_actual_upg_option, 'N') = 'O') OR
37479 (NVL(l_enc_upg_option, 'N') = 'O')
37480 )
37481 THEN
37482 NULL;
37483 --
37484 --
37485
37486 l_ccid := AcctDerRule_25(
37487 p_application_id => p_application_id
37488 , p_ae_header_id => l_ae_header_id
37489 , p_source_16 => p_source_16
37490 , p_source_16_meaning => p_source_16_meaning
37491 , p_source_17 => p_source_17
37492 , p_source_18 => p_source_18
37493 , p_source_19 => p_source_19
37494 , p_source_19_meaning => p_source_19_meaning
37495 , p_source_20 => p_source_20
37496 , p_source_29 => p_source_29
37497 , p_source_42 => p_source_42
37498 , p_source_42_meaning => p_source_42_meaning
37499 , x_transaction_coa_id => l_adr_transaction_coa_id
37500 , x_accounting_coa_id => l_adr_accounting_coa_id
37501 , x_value_type_code => l_adr_value_type_code
37502 , p_side => 'NA'
37503 );
37504
37505 xla_ae_lines_pkg.set_ccid(
37506 p_code_combination_id => l_ccid
37507 , p_value_type_code => l_adr_value_type_code
37508 , p_transaction_coa_id => l_adr_transaction_coa_id
37509 , p_accounting_coa_id => l_adr_accounting_coa_id
37510 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
37511 , p_adr_type_code => 'S'
37512 , p_component_type => l_component_type
37513 , p_component_code => l_component_code
37514 , p_component_type_code => l_component_type_code
37515 , p_component_appl_id => l_component_appl_id
37516 , p_amb_context_code => l_amb_context_code
37517 , p_side => 'NA'
37518 );
37519
37520
37521 l_segment := AcctDerRule_5(
37522 p_application_id => p_application_id
37523 , p_ae_header_id => l_ae_header_id
37524 , p_source_16 => p_source_16
37525 , p_source_16_meaning => p_source_16_meaning
37526 , p_source_17 => p_source_17
37527 , p_source_18 => p_source_18
37531 , x_transaction_coa_id => l_adr_transaction_coa_id
37528 , p_source_19 => p_source_19
37529 , p_source_19_meaning => p_source_19_meaning
37530 , p_source_20 => p_source_20
37532 , x_accounting_coa_id => l_adr_accounting_coa_id
37533 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37534 , x_flex_value_set_id => l_adr_flex_value_set_id
37535 , x_value_type_code => l_adr_value_type_code
37536 , x_value_combination_id => l_adr_value_combination_id
37537 , x_value_segment_code => l_adr_value_segment_code
37538 , p_side => 'NA'
37539 , p_override_seg_flag => 'Y'
37540 );
37541
37542 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37543
37544 xla_ae_lines_pkg.set_segment(
37545 p_to_segment_code => 'GL_ACCOUNT'
37546 , p_segment_value => l_segment
37547 , p_from_segment_code => l_adr_value_segment_code
37548 , p_from_combination_id => l_adr_value_combination_id
37549 , p_value_type_code => l_adr_value_type_code
37550 , p_transaction_coa_id => l_adr_transaction_coa_id
37551 , p_accounting_coa_id => l_adr_accounting_coa_id
37552 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37553 , p_flex_value_set_id => l_adr_flex_value_set_id
37554 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
37555 , p_adr_type_code => 'S'
37556 , p_component_type => l_component_type
37557 , p_component_code => l_component_code
37558 , p_component_type_code => l_component_type_code
37559 , p_component_appl_id => l_component_appl_id
37560 , p_amb_context_code => l_amb_context_code
37561 , p_entity_code => 'AP_INVOICES'
37562 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
37563 , p_side => 'NA'
37564 );
37565
37566 END IF;
37567
37568 l_segment := AcctDerRule_17(
37569 p_application_id => p_application_id
37570 , p_ae_header_id => l_ae_header_id
37571 , p_source_16 => p_source_16
37572 , p_source_16_meaning => p_source_16_meaning
37573 , p_source_19 => p_source_19
37574 , p_source_19_meaning => p_source_19_meaning
37575 , p_source_29 => p_source_29
37576 , x_transaction_coa_id => l_adr_transaction_coa_id
37577 , x_accounting_coa_id => l_adr_accounting_coa_id
37578 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37579 , x_flex_value_set_id => l_adr_flex_value_set_id
37580 , x_value_type_code => l_adr_value_type_code
37581 , x_value_combination_id => l_adr_value_combination_id
37582 , x_value_segment_code => l_adr_value_segment_code
37583 , p_side => 'NA'
37584 , p_override_seg_flag => 'Y'
37585 );
37586
37587 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37588
37589 xla_ae_lines_pkg.set_segment(
37590 p_to_segment_code => 'GL_BALANCING'
37591 , p_segment_value => l_segment
37592 , p_from_segment_code => l_adr_value_segment_code
37593 , p_from_combination_id => l_adr_value_combination_id
37594 , p_value_type_code => l_adr_value_type_code
37595 , p_transaction_coa_id => l_adr_transaction_coa_id
37596 , p_accounting_coa_id => l_adr_accounting_coa_id
37597 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37598 , p_flex_value_set_id => l_adr_flex_value_set_id
37599 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
37600 , p_adr_type_code => 'S'
37601 , p_component_type => l_component_type
37602 , p_component_code => l_component_code
37603 , p_component_type_code => l_component_type_code
37604 , p_component_appl_id => l_component_appl_id
37605 , p_amb_context_code => l_amb_context_code
37606 , p_entity_code => 'AP_INVOICES'
37607 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
37608 , p_side => 'NA'
37609 );
37610
37611 END IF;
37612
37613 --
37614 --
37615 END IF;
37616 --
37617 -- Bug 4922099
37618 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37619 (NVL(l_enc_upg_option, 'N') = 'O')
37620 ) AND
37621 (l_bflow_method_code = 'PRIOR_ENTRY')
37622 )
37623 THEN
37624 IF
37625 --
37626 1 = 2
37627 --
37628 THEN
37629 xla_accounting_err_pkg.build_message
37630 (p_appli_s_name => 'XLA'
37631 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37632 ,p_token_1 => 'LINE_NUMBER'
37633 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37634 ,p_token_2 => 'LINE_TYPE_NAME'
37635 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37636 l_component_type
37637 ,l_component_code
37641 ,l_entity_code
37638 ,l_component_type_code
37639 ,l_component_appl_id
37640 ,l_amb_context_code
37642 ,l_event_class_code
37643 )
37644 ,p_token_3 => 'OWNER'
37645 ,p_value_3 => xla_lookups_pkg.get_meaning(
37646 p_lookup_type => 'XLA_OWNER_TYPE'
37647 ,p_lookup_code => l_component_type_code
37648 )
37649 ,p_token_4 => 'PRODUCT_NAME'
37650 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37651 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37652 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37653 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37654 ,p_ae_header_id => NULL
37655 );
37656
37657 IF (C_LEVEL_ERROR>= g_log_level) THEN
37658 trace
37659 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37660 ,p_level => C_LEVEL_ERROR
37661 ,p_module => l_log_module);
37662 END IF;
37663 END IF;
37664 END IF;
37665 --
37666 --
37667 ------------------------------------------------------------------------------------------------
37668 -- 4219869 Business Flow
37669 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37670 -- Prior Entry. Currently, the following code is always generated.
37671 ------------------------------------------------------------------------------------------------
37672 XLA_AE_LINES_PKG.ValidateCurrentLine;
37673
37674 ------------------------------------------------------------------------------------
37675 -- 4219869 Business Flow
37676 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37677 ------------------------------------------------------------------------------------
37678 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37679
37680 ----------------------------------------------------------------------------------
37681 -- 4219869 Business Flow
37682 -- Update journal entry status -- Need to generate this within IF <condition>
37683 ----------------------------------------------------------------------------------
37684 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37685 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37686 ,p_balance_type_code => l_balance_type_code
37687 );
37688
37689 -------------------------------------------------------------------------------------------
37690 -- 4262811 - Generate the Accrual Reversal lines
37691 -------------------------------------------------------------------------------------------
37692 BEGIN
37693 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37694 (g_array_event(p_event_id).array_value_num('header_index'));
37695 IF l_acc_rev_flag IS NULL THEN
37696 l_acc_rev_flag := 'N';
37697 END IF;
37698 EXCEPTION
37699 WHEN OTHERS THEN
37700 l_acc_rev_flag := 'N';
37701 END;
37702 --
37703 IF (l_acc_rev_flag = 'Y') THEN
37704
37705 -- 4645092 ------------------------------------------------------------------------------
37706 -- To allow MPA report to determine if it should generate report process
37707 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37708 ------------------------------------------------------------------------------------------
37709
37710 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37711 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37712 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37713 -- call ADRs
37714 -- Bug 4922099
37715 --
37716 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37717 (NVL(l_actual_upg_option, 'N') = 'O') OR
37718 (NVL(l_enc_upg_option, 'N') = 'O')
37719 )
37720 THEN
37721 NULL;
37722 --
37723 --
37724
37725 l_ccid := AcctDerRule_25(
37726 p_application_id => p_application_id
37727 , p_ae_header_id => l_ae_header_id
37728 , p_source_16 => p_source_16
37729 , p_source_16_meaning => p_source_16_meaning
37730 , p_source_17 => p_source_17
37731 , p_source_18 => p_source_18
37732 , p_source_19 => p_source_19
37733 , p_source_19_meaning => p_source_19_meaning
37734 , p_source_20 => p_source_20
37735 , p_source_29 => p_source_29
37736 , p_source_42 => p_source_42
37737 , p_source_42_meaning => p_source_42_meaning
37741 , p_side => 'NA'
37738 , x_transaction_coa_id => l_adr_transaction_coa_id
37739 , x_accounting_coa_id => l_adr_accounting_coa_id
37740 , x_value_type_code => l_adr_value_type_code
37742 );
37743
37744 xla_ae_lines_pkg.set_ccid(
37745 p_code_combination_id => l_ccid
37746 , p_value_type_code => l_adr_value_type_code
37747 , p_transaction_coa_id => l_adr_transaction_coa_id
37748 , p_accounting_coa_id => l_adr_accounting_coa_id
37749 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
37750 , p_adr_type_code => 'S'
37751 , p_component_type => l_component_type
37752 , p_component_code => l_component_code
37753 , p_component_type_code => l_component_type_code
37754 , p_component_appl_id => l_component_appl_id
37755 , p_amb_context_code => l_amb_context_code
37756 , p_side => 'NA'
37757 );
37758
37759
37760 l_segment := AcctDerRule_5(
37761 p_application_id => p_application_id
37762 , p_ae_header_id => l_ae_header_id
37763 , p_source_16 => p_source_16
37764 , p_source_16_meaning => p_source_16_meaning
37765 , p_source_17 => p_source_17
37766 , p_source_18 => p_source_18
37767 , p_source_19 => p_source_19
37768 , p_source_19_meaning => p_source_19_meaning
37769 , p_source_20 => p_source_20
37770 , x_transaction_coa_id => l_adr_transaction_coa_id
37771 , x_accounting_coa_id => l_adr_accounting_coa_id
37772 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37773 , x_flex_value_set_id => l_adr_flex_value_set_id
37774 , x_value_type_code => l_adr_value_type_code
37775 , x_value_combination_id => l_adr_value_combination_id
37776 , x_value_segment_code => l_adr_value_segment_code
37777 , p_side => 'NA'
37778 , p_override_seg_flag => 'Y'
37779 );
37780
37781 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37782
37783 xla_ae_lines_pkg.set_segment(
37784 p_to_segment_code => 'GL_ACCOUNT'
37785 , p_segment_value => l_segment
37786 , p_from_segment_code => l_adr_value_segment_code
37787 , p_from_combination_id => l_adr_value_combination_id
37788 , p_value_type_code => l_adr_value_type_code
37789 , p_transaction_coa_id => l_adr_transaction_coa_id
37790 , p_accounting_coa_id => l_adr_accounting_coa_id
37791 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37792 , p_flex_value_set_id => l_adr_flex_value_set_id
37793 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
37794 , p_adr_type_code => 'S'
37795 , p_component_type => l_component_type
37796 , p_component_code => l_component_code
37797 , p_component_type_code => l_component_type_code
37798 , p_component_appl_id => l_component_appl_id
37799 , p_amb_context_code => l_amb_context_code
37800 , p_entity_code => 'AP_INVOICES'
37801 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
37802 , p_side => 'NA'
37803 );
37804
37805 END IF;
37806
37807 l_segment := AcctDerRule_17(
37808 p_application_id => p_application_id
37809 , p_ae_header_id => l_ae_header_id
37810 , p_source_16 => p_source_16
37811 , p_source_16_meaning => p_source_16_meaning
37812 , p_source_19 => p_source_19
37813 , p_source_19_meaning => p_source_19_meaning
37814 , p_source_29 => p_source_29
37815 , x_transaction_coa_id => l_adr_transaction_coa_id
37816 , x_accounting_coa_id => l_adr_accounting_coa_id
37817 , x_flexfield_segment_code => l_adr_flexfield_segment_code
37818 , x_flex_value_set_id => l_adr_flex_value_set_id
37819 , x_value_type_code => l_adr_value_type_code
37820 , x_value_combination_id => l_adr_value_combination_id
37821 , x_value_segment_code => l_adr_value_segment_code
37822 , p_side => 'NA'
37823 , p_override_seg_flag => 'Y'
37824 );
37825
37826 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
37827
37828 xla_ae_lines_pkg.set_segment(
37829 p_to_segment_code => 'GL_BALANCING'
37830 , p_segment_value => l_segment
37831 , p_from_segment_code => l_adr_value_segment_code
37832 , p_from_combination_id => l_adr_value_combination_id
37833 , p_value_type_code => l_adr_value_type_code
37834 , p_transaction_coa_id => l_adr_transaction_coa_id
37835 , p_accounting_coa_id => l_adr_accounting_coa_id
37836 , p_flexfield_segment_code => l_adr_flexfield_segment_code
37837 , p_flex_value_set_id => l_adr_flex_value_set_id
37838 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
37839 , p_adr_type_code => 'S'
37840 , p_component_type => l_component_type
37841 , p_component_code => l_component_code
37842 , p_component_type_code => l_component_type_code
37843 , p_component_appl_id => l_component_appl_id
37844 , p_amb_context_code => l_amb_context_code
37848 );
37845 , p_entity_code => 'AP_INVOICES'
37846 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
37847 , p_side => 'NA'
37849
37850 END IF;
37851
37852 --
37853 --
37854 END IF;
37855
37856 --
37857 -- Update the line information that should be overwritten
37858 --
37859 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37860 p_header_num => 1);
37861 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37862
37863 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37864
37865 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37866 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37867 END IF;
37868
37869 --
37870 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37871 --
37872 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37873 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37874 ELSE
37875 ---------------------------------------------------------------------------------------------------
37876 -- 4262811a Switch Sign
37877 ---------------------------------------------------------------------------------------------------
37878 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37880 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37881 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37882 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37883 -- 5132302
37884 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37885 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37886
37887 END IF;
37888
37889 -- 4955764
37890 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37891 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37892
37893
37894 XLA_AE_LINES_PKG.ValidateCurrentLine;
37895 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37896
37897 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37898 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37899 ,p_balance_type_code => l_balance_type_code);
37900
37901 END IF;
37902
37903 -----------------------------------------------------------------------------------------
37904 -- 4262811 Multiperiod Accounting
37905 -----------------------------------------------------------------------------------------
37906 -- No MPA option is assigned.
37907
37908
37909 END IF;
37910 END IF;
37911 --
37912
37913 --
37914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37915 trace
37916 (p_msg => 'END of AcctLineType_81'
37917 ,p_level => C_LEVEL_PROCEDURE
37918 ,p_module => l_log_module);
37919 END IF;
37920 --
37921 EXCEPTION
37922 WHEN xla_exceptions_pkg.application_exception THEN
37923 RAISE;
37924 WHEN OTHERS THEN
37925 xla_exceptions_pkg.raise_message
37926 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_81');
37927 END AcctLineType_81;
37928 --
37929
37930 ---------------------------------------
37931 --
37932 -- PRIVATE FUNCTION
37933 -- AcctLineType_82
37934 --
37935 ---------------------------------------
37936 PROCEDURE AcctLineType_82 (
37937 p_application_id IN NUMBER
37938 ,p_event_id IN NUMBER
37939 ,p_calculate_acctd_flag IN VARCHAR2
37940 ,p_calculate_g_l_flag IN VARCHAR2
37941 ,p_actual_flag IN OUT VARCHAR2
37942 ,p_balance_type_code OUT VARCHAR2
37943 ,p_gain_or_loss_ref OUT VARCHAR2
37944
37945 --Payment Currency Code
37946 , p_source_12 IN VARCHAR2
37947 --Automatic Offsets Value
37948 , p_source_16 IN VARCHAR2
37949 , p_source_16_meaning IN VARCHAR2
37950 --Purchase Order Rate Variance Gain Account
37951 , p_source_17 IN NUMBER
37952 --Destination Type of the PO Distribution
37953 , p_source_19 IN VARCHAR2
37954 , p_source_19_meaning IN VARCHAR2
37955 --Purchase Order Rate Variance Loss Account
37956 , p_source_20 IN NUMBER
37957 --Payment Distribution (Payment Rate) Ledger Amount
37958 , p_source_21 IN NUMBER
37959 --Payment Distribution (Cleared Rate) Ledger Amount
37960 , p_source_22 IN NUMBER
37961 --Invoice Distribution Account
37962 , p_source_29 IN NUMBER
37963 --Automatic Offsets Flag
37964 , p_source_42 IN VARCHAR2
37965 , p_source_42_meaning IN VARCHAR2
37966 --When to Account for Payment Option
37967 , p_source_50 IN VARCHAR2
37971 --Accounting Reversal Indicator
37968 --Payment Distribution Type
37969 , p_source_51 IN VARCHAR2
37970 , p_source_51_meaning IN VARCHAR2
37972 , p_source_52 IN VARCHAR2
37973 --Payment Distribution Amount
37974 , p_source_53 IN NUMBER
37975 --Business Flow Accounts Payable Application Identifier
37976 , p_source_54 IN NUMBER
37977 --Payment Distribution Identifier
37978 , p_source_59 IN NUMBER
37979 --Distribution Link Type
37980 , p_source_60 IN VARCHAR2
37981 --Override Accounted Amount Indicator
37982 , p_source_64 IN VARCHAR2
37983 , p_source_64_meaning IN VARCHAR2
37984 --Payment Supplier Identifier
37985 , p_source_65 IN NUMBER
37986 --Payment Supplier Site Identifier
37987 , p_source_66 IN NUMBER
37988 --Third Party Type
37989 , p_source_67 IN VARCHAR2
37990 --Payment Distribution Reversed Identifier
37991 , p_source_68 IN NUMBER
37992 --Invoice Distribution Tax Line Identifier
37993 , p_source_69 IN NUMBER
37994 --Invoice Distribution Summary Tax Line Identifier
37995 , p_source_70 IN NUMBER
37996 --Payment Type
37997 , p_source_71 IN VARCHAR2
37998 , p_source_71_meaning IN VARCHAR2
37999 --Invoice Distribution Amount of the Payment Distribution
38000 , p_source_72 IN NUMBER
38001 --Business Flow Invoice Distribution Type
38002 , p_source_73 IN VARCHAR2
38003 --Business Flow Invoice Entity Code
38004 , p_source_74 IN VARCHAR2
38005 --Business Flow Invoice Distribution Identifier
38006 , p_source_75 IN NUMBER
38007 --Business Flow Invoice Identifier
38008 , p_source_76 IN NUMBER
38009 --Invoice Distribution Tax Distribution Identifier from Tax
38010 , p_source_77 IN NUMBER
38011 --Accrue on Receipt Option
38012 , p_source_111 IN VARCHAR2
38013 , p_source_111_meaning IN VARCHAR2
38014 --Payment Exchange Date
38015 , p_source_121 IN DATE
38016 --Payment Exchange Rate
38017 , p_source_122 IN NUMBER
38018 --Payment Exchange Rate Type
38019 , p_source_123 IN VARCHAR2
38020 )
38021 IS
38022
38023 l_component_type VARCHAR2(80);
38024 l_component_code VARCHAR2(30);
38025 l_component_type_code VARCHAR2(1);
38026 l_component_appl_id INTEGER;
38027 l_amb_context_code VARCHAR2(30);
38028 l_entity_code VARCHAR2(30);
38029 l_event_class_code VARCHAR2(30);
38030 l_ae_header_id NUMBER;
38031 l_event_type_code VARCHAR2(30);
38032 l_line_definition_code VARCHAR2(30);
38033 l_line_definition_owner_code VARCHAR2(1);
38034 --
38035 -- adr variables
38036 l_segment VARCHAR2(30);
38037 l_ccid NUMBER;
38038 l_adr_transaction_coa_id NUMBER;
38039 l_adr_accounting_coa_id NUMBER;
38040 l_adr_flexfield_segment_code VARCHAR2(30);
38041 l_adr_flex_value_set_id NUMBER;
38042 l_adr_value_type_code VARCHAR2(30);
38043 l_adr_value_combination_id NUMBER;
38044 l_adr_value_segment_code VARCHAR2(30);
38045
38046 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38047 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38048 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38049 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38050
38051 -- 4262811 Variables ------------------------------------------------------------------------------------------
38052 l_entered_amt_idx NUMBER;
38053 l_accted_amt_idx NUMBER;
38054 l_acc_rev_flag VARCHAR2(1);
38055 l_accrual_line_num NUMBER;
38056 l_tmp_amt NUMBER;
38057 l_acc_rev_natural_side_code VARCHAR2(1);
38058
38059 l_num_entries NUMBER;
38060 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38061 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38062 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38063 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38064 l_recog_line_1 NUMBER;
38065 l_recog_line_2 NUMBER;
38066
38067 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38068 l_bflow_applied_to_amt NUMBER; -- 5132302
38069 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38070
38071 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38072
38073 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38074 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38075
38076 ---------------------------------------------------------------------------------------------------------------
38077
38078
38079 --
38080 -- bulk performance
38081 --
38082 l_balance_type_code VARCHAR2(1);
38083 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38084 l_log_module VARCHAR2(240);
38085
38086 --
38087 -- Upgrade strategy
38088 --
38089 l_actual_upg_option VARCHAR2(1);
38090 l_enc_upg_option VARCHAR2(1);
38091
38092 --
38096 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
38093 BEGIN
38094 --
38095 IF g_log_enabled THEN
38097 END IF;
38098 --
38099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38100
38101 trace
38102 (p_msg => 'BEGIN of AcctLineType_82'
38103 ,p_level => C_LEVEL_PROCEDURE
38104 ,p_module => l_log_module);
38105
38106 END IF;
38107 --
38108 l_component_type := 'AMB_JLT';
38109 l_component_code := 'AP_EX_RATE_VAR_PMT';
38110 l_component_type_code := 'S';
38111 l_component_appl_id := 200;
38112 l_amb_context_code := 'DEFAULT';
38113 l_entity_code := 'AP_PAYMENTS';
38114 l_event_class_code := 'PAYMENTS';
38115 l_event_type_code := 'PAYMENTS_ALL';
38116 l_line_definition_owner_code := 'S';
38117 l_line_definition_code := 'CASH_PAYMENTS_ALL';
38118 --
38119 l_balance_type_code := 'A';
38120 l_segment := NULL;
38121 l_ccid := NULL;
38122 l_adr_transaction_coa_id := NULL;
38123 l_adr_accounting_coa_id := NULL;
38124 l_adr_flexfield_segment_code := NULL;
38125 l_adr_flex_value_set_id := NULL;
38126 l_adr_value_type_code := NULL;
38127 l_adr_value_combination_id := NULL;
38128 l_adr_value_segment_code := NULL;
38129
38130 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38131 l_bflow_class_code := ''; -- 4219869 Business Flow
38132 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38133 l_budgetary_control_flag := 'N';
38134
38135 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38136 l_bflow_applied_to_amt := NULL; -- 5132302
38137 l_entered_amt_idx := NULL; -- 4262811
38138 l_accted_amt_idx := NULL; -- 4262811
38139 l_acc_rev_flag := NULL; -- 4262811
38140 l_accrual_line_num := NULL; -- 4262811
38141 l_tmp_amt := NULL; -- 4262811
38142 --
38143 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38144 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
38145 return;
38146 END IF;
38147
38148 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38149 l_balance_type_code <> 'B' THEN
38150 IF NVL(p_source_50,'
38151 ') <> 'CLEAR_CLEAR' AND
38152 NVL(p_source_51,'
38153 ') = 'EXCHANGE RATE VARIANCE' AND
38154 NVL(p_source_111,'
38155 ') = 'Y' AND
38156 NVL(p_source_71,'
38157 ') <> 'R'
38158 THEN
38159
38160 --
38161 XLA_AE_LINES_PKG.SetNewLine;
38162
38163 p_balance_type_code := l_balance_type_code;
38164 -- set the flag so later we will know whether the gain loss line needs to be created
38165
38166 IF(l_balance_type_code = 'A' ) THEN
38167 p_actual_flag :='G';
38168 END IF;
38169
38170 --
38171 -- bulk performance
38172 --
38173 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38174 p_header_num => 0); -- 4262811
38175 --
38176 -- set accounting line options
38177 --
38178 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38179 p_natural_side_code => 'D'
38180 , p_gain_or_loss_flag => 'Y'
38181 , p_gl_transfer_mode_code => 'S'
38182 , p_acct_entry_type_code => 'A'
38183 , p_switch_side_flag => 'Y'
38184 , p_merge_duplicate_code => 'A'
38185 );
38186 --
38187 l_acc_rev_natural_side_code := 'C'; -- 4262811
38188 --
38189 --
38190 -- set accounting line type info
38191 --
38192 xla_ae_lines_pkg.SetAcctLineType
38193 (p_component_type => l_component_type
38194 ,p_event_type_code => l_event_type_code
38195 ,p_line_definition_owner_code => l_line_definition_owner_code
38196 ,p_line_definition_code => l_line_definition_code
38197 ,p_accounting_line_code => l_component_code
38198 ,p_accounting_line_type_code => l_component_type_code
38199 ,p_accounting_line_appl_id => l_component_appl_id
38200 ,p_amb_context_code => l_amb_context_code
38201 ,p_entity_code => l_entity_code
38202 ,p_event_class_code => l_event_class_code);
38203 --
38204 -- set accounting class
38205 --
38206 xla_ae_lines_pkg.SetAcctClass(
38207 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
38208 , p_ae_header_id => l_ae_header_id
38209 );
38210
38211 --
38212 -- set rounding class
38213 --
38214 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38215 'EXCHANGE_RATE_VARIANCE';
38216
38217 --
38218 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38219 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38220 --
38221 -- bulk performance
38222 --
38223 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38224
38228 -- 4955764
38225 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38226 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38227
38229 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38230 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38231
38232 -- 4458381 Public Sector Enh
38233
38234 --
38235 -- set accounting attributes for the line type
38236 --
38237 l_entered_amt_idx := 10;
38238 l_accted_amt_idx := 15;
38239 l_bflow_applied_to_amt_idx := 2; -- 5132302
38240 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38241 l_rec_acct_attrs.array_char_value(1) := p_source_52;
38242 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
38243 l_rec_acct_attrs.array_num_value(2) := p_source_72;
38244 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
38245 l_rec_acct_attrs.array_num_value(3) := p_source_54;
38246 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38247 l_rec_acct_attrs.array_char_value(4) := p_source_73;
38248 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
38249 l_rec_acct_attrs.array_char_value(5) := p_source_74;
38250 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
38251 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
38252 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38253 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
38254 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
38255 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
38256 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
38257 l_rec_acct_attrs.array_char_value(9) := p_source_60;
38258 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
38259 l_rec_acct_attrs.array_num_value(10) := p_source_53;
38260 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
38261 l_rec_acct_attrs.array_char_value(11) := p_source_12;
38262 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
38263 l_rec_acct_attrs.array_date_value(12) := p_source_121;
38264 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
38265 l_rec_acct_attrs.array_num_value(13) := p_source_122;
38266 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
38267 l_rec_acct_attrs.array_char_value(14) := p_source_123;
38268 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
38269 l_rec_acct_attrs.array_num_value(15) := p_source_21;
38270 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
38271 l_rec_acct_attrs.array_char_value(16) := p_source_64;
38272 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
38273 l_rec_acct_attrs.array_num_value(17) := p_source_65;
38274 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
38275 l_rec_acct_attrs.array_num_value(18) := p_source_66;
38276 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
38277 l_rec_acct_attrs.array_char_value(19) := p_source_67;
38278 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
38279 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
38280 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
38281 l_rec_acct_attrs.array_char_value(21) := p_source_60;
38282 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
38283 l_rec_acct_attrs.array_num_value(22) := p_source_69;
38284 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
38285 l_rec_acct_attrs.array_num_value(23) := p_source_77;
38286 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
38287 l_rec_acct_attrs.array_num_value(24) := p_source_70;
38288
38289 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38290 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38291
38292 ---------------------------------------------------------------------------------------------------------------
38293 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38294 ---------------------------------------------------------------------------------------------------------------
38295 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38296
38297 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38298 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38299
38300 IF xla_accounting_cache_pkg.GetValueChar
38301 (p_source_code => 'LEDGER_CATEGORY_CODE'
38302 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38303 AND l_bflow_method_code = 'PRIOR_ENTRY'
38304 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38305 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38306 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38307 )
38308 THEN
38309 xla_ae_lines_pkg.BflowUpgEntry
38310 (p_business_method_code => l_bflow_method_code
38311 ,p_business_class_code => l_bflow_class_code
38312 ,p_balance_type => l_balance_type_code);
38313 ELSE
38314 NULL;
38315 -- No business flow processing for business flow method of NONE.
38319 -- call analytical criteria
38316 END IF;
38317
38318 --
38320 --
38321
38322 --
38323 -- call description
38324 --
38325 -- No description or it is inherited.
38326 --
38327 -- call ADRs
38328 -- Bug 4922099
38329 --
38330 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38331 (NVL(l_actual_upg_option, 'N') = 'O') OR
38332 (NVL(l_enc_upg_option, 'N') = 'O')
38333 )
38334 THEN
38335 NULL;
38336 --
38337 --
38338
38339 l_ccid := AcctDerRule_24(
38340 p_application_id => p_application_id
38341 , p_ae_header_id => l_ae_header_id
38342 , p_source_16 => p_source_16
38343 , p_source_16_meaning => p_source_16_meaning
38344 , p_source_17 => p_source_17
38345 , p_source_19 => p_source_19
38346 , p_source_19_meaning => p_source_19_meaning
38347 , p_source_20 => p_source_20
38348 , p_source_21 => p_source_21
38349 , p_source_22 => p_source_22
38350 , p_source_29 => p_source_29
38351 , p_source_42 => p_source_42
38352 , p_source_42_meaning => p_source_42_meaning
38353 , x_transaction_coa_id => l_adr_transaction_coa_id
38354 , x_accounting_coa_id => l_adr_accounting_coa_id
38355 , x_value_type_code => l_adr_value_type_code
38356 , p_side => 'NA'
38357 );
38358
38359 xla_ae_lines_pkg.set_ccid(
38360 p_code_combination_id => l_ccid
38361 , p_value_type_code => l_adr_value_type_code
38362 , p_transaction_coa_id => l_adr_transaction_coa_id
38363 , p_accounting_coa_id => l_adr_accounting_coa_id
38364 , p_adr_code => 'AP_ERV_TAXERV_CASH'
38365 , p_adr_type_code => 'S'
38366 , p_component_type => l_component_type
38367 , p_component_code => l_component_code
38368 , p_component_type_code => l_component_type_code
38369 , p_component_appl_id => l_component_appl_id
38370 , p_amb_context_code => l_amb_context_code
38371 , p_side => 'NA'
38372 );
38373
38374
38375 l_segment := AcctDerRule_6(
38376 p_application_id => p_application_id
38377 , p_ae_header_id => l_ae_header_id
38378 , p_source_16 => p_source_16
38379 , p_source_16_meaning => p_source_16_meaning
38380 , p_source_17 => p_source_17
38381 , p_source_19 => p_source_19
38382 , p_source_19_meaning => p_source_19_meaning
38383 , p_source_20 => p_source_20
38384 , p_source_21 => p_source_21
38385 , p_source_22 => p_source_22
38386 , x_transaction_coa_id => l_adr_transaction_coa_id
38387 , x_accounting_coa_id => l_adr_accounting_coa_id
38388 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38389 , x_flex_value_set_id => l_adr_flex_value_set_id
38390 , x_value_type_code => l_adr_value_type_code
38391 , x_value_combination_id => l_adr_value_combination_id
38392 , x_value_segment_code => l_adr_value_segment_code
38393 , p_side => 'NA'
38394 , p_override_seg_flag => 'Y'
38395 );
38396
38397 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38398
38399 xla_ae_lines_pkg.set_segment(
38400 p_to_segment_code => 'GL_ACCOUNT'
38401 , p_segment_value => l_segment
38402 , p_from_segment_code => l_adr_value_segment_code
38403 , p_from_combination_id => l_adr_value_combination_id
38404 , p_value_type_code => l_adr_value_type_code
38405 , p_transaction_coa_id => l_adr_transaction_coa_id
38406 , p_accounting_coa_id => l_adr_accounting_coa_id
38407 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38408 , p_flex_value_set_id => l_adr_flex_value_set_id
38409 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
38410 , p_adr_type_code => 'S'
38411 , p_component_type => l_component_type
38412 , p_component_code => l_component_code
38413 , p_component_type_code => l_component_type_code
38414 , p_component_appl_id => l_component_appl_id
38415 , p_amb_context_code => l_amb_context_code
38416 , p_entity_code => 'AP_PAYMENTS'
38417 , p_event_class_code => 'PAYMENTS'
38418 , p_side => 'NA'
38419 );
38420
38421 END IF;
38422
38423 l_segment := AcctDerRule_17(
38424 p_application_id => p_application_id
38425 , p_ae_header_id => l_ae_header_id
38426 , p_source_16 => p_source_16
38427 , p_source_16_meaning => p_source_16_meaning
38428 , p_source_19 => p_source_19
38429 , p_source_19_meaning => p_source_19_meaning
38430 , p_source_29 => p_source_29
38431 , x_transaction_coa_id => l_adr_transaction_coa_id
38432 , x_accounting_coa_id => l_adr_accounting_coa_id
38433 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38434 , x_flex_value_set_id => l_adr_flex_value_set_id
38435 , x_value_type_code => l_adr_value_type_code
38436 , x_value_combination_id => l_adr_value_combination_id
38437 , x_value_segment_code => l_adr_value_segment_code
38438 , p_side => 'NA'
38439 , p_override_seg_flag => 'Y'
38440 );
38444 xla_ae_lines_pkg.set_segment(
38441
38442 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38443
38445 p_to_segment_code => 'GL_BALANCING'
38446 , p_segment_value => l_segment
38447 , p_from_segment_code => l_adr_value_segment_code
38448 , p_from_combination_id => l_adr_value_combination_id
38449 , p_value_type_code => l_adr_value_type_code
38450 , p_transaction_coa_id => l_adr_transaction_coa_id
38451 , p_accounting_coa_id => l_adr_accounting_coa_id
38452 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38453 , p_flex_value_set_id => l_adr_flex_value_set_id
38454 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
38455 , p_adr_type_code => 'S'
38456 , p_component_type => l_component_type
38457 , p_component_code => l_component_code
38458 , p_component_type_code => l_component_type_code
38459 , p_component_appl_id => l_component_appl_id
38460 , p_amb_context_code => l_amb_context_code
38461 , p_entity_code => 'AP_PAYMENTS'
38462 , p_event_class_code => 'PAYMENTS'
38463 , p_side => 'NA'
38464 );
38465
38466 END IF;
38467
38468 --
38469 --
38470 END IF;
38471 --
38472 -- Bug 4922099
38473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38474 (NVL(l_enc_upg_option, 'N') = 'O')
38475 ) AND
38476 (l_bflow_method_code = 'PRIOR_ENTRY')
38477 )
38478 THEN
38479 IF
38480 --
38481 1 = 2
38482 --
38483 THEN
38484 xla_accounting_err_pkg.build_message
38485 (p_appli_s_name => 'XLA'
38486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38487 ,p_token_1 => 'LINE_NUMBER'
38488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38489 ,p_token_2 => 'LINE_TYPE_NAME'
38490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38491 l_component_type
38492 ,l_component_code
38493 ,l_component_type_code
38494 ,l_component_appl_id
38495 ,l_amb_context_code
38496 ,l_entity_code
38497 ,l_event_class_code
38498 )
38499 ,p_token_3 => 'OWNER'
38500 ,p_value_3 => xla_lookups_pkg.get_meaning(
38501 p_lookup_type => 'XLA_OWNER_TYPE'
38502 ,p_lookup_code => l_component_type_code
38503 )
38504 ,p_token_4 => 'PRODUCT_NAME'
38505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38509 ,p_ae_header_id => NULL
38510 );
38511
38512 IF (C_LEVEL_ERROR>= g_log_level) THEN
38513 trace
38514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38515 ,p_level => C_LEVEL_ERROR
38516 ,p_module => l_log_module);
38517 END IF;
38518 END IF;
38519 END IF;
38520 --
38521 --
38522 ------------------------------------------------------------------------------------------------
38523 -- 4219869 Business Flow
38524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38525 -- Prior Entry. Currently, the following code is always generated.
38526 ------------------------------------------------------------------------------------------------
38527 XLA_AE_LINES_PKG.ValidateCurrentLine;
38528
38529 ------------------------------------------------------------------------------------
38530 -- 4219869 Business Flow
38531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38532 ------------------------------------------------------------------------------------
38533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38534
38535 ----------------------------------------------------------------------------------
38536 -- 4219869 Business Flow
38540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38537 -- Update journal entry status -- Need to generate this within IF <condition>
38538 ----------------------------------------------------------------------------------
38539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38541 ,p_balance_type_code => l_balance_type_code
38542 );
38543
38544 -------------------------------------------------------------------------------------------
38545 -- 4262811 - Generate the Accrual Reversal lines
38546 -------------------------------------------------------------------------------------------
38547 BEGIN
38548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38549 (g_array_event(p_event_id).array_value_num('header_index'));
38550 IF l_acc_rev_flag IS NULL THEN
38551 l_acc_rev_flag := 'N';
38552 END IF;
38553 EXCEPTION
38554 WHEN OTHERS THEN
38555 l_acc_rev_flag := 'N';
38556 END;
38557 --
38558 IF (l_acc_rev_flag = 'Y') THEN
38559
38560 -- 4645092 ------------------------------------------------------------------------------
38561 -- To allow MPA report to determine if it should generate report process
38562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38563 ------------------------------------------------------------------------------------------
38564
38565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38567 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38568 -- call ADRs
38569 -- Bug 4922099
38570 --
38571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38572 (NVL(l_actual_upg_option, 'N') = 'O') OR
38573 (NVL(l_enc_upg_option, 'N') = 'O')
38574 )
38575 THEN
38576 NULL;
38577 --
38578 --
38579
38580 l_ccid := AcctDerRule_24(
38581 p_application_id => p_application_id
38582 , p_ae_header_id => l_ae_header_id
38583 , p_source_16 => p_source_16
38584 , p_source_16_meaning => p_source_16_meaning
38585 , p_source_17 => p_source_17
38586 , p_source_19 => p_source_19
38587 , p_source_19_meaning => p_source_19_meaning
38588 , p_source_20 => p_source_20
38589 , p_source_21 => p_source_21
38590 , p_source_22 => p_source_22
38591 , p_source_29 => p_source_29
38592 , p_source_42 => p_source_42
38593 , p_source_42_meaning => p_source_42_meaning
38594 , x_transaction_coa_id => l_adr_transaction_coa_id
38595 , x_accounting_coa_id => l_adr_accounting_coa_id
38596 , x_value_type_code => l_adr_value_type_code
38597 , p_side => 'NA'
38598 );
38599
38600 xla_ae_lines_pkg.set_ccid(
38601 p_code_combination_id => l_ccid
38602 , p_value_type_code => l_adr_value_type_code
38603 , p_transaction_coa_id => l_adr_transaction_coa_id
38604 , p_accounting_coa_id => l_adr_accounting_coa_id
38605 , p_adr_code => 'AP_ERV_TAXERV_CASH'
38606 , p_adr_type_code => 'S'
38607 , p_component_type => l_component_type
38608 , p_component_code => l_component_code
38609 , p_component_type_code => l_component_type_code
38610 , p_component_appl_id => l_component_appl_id
38611 , p_amb_context_code => l_amb_context_code
38612 , p_side => 'NA'
38613 );
38614
38615
38616 l_segment := AcctDerRule_6(
38617 p_application_id => p_application_id
38618 , p_ae_header_id => l_ae_header_id
38619 , p_source_16 => p_source_16
38620 , p_source_16_meaning => p_source_16_meaning
38621 , p_source_17 => p_source_17
38622 , p_source_19 => p_source_19
38623 , p_source_19_meaning => p_source_19_meaning
38624 , p_source_20 => p_source_20
38625 , p_source_21 => p_source_21
38626 , p_source_22 => p_source_22
38627 , x_transaction_coa_id => l_adr_transaction_coa_id
38628 , x_accounting_coa_id => l_adr_accounting_coa_id
38629 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38630 , x_flex_value_set_id => l_adr_flex_value_set_id
38631 , x_value_type_code => l_adr_value_type_code
38632 , x_value_combination_id => l_adr_value_combination_id
38633 , x_value_segment_code => l_adr_value_segment_code
38634 , p_side => 'NA'
38635 , p_override_seg_flag => 'Y'
38636 );
38637
38638 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38639
38640 xla_ae_lines_pkg.set_segment(
38641 p_to_segment_code => 'GL_ACCOUNT'
38642 , p_segment_value => l_segment
38643 , p_from_segment_code => l_adr_value_segment_code
38644 , p_from_combination_id => l_adr_value_combination_id
38645 , p_value_type_code => l_adr_value_type_code
38646 , p_transaction_coa_id => l_adr_transaction_coa_id
38647 , p_accounting_coa_id => l_adr_accounting_coa_id
38648 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38649 , p_flex_value_set_id => l_adr_flex_value_set_id
38650 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
38654 , p_component_type_code => l_component_type_code
38651 , p_adr_type_code => 'S'
38652 , p_component_type => l_component_type
38653 , p_component_code => l_component_code
38655 , p_component_appl_id => l_component_appl_id
38656 , p_amb_context_code => l_amb_context_code
38657 , p_entity_code => 'AP_PAYMENTS'
38658 , p_event_class_code => 'PAYMENTS'
38659 , p_side => 'NA'
38660 );
38661
38662 END IF;
38663
38664 l_segment := AcctDerRule_17(
38665 p_application_id => p_application_id
38666 , p_ae_header_id => l_ae_header_id
38667 , p_source_16 => p_source_16
38668 , p_source_16_meaning => p_source_16_meaning
38669 , p_source_19 => p_source_19
38670 , p_source_19_meaning => p_source_19_meaning
38671 , p_source_29 => p_source_29
38672 , x_transaction_coa_id => l_adr_transaction_coa_id
38673 , x_accounting_coa_id => l_adr_accounting_coa_id
38674 , x_flexfield_segment_code => l_adr_flexfield_segment_code
38675 , x_flex_value_set_id => l_adr_flex_value_set_id
38676 , x_value_type_code => l_adr_value_type_code
38677 , x_value_combination_id => l_adr_value_combination_id
38678 , x_value_segment_code => l_adr_value_segment_code
38679 , p_side => 'NA'
38680 , p_override_seg_flag => 'Y'
38681 );
38682
38683 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
38684
38685 xla_ae_lines_pkg.set_segment(
38686 p_to_segment_code => 'GL_BALANCING'
38687 , p_segment_value => l_segment
38688 , p_from_segment_code => l_adr_value_segment_code
38689 , p_from_combination_id => l_adr_value_combination_id
38690 , p_value_type_code => l_adr_value_type_code
38691 , p_transaction_coa_id => l_adr_transaction_coa_id
38692 , p_accounting_coa_id => l_adr_accounting_coa_id
38693 , p_flexfield_segment_code => l_adr_flexfield_segment_code
38694 , p_flex_value_set_id => l_adr_flex_value_set_id
38695 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
38696 , p_adr_type_code => 'S'
38697 , p_component_type => l_component_type
38698 , p_component_code => l_component_code
38699 , p_component_type_code => l_component_type_code
38700 , p_component_appl_id => l_component_appl_id
38701 , p_amb_context_code => l_amb_context_code
38702 , p_entity_code => 'AP_PAYMENTS'
38703 , p_event_class_code => 'PAYMENTS'
38704 , p_side => 'NA'
38705 );
38706
38707 END IF;
38708
38709 --
38710 --
38711 END IF;
38712
38713 --
38714 -- Update the line information that should be overwritten
38715 --
38716 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38717 p_header_num => 1);
38718 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38719
38720 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38721
38722 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38723 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38724 END IF;
38725
38726 --
38727 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38728 --
38729 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38730 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38731 ELSE
38732 ---------------------------------------------------------------------------------------------------
38733 -- 4262811a Switch Sign
38734 ---------------------------------------------------------------------------------------------------
38735 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38736 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38737 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38738 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38739 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38740 -- 5132302
38741 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38742 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38743
38744 END IF;
38745
38746 -- 4955764
38747 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38748 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38749
38750
38751 XLA_AE_LINES_PKG.ValidateCurrentLine;
38752 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38753
38754 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38755 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38759
38756 ,p_balance_type_code => l_balance_type_code);
38757
38758 END IF;
38760 -----------------------------------------------------------------------------------------
38761 -- 4262811 Multiperiod Accounting
38762 -----------------------------------------------------------------------------------------
38763 -- No MPA option is assigned.
38764
38765
38766 END IF;
38767 END IF;
38768 --
38769
38770 --
38771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38772 trace
38773 (p_msg => 'END of AcctLineType_82'
38774 ,p_level => C_LEVEL_PROCEDURE
38775 ,p_module => l_log_module);
38776 END IF;
38777 --
38778 EXCEPTION
38779 WHEN xla_exceptions_pkg.application_exception THEN
38780 RAISE;
38781 WHEN OTHERS THEN
38782 xla_exceptions_pkg.raise_message
38783 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_82');
38784 END AcctLineType_82;
38785 --
38786
38787 ---------------------------------------
38788 --
38789 -- PRIVATE FUNCTION
38790 -- AcctLineType_83
38791 --
38792 ---------------------------------------
38793 PROCEDURE AcctLineType_83 (
38794 p_application_id IN NUMBER
38795 ,p_event_id IN NUMBER
38796 ,p_calculate_acctd_flag IN VARCHAR2
38797 ,p_calculate_g_l_flag IN VARCHAR2
38798 ,p_actual_flag IN OUT VARCHAR2
38799 ,p_balance_type_code OUT VARCHAR2
38800 ,p_gain_or_loss_ref OUT VARCHAR2
38801
38802 --Automatic Offsets Value
38803 , p_source_16 IN VARCHAR2
38804 , p_source_16_meaning IN VARCHAR2
38805 --Purchase Order Rate Variance Gain Account
38806 , p_source_17 IN NUMBER
38807 --Invoice Distribution Ledger Amount
38808 , p_source_18 IN NUMBER
38809 --Destination Type of the PO Distribution
38810 , p_source_19 IN VARCHAR2
38811 , p_source_19_meaning IN VARCHAR2
38812 --Purchase Order Rate Variance Loss Account
38813 , p_source_20 IN NUMBER
38814 --Invoice Distribution Account
38815 , p_source_29 IN NUMBER
38816 --Automatic Offsets Flag
38817 , p_source_42 IN VARCHAR2
38818 , p_source_42_meaning IN VARCHAR2
38819 --When to Account for Payment Option
38820 , p_source_50 IN VARCHAR2
38821 --Accounting Reversal Indicator
38822 , p_source_52 IN VARCHAR2
38823 --Business Flow Accounts Payable Application Identifier
38824 , p_source_54 IN NUMBER
38825 --Distribution Link Type
38826 , p_source_60 IN VARCHAR2
38827 --Override Accounted Amount Indicator
38828 , p_source_64 IN VARCHAR2
38829 , p_source_64_meaning IN VARCHAR2
38830 --Third Party Type
38831 , p_source_67 IN VARCHAR2
38832 --Invoice Distribution Tax Line Identifier
38833 , p_source_69 IN NUMBER
38834 --Invoice Distribution Summary Tax Line Identifier
38835 , p_source_70 IN NUMBER
38836 --Invoice Distribution Tax Distribution Identifier from Tax
38837 , p_source_77 IN NUMBER
38838 --Prepayment Distribution Type
38839 , p_source_78 IN VARCHAR2
38840 --Recipient Invoice Distribution Type
38841 , p_source_79 IN VARCHAR2
38842 , p_source_79_meaning IN VARCHAR2
38843 --Prepayment Application Distribution Identifier
38844 , p_source_82 IN NUMBER
38845 --Invoice Identifier
38846 , p_source_83 IN NUMBER
38847 --Business Flow Prepayment Invoice Distribution Type
38848 , p_source_84 IN VARCHAR2
38849 --Business Flow Prepayment Invoice Entity Code
38850 , p_source_85 IN VARCHAR2
38851 --Business Flow Prepayment Invoice Distribution Identifier
38852 , p_source_86 IN NUMBER
38853 --Business Flow Prepayment Invoice Identifier
38854 , p_source_87 IN NUMBER
38855 --Upgrade Encumbrance Credit Account Class
38856 , p_source_88 IN VARCHAR2
38857 --Payables Encumbrance Upgrade Credit Account
38858 , p_source_89 IN NUMBER
38859 --Payables Encumbrance Upgrade Credit Amount
38860 , p_source_90 IN NUMBER
38861 --Invoice Currency Code
38862 , p_source_91 IN VARCHAR2
38863 --Payables Encumbrance Upgrade Credit Base Amount
38864 , p_source_92 IN NUMBER
38865 --Upgrade Encumbrance Debit Account Class
38866 , p_source_93 IN VARCHAR2
38867 --Payables Encumbrance Upgrade Debit Account
38868 , p_source_94 IN NUMBER
38869 --Payables Encumbrance Upgrade Debit Amount
38870 , p_source_95 IN NUMBER
38871 --Payables Encumbrance Upgrade Debit Base Amount
38872 , p_source_96 IN NUMBER
38873 --Payables Encumbrance Upgrade Option
38874 , p_source_97 IN VARCHAR2
38875 --Prepayment Distribution Amount
38876 , p_source_98 IN NUMBER
38877 --Deferred Accounting End Date
38878 , p_source_101 IN DATE
38879 --Deferred Accounting Option
38880 , p_source_102 IN VARCHAR2
38881 --Deferred Accounting Start Date
38882 , p_source_103 IN DATE
38883 --Invoice Supplier Identifier
38884 , p_source_104 IN NUMBER
38885 --Invoice Supplier Site Identifier
38886 , p_source_105 IN NUMBER
38887 --Identifier of the Prepayment Application Reversed
38888 , p_source_106 IN NUMBER
38889 --Payables Upgrade Credit Encumbrance Type Identifier
38890 , p_source_107 IN NUMBER
38894 , p_source_109 IN VARCHAR2
38891 --Payables Upgrade Debit Encumbrance Type Identifier
38892 , p_source_108 IN NUMBER
38893 --Prepayment Payment Currency Code
38895 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
38896 , p_source_110 IN NUMBER
38897 --Accrue on Receipt Option
38898 , p_source_111 IN VARCHAR2
38899 , p_source_111_meaning IN VARCHAR2
38900 --Prepayment Payment Exchange Date
38901 , p_source_128 IN DATE
38902 --Prepayment Payment Exchange Rate
38903 , p_source_129 IN NUMBER
38904 --Prepayment Payment Exchange Rate Type
38905 , p_source_130 IN VARCHAR2
38906 )
38907 IS
38908
38909 l_component_type VARCHAR2(80);
38910 l_component_code VARCHAR2(30);
38911 l_component_type_code VARCHAR2(1);
38912 l_component_appl_id INTEGER;
38913 l_amb_context_code VARCHAR2(30);
38914 l_entity_code VARCHAR2(30);
38915 l_event_class_code VARCHAR2(30);
38916 l_ae_header_id NUMBER;
38917 l_event_type_code VARCHAR2(30);
38918 l_line_definition_code VARCHAR2(30);
38919 l_line_definition_owner_code VARCHAR2(1);
38920 --
38921 -- adr variables
38922 l_segment VARCHAR2(30);
38923 l_ccid NUMBER;
38924 l_adr_transaction_coa_id NUMBER;
38925 l_adr_accounting_coa_id NUMBER;
38926 l_adr_flexfield_segment_code VARCHAR2(30);
38927 l_adr_flex_value_set_id NUMBER;
38928 l_adr_value_type_code VARCHAR2(30);
38929 l_adr_value_combination_id NUMBER;
38930 l_adr_value_segment_code VARCHAR2(30);
38931
38932 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38933 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38934 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38935 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38936
38937 -- 4262811 Variables ------------------------------------------------------------------------------------------
38938 l_entered_amt_idx NUMBER;
38939 l_accted_amt_idx NUMBER;
38940 l_acc_rev_flag VARCHAR2(1);
38941 l_accrual_line_num NUMBER;
38942 l_tmp_amt NUMBER;
38943 l_acc_rev_natural_side_code VARCHAR2(1);
38944
38945 l_num_entries NUMBER;
38946 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38947 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38948 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38949 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38950 l_recog_line_1 NUMBER;
38951 l_recog_line_2 NUMBER;
38952
38953 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38954 l_bflow_applied_to_amt NUMBER; -- 5132302
38955 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38956
38957 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38958
38959 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38960 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38961
38962 ---------------------------------------------------------------------------------------------------------------
38963
38964
38965 --
38966 -- bulk performance
38967 --
38968 l_balance_type_code VARCHAR2(1);
38969 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38970 l_log_module VARCHAR2(240);
38971
38972 --
38973 -- Upgrade strategy
38974 --
38975 l_actual_upg_option VARCHAR2(1);
38976 l_enc_upg_option VARCHAR2(1);
38977
38978 --
38979 BEGIN
38980 --
38981 IF g_log_enabled THEN
38982 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38983 END IF;
38984 --
38985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38986
38987 trace
38988 (p_msg => 'BEGIN of AcctLineType_83'
38989 ,p_level => C_LEVEL_PROCEDURE
38990 ,p_module => l_log_module);
38991
38992 END IF;
38993 --
38994 l_component_type := 'AMB_JLT';
38995 l_component_code := 'AP_EX_RATE_VAR_PREPAY_PAY_RATE';
38996 l_component_type_code := 'S';
38997 l_component_appl_id := 200;
38998 l_amb_context_code := 'DEFAULT';
38999 l_entity_code := 'AP_INVOICES';
39000 l_event_class_code := 'PREPAYMENT APPLICATIONS';
39001 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
39002 l_line_definition_owner_code := 'S';
39003 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
39004 --
39005 l_balance_type_code := 'A';
39006 l_segment := NULL;
39007 l_ccid := NULL;
39008 l_adr_transaction_coa_id := NULL;
39009 l_adr_accounting_coa_id := NULL;
39010 l_adr_flexfield_segment_code := NULL;
39011 l_adr_flex_value_set_id := NULL;
39012 l_adr_value_type_code := NULL;
39013 l_adr_value_combination_id := NULL;
39014 l_adr_value_segment_code := NULL;
39015
39016 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39017 l_bflow_class_code := ''; -- 4219869 Business Flow
39018 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39019 l_budgetary_control_flag := 'N';
39020
39024 l_accted_amt_idx := NULL; -- 4262811
39021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39022 l_bflow_applied_to_amt := NULL; -- 5132302
39023 l_entered_amt_idx := NULL; -- 4262811
39025 l_acc_rev_flag := NULL; -- 4262811
39026 l_accrual_line_num := NULL; -- 4262811
39027 l_tmp_amt := NULL; -- 4262811
39028 --
39029 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39030 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
39031 return;
39032 END IF;
39033
39034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39035 l_balance_type_code <> 'B' THEN
39036 IF NVL(p_source_50,'
39037 ') <> 'CLEAR_CLEAR' AND
39038 (NVL(p_source_78,'
39039 ') = 'PREPAY APPL' OR
39040 NVL(p_source_78,'
39041 ') = 'PREPAY APPL NONREC TAX' OR
39042 NVL(p_source_78,'
39043 ') = 'PREPAY APPL REC TAX') AND
39044 NVL(p_source_79,'
39045 ') = 'ERV' AND
39046 NVL(p_source_111,'
39047 ') = 'Y'
39048 THEN
39049
39050 --
39051 XLA_AE_LINES_PKG.SetNewLine;
39052
39053 p_balance_type_code := l_balance_type_code;
39054 -- set the flag so later we will know whether the gain loss line needs to be created
39055
39056 IF(l_balance_type_code = 'A' ) THEN
39057 p_actual_flag :='G';
39058 END IF;
39059
39060 --
39061 -- bulk performance
39062 --
39063 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39064 p_header_num => 0); -- 4262811
39065 --
39066 -- set accounting line options
39067 --
39068 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39069 p_natural_side_code => 'C'
39070 , p_gain_or_loss_flag => 'Y'
39071 , p_gl_transfer_mode_code => 'S'
39072 , p_acct_entry_type_code => 'A'
39073 , p_switch_side_flag => 'Y'
39074 , p_merge_duplicate_code => 'A'
39075 );
39076 --
39077 l_acc_rev_natural_side_code := 'D'; -- 4262811
39078 --
39079 --
39080 -- set accounting line type info
39081 --
39082 xla_ae_lines_pkg.SetAcctLineType
39083 (p_component_type => l_component_type
39084 ,p_event_type_code => l_event_type_code
39085 ,p_line_definition_owner_code => l_line_definition_owner_code
39086 ,p_line_definition_code => l_line_definition_code
39087 ,p_accounting_line_code => l_component_code
39088 ,p_accounting_line_type_code => l_component_type_code
39089 ,p_accounting_line_appl_id => l_component_appl_id
39090 ,p_amb_context_code => l_amb_context_code
39091 ,p_entity_code => l_entity_code
39092 ,p_event_class_code => l_event_class_code);
39093 --
39094 -- set accounting class
39095 --
39096 xla_ae_lines_pkg.SetAcctClass(
39097 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
39098 , p_ae_header_id => l_ae_header_id
39099 );
39100
39101 --
39102 -- set rounding class
39103 --
39104 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39105 'EXCHANGE_RATE_VARIANCE';
39106
39107 --
39108 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39109 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39110 --
39111 -- bulk performance
39112 --
39113 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39114
39115 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39116 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39117
39118 -- 4955764
39119 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39120 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39121
39122 -- 4458381 Public Sector Enh
39123
39124 --
39125 -- set accounting attributes for the line type
39126 --
39127 l_entered_amt_idx := 25;
39128 l_accted_amt_idx := 30;
39129 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39130 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39131 l_rec_acct_attrs.array_char_value(1) := p_source_52;
39132 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
39133 l_rec_acct_attrs.array_num_value(2) :=
39134 xla_ae_sources_pkg.GetSystemSourceNum(
39135 p_source_code => 'XLA_EVENT_APPL_ID'
39136 , p_source_type_code => 'Y'
39137 , p_source_application_id => 602
39138 );
39139 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
39140 l_rec_acct_attrs.array_char_value(3) := p_source_60;
39141 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
39142 l_rec_acct_attrs.array_char_value(4) :=
39143 xla_ae_sources_pkg.GetSystemSourceChar(
39144 p_source_code => 'XLA_ENTITY_CODE'
39148 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
39145 , p_source_type_code => 'Y'
39146 , p_source_application_id => 602
39147 );
39149 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
39150 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
39151 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
39152 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
39153 l_rec_acct_attrs.array_num_value(7) := p_source_54;
39154 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39155 l_rec_acct_attrs.array_char_value(8) := p_source_84;
39156 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
39157 l_rec_acct_attrs.array_char_value(9) := p_source_85;
39158 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
39159 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
39160 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39161 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
39162 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
39163 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
39164 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
39165 l_rec_acct_attrs.array_char_value(13) := p_source_60;
39166 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
39167 l_rec_acct_attrs.array_char_value(14) := p_source_88;
39168 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
39169 l_rec_acct_attrs.array_num_value(15) := p_source_89;
39170 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
39171 l_rec_acct_attrs.array_num_value(16) := p_source_90;
39172 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
39173 l_rec_acct_attrs.array_char_value(17) := p_source_91;
39174 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
39175 l_rec_acct_attrs.array_num_value(18) := p_source_92;
39176 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
39177 l_rec_acct_attrs.array_char_value(19) := p_source_93;
39178 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
39179 l_rec_acct_attrs.array_num_value(20) := p_source_94;
39180 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
39181 l_rec_acct_attrs.array_num_value(21) := p_source_95;
39182 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
39183 l_rec_acct_attrs.array_char_value(22) := p_source_91;
39184 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
39185 l_rec_acct_attrs.array_num_value(23) := p_source_96;
39186 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
39187 l_rec_acct_attrs.array_char_value(24) := p_source_97;
39188 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
39189 l_rec_acct_attrs.array_num_value(25) := p_source_98;
39190 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
39191 l_rec_acct_attrs.array_char_value(26) := p_source_109;
39192 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
39193 l_rec_acct_attrs.array_date_value(27) := p_source_128;
39194 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
39195 l_rec_acct_attrs.array_num_value(28) := p_source_129;
39196 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
39197 l_rec_acct_attrs.array_char_value(29) := p_source_130;
39198 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
39199 l_rec_acct_attrs.array_num_value(30) := p_source_110;
39200 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
39201 l_rec_acct_attrs.array_date_value(31) := p_source_101;
39202 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
39203 l_rec_acct_attrs.array_char_value(32) := p_source_102;
39204 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
39205 l_rec_acct_attrs.array_date_value(33) := p_source_103;
39206 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
39207 l_rec_acct_attrs.array_char_value(34) := p_source_64;
39208 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
39209 l_rec_acct_attrs.array_num_value(35) := p_source_104;
39210 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
39211 l_rec_acct_attrs.array_num_value(36) := p_source_105;
39212 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
39213 l_rec_acct_attrs.array_char_value(37) := p_source_67;
39214 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
39215 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
39216 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
39217 l_rec_acct_attrs.array_char_value(39) := p_source_60;
39218 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
39219 l_rec_acct_attrs.array_num_value(40) := p_source_69;
39220 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
39221 l_rec_acct_attrs.array_num_value(41) := p_source_77;
39222 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
39223 l_rec_acct_attrs.array_num_value(42) := p_source_70;
39224 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
39225 l_rec_acct_attrs.array_num_value(43) := p_source_107;
39226 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
39227 l_rec_acct_attrs.array_num_value(44) := p_source_108;
39228
39229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39231
39232 ---------------------------------------------------------------------------------------------------------------
39234 ---------------------------------------------------------------------------------------------------------------
39235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39236
39237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39239
39240 IF xla_accounting_cache_pkg.GetValueChar
39241 (p_source_code => 'LEDGER_CATEGORY_CODE'
39242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39243 AND l_bflow_method_code = 'PRIOR_ENTRY'
39244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39247 )
39248 THEN
39249 xla_ae_lines_pkg.BflowUpgEntry
39250 (p_business_method_code => l_bflow_method_code
39251 ,p_business_class_code => l_bflow_class_code
39252 ,p_balance_type => l_balance_type_code);
39253 ELSE
39254 NULL;
39255 -- No business flow processing for business flow method of NONE.
39256 END IF;
39257
39258 --
39259 -- call analytical criteria
39260 --
39261
39262 --
39263 -- call description
39264 --
39265 -- No description or it is inherited.
39266 --
39267 -- call ADRs
39268 -- Bug 4922099
39269 --
39270 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39271 (NVL(l_actual_upg_option, 'N') = 'O') OR
39272 (NVL(l_enc_upg_option, 'N') = 'O')
39273 )
39274 THEN
39275 NULL;
39276 --
39277 --
39278
39279 l_ccid := AcctDerRule_25(
39280 p_application_id => p_application_id
39281 , p_ae_header_id => l_ae_header_id
39282 , p_source_16 => p_source_16
39283 , p_source_16_meaning => p_source_16_meaning
39284 , p_source_17 => p_source_17
39285 , p_source_18 => p_source_18
39286 , p_source_19 => p_source_19
39287 , p_source_19_meaning => p_source_19_meaning
39288 , p_source_20 => p_source_20
39289 , p_source_29 => p_source_29
39290 , p_source_42 => p_source_42
39291 , p_source_42_meaning => p_source_42_meaning
39292 , x_transaction_coa_id => l_adr_transaction_coa_id
39293 , x_accounting_coa_id => l_adr_accounting_coa_id
39294 , x_value_type_code => l_adr_value_type_code
39295 , p_side => 'NA'
39296 );
39297
39298 xla_ae_lines_pkg.set_ccid(
39299 p_code_combination_id => l_ccid
39300 , p_value_type_code => l_adr_value_type_code
39301 , p_transaction_coa_id => l_adr_transaction_coa_id
39302 , p_accounting_coa_id => l_adr_accounting_coa_id
39303 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39304 , p_adr_type_code => 'S'
39305 , p_component_type => l_component_type
39306 , p_component_code => l_component_code
39307 , p_component_type_code => l_component_type_code
39308 , p_component_appl_id => l_component_appl_id
39309 , p_amb_context_code => l_amb_context_code
39310 , p_side => 'NA'
39311 );
39312
39313
39314 l_segment := AcctDerRule_5(
39315 p_application_id => p_application_id
39316 , p_ae_header_id => l_ae_header_id
39317 , p_source_16 => p_source_16
39318 , p_source_16_meaning => p_source_16_meaning
39319 , p_source_17 => p_source_17
39320 , p_source_18 => p_source_18
39321 , p_source_19 => p_source_19
39322 , p_source_19_meaning => p_source_19_meaning
39323 , p_source_20 => p_source_20
39324 , x_transaction_coa_id => l_adr_transaction_coa_id
39325 , x_accounting_coa_id => l_adr_accounting_coa_id
39326 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39327 , x_flex_value_set_id => l_adr_flex_value_set_id
39328 , x_value_type_code => l_adr_value_type_code
39329 , x_value_combination_id => l_adr_value_combination_id
39330 , x_value_segment_code => l_adr_value_segment_code
39331 , p_side => 'NA'
39332 , p_override_seg_flag => 'Y'
39333 );
39334
39335 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39336
39337 xla_ae_lines_pkg.set_segment(
39338 p_to_segment_code => 'GL_ACCOUNT'
39339 , p_segment_value => l_segment
39340 , p_from_segment_code => l_adr_value_segment_code
39341 , p_from_combination_id => l_adr_value_combination_id
39342 , p_value_type_code => l_adr_value_type_code
39343 , p_transaction_coa_id => l_adr_transaction_coa_id
39344 , p_accounting_coa_id => l_adr_accounting_coa_id
39345 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39349 , p_component_type => l_component_type
39346 , p_flex_value_set_id => l_adr_flex_value_set_id
39347 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39348 , p_adr_type_code => 'S'
39350 , p_component_code => l_component_code
39351 , p_component_type_code => l_component_type_code
39352 , p_component_appl_id => l_component_appl_id
39353 , p_amb_context_code => l_amb_context_code
39354 , p_entity_code => 'AP_INVOICES'
39355 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39356 , p_side => 'NA'
39357 );
39358
39359 END IF;
39360
39361 l_segment := AcctDerRule_17(
39362 p_application_id => p_application_id
39363 , p_ae_header_id => l_ae_header_id
39364 , p_source_16 => p_source_16
39365 , p_source_16_meaning => p_source_16_meaning
39366 , p_source_19 => p_source_19
39367 , p_source_19_meaning => p_source_19_meaning
39368 , p_source_29 => p_source_29
39369 , x_transaction_coa_id => l_adr_transaction_coa_id
39370 , x_accounting_coa_id => l_adr_accounting_coa_id
39371 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39372 , x_flex_value_set_id => l_adr_flex_value_set_id
39373 , x_value_type_code => l_adr_value_type_code
39374 , x_value_combination_id => l_adr_value_combination_id
39375 , x_value_segment_code => l_adr_value_segment_code
39376 , p_side => 'NA'
39377 , p_override_seg_flag => 'Y'
39378 );
39379
39380 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39381
39382 xla_ae_lines_pkg.set_segment(
39383 p_to_segment_code => 'GL_BALANCING'
39384 , p_segment_value => l_segment
39385 , p_from_segment_code => l_adr_value_segment_code
39386 , p_from_combination_id => l_adr_value_combination_id
39387 , p_value_type_code => l_adr_value_type_code
39388 , p_transaction_coa_id => l_adr_transaction_coa_id
39389 , p_accounting_coa_id => l_adr_accounting_coa_id
39390 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39391 , p_flex_value_set_id => l_adr_flex_value_set_id
39392 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
39393 , p_adr_type_code => 'S'
39394 , p_component_type => l_component_type
39395 , p_component_code => l_component_code
39396 , p_component_type_code => l_component_type_code
39397 , p_component_appl_id => l_component_appl_id
39398 , p_amb_context_code => l_amb_context_code
39399 , p_entity_code => 'AP_INVOICES'
39400 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39401 , p_side => 'NA'
39402 );
39403
39404 END IF;
39405
39406 --
39407 --
39408 END IF;
39409 --
39410 -- Bug 4922099
39411 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39412 (NVL(l_enc_upg_option, 'N') = 'O')
39413 ) AND
39414 (l_bflow_method_code = 'PRIOR_ENTRY')
39415 )
39416 THEN
39417 IF
39418 --
39419 1 = 2
39420 --
39421 THEN
39422 xla_accounting_err_pkg.build_message
39423 (p_appli_s_name => 'XLA'
39424 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39425 ,p_token_1 => 'LINE_NUMBER'
39426 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39427 ,p_token_2 => 'LINE_TYPE_NAME'
39428 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39429 l_component_type
39430 ,l_component_code
39431 ,l_component_type_code
39432 ,l_component_appl_id
39433 ,l_amb_context_code
39434 ,l_entity_code
39435 ,l_event_class_code
39436 )
39437 ,p_token_3 => 'OWNER'
39438 ,p_value_3 => xla_lookups_pkg.get_meaning(
39439 p_lookup_type => 'XLA_OWNER_TYPE'
39440 ,p_lookup_code => l_component_type_code
39441 )
39442 ,p_token_4 => 'PRODUCT_NAME'
39443 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39444 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39448 );
39445 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39446 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39447 ,p_ae_header_id => NULL
39449
39450 IF (C_LEVEL_ERROR>= g_log_level) THEN
39451 trace
39452 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39453 ,p_level => C_LEVEL_ERROR
39454 ,p_module => l_log_module);
39455 END IF;
39456 END IF;
39457 END IF;
39458 --
39459 --
39460 ------------------------------------------------------------------------------------------------
39461 -- 4219869 Business Flow
39462 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39463 -- Prior Entry. Currently, the following code is always generated.
39464 ------------------------------------------------------------------------------------------------
39465 XLA_AE_LINES_PKG.ValidateCurrentLine;
39466
39467 ------------------------------------------------------------------------------------
39468 -- 4219869 Business Flow
39469 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39470 ------------------------------------------------------------------------------------
39471 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39472
39473 ----------------------------------------------------------------------------------
39474 -- 4219869 Business Flow
39475 -- Update journal entry status -- Need to generate this within IF <condition>
39476 ----------------------------------------------------------------------------------
39477 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39478 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39479 ,p_balance_type_code => l_balance_type_code
39480 );
39481
39482 -------------------------------------------------------------------------------------------
39483 -- 4262811 - Generate the Accrual Reversal lines
39484 -------------------------------------------------------------------------------------------
39485 BEGIN
39486 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39487 (g_array_event(p_event_id).array_value_num('header_index'));
39488 IF l_acc_rev_flag IS NULL THEN
39489 l_acc_rev_flag := 'N';
39490 END IF;
39491 EXCEPTION
39492 WHEN OTHERS THEN
39493 l_acc_rev_flag := 'N';
39494 END;
39495 --
39496 IF (l_acc_rev_flag = 'Y') THEN
39497
39498 -- 4645092 ------------------------------------------------------------------------------
39499 -- To allow MPA report to determine if it should generate report process
39500 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39501 ------------------------------------------------------------------------------------------
39502
39503 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39504 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39505 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39506 -- call ADRs
39507 -- Bug 4922099
39508 --
39509 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39510 (NVL(l_actual_upg_option, 'N') = 'O') OR
39511 (NVL(l_enc_upg_option, 'N') = 'O')
39512 )
39513 THEN
39514 NULL;
39515 --
39516 --
39517
39518 l_ccid := AcctDerRule_25(
39519 p_application_id => p_application_id
39520 , p_ae_header_id => l_ae_header_id
39521 , p_source_16 => p_source_16
39522 , p_source_16_meaning => p_source_16_meaning
39523 , p_source_17 => p_source_17
39524 , p_source_18 => p_source_18
39525 , p_source_19 => p_source_19
39526 , p_source_19_meaning => p_source_19_meaning
39527 , p_source_20 => p_source_20
39528 , p_source_29 => p_source_29
39529 , p_source_42 => p_source_42
39530 , p_source_42_meaning => p_source_42_meaning
39531 , x_transaction_coa_id => l_adr_transaction_coa_id
39532 , x_accounting_coa_id => l_adr_accounting_coa_id
39533 , x_value_type_code => l_adr_value_type_code
39534 , p_side => 'NA'
39535 );
39536
39537 xla_ae_lines_pkg.set_ccid(
39538 p_code_combination_id => l_ccid
39539 , p_value_type_code => l_adr_value_type_code
39540 , p_transaction_coa_id => l_adr_transaction_coa_id
39541 , p_accounting_coa_id => l_adr_accounting_coa_id
39542 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39543 , p_adr_type_code => 'S'
39544 , p_component_type => l_component_type
39545 , p_component_code => l_component_code
39546 , p_component_type_code => l_component_type_code
39547 , p_component_appl_id => l_component_appl_id
39548 , p_amb_context_code => l_amb_context_code
39549 , p_side => 'NA'
39550 );
39551
39552
39553 l_segment := AcctDerRule_5(
39554 p_application_id => p_application_id
39555 , p_ae_header_id => l_ae_header_id
39556 , p_source_16 => p_source_16
39557 , p_source_16_meaning => p_source_16_meaning
39561 , p_source_19_meaning => p_source_19_meaning
39558 , p_source_17 => p_source_17
39559 , p_source_18 => p_source_18
39560 , p_source_19 => p_source_19
39562 , p_source_20 => p_source_20
39563 , x_transaction_coa_id => l_adr_transaction_coa_id
39564 , x_accounting_coa_id => l_adr_accounting_coa_id
39565 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39566 , x_flex_value_set_id => l_adr_flex_value_set_id
39567 , x_value_type_code => l_adr_value_type_code
39568 , x_value_combination_id => l_adr_value_combination_id
39569 , x_value_segment_code => l_adr_value_segment_code
39570 , p_side => 'NA'
39571 , p_override_seg_flag => 'Y'
39572 );
39573
39574 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39575
39576 xla_ae_lines_pkg.set_segment(
39577 p_to_segment_code => 'GL_ACCOUNT'
39578 , p_segment_value => l_segment
39579 , p_from_segment_code => l_adr_value_segment_code
39580 , p_from_combination_id => l_adr_value_combination_id
39581 , p_value_type_code => l_adr_value_type_code
39582 , p_transaction_coa_id => l_adr_transaction_coa_id
39583 , p_accounting_coa_id => l_adr_accounting_coa_id
39584 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39585 , p_flex_value_set_id => l_adr_flex_value_set_id
39586 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39587 , p_adr_type_code => 'S'
39588 , p_component_type => l_component_type
39589 , p_component_code => l_component_code
39590 , p_component_type_code => l_component_type_code
39591 , p_component_appl_id => l_component_appl_id
39592 , p_amb_context_code => l_amb_context_code
39593 , p_entity_code => 'AP_INVOICES'
39594 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39595 , p_side => 'NA'
39596 );
39597
39598 END IF;
39599
39600 l_segment := AcctDerRule_17(
39601 p_application_id => p_application_id
39602 , p_ae_header_id => l_ae_header_id
39603 , p_source_16 => p_source_16
39604 , p_source_16_meaning => p_source_16_meaning
39605 , p_source_19 => p_source_19
39606 , p_source_19_meaning => p_source_19_meaning
39607 , p_source_29 => p_source_29
39608 , x_transaction_coa_id => l_adr_transaction_coa_id
39609 , x_accounting_coa_id => l_adr_accounting_coa_id
39610 , x_flexfield_segment_code => l_adr_flexfield_segment_code
39611 , x_flex_value_set_id => l_adr_flex_value_set_id
39612 , x_value_type_code => l_adr_value_type_code
39613 , x_value_combination_id => l_adr_value_combination_id
39614 , x_value_segment_code => l_adr_value_segment_code
39615 , p_side => 'NA'
39616 , p_override_seg_flag => 'Y'
39617 );
39618
39619 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
39620
39621 xla_ae_lines_pkg.set_segment(
39622 p_to_segment_code => 'GL_BALANCING'
39623 , p_segment_value => l_segment
39624 , p_from_segment_code => l_adr_value_segment_code
39625 , p_from_combination_id => l_adr_value_combination_id
39626 , p_value_type_code => l_adr_value_type_code
39627 , p_transaction_coa_id => l_adr_transaction_coa_id
39628 , p_accounting_coa_id => l_adr_accounting_coa_id
39629 , p_flexfield_segment_code => l_adr_flexfield_segment_code
39630 , p_flex_value_set_id => l_adr_flex_value_set_id
39631 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
39632 , p_adr_type_code => 'S'
39633 , p_component_type => l_component_type
39634 , p_component_code => l_component_code
39635 , p_component_type_code => l_component_type_code
39636 , p_component_appl_id => l_component_appl_id
39637 , p_amb_context_code => l_amb_context_code
39638 , p_entity_code => 'AP_INVOICES'
39639 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
39640 , p_side => 'NA'
39641 );
39642
39643 END IF;
39644
39645 --
39646 --
39647 END IF;
39648
39649 --
39650 -- Update the line information that should be overwritten
39651 --
39652 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39653 p_header_num => 1);
39654 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39655
39656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39657
39658 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39659 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39660 END IF;
39661
39662 --
39663 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39664 --
39665 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39666 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39667 ELSE
39671 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39668 ---------------------------------------------------------------------------------------------------
39669 -- 4262811a Switch Sign
39670 ---------------------------------------------------------------------------------------------------
39672 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39673 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39674 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39675 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39676 -- 5132302
39677 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39678 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39679
39680 END IF;
39681
39682 -- 4955764
39683 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39684 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39685
39686
39687 XLA_AE_LINES_PKG.ValidateCurrentLine;
39688 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39689
39690 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39691 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39692 ,p_balance_type_code => l_balance_type_code);
39693
39694 END IF;
39695
39696 -----------------------------------------------------------------------------------------
39697 -- 4262811 Multiperiod Accounting
39698 -----------------------------------------------------------------------------------------
39699 -- No MPA option is assigned.
39700
39701
39702 END IF;
39703 END IF;
39704 --
39705
39706 --
39707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39708 trace
39709 (p_msg => 'END of AcctLineType_83'
39710 ,p_level => C_LEVEL_PROCEDURE
39711 ,p_module => l_log_module);
39712 END IF;
39713 --
39714 EXCEPTION
39715 WHEN xla_exceptions_pkg.application_exception THEN
39716 RAISE;
39717 WHEN OTHERS THEN
39718 xla_exceptions_pkg.raise_message
39719 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_83');
39720 END AcctLineType_83;
39721 --
39722
39723 ---------------------------------------
39724 --
39725 -- PRIVATE FUNCTION
39726 -- AcctLineType_84
39727 --
39728 ---------------------------------------
39729 PROCEDURE AcctLineType_84 (
39730 p_application_id IN NUMBER
39731 ,p_event_id IN NUMBER
39732 ,p_calculate_acctd_flag IN VARCHAR2
39733 ,p_calculate_g_l_flag IN VARCHAR2
39734 ,p_actual_flag IN OUT VARCHAR2
39735 ,p_balance_type_code OUT VARCHAR2
39736 ,p_gain_or_loss_ref OUT VARCHAR2
39737
39738 --Payment Currency Code
39739 , p_source_12 IN VARCHAR2
39740 --Automatic Offsets Value
39741 , p_source_16 IN VARCHAR2
39742 , p_source_16_meaning IN VARCHAR2
39743 --Purchase Order Rate Variance Gain Account
39744 , p_source_17 IN NUMBER
39745 --Destination Type of the PO Distribution
39746 , p_source_19 IN VARCHAR2
39747 , p_source_19_meaning IN VARCHAR2
39748 --Purchase Order Rate Variance Loss Account
39749 , p_source_20 IN NUMBER
39750 --Payment Distribution (Payment Rate) Ledger Amount
39751 , p_source_21 IN NUMBER
39752 --Payment Distribution (Cleared Rate) Ledger Amount
39753 , p_source_22 IN NUMBER
39754 --Invoice Distribution Account
39755 , p_source_29 IN NUMBER
39756 --Automatic Offsets Flag
39757 , p_source_42 IN VARCHAR2
39758 , p_source_42_meaning IN VARCHAR2
39759 --When to Account for Payment Option
39760 , p_source_50 IN VARCHAR2
39761 --Payment Distribution Type
39762 , p_source_51 IN VARCHAR2
39763 , p_source_51_meaning IN VARCHAR2
39764 --Accounting Reversal Indicator
39765 , p_source_52 IN VARCHAR2
39766 --Payment Distribution Amount
39767 , p_source_53 IN NUMBER
39768 --Business Flow Accounts Payable Application Identifier
39769 , p_source_54 IN NUMBER
39770 --Payment Distribution Identifier
39771 , p_source_59 IN NUMBER
39772 --Distribution Link Type
39773 , p_source_60 IN VARCHAR2
39774 --Override Accounted Amount Indicator
39775 , p_source_64 IN VARCHAR2
39776 , p_source_64_meaning IN VARCHAR2
39777 --Payment Supplier Identifier
39778 , p_source_65 IN NUMBER
39779 --Payment Supplier Site Identifier
39780 , p_source_66 IN NUMBER
39781 --Third Party Type
39782 , p_source_67 IN VARCHAR2
39783 --Payment Distribution Reversed Identifier
39784 , p_source_68 IN NUMBER
39785 --Invoice Distribution Tax Line Identifier
39786 , p_source_69 IN NUMBER
39787 --Invoice Distribution Summary Tax Line Identifier
39788 , p_source_70 IN NUMBER
39789 --Payment Type
39790 , p_source_71 IN VARCHAR2
39791 , p_source_71_meaning IN VARCHAR2
39792 --Business Flow Invoice Distribution Type
39793 , p_source_73 IN VARCHAR2
39797 , p_source_75 IN NUMBER
39794 --Business Flow Invoice Entity Code
39795 , p_source_74 IN VARCHAR2
39796 --Business Flow Invoice Distribution Identifier
39798 --Business Flow Invoice Identifier
39799 , p_source_76 IN NUMBER
39800 --Invoice Distribution Tax Distribution Identifier from Tax
39801 , p_source_77 IN NUMBER
39802 --Accrue on Receipt Option
39803 , p_source_111 IN VARCHAR2
39804 , p_source_111_meaning IN VARCHAR2
39805 --Payment Exchange Date
39806 , p_source_121 IN DATE
39807 --Payment Exchange Rate
39808 , p_source_122 IN NUMBER
39809 --Payment Exchange Rate Type
39810 , p_source_123 IN VARCHAR2
39811 )
39812 IS
39813
39814 l_component_type VARCHAR2(80);
39815 l_component_code VARCHAR2(30);
39816 l_component_type_code VARCHAR2(1);
39817 l_component_appl_id INTEGER;
39818 l_amb_context_code VARCHAR2(30);
39819 l_entity_code VARCHAR2(30);
39820 l_event_class_code VARCHAR2(30);
39821 l_ae_header_id NUMBER;
39822 l_event_type_code VARCHAR2(30);
39823 l_line_definition_code VARCHAR2(30);
39824 l_line_definition_owner_code VARCHAR2(1);
39825 --
39826 -- adr variables
39827 l_segment VARCHAR2(30);
39828 l_ccid NUMBER;
39829 l_adr_transaction_coa_id NUMBER;
39830 l_adr_accounting_coa_id NUMBER;
39831 l_adr_flexfield_segment_code VARCHAR2(30);
39832 l_adr_flex_value_set_id NUMBER;
39833 l_adr_value_type_code VARCHAR2(30);
39834 l_adr_value_combination_id NUMBER;
39835 l_adr_value_segment_code VARCHAR2(30);
39836
39837 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39838 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39839 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39840 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39841
39842 -- 4262811 Variables ------------------------------------------------------------------------------------------
39843 l_entered_amt_idx NUMBER;
39844 l_accted_amt_idx NUMBER;
39845 l_acc_rev_flag VARCHAR2(1);
39846 l_accrual_line_num NUMBER;
39847 l_tmp_amt NUMBER;
39848 l_acc_rev_natural_side_code VARCHAR2(1);
39849
39850 l_num_entries NUMBER;
39851 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39852 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39853 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39854 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39855 l_recog_line_1 NUMBER;
39856 l_recog_line_2 NUMBER;
39857
39858 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39859 l_bflow_applied_to_amt NUMBER; -- 5132302
39860 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39861
39862 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39863
39864 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39865 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39866
39867 ---------------------------------------------------------------------------------------------------------------
39868
39869
39870 --
39871 -- bulk performance
39872 --
39873 l_balance_type_code VARCHAR2(1);
39874 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39875 l_log_module VARCHAR2(240);
39876
39877 --
39878 -- Upgrade strategy
39879 --
39880 l_actual_upg_option VARCHAR2(1);
39881 l_enc_upg_option VARCHAR2(1);
39882
39883 --
39884 BEGIN
39885 --
39886 IF g_log_enabled THEN
39887 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39888 END IF;
39889 --
39890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39891
39892 trace
39893 (p_msg => 'BEGIN of AcctLineType_84'
39894 ,p_level => C_LEVEL_PROCEDURE
39895 ,p_module => l_log_module);
39896
39897 END IF;
39898 --
39899 l_component_type := 'AMB_JLT';
39900 l_component_code := 'AP_EX_RATE_VAR_REF';
39901 l_component_type_code := 'S';
39902 l_component_appl_id := 200;
39903 l_amb_context_code := 'DEFAULT';
39904 l_entity_code := 'AP_PAYMENTS';
39905 l_event_class_code := 'REFUNDS';
39906 l_event_type_code := 'REFUNDS_ALL';
39907 l_line_definition_owner_code := 'S';
39908 l_line_definition_code := 'CASH_REFUNDS_ALL';
39909 --
39910 l_balance_type_code := 'A';
39911 l_segment := NULL;
39912 l_ccid := NULL;
39913 l_adr_transaction_coa_id := NULL;
39914 l_adr_accounting_coa_id := NULL;
39915 l_adr_flexfield_segment_code := NULL;
39916 l_adr_flex_value_set_id := NULL;
39917 l_adr_value_type_code := NULL;
39918 l_adr_value_combination_id := NULL;
39919 l_adr_value_segment_code := NULL;
39920
39921 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39922 l_bflow_class_code := ''; -- 4219869 Business Flow
39926 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39923 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39924 l_budgetary_control_flag := 'N';
39925
39927 l_bflow_applied_to_amt := NULL; -- 5132302
39928 l_entered_amt_idx := NULL; -- 4262811
39929 l_accted_amt_idx := NULL; -- 4262811
39930 l_acc_rev_flag := NULL; -- 4262811
39931 l_accrual_line_num := NULL; -- 4262811
39932 l_tmp_amt := NULL; -- 4262811
39933 --
39934 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39935 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
39936 return;
39937 END IF;
39938
39939 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39940 l_balance_type_code <> 'B' THEN
39941 IF NVL(p_source_50,'
39942 ') <> 'CLEAR_CLEAR' AND
39943 NVL(p_source_51,'
39944 ') = 'EXCHANGE RATE VARIANCE' AND
39945 NVL(p_source_111,'
39946 ') = 'Y' AND
39947 NVL(p_source_71,'
39948 ') = 'R'
39949 THEN
39950
39951 --
39952 XLA_AE_LINES_PKG.SetNewLine;
39953
39954 p_balance_type_code := l_balance_type_code;
39955 -- set the flag so later we will know whether the gain loss line needs to be created
39956
39957 IF(l_balance_type_code = 'A' ) THEN
39958 p_actual_flag :='G';
39959 END IF;
39960
39961 --
39962 -- bulk performance
39963 --
39964 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39965 p_header_num => 0); -- 4262811
39966 --
39967 -- set accounting line options
39968 --
39969 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39970 p_natural_side_code => 'D'
39971 , p_gain_or_loss_flag => 'Y'
39972 , p_gl_transfer_mode_code => 'S'
39973 , p_acct_entry_type_code => 'A'
39974 , p_switch_side_flag => 'Y'
39975 , p_merge_duplicate_code => 'A'
39976 );
39977 --
39978 l_acc_rev_natural_side_code := 'C'; -- 4262811
39979 --
39980 --
39981 -- set accounting line type info
39982 --
39983 xla_ae_lines_pkg.SetAcctLineType
39984 (p_component_type => l_component_type
39985 ,p_event_type_code => l_event_type_code
39986 ,p_line_definition_owner_code => l_line_definition_owner_code
39987 ,p_line_definition_code => l_line_definition_code
39988 ,p_accounting_line_code => l_component_code
39989 ,p_accounting_line_type_code => l_component_type_code
39990 ,p_accounting_line_appl_id => l_component_appl_id
39991 ,p_amb_context_code => l_amb_context_code
39992 ,p_entity_code => l_entity_code
39993 ,p_event_class_code => l_event_class_code);
39994 --
39995 -- set accounting class
39996 --
39997 xla_ae_lines_pkg.SetAcctClass(
39998 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
39999 , p_ae_header_id => l_ae_header_id
40000 );
40001
40002 --
40003 -- set rounding class
40004 --
40005 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40006 'EXCHANGE_RATE_VARIANCE';
40007
40008 --
40009 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40010 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40011 --
40012 -- bulk performance
40013 --
40014 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40015
40016 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40017 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40018
40019 -- 4955764
40020 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40021 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40022
40023 -- 4458381 Public Sector Enh
40024
40025 --
40026 -- set accounting attributes for the line type
40027 --
40028 l_entered_amt_idx := 9;
40029 l_accted_amt_idx := 14;
40030 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40031 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40032 l_rec_acct_attrs.array_char_value(1) := p_source_52;
40033 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40034 l_rec_acct_attrs.array_num_value(2) := p_source_54;
40035 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40036 l_rec_acct_attrs.array_char_value(3) := p_source_73;
40037 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40038 l_rec_acct_attrs.array_char_value(4) := p_source_74;
40039 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40040 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
40041 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40045 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40042 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
40043 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40044 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
40046 l_rec_acct_attrs.array_char_value(8) := p_source_60;
40047 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40048 l_rec_acct_attrs.array_num_value(9) := p_source_53;
40049 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40050 l_rec_acct_attrs.array_char_value(10) := p_source_12;
40051 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40052 l_rec_acct_attrs.array_date_value(11) := p_source_121;
40053 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40054 l_rec_acct_attrs.array_num_value(12) := p_source_122;
40055 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40056 l_rec_acct_attrs.array_char_value(13) := p_source_123;
40057 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40058 l_rec_acct_attrs.array_num_value(14) := p_source_21;
40059 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40060 l_rec_acct_attrs.array_char_value(15) := p_source_64;
40061 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40062 l_rec_acct_attrs.array_num_value(16) := p_source_65;
40063 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40064 l_rec_acct_attrs.array_num_value(17) := p_source_66;
40065 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40066 l_rec_acct_attrs.array_char_value(18) := p_source_67;
40067 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40068 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
40069 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40070 l_rec_acct_attrs.array_char_value(20) := p_source_60;
40071 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
40072 l_rec_acct_attrs.array_num_value(21) := p_source_69;
40073 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
40074 l_rec_acct_attrs.array_num_value(22) := p_source_77;
40075 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
40076 l_rec_acct_attrs.array_num_value(23) := p_source_70;
40077
40078 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40079 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40080
40081 ---------------------------------------------------------------------------------------------------------------
40082 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40083 ---------------------------------------------------------------------------------------------------------------
40084 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40085
40086 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40087 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40088
40089 IF xla_accounting_cache_pkg.GetValueChar
40090 (p_source_code => 'LEDGER_CATEGORY_CODE'
40091 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40092 AND l_bflow_method_code = 'PRIOR_ENTRY'
40093 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40094 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40095 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40096 )
40097 THEN
40098 xla_ae_lines_pkg.BflowUpgEntry
40099 (p_business_method_code => l_bflow_method_code
40100 ,p_business_class_code => l_bflow_class_code
40101 ,p_balance_type => l_balance_type_code);
40102 ELSE
40103 NULL;
40104 -- No business flow processing for business flow method of NONE.
40105 END IF;
40106
40107 --
40108 -- call analytical criteria
40109 --
40110
40111 --
40112 -- call description
40113 --
40114 -- No description or it is inherited.
40115 --
40116 -- call ADRs
40117 -- Bug 4922099
40118 --
40119 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40120 (NVL(l_actual_upg_option, 'N') = 'O') OR
40121 (NVL(l_enc_upg_option, 'N') = 'O')
40122 )
40123 THEN
40124 NULL;
40125 --
40126 --
40127
40128 l_ccid := AcctDerRule_24(
40129 p_application_id => p_application_id
40130 , p_ae_header_id => l_ae_header_id
40131 , p_source_16 => p_source_16
40132 , p_source_16_meaning => p_source_16_meaning
40133 , p_source_17 => p_source_17
40134 , p_source_19 => p_source_19
40135 , p_source_19_meaning => p_source_19_meaning
40136 , p_source_20 => p_source_20
40137 , p_source_21 => p_source_21
40138 , p_source_22 => p_source_22
40139 , p_source_29 => p_source_29
40140 , p_source_42 => p_source_42
40141 , p_source_42_meaning => p_source_42_meaning
40142 , x_transaction_coa_id => l_adr_transaction_coa_id
40143 , x_accounting_coa_id => l_adr_accounting_coa_id
40144 , x_value_type_code => l_adr_value_type_code
40145 , p_side => 'NA'
40146 );
40147
40148 xla_ae_lines_pkg.set_ccid(
40149 p_code_combination_id => l_ccid
40153 , p_adr_code => 'AP_ERV_TAXERV_CASH'
40150 , p_value_type_code => l_adr_value_type_code
40151 , p_transaction_coa_id => l_adr_transaction_coa_id
40152 , p_accounting_coa_id => l_adr_accounting_coa_id
40154 , p_adr_type_code => 'S'
40155 , p_component_type => l_component_type
40156 , p_component_code => l_component_code
40157 , p_component_type_code => l_component_type_code
40158 , p_component_appl_id => l_component_appl_id
40159 , p_amb_context_code => l_amb_context_code
40160 , p_side => 'NA'
40161 );
40162
40163
40164 l_segment := AcctDerRule_6(
40165 p_application_id => p_application_id
40166 , p_ae_header_id => l_ae_header_id
40167 , p_source_16 => p_source_16
40168 , p_source_16_meaning => p_source_16_meaning
40169 , p_source_17 => p_source_17
40170 , p_source_19 => p_source_19
40171 , p_source_19_meaning => p_source_19_meaning
40172 , p_source_20 => p_source_20
40173 , p_source_21 => p_source_21
40174 , p_source_22 => p_source_22
40175 , x_transaction_coa_id => l_adr_transaction_coa_id
40176 , x_accounting_coa_id => l_adr_accounting_coa_id
40177 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40178 , x_flex_value_set_id => l_adr_flex_value_set_id
40179 , x_value_type_code => l_adr_value_type_code
40180 , x_value_combination_id => l_adr_value_combination_id
40181 , x_value_segment_code => l_adr_value_segment_code
40182 , p_side => 'NA'
40183 , p_override_seg_flag => 'Y'
40184 );
40185
40186 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40187
40188 xla_ae_lines_pkg.set_segment(
40189 p_to_segment_code => 'GL_ACCOUNT'
40190 , p_segment_value => l_segment
40191 , p_from_segment_code => l_adr_value_segment_code
40192 , p_from_combination_id => l_adr_value_combination_id
40193 , p_value_type_code => l_adr_value_type_code
40194 , p_transaction_coa_id => l_adr_transaction_coa_id
40195 , p_accounting_coa_id => l_adr_accounting_coa_id
40196 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40197 , p_flex_value_set_id => l_adr_flex_value_set_id
40198 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
40199 , p_adr_type_code => 'S'
40200 , p_component_type => l_component_type
40201 , p_component_code => l_component_code
40202 , p_component_type_code => l_component_type_code
40203 , p_component_appl_id => l_component_appl_id
40204 , p_amb_context_code => l_amb_context_code
40205 , p_entity_code => 'AP_PAYMENTS'
40206 , p_event_class_code => 'REFUNDS'
40207 , p_side => 'NA'
40208 );
40209
40210 END IF;
40211
40212 l_segment := AcctDerRule_17(
40213 p_application_id => p_application_id
40214 , p_ae_header_id => l_ae_header_id
40215 , p_source_16 => p_source_16
40216 , p_source_16_meaning => p_source_16_meaning
40217 , p_source_19 => p_source_19
40218 , p_source_19_meaning => p_source_19_meaning
40219 , p_source_29 => p_source_29
40220 , x_transaction_coa_id => l_adr_transaction_coa_id
40221 , x_accounting_coa_id => l_adr_accounting_coa_id
40222 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40223 , x_flex_value_set_id => l_adr_flex_value_set_id
40224 , x_value_type_code => l_adr_value_type_code
40225 , x_value_combination_id => l_adr_value_combination_id
40226 , x_value_segment_code => l_adr_value_segment_code
40227 , p_side => 'NA'
40228 , p_override_seg_flag => 'Y'
40229 );
40230
40231 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40232
40233 xla_ae_lines_pkg.set_segment(
40234 p_to_segment_code => 'GL_BALANCING'
40235 , p_segment_value => l_segment
40236 , p_from_segment_code => l_adr_value_segment_code
40237 , p_from_combination_id => l_adr_value_combination_id
40238 , p_value_type_code => l_adr_value_type_code
40239 , p_transaction_coa_id => l_adr_transaction_coa_id
40240 , p_accounting_coa_id => l_adr_accounting_coa_id
40241 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40242 , p_flex_value_set_id => l_adr_flex_value_set_id
40243 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
40244 , p_adr_type_code => 'S'
40245 , p_component_type => l_component_type
40246 , p_component_code => l_component_code
40247 , p_component_type_code => l_component_type_code
40248 , p_component_appl_id => l_component_appl_id
40249 , p_amb_context_code => l_amb_context_code
40250 , p_entity_code => 'AP_PAYMENTS'
40251 , p_event_class_code => 'REFUNDS'
40252 , p_side => 'NA'
40253 );
40254
40255 END IF;
40256
40257 --
40258 --
40259 END IF;
40260 --
40261 -- Bug 4922099
40265 (l_bflow_method_code = 'PRIOR_ENTRY')
40262 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40263 (NVL(l_enc_upg_option, 'N') = 'O')
40264 ) AND
40266 )
40267 THEN
40268 IF
40269 --
40270 1 = 2
40271 --
40272 THEN
40273 xla_accounting_err_pkg.build_message
40274 (p_appli_s_name => 'XLA'
40275 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40276 ,p_token_1 => 'LINE_NUMBER'
40277 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40278 ,p_token_2 => 'LINE_TYPE_NAME'
40279 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40280 l_component_type
40281 ,l_component_code
40282 ,l_component_type_code
40283 ,l_component_appl_id
40284 ,l_amb_context_code
40285 ,l_entity_code
40286 ,l_event_class_code
40287 )
40288 ,p_token_3 => 'OWNER'
40289 ,p_value_3 => xla_lookups_pkg.get_meaning(
40290 p_lookup_type => 'XLA_OWNER_TYPE'
40291 ,p_lookup_code => l_component_type_code
40292 )
40293 ,p_token_4 => 'PRODUCT_NAME'
40294 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40295 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40296 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40297 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40298 ,p_ae_header_id => NULL
40299 );
40300
40301 IF (C_LEVEL_ERROR>= g_log_level) THEN
40302 trace
40303 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40304 ,p_level => C_LEVEL_ERROR
40305 ,p_module => l_log_module);
40306 END IF;
40307 END IF;
40308 END IF;
40309 --
40310 --
40311 ------------------------------------------------------------------------------------------------
40312 -- 4219869 Business Flow
40313 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40314 -- Prior Entry. Currently, the following code is always generated.
40315 ------------------------------------------------------------------------------------------------
40316 XLA_AE_LINES_PKG.ValidateCurrentLine;
40317
40318 ------------------------------------------------------------------------------------
40319 -- 4219869 Business Flow
40320 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40321 ------------------------------------------------------------------------------------
40322 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40323
40324 ----------------------------------------------------------------------------------
40325 -- 4219869 Business Flow
40326 -- Update journal entry status -- Need to generate this within IF <condition>
40327 ----------------------------------------------------------------------------------
40328 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40329 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40330 ,p_balance_type_code => l_balance_type_code
40331 );
40332
40333 -------------------------------------------------------------------------------------------
40334 -- 4262811 - Generate the Accrual Reversal lines
40335 -------------------------------------------------------------------------------------------
40336 BEGIN
40337 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40338 (g_array_event(p_event_id).array_value_num('header_index'));
40339 IF l_acc_rev_flag IS NULL THEN
40340 l_acc_rev_flag := 'N';
40341 END IF;
40342 EXCEPTION
40343 WHEN OTHERS THEN
40344 l_acc_rev_flag := 'N';
40345 END;
40346 --
40347 IF (l_acc_rev_flag = 'Y') THEN
40348
40349 -- 4645092 ------------------------------------------------------------------------------
40350 -- To allow MPA report to determine if it should generate report process
40351 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40352 ------------------------------------------------------------------------------------------
40353
40354 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40355 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40359 --
40356 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
40357 -- call ADRs
40358 -- Bug 4922099
40360 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40361 (NVL(l_actual_upg_option, 'N') = 'O') OR
40362 (NVL(l_enc_upg_option, 'N') = 'O')
40363 )
40364 THEN
40365 NULL;
40366 --
40367 --
40368
40369 l_ccid := AcctDerRule_24(
40370 p_application_id => p_application_id
40371 , p_ae_header_id => l_ae_header_id
40372 , p_source_16 => p_source_16
40373 , p_source_16_meaning => p_source_16_meaning
40374 , p_source_17 => p_source_17
40375 , p_source_19 => p_source_19
40376 , p_source_19_meaning => p_source_19_meaning
40377 , p_source_20 => p_source_20
40378 , p_source_21 => p_source_21
40379 , p_source_22 => p_source_22
40380 , p_source_29 => p_source_29
40381 , p_source_42 => p_source_42
40382 , p_source_42_meaning => p_source_42_meaning
40383 , x_transaction_coa_id => l_adr_transaction_coa_id
40384 , x_accounting_coa_id => l_adr_accounting_coa_id
40385 , x_value_type_code => l_adr_value_type_code
40386 , p_side => 'NA'
40387 );
40388
40389 xla_ae_lines_pkg.set_ccid(
40390 p_code_combination_id => l_ccid
40391 , p_value_type_code => l_adr_value_type_code
40392 , p_transaction_coa_id => l_adr_transaction_coa_id
40393 , p_accounting_coa_id => l_adr_accounting_coa_id
40394 , p_adr_code => 'AP_ERV_TAXERV_CASH'
40395 , p_adr_type_code => 'S'
40396 , p_component_type => l_component_type
40397 , p_component_code => l_component_code
40398 , p_component_type_code => l_component_type_code
40399 , p_component_appl_id => l_component_appl_id
40400 , p_amb_context_code => l_amb_context_code
40401 , p_side => 'NA'
40402 );
40403
40404
40405 l_segment := AcctDerRule_6(
40406 p_application_id => p_application_id
40407 , p_ae_header_id => l_ae_header_id
40408 , p_source_16 => p_source_16
40409 , p_source_16_meaning => p_source_16_meaning
40410 , p_source_17 => p_source_17
40411 , p_source_19 => p_source_19
40412 , p_source_19_meaning => p_source_19_meaning
40413 , p_source_20 => p_source_20
40414 , p_source_21 => p_source_21
40415 , p_source_22 => p_source_22
40416 , x_transaction_coa_id => l_adr_transaction_coa_id
40417 , x_accounting_coa_id => l_adr_accounting_coa_id
40418 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40419 , x_flex_value_set_id => l_adr_flex_value_set_id
40420 , x_value_type_code => l_adr_value_type_code
40421 , x_value_combination_id => l_adr_value_combination_id
40422 , x_value_segment_code => l_adr_value_segment_code
40423 , p_side => 'NA'
40424 , p_override_seg_flag => 'Y'
40425 );
40426
40427 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40428
40429 xla_ae_lines_pkg.set_segment(
40430 p_to_segment_code => 'GL_ACCOUNT'
40431 , p_segment_value => l_segment
40432 , p_from_segment_code => l_adr_value_segment_code
40433 , p_from_combination_id => l_adr_value_combination_id
40434 , p_value_type_code => l_adr_value_type_code
40435 , p_transaction_coa_id => l_adr_transaction_coa_id
40436 , p_accounting_coa_id => l_adr_accounting_coa_id
40437 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40438 , p_flex_value_set_id => l_adr_flex_value_set_id
40439 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
40440 , p_adr_type_code => 'S'
40441 , p_component_type => l_component_type
40442 , p_component_code => l_component_code
40443 , p_component_type_code => l_component_type_code
40444 , p_component_appl_id => l_component_appl_id
40445 , p_amb_context_code => l_amb_context_code
40446 , p_entity_code => 'AP_PAYMENTS'
40447 , p_event_class_code => 'REFUNDS'
40448 , p_side => 'NA'
40449 );
40450
40451 END IF;
40452
40453 l_segment := AcctDerRule_17(
40454 p_application_id => p_application_id
40455 , p_ae_header_id => l_ae_header_id
40456 , p_source_16 => p_source_16
40457 , p_source_16_meaning => p_source_16_meaning
40458 , p_source_19 => p_source_19
40459 , p_source_19_meaning => p_source_19_meaning
40460 , p_source_29 => p_source_29
40461 , x_transaction_coa_id => l_adr_transaction_coa_id
40462 , x_accounting_coa_id => l_adr_accounting_coa_id
40463 , x_flexfield_segment_code => l_adr_flexfield_segment_code
40464 , x_flex_value_set_id => l_adr_flex_value_set_id
40465 , x_value_type_code => l_adr_value_type_code
40466 , x_value_combination_id => l_adr_value_combination_id
40467 , x_value_segment_code => l_adr_value_segment_code
40468 , p_side => 'NA'
40469 , p_override_seg_flag => 'Y'
40470 );
40471
40475 p_to_segment_code => 'GL_BALANCING'
40472 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
40473
40474 xla_ae_lines_pkg.set_segment(
40476 , p_segment_value => l_segment
40477 , p_from_segment_code => l_adr_value_segment_code
40478 , p_from_combination_id => l_adr_value_combination_id
40479 , p_value_type_code => l_adr_value_type_code
40480 , p_transaction_coa_id => l_adr_transaction_coa_id
40481 , p_accounting_coa_id => l_adr_accounting_coa_id
40482 , p_flexfield_segment_code => l_adr_flexfield_segment_code
40483 , p_flex_value_set_id => l_adr_flex_value_set_id
40484 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
40485 , p_adr_type_code => 'S'
40486 , p_component_type => l_component_type
40487 , p_component_code => l_component_code
40488 , p_component_type_code => l_component_type_code
40489 , p_component_appl_id => l_component_appl_id
40490 , p_amb_context_code => l_amb_context_code
40491 , p_entity_code => 'AP_PAYMENTS'
40492 , p_event_class_code => 'REFUNDS'
40493 , p_side => 'NA'
40494 );
40495
40496 END IF;
40497
40498 --
40499 --
40500 END IF;
40501
40502 --
40503 -- Update the line information that should be overwritten
40504 --
40505 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40506 p_header_num => 1);
40507 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40508
40509 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40510
40511 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40512 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40513 END IF;
40514
40515 --
40516 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40517 --
40518 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40519 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40520 ELSE
40521 ---------------------------------------------------------------------------------------------------
40522 -- 4262811a Switch Sign
40523 ---------------------------------------------------------------------------------------------------
40524 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40525 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40526 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40527 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40528 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40529 -- 5132302
40530 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40531 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40532
40533 END IF;
40534
40535 -- 4955764
40536 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40537 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40538
40539
40540 XLA_AE_LINES_PKG.ValidateCurrentLine;
40541 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40542
40543 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40544 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40545 ,p_balance_type_code => l_balance_type_code);
40546
40547 END IF;
40548
40549 -----------------------------------------------------------------------------------------
40550 -- 4262811 Multiperiod Accounting
40551 -----------------------------------------------------------------------------------------
40552 -- No MPA option is assigned.
40553
40554
40555 END IF;
40556 END IF;
40557 --
40558
40559 --
40560 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40561 trace
40562 (p_msg => 'END of AcctLineType_84'
40563 ,p_level => C_LEVEL_PROCEDURE
40564 ,p_module => l_log_module);
40565 END IF;
40566 --
40567 EXCEPTION
40568 WHEN xla_exceptions_pkg.application_exception THEN
40569 RAISE;
40570 WHEN OTHERS THEN
40571 xla_exceptions_pkg.raise_message
40572 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_84');
40573 END AcctLineType_84;
40574 --
40575
40576 ---------------------------------------
40577 --
40578 -- PRIVATE FUNCTION
40579 -- AcctLineType_85
40580 --
40581 ---------------------------------------
40582 PROCEDURE AcctLineType_85 (
40583 p_application_id IN NUMBER
40584 ,p_event_id IN NUMBER
40585 ,p_calculate_acctd_flag IN VARCHAR2
40586 ,p_calculate_g_l_flag IN VARCHAR2
40587 ,p_actual_flag IN OUT VARCHAR2
40588 ,p_balance_type_code OUT VARCHAR2
40592 , p_source_16 IN VARCHAR2
40589 ,p_gain_or_loss_ref OUT VARCHAR2
40590
40591 --Automatic Offsets Value
40593 , p_source_16_meaning IN VARCHAR2
40594 --Invoice Distribution Account
40595 , p_source_29 IN NUMBER
40596 --Payables Options Rounding Account
40597 , p_source_49 IN NUMBER
40598 --When to Account for Payment Option
40599 , p_source_50 IN VARCHAR2
40600 --Accounting Reversal Indicator
40601 , p_source_52 IN VARCHAR2
40602 --Business Flow Accounts Payable Application Identifier
40603 , p_source_54 IN NUMBER
40604 --Distribution Link Type
40605 , p_source_60 IN VARCHAR2
40606 --Override Accounted Amount Indicator
40607 , p_source_64 IN VARCHAR2
40608 , p_source_64_meaning IN VARCHAR2
40609 --Third Party Type
40610 , p_source_67 IN VARCHAR2
40611 --Invoice Distribution Tax Line Identifier
40612 , p_source_69 IN NUMBER
40613 --Invoice Distribution Summary Tax Line Identifier
40614 , p_source_70 IN NUMBER
40615 --Invoice Distribution Tax Distribution Identifier from Tax
40616 , p_source_77 IN NUMBER
40617 --Prepayment Distribution Type
40618 , p_source_78 IN VARCHAR2
40619 --Prepayment Application Distribution Identifier
40620 , p_source_82 IN NUMBER
40621 --Invoice Identifier
40622 , p_source_83 IN NUMBER
40623 --Business Flow Prepayment Invoice Distribution Type
40624 , p_source_84 IN VARCHAR2
40625 --Business Flow Prepayment Invoice Entity Code
40626 , p_source_85 IN VARCHAR2
40627 --Business Flow Prepayment Invoice Distribution Identifier
40628 , p_source_86 IN NUMBER
40629 --Business Flow Prepayment Invoice Identifier
40630 , p_source_87 IN NUMBER
40631 --Upgrade Encumbrance Credit Account Class
40632 , p_source_88 IN VARCHAR2
40633 --Payables Encumbrance Upgrade Credit Account
40634 , p_source_89 IN NUMBER
40635 --Payables Encumbrance Upgrade Credit Amount
40636 , p_source_90 IN NUMBER
40637 --Invoice Currency Code
40638 , p_source_91 IN VARCHAR2
40639 --Payables Encumbrance Upgrade Credit Base Amount
40640 , p_source_92 IN NUMBER
40641 --Upgrade Encumbrance Debit Account Class
40642 , p_source_93 IN VARCHAR2
40643 --Payables Encumbrance Upgrade Debit Account
40644 , p_source_94 IN NUMBER
40645 --Payables Encumbrance Upgrade Debit Amount
40646 , p_source_95 IN NUMBER
40647 --Payables Encumbrance Upgrade Debit Base Amount
40648 , p_source_96 IN NUMBER
40649 --Payables Encumbrance Upgrade Option
40650 , p_source_97 IN VARCHAR2
40651 --Prepayment Distribution Amount
40652 , p_source_98 IN NUMBER
40653 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
40654 , p_source_100 IN NUMBER
40655 --Deferred Accounting End Date
40656 , p_source_101 IN DATE
40657 --Deferred Accounting Option
40658 , p_source_102 IN VARCHAR2
40659 --Deferred Accounting Start Date
40660 , p_source_103 IN DATE
40661 --Invoice Supplier Identifier
40662 , p_source_104 IN NUMBER
40663 --Invoice Supplier Site Identifier
40664 , p_source_105 IN NUMBER
40665 --Identifier of the Prepayment Application Reversed
40666 , p_source_106 IN NUMBER
40667 --Payables Upgrade Credit Encumbrance Type Identifier
40668 , p_source_107 IN NUMBER
40669 --Payables Upgrade Debit Encumbrance Type Identifier
40670 , p_source_108 IN NUMBER
40671 --Invoice Exchange Date
40672 , p_source_131 IN DATE
40673 --Invoice Exchange Rate
40674 , p_source_132 IN NUMBER
40675 --Invoice Exchange Rate Type
40676 , p_source_133 IN VARCHAR2
40677 )
40678 IS
40679
40680 l_component_type VARCHAR2(80);
40681 l_component_code VARCHAR2(30);
40682 l_component_type_code VARCHAR2(1);
40683 l_component_appl_id INTEGER;
40684 l_amb_context_code VARCHAR2(30);
40685 l_entity_code VARCHAR2(30);
40686 l_event_class_code VARCHAR2(30);
40687 l_ae_header_id NUMBER;
40688 l_event_type_code VARCHAR2(30);
40689 l_line_definition_code VARCHAR2(30);
40690 l_line_definition_owner_code VARCHAR2(1);
40691 --
40692 -- adr variables
40693 l_segment VARCHAR2(30);
40694 l_ccid NUMBER;
40695 l_adr_transaction_coa_id NUMBER;
40696 l_adr_accounting_coa_id NUMBER;
40697 l_adr_flexfield_segment_code VARCHAR2(30);
40698 l_adr_flex_value_set_id NUMBER;
40699 l_adr_value_type_code VARCHAR2(30);
40700 l_adr_value_combination_id NUMBER;
40701 l_adr_value_segment_code VARCHAR2(30);
40702
40703 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40704 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40705 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40706 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40707
40708 -- 4262811 Variables ------------------------------------------------------------------------------------------
40709 l_entered_amt_idx NUMBER;
40710 l_accted_amt_idx NUMBER;
40711 l_acc_rev_flag VARCHAR2(1);
40712 l_accrual_line_num NUMBER;
40716 l_num_entries NUMBER;
40713 l_tmp_amt NUMBER;
40714 l_acc_rev_natural_side_code VARCHAR2(1);
40715
40717 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40718 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40719 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40720 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40721 l_recog_line_1 NUMBER;
40722 l_recog_line_2 NUMBER;
40723
40724 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40725 l_bflow_applied_to_amt NUMBER; -- 5132302
40726 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40727
40728 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40729
40730 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40731 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40732
40733 ---------------------------------------------------------------------------------------------------------------
40734
40735
40736 --
40737 -- bulk performance
40738 --
40739 l_balance_type_code VARCHAR2(1);
40740 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40741 l_log_module VARCHAR2(240);
40742
40743 --
40744 -- Upgrade strategy
40745 --
40746 l_actual_upg_option VARCHAR2(1);
40747 l_enc_upg_option VARCHAR2(1);
40748
40749 --
40750 BEGIN
40751 --
40752 IF g_log_enabled THEN
40753 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
40754 END IF;
40755 --
40756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40757
40758 trace
40759 (p_msg => 'BEGIN of AcctLineType_85'
40760 ,p_level => C_LEVEL_PROCEDURE
40761 ,p_module => l_log_module);
40762
40763 END IF;
40764 --
40765 l_component_type := 'AMB_JLT';
40766 l_component_code := 'AP_FINAL_APP_ROUND_PP_CLR_RATE';
40767 l_component_type_code := 'S';
40768 l_component_appl_id := 200;
40769 l_amb_context_code := 'DEFAULT';
40770 l_entity_code := 'AP_INVOICES';
40771 l_event_class_code := 'PREPAYMENT APPLICATIONS';
40772 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
40773 l_line_definition_owner_code := 'S';
40774 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
40775 --
40776 l_balance_type_code := 'A';
40777 l_segment := NULL;
40778 l_ccid := NULL;
40779 l_adr_transaction_coa_id := NULL;
40780 l_adr_accounting_coa_id := NULL;
40781 l_adr_flexfield_segment_code := NULL;
40782 l_adr_flex_value_set_id := NULL;
40783 l_adr_value_type_code := NULL;
40784 l_adr_value_combination_id := NULL;
40785 l_adr_value_segment_code := NULL;
40786
40787 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40788 l_bflow_class_code := ''; -- 4219869 Business Flow
40789 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40790 l_budgetary_control_flag := 'N';
40791
40792 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40793 l_bflow_applied_to_amt := NULL; -- 5132302
40794 l_entered_amt_idx := NULL; -- 4262811
40795 l_accted_amt_idx := NULL; -- 4262811
40796 l_acc_rev_flag := NULL; -- 4262811
40797 l_accrual_line_num := NULL; -- 4262811
40798 l_tmp_amt := NULL; -- 4262811
40799 --
40800
40801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40802 l_balance_type_code <> 'B' THEN
40803 IF NVL(p_source_50,'
40804 ') <> 'CLEAR_CLEAR' AND
40805 NVL(p_source_78,'
40806 ') = 'FINAL APPLICATION ROUNDING'
40807 THEN
40808
40809 --
40810 XLA_AE_LINES_PKG.SetNewLine;
40811
40812 p_balance_type_code := l_balance_type_code;
40813 -- set the flag so later we will know whether the gain loss line needs to be created
40814
40815 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40816 p_actual_flag :='A';
40817 END IF;
40818
40819 --
40820 -- bulk performance
40821 --
40822 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40823 p_header_num => 0); -- 4262811
40824 --
40825 -- set accounting line options
40826 --
40827 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40828 p_natural_side_code => 'C'
40829 , p_gain_or_loss_flag => 'N'
40830 , p_gl_transfer_mode_code => 'S'
40831 , p_acct_entry_type_code => 'A'
40832 , p_switch_side_flag => 'Y'
40833 , p_merge_duplicate_code => 'A'
40834 );
40835 --
40836 l_acc_rev_natural_side_code := 'D'; -- 4262811
40837 --
40838 --
40839 -- set accounting line type info
40840 --
40841 xla_ae_lines_pkg.SetAcctLineType
40842 (p_component_type => l_component_type
40843 ,p_event_type_code => l_event_type_code
40844 ,p_line_definition_owner_code => l_line_definition_owner_code
40845 ,p_line_definition_code => l_line_definition_code
40849 ,p_amb_context_code => l_amb_context_code
40846 ,p_accounting_line_code => l_component_code
40847 ,p_accounting_line_type_code => l_component_type_code
40848 ,p_accounting_line_appl_id => l_component_appl_id
40850 ,p_entity_code => l_entity_code
40851 ,p_event_class_code => l_event_class_code);
40852 --
40853 -- set accounting class
40854 --
40855 xla_ae_lines_pkg.SetAcctClass(
40856 p_accounting_class_code => 'ROUNDING'
40857 , p_ae_header_id => l_ae_header_id
40858 );
40859
40860 --
40861 -- set rounding class
40862 --
40863 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40864 'ROUNDING';
40865
40866 --
40867 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40868 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40869 --
40870 -- bulk performance
40871 --
40872 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40873
40874 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40875 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40876
40877 -- 4955764
40878 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40879 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40880
40881 -- 4458381 Public Sector Enh
40882
40883 --
40884 -- set accounting attributes for the line type
40885 --
40886 l_entered_amt_idx := 25;
40887 l_accted_amt_idx := 30;
40888 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40889 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40890 l_rec_acct_attrs.array_char_value(1) := p_source_52;
40891 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40892 l_rec_acct_attrs.array_num_value(2) :=
40893 xla_ae_sources_pkg.GetSystemSourceNum(
40894 p_source_code => 'XLA_EVENT_APPL_ID'
40895 , p_source_type_code => 'Y'
40896 , p_source_application_id => 602
40897 );
40898 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40899 l_rec_acct_attrs.array_char_value(3) := p_source_60;
40900 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40901 l_rec_acct_attrs.array_char_value(4) :=
40902 xla_ae_sources_pkg.GetSystemSourceChar(
40903 p_source_code => 'XLA_ENTITY_CODE'
40904 , p_source_type_code => 'Y'
40905 , p_source_application_id => 602
40906 );
40907 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40908 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
40909 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40910 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
40911 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40912 l_rec_acct_attrs.array_num_value(7) := p_source_54;
40913 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40914 l_rec_acct_attrs.array_char_value(8) := p_source_84;
40915 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40916 l_rec_acct_attrs.array_char_value(9) := p_source_85;
40917 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40918 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
40919 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40920 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
40921 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40922 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
40923 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40924 l_rec_acct_attrs.array_char_value(13) := p_source_60;
40925 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
40926 l_rec_acct_attrs.array_char_value(14) := p_source_88;
40927 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
40928 l_rec_acct_attrs.array_num_value(15) := p_source_89;
40929 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
40930 l_rec_acct_attrs.array_num_value(16) := p_source_90;
40931 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
40932 l_rec_acct_attrs.array_char_value(17) := p_source_91;
40933 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
40934 l_rec_acct_attrs.array_num_value(18) := p_source_92;
40935 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
40936 l_rec_acct_attrs.array_char_value(19) := p_source_93;
40937 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
40938 l_rec_acct_attrs.array_num_value(20) := p_source_94;
40939 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
40940 l_rec_acct_attrs.array_num_value(21) := p_source_95;
40941 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
40942 l_rec_acct_attrs.array_char_value(22) := p_source_91;
40943 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
40944 l_rec_acct_attrs.array_num_value(23) := p_source_96;
40945 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
40946 l_rec_acct_attrs.array_char_value(24) := p_source_97;
40950 l_rec_acct_attrs.array_char_value(26) := p_source_91;
40947 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
40948 l_rec_acct_attrs.array_num_value(25) := p_source_98;
40949 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
40951 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
40952 l_rec_acct_attrs.array_date_value(27) := p_source_131;
40953 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
40954 l_rec_acct_attrs.array_num_value(28) := p_source_132;
40955 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
40956 l_rec_acct_attrs.array_char_value(29) := p_source_133;
40957 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
40958 l_rec_acct_attrs.array_num_value(30) := p_source_100;
40959 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
40960 l_rec_acct_attrs.array_date_value(31) := p_source_101;
40961 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
40962 l_rec_acct_attrs.array_char_value(32) := p_source_102;
40963 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
40964 l_rec_acct_attrs.array_date_value(33) := p_source_103;
40965 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
40966 l_rec_acct_attrs.array_char_value(34) := p_source_64;
40967 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
40968 l_rec_acct_attrs.array_num_value(35) := p_source_104;
40969 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
40970 l_rec_acct_attrs.array_num_value(36) := p_source_105;
40971 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
40972 l_rec_acct_attrs.array_char_value(37) := p_source_67;
40973 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
40974 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
40975 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
40976 l_rec_acct_attrs.array_char_value(39) := p_source_60;
40977 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
40978 l_rec_acct_attrs.array_num_value(40) := p_source_69;
40979 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
40980 l_rec_acct_attrs.array_num_value(41) := p_source_77;
40981 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
40982 l_rec_acct_attrs.array_num_value(42) := p_source_70;
40983 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
40984 l_rec_acct_attrs.array_num_value(43) := p_source_107;
40985 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
40986 l_rec_acct_attrs.array_num_value(44) := p_source_108;
40987
40988 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40989 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40990
40991 ---------------------------------------------------------------------------------------------------------------
40992 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40993 ---------------------------------------------------------------------------------------------------------------
40994 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40995
40996 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40997 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40998
40999 IF xla_accounting_cache_pkg.GetValueChar
41000 (p_source_code => 'LEDGER_CATEGORY_CODE'
41001 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41002 AND l_bflow_method_code = 'PRIOR_ENTRY'
41003 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41004 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41005 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41006 )
41007 THEN
41008 xla_ae_lines_pkg.BflowUpgEntry
41009 (p_business_method_code => l_bflow_method_code
41010 ,p_business_class_code => l_bflow_class_code
41011 ,p_balance_type => l_balance_type_code);
41012 ELSE
41013 NULL;
41014 -- No business flow processing for business flow method of NONE.
41015 END IF;
41016
41017 --
41018 -- call analytical criteria
41019 --
41020
41021 --
41022 -- call description
41023 --
41024 -- No description or it is inherited.
41025 --
41026 -- call ADRs
41027 -- Bug 4922099
41028 --
41029 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41030 (NVL(l_actual_upg_option, 'N') = 'O') OR
41031 (NVL(l_enc_upg_option, 'N') = 'O')
41032 )
41033 THEN
41034 NULL;
41035 --
41036 --
41037
41038 l_ccid := AcctDerRule_37(
41039 p_application_id => p_application_id
41040 , p_ae_header_id => l_ae_header_id
41041 , p_source_16 => p_source_16
41042 , p_source_16_meaning => p_source_16_meaning
41043 , p_source_29 => p_source_29
41044 , p_source_49 => p_source_49
41045 , x_transaction_coa_id => l_adr_transaction_coa_id
41046 , x_accounting_coa_id => l_adr_accounting_coa_id
41047 , x_value_type_code => l_adr_value_type_code
41048 , p_side => 'NA'
41049 );
41050
41051 xla_ae_lines_pkg.set_ccid(
41052 p_code_combination_id => l_ccid
41053 , p_value_type_code => l_adr_value_type_code
41057 , p_adr_type_code => 'S'
41054 , p_transaction_coa_id => l_adr_transaction_coa_id
41055 , p_accounting_coa_id => l_adr_accounting_coa_id
41056 , p_adr_code => 'AP_ROUNDING'
41058 , p_component_type => l_component_type
41059 , p_component_code => l_component_code
41060 , p_component_type_code => l_component_type_code
41061 , p_component_appl_id => l_component_appl_id
41062 , p_amb_context_code => l_amb_context_code
41063 , p_side => 'NA'
41064 );
41065
41066
41067 --
41068 --
41069 END IF;
41070 --
41071 -- Bug 4922099
41072 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41073 (NVL(l_enc_upg_option, 'N') = 'O')
41074 ) AND
41075 (l_bflow_method_code = 'PRIOR_ENTRY')
41076 )
41077 THEN
41078 IF
41079 --
41080 1 = 2
41081 --
41082 THEN
41083 xla_accounting_err_pkg.build_message
41084 (p_appli_s_name => 'XLA'
41085 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41086 ,p_token_1 => 'LINE_NUMBER'
41087 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41088 ,p_token_2 => 'LINE_TYPE_NAME'
41089 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41090 l_component_type
41091 ,l_component_code
41092 ,l_component_type_code
41093 ,l_component_appl_id
41094 ,l_amb_context_code
41095 ,l_entity_code
41096 ,l_event_class_code
41097 )
41098 ,p_token_3 => 'OWNER'
41099 ,p_value_3 => xla_lookups_pkg.get_meaning(
41100 p_lookup_type => 'XLA_OWNER_TYPE'
41101 ,p_lookup_code => l_component_type_code
41102 )
41103 ,p_token_4 => 'PRODUCT_NAME'
41104 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41105 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41106 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41107 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41108 ,p_ae_header_id => NULL
41109 );
41110
41111 IF (C_LEVEL_ERROR>= g_log_level) THEN
41112 trace
41113 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41114 ,p_level => C_LEVEL_ERROR
41115 ,p_module => l_log_module);
41116 END IF;
41117 END IF;
41118 END IF;
41119 --
41120 --
41121 ------------------------------------------------------------------------------------------------
41122 -- 4219869 Business Flow
41123 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41124 -- Prior Entry. Currently, the following code is always generated.
41125 ------------------------------------------------------------------------------------------------
41126 XLA_AE_LINES_PKG.ValidateCurrentLine;
41127
41128 ------------------------------------------------------------------------------------
41129 -- 4219869 Business Flow
41130 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41131 ------------------------------------------------------------------------------------
41132 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41133
41134 ----------------------------------------------------------------------------------
41135 -- 4219869 Business Flow
41136 -- Update journal entry status -- Need to generate this within IF <condition>
41137 ----------------------------------------------------------------------------------
41138 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41139 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41140 ,p_balance_type_code => l_balance_type_code
41141 );
41142
41143 -------------------------------------------------------------------------------------------
41144 -- 4262811 - Generate the Accrual Reversal lines
41145 -------------------------------------------------------------------------------------------
41146 BEGIN
41147 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41151 END IF;
41148 (g_array_event(p_event_id).array_value_num('header_index'));
41149 IF l_acc_rev_flag IS NULL THEN
41150 l_acc_rev_flag := 'N';
41152 EXCEPTION
41153 WHEN OTHERS THEN
41154 l_acc_rev_flag := 'N';
41155 END;
41156 --
41157 IF (l_acc_rev_flag = 'Y') THEN
41158
41159 -- 4645092 ------------------------------------------------------------------------------
41160 -- To allow MPA report to determine if it should generate report process
41161 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41162 ------------------------------------------------------------------------------------------
41163
41164 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41165 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41166 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41167 -- call ADRs
41168 -- Bug 4922099
41169 --
41170 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41171 (NVL(l_actual_upg_option, 'N') = 'O') OR
41172 (NVL(l_enc_upg_option, 'N') = 'O')
41173 )
41174 THEN
41175 NULL;
41176 --
41177 --
41178
41179 l_ccid := AcctDerRule_37(
41180 p_application_id => p_application_id
41181 , p_ae_header_id => l_ae_header_id
41182 , p_source_16 => p_source_16
41183 , p_source_16_meaning => p_source_16_meaning
41184 , p_source_29 => p_source_29
41185 , p_source_49 => p_source_49
41186 , x_transaction_coa_id => l_adr_transaction_coa_id
41187 , x_accounting_coa_id => l_adr_accounting_coa_id
41188 , x_value_type_code => l_adr_value_type_code
41189 , p_side => 'NA'
41190 );
41191
41192 xla_ae_lines_pkg.set_ccid(
41193 p_code_combination_id => l_ccid
41194 , p_value_type_code => l_adr_value_type_code
41195 , p_transaction_coa_id => l_adr_transaction_coa_id
41196 , p_accounting_coa_id => l_adr_accounting_coa_id
41197 , p_adr_code => 'AP_ROUNDING'
41198 , p_adr_type_code => 'S'
41199 , p_component_type => l_component_type
41200 , p_component_code => l_component_code
41201 , p_component_type_code => l_component_type_code
41202 , p_component_appl_id => l_component_appl_id
41203 , p_amb_context_code => l_amb_context_code
41204 , p_side => 'NA'
41205 );
41206
41207
41208 --
41209 --
41210 END IF;
41211
41212 --
41213 -- Update the line information that should be overwritten
41214 --
41215 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41216 p_header_num => 1);
41217 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41218
41219 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41220
41221 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41222 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41223 END IF;
41224
41225 --
41226 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41227 --
41228 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41229 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41230 ELSE
41231 ---------------------------------------------------------------------------------------------------
41232 -- 4262811a Switch Sign
41233 ---------------------------------------------------------------------------------------------------
41234 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41235 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41236 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41237 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41238 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41239 -- 5132302
41240 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41241 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41242
41243 END IF;
41244
41245 -- 4955764
41246 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41247 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41248
41249
41250 XLA_AE_LINES_PKG.ValidateCurrentLine;
41251 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41252
41253 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41254 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41255 ,p_balance_type_code => l_balance_type_code);
41256
41257 END IF;
41258
41259 -----------------------------------------------------------------------------------------
41263
41260 -- 4262811 Multiperiod Accounting
41261 -----------------------------------------------------------------------------------------
41262 -- No MPA option is assigned.
41264
41265 END IF;
41266 END IF;
41267 --
41268
41269 --
41270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41271 trace
41272 (p_msg => 'END of AcctLineType_85'
41273 ,p_level => C_LEVEL_PROCEDURE
41274 ,p_module => l_log_module);
41275 END IF;
41276 --
41277 EXCEPTION
41278 WHEN xla_exceptions_pkg.application_exception THEN
41279 RAISE;
41280 WHEN OTHERS THEN
41281 xla_exceptions_pkg.raise_message
41282 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_85');
41283 END AcctLineType_85;
41284 --
41285
41286 ---------------------------------------
41287 --
41288 -- PRIVATE FUNCTION
41289 -- AcctLineType_86
41290 --
41291 ---------------------------------------
41292 PROCEDURE AcctLineType_86 (
41293 p_application_id IN NUMBER
41294 ,p_event_id IN NUMBER
41295 ,p_calculate_acctd_flag IN VARCHAR2
41296 ,p_calculate_g_l_flag IN VARCHAR2
41297 ,p_actual_flag IN OUT VARCHAR2
41298 ,p_balance_type_code OUT VARCHAR2
41299 ,p_gain_or_loss_ref OUT VARCHAR2
41300
41301 --Automatic Offsets Value
41302 , p_source_16 IN VARCHAR2
41303 , p_source_16_meaning IN VARCHAR2
41304 --Invoice Distribution Account
41305 , p_source_29 IN NUMBER
41306 --Payables Options Rounding Account
41307 , p_source_49 IN NUMBER
41308 --When to Account for Payment Option
41309 , p_source_50 IN VARCHAR2
41310 --Accounting Reversal Indicator
41311 , p_source_52 IN VARCHAR2
41312 --Business Flow Accounts Payable Application Identifier
41313 , p_source_54 IN NUMBER
41314 --Distribution Link Type
41315 , p_source_60 IN VARCHAR2
41316 --Override Accounted Amount Indicator
41317 , p_source_64 IN VARCHAR2
41318 , p_source_64_meaning IN VARCHAR2
41319 --Third Party Type
41320 , p_source_67 IN VARCHAR2
41321 --Invoice Distribution Tax Line Identifier
41322 , p_source_69 IN NUMBER
41323 --Invoice Distribution Summary Tax Line Identifier
41324 , p_source_70 IN NUMBER
41325 --Invoice Distribution Tax Distribution Identifier from Tax
41326 , p_source_77 IN NUMBER
41327 --Prepayment Distribution Type
41328 , p_source_78 IN VARCHAR2
41329 --Prepayment Application Distribution Identifier
41330 , p_source_82 IN NUMBER
41331 --Invoice Identifier
41332 , p_source_83 IN NUMBER
41333 --Business Flow Prepayment Invoice Distribution Type
41334 , p_source_84 IN VARCHAR2
41335 --Business Flow Prepayment Invoice Entity Code
41336 , p_source_85 IN VARCHAR2
41337 --Business Flow Prepayment Invoice Distribution Identifier
41338 , p_source_86 IN NUMBER
41339 --Business Flow Prepayment Invoice Identifier
41340 , p_source_87 IN NUMBER
41341 --Upgrade Encumbrance Credit Account Class
41342 , p_source_88 IN VARCHAR2
41343 --Payables Encumbrance Upgrade Credit Account
41344 , p_source_89 IN NUMBER
41345 --Payables Encumbrance Upgrade Credit Amount
41346 , p_source_90 IN NUMBER
41347 --Invoice Currency Code
41348 , p_source_91 IN VARCHAR2
41349 --Payables Encumbrance Upgrade Credit Base Amount
41350 , p_source_92 IN NUMBER
41351 --Upgrade Encumbrance Debit Account Class
41352 , p_source_93 IN VARCHAR2
41353 --Payables Encumbrance Upgrade Debit Account
41354 , p_source_94 IN NUMBER
41355 --Payables Encumbrance Upgrade Debit Amount
41356 , p_source_95 IN NUMBER
41357 --Payables Encumbrance Upgrade Debit Base Amount
41358 , p_source_96 IN NUMBER
41359 --Payables Encumbrance Upgrade Option
41360 , p_source_97 IN VARCHAR2
41361 --Prepayment Distribution Amount
41362 , p_source_98 IN NUMBER
41363 --Deferred Accounting End Date
41364 , p_source_101 IN DATE
41365 --Deferred Accounting Option
41366 , p_source_102 IN VARCHAR2
41367 --Deferred Accounting Start Date
41368 , p_source_103 IN DATE
41369 --Invoice Supplier Identifier
41370 , p_source_104 IN NUMBER
41371 --Invoice Supplier Site Identifier
41372 , p_source_105 IN NUMBER
41373 --Identifier of the Prepayment Application Reversed
41374 , p_source_106 IN NUMBER
41375 --Payables Upgrade Credit Encumbrance Type Identifier
41376 , p_source_107 IN NUMBER
41377 --Payables Upgrade Debit Encumbrance Type Identifier
41378 , p_source_108 IN NUMBER
41379 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
41380 , p_source_110 IN NUMBER
41381 --Invoice Exchange Date
41382 , p_source_131 IN DATE
41383 --Invoice Exchange Rate
41384 , p_source_132 IN NUMBER
41385 --Invoice Exchange Rate Type
41386 , p_source_133 IN VARCHAR2
41387 )
41388 IS
41389
41390 l_component_type VARCHAR2(80);
41391 l_component_code VARCHAR2(30);
41392 l_component_type_code VARCHAR2(1);
41393 l_component_appl_id INTEGER;
41394 l_amb_context_code VARCHAR2(30);
41395 l_entity_code VARCHAR2(30);
41399 l_line_definition_code VARCHAR2(30);
41396 l_event_class_code VARCHAR2(30);
41397 l_ae_header_id NUMBER;
41398 l_event_type_code VARCHAR2(30);
41400 l_line_definition_owner_code VARCHAR2(1);
41401 --
41402 -- adr variables
41403 l_segment VARCHAR2(30);
41404 l_ccid NUMBER;
41405 l_adr_transaction_coa_id NUMBER;
41406 l_adr_accounting_coa_id NUMBER;
41407 l_adr_flexfield_segment_code VARCHAR2(30);
41408 l_adr_flex_value_set_id NUMBER;
41409 l_adr_value_type_code VARCHAR2(30);
41410 l_adr_value_combination_id NUMBER;
41411 l_adr_value_segment_code VARCHAR2(30);
41412
41413 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41414 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41415 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41416 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41417
41418 -- 4262811 Variables ------------------------------------------------------------------------------------------
41419 l_entered_amt_idx NUMBER;
41420 l_accted_amt_idx NUMBER;
41421 l_acc_rev_flag VARCHAR2(1);
41422 l_accrual_line_num NUMBER;
41423 l_tmp_amt NUMBER;
41424 l_acc_rev_natural_side_code VARCHAR2(1);
41425
41426 l_num_entries NUMBER;
41427 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41428 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41429 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41430 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41431 l_recog_line_1 NUMBER;
41432 l_recog_line_2 NUMBER;
41433
41434 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41435 l_bflow_applied_to_amt NUMBER; -- 5132302
41436 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41437
41438 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41439
41440 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41441 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41442
41443 ---------------------------------------------------------------------------------------------------------------
41444
41445
41446 --
41447 -- bulk performance
41448 --
41449 l_balance_type_code VARCHAR2(1);
41450 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41451 l_log_module VARCHAR2(240);
41452
41453 --
41454 -- Upgrade strategy
41455 --
41456 l_actual_upg_option VARCHAR2(1);
41457 l_enc_upg_option VARCHAR2(1);
41458
41459 --
41460 BEGIN
41461 --
41462 IF g_log_enabled THEN
41463 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
41464 END IF;
41465 --
41466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41467
41468 trace
41469 (p_msg => 'BEGIN of AcctLineType_86'
41470 ,p_level => C_LEVEL_PROCEDURE
41471 ,p_module => l_log_module);
41472
41473 END IF;
41474 --
41475 l_component_type := 'AMB_JLT';
41476 l_component_code := 'AP_FINAL_APP_ROUND_PP_PAY_RATE';
41477 l_component_type_code := 'S';
41478 l_component_appl_id := 200;
41479 l_amb_context_code := 'DEFAULT';
41480 l_entity_code := 'AP_INVOICES';
41481 l_event_class_code := 'PREPAYMENT APPLICATIONS';
41482 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
41483 l_line_definition_owner_code := 'S';
41484 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
41485 --
41486 l_balance_type_code := 'A';
41487 l_segment := NULL;
41488 l_ccid := NULL;
41489 l_adr_transaction_coa_id := NULL;
41490 l_adr_accounting_coa_id := NULL;
41491 l_adr_flexfield_segment_code := NULL;
41492 l_adr_flex_value_set_id := NULL;
41493 l_adr_value_type_code := NULL;
41494 l_adr_value_combination_id := NULL;
41495 l_adr_value_segment_code := NULL;
41496
41497 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41498 l_bflow_class_code := ''; -- 4219869 Business Flow
41499 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41500 l_budgetary_control_flag := 'N';
41501
41502 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41503 l_bflow_applied_to_amt := NULL; -- 5132302
41504 l_entered_amt_idx := NULL; -- 4262811
41505 l_accted_amt_idx := NULL; -- 4262811
41506 l_acc_rev_flag := NULL; -- 4262811
41507 l_accrual_line_num := NULL; -- 4262811
41508 l_tmp_amt := NULL; -- 4262811
41509 --
41510
41511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41512 l_balance_type_code <> 'B' THEN
41513 IF NVL(p_source_50,'
41514 ') <> 'CLEAR_CLEAR' AND
41515 NVL(p_source_78,'
41516 ') = 'FINAL APPLICATION ROUNDING'
41517 THEN
41518
41519 --
41520 XLA_AE_LINES_PKG.SetNewLine;
41521
41522 p_balance_type_code := l_balance_type_code;
41523 -- set the flag so later we will know whether the gain loss line needs to be created
41524
41528
41525 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41526 p_actual_flag :='A';
41527 END IF;
41529 --
41530 -- bulk performance
41531 --
41532 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41533 p_header_num => 0); -- 4262811
41534 --
41535 -- set accounting line options
41536 --
41537 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41538 p_natural_side_code => 'C'
41539 , p_gain_or_loss_flag => 'N'
41540 , p_gl_transfer_mode_code => 'S'
41541 , p_acct_entry_type_code => 'A'
41542 , p_switch_side_flag => 'Y'
41543 , p_merge_duplicate_code => 'A'
41544 );
41545 --
41546 l_acc_rev_natural_side_code := 'D'; -- 4262811
41547 --
41548 --
41549 -- set accounting line type info
41550 --
41551 xla_ae_lines_pkg.SetAcctLineType
41552 (p_component_type => l_component_type
41553 ,p_event_type_code => l_event_type_code
41554 ,p_line_definition_owner_code => l_line_definition_owner_code
41555 ,p_line_definition_code => l_line_definition_code
41556 ,p_accounting_line_code => l_component_code
41557 ,p_accounting_line_type_code => l_component_type_code
41558 ,p_accounting_line_appl_id => l_component_appl_id
41559 ,p_amb_context_code => l_amb_context_code
41560 ,p_entity_code => l_entity_code
41561 ,p_event_class_code => l_event_class_code);
41562 --
41563 -- set accounting class
41564 --
41565 xla_ae_lines_pkg.SetAcctClass(
41566 p_accounting_class_code => 'ROUNDING'
41567 , p_ae_header_id => l_ae_header_id
41568 );
41569
41570 --
41571 -- set rounding class
41572 --
41573 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41574 'ROUNDING';
41575
41576 --
41577 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41578 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41579 --
41580 -- bulk performance
41581 --
41582 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41583
41584 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41585 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41586
41587 -- 4955764
41588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41590
41591 -- 4458381 Public Sector Enh
41592
41593 --
41594 -- set accounting attributes for the line type
41595 --
41596 l_entered_amt_idx := 25;
41597 l_accted_amt_idx := 30;
41598 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41599 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41600 l_rec_acct_attrs.array_char_value(1) := p_source_52;
41601 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41602 l_rec_acct_attrs.array_num_value(2) :=
41603 xla_ae_sources_pkg.GetSystemSourceNum(
41604 p_source_code => 'XLA_EVENT_APPL_ID'
41605 , p_source_type_code => 'Y'
41606 , p_source_application_id => 602
41607 );
41608 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41609 l_rec_acct_attrs.array_char_value(3) := p_source_60;
41610 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41611 l_rec_acct_attrs.array_char_value(4) :=
41612 xla_ae_sources_pkg.GetSystemSourceChar(
41613 p_source_code => 'XLA_ENTITY_CODE'
41614 , p_source_type_code => 'Y'
41615 , p_source_application_id => 602
41616 );
41617 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41618 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
41619 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41620 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
41621 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41622 l_rec_acct_attrs.array_num_value(7) := p_source_54;
41623 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41624 l_rec_acct_attrs.array_char_value(8) := p_source_84;
41625 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41626 l_rec_acct_attrs.array_char_value(9) := p_source_85;
41627 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41628 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
41629 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41630 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
41631 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41632 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
41633 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41634 l_rec_acct_attrs.array_char_value(13) := p_source_60;
41635 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
41636 l_rec_acct_attrs.array_char_value(14) := p_source_88;
41637 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
41641 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41638 l_rec_acct_attrs.array_num_value(15) := p_source_89;
41639 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
41640 l_rec_acct_attrs.array_num_value(16) := p_source_90;
41642 l_rec_acct_attrs.array_char_value(17) := p_source_91;
41643 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41644 l_rec_acct_attrs.array_num_value(18) := p_source_92;
41645 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
41646 l_rec_acct_attrs.array_char_value(19) := p_source_93;
41647 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
41648 l_rec_acct_attrs.array_num_value(20) := p_source_94;
41649 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
41650 l_rec_acct_attrs.array_num_value(21) := p_source_95;
41651 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
41652 l_rec_acct_attrs.array_char_value(22) := p_source_91;
41653 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
41654 l_rec_acct_attrs.array_num_value(23) := p_source_96;
41655 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
41656 l_rec_acct_attrs.array_char_value(24) := p_source_97;
41657 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
41658 l_rec_acct_attrs.array_num_value(25) := p_source_98;
41659 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
41660 l_rec_acct_attrs.array_char_value(26) := p_source_91;
41661 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
41662 l_rec_acct_attrs.array_date_value(27) := p_source_131;
41663 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
41664 l_rec_acct_attrs.array_num_value(28) := p_source_132;
41665 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
41666 l_rec_acct_attrs.array_char_value(29) := p_source_133;
41667 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
41668 l_rec_acct_attrs.array_num_value(30) := p_source_110;
41669 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
41670 l_rec_acct_attrs.array_date_value(31) := p_source_101;
41671 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
41672 l_rec_acct_attrs.array_char_value(32) := p_source_102;
41673 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
41674 l_rec_acct_attrs.array_date_value(33) := p_source_103;
41675 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
41676 l_rec_acct_attrs.array_char_value(34) := p_source_64;
41677 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
41678 l_rec_acct_attrs.array_num_value(35) := p_source_104;
41679 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
41680 l_rec_acct_attrs.array_num_value(36) := p_source_105;
41681 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
41682 l_rec_acct_attrs.array_char_value(37) := p_source_67;
41683 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
41684 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
41685 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
41686 l_rec_acct_attrs.array_char_value(39) := p_source_60;
41687 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
41688 l_rec_acct_attrs.array_num_value(40) := p_source_69;
41689 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
41690 l_rec_acct_attrs.array_num_value(41) := p_source_77;
41691 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
41692 l_rec_acct_attrs.array_num_value(42) := p_source_70;
41693 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
41694 l_rec_acct_attrs.array_num_value(43) := p_source_107;
41695 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
41696 l_rec_acct_attrs.array_num_value(44) := p_source_108;
41697
41698 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41699 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41700
41701 ---------------------------------------------------------------------------------------------------------------
41702 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41703 ---------------------------------------------------------------------------------------------------------------
41704 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41705
41706 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41707 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41708
41709 IF xla_accounting_cache_pkg.GetValueChar
41710 (p_source_code => 'LEDGER_CATEGORY_CODE'
41711 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41712 AND l_bflow_method_code = 'PRIOR_ENTRY'
41713 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41714 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41715 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41716 )
41717 THEN
41718 xla_ae_lines_pkg.BflowUpgEntry
41719 (p_business_method_code => l_bflow_method_code
41720 ,p_business_class_code => l_bflow_class_code
41721 ,p_balance_type => l_balance_type_code);
41722 ELSE
41723 NULL;
41724 -- No business flow processing for business flow method of NONE.
41728 -- call analytical criteria
41725 END IF;
41726
41727 --
41729 --
41730
41731 --
41732 -- call description
41733 --
41734 -- No description or it is inherited.
41735 --
41736 -- call ADRs
41737 -- Bug 4922099
41738 --
41739 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41740 (NVL(l_actual_upg_option, 'N') = 'O') OR
41741 (NVL(l_enc_upg_option, 'N') = 'O')
41742 )
41743 THEN
41744 NULL;
41745 --
41746 --
41747
41748 l_ccid := AcctDerRule_37(
41749 p_application_id => p_application_id
41750 , p_ae_header_id => l_ae_header_id
41751 , p_source_16 => p_source_16
41752 , p_source_16_meaning => p_source_16_meaning
41753 , p_source_29 => p_source_29
41754 , p_source_49 => p_source_49
41755 , x_transaction_coa_id => l_adr_transaction_coa_id
41756 , x_accounting_coa_id => l_adr_accounting_coa_id
41757 , x_value_type_code => l_adr_value_type_code
41758 , p_side => 'NA'
41759 );
41760
41761 xla_ae_lines_pkg.set_ccid(
41762 p_code_combination_id => l_ccid
41763 , p_value_type_code => l_adr_value_type_code
41764 , p_transaction_coa_id => l_adr_transaction_coa_id
41765 , p_accounting_coa_id => l_adr_accounting_coa_id
41766 , p_adr_code => 'AP_ROUNDING'
41767 , p_adr_type_code => 'S'
41768 , p_component_type => l_component_type
41769 , p_component_code => l_component_code
41770 , p_component_type_code => l_component_type_code
41771 , p_component_appl_id => l_component_appl_id
41772 , p_amb_context_code => l_amb_context_code
41773 , p_side => 'NA'
41774 );
41775
41776
41777 --
41778 --
41779 END IF;
41780 --
41781 -- Bug 4922099
41782 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41783 (NVL(l_enc_upg_option, 'N') = 'O')
41784 ) AND
41785 (l_bflow_method_code = 'PRIOR_ENTRY')
41786 )
41787 THEN
41788 IF
41789 --
41790 1 = 2
41791 --
41792 THEN
41793 xla_accounting_err_pkg.build_message
41794 (p_appli_s_name => 'XLA'
41795 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41796 ,p_token_1 => 'LINE_NUMBER'
41797 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41798 ,p_token_2 => 'LINE_TYPE_NAME'
41799 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41800 l_component_type
41801 ,l_component_code
41802 ,l_component_type_code
41803 ,l_component_appl_id
41804 ,l_amb_context_code
41805 ,l_entity_code
41806 ,l_event_class_code
41807 )
41808 ,p_token_3 => 'OWNER'
41809 ,p_value_3 => xla_lookups_pkg.get_meaning(
41810 p_lookup_type => 'XLA_OWNER_TYPE'
41811 ,p_lookup_code => l_component_type_code
41812 )
41813 ,p_token_4 => 'PRODUCT_NAME'
41814 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41815 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41816 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41817 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41818 ,p_ae_header_id => NULL
41819 );
41820
41821 IF (C_LEVEL_ERROR>= g_log_level) THEN
41822 trace
41823 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41824 ,p_level => C_LEVEL_ERROR
41825 ,p_module => l_log_module);
41826 END IF;
41827 END IF;
41828 END IF;
41829 --
41830 --
41831 ------------------------------------------------------------------------------------------------
41832 -- 4219869 Business Flow
41833 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41834 -- Prior Entry. Currently, the following code is always generated.
41838 ------------------------------------------------------------------------------------
41835 ------------------------------------------------------------------------------------------------
41836 XLA_AE_LINES_PKG.ValidateCurrentLine;
41837
41839 -- 4219869 Business Flow
41840 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41841 ------------------------------------------------------------------------------------
41842 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41843
41844 ----------------------------------------------------------------------------------
41845 -- 4219869 Business Flow
41846 -- Update journal entry status -- Need to generate this within IF <condition>
41847 ----------------------------------------------------------------------------------
41848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41850 ,p_balance_type_code => l_balance_type_code
41851 );
41852
41853 -------------------------------------------------------------------------------------------
41854 -- 4262811 - Generate the Accrual Reversal lines
41855 -------------------------------------------------------------------------------------------
41856 BEGIN
41857 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41858 (g_array_event(p_event_id).array_value_num('header_index'));
41859 IF l_acc_rev_flag IS NULL THEN
41860 l_acc_rev_flag := 'N';
41861 END IF;
41862 EXCEPTION
41863 WHEN OTHERS THEN
41864 l_acc_rev_flag := 'N';
41865 END;
41866 --
41867 IF (l_acc_rev_flag = 'Y') THEN
41868
41869 -- 4645092 ------------------------------------------------------------------------------
41870 -- To allow MPA report to determine if it should generate report process
41871 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41872 ------------------------------------------------------------------------------------------
41873
41874 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41875 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41876 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41877 -- call ADRs
41878 -- Bug 4922099
41879 --
41880 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41881 (NVL(l_actual_upg_option, 'N') = 'O') OR
41882 (NVL(l_enc_upg_option, 'N') = 'O')
41883 )
41884 THEN
41885 NULL;
41886 --
41887 --
41888
41889 l_ccid := AcctDerRule_37(
41890 p_application_id => p_application_id
41891 , p_ae_header_id => l_ae_header_id
41892 , p_source_16 => p_source_16
41893 , p_source_16_meaning => p_source_16_meaning
41894 , p_source_29 => p_source_29
41895 , p_source_49 => p_source_49
41896 , x_transaction_coa_id => l_adr_transaction_coa_id
41897 , x_accounting_coa_id => l_adr_accounting_coa_id
41898 , x_value_type_code => l_adr_value_type_code
41899 , p_side => 'NA'
41900 );
41901
41902 xla_ae_lines_pkg.set_ccid(
41903 p_code_combination_id => l_ccid
41904 , p_value_type_code => l_adr_value_type_code
41905 , p_transaction_coa_id => l_adr_transaction_coa_id
41906 , p_accounting_coa_id => l_adr_accounting_coa_id
41907 , p_adr_code => 'AP_ROUNDING'
41908 , p_adr_type_code => 'S'
41909 , p_component_type => l_component_type
41910 , p_component_code => l_component_code
41911 , p_component_type_code => l_component_type_code
41912 , p_component_appl_id => l_component_appl_id
41913 , p_amb_context_code => l_amb_context_code
41914 , p_side => 'NA'
41915 );
41916
41917
41918 --
41919 --
41920 END IF;
41921
41922 --
41923 -- Update the line information that should be overwritten
41924 --
41925 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41926 p_header_num => 1);
41927 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41928
41929 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41930
41931 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41932 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41933 END IF;
41934
41935 --
41936 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41937 --
41938 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41939 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41940 ELSE
41941 ---------------------------------------------------------------------------------------------------
41942 -- 4262811a Switch Sign
41943 ---------------------------------------------------------------------------------------------------
41944 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41948 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41945 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41946 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41947 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41949 -- 5132302
41950 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41951 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41952
41953 END IF;
41954
41955 -- 4955764
41956 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41957 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41958
41959
41960 XLA_AE_LINES_PKG.ValidateCurrentLine;
41961 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41962
41963 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41964 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41965 ,p_balance_type_code => l_balance_type_code);
41966
41967 END IF;
41968
41969 -----------------------------------------------------------------------------------------
41970 -- 4262811 Multiperiod Accounting
41971 -----------------------------------------------------------------------------------------
41972 -- No MPA option is assigned.
41973
41974
41975 END IF;
41976 END IF;
41977 --
41978
41979 --
41980 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41981 trace
41982 (p_msg => 'END of AcctLineType_86'
41983 ,p_level => C_LEVEL_PROCEDURE
41984 ,p_module => l_log_module);
41985 END IF;
41986 --
41987 EXCEPTION
41988 WHEN xla_exceptions_pkg.application_exception THEN
41989 RAISE;
41990 WHEN OTHERS THEN
41991 xla_exceptions_pkg.raise_message
41992 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_86');
41993 END AcctLineType_86;
41994 --
41995
41996 ---------------------------------------
41997 --
41998 -- PRIVATE FUNCTION
41999 -- AcctLineType_87
42000 --
42001 ---------------------------------------
42002 PROCEDURE AcctLineType_87 (
42003 p_application_id IN NUMBER
42004 ,p_event_id IN NUMBER
42005 ,p_calculate_acctd_flag IN VARCHAR2
42006 ,p_calculate_g_l_flag IN VARCHAR2
42007 ,p_actual_flag IN OUT VARCHAR2
42008 ,p_balance_type_code OUT VARCHAR2
42009 ,p_gain_or_loss_ref OUT VARCHAR2
42010
42011 --Payment Currency Code
42012 , p_source_12 IN VARCHAR2
42013 --Payment Distribution (Cleared Rate) Ledger Amount
42014 , p_source_22 IN NUMBER
42015 --Invoice Distribution Account
42016 , p_source_29 IN NUMBER
42017 --Invoice Distribution Type
42018 , p_source_32 IN VARCHAR2
42019 , p_source_32_meaning IN VARCHAR2
42020 --When to Account for Payment Option
42021 , p_source_50 IN VARCHAR2
42022 --Payment Distribution Type
42023 , p_source_51 IN VARCHAR2
42024 , p_source_51_meaning IN VARCHAR2
42025 --Accounting Reversal Indicator
42026 , p_source_52 IN VARCHAR2
42027 --Payment Distribution Amount
42028 , p_source_53 IN NUMBER
42029 --Business Flow Accounts Payable Application Identifier
42030 , p_source_54 IN NUMBER
42031 --Business Flow Payment Distribution Type
42032 , p_source_55 IN VARCHAR2
42033 --Business Flow Payment Entity Code
42034 , p_source_56 IN VARCHAR2
42035 --Business Flow Payment Distribution Identifier
42036 , p_source_57 IN NUMBER
42037 --Business Flow Payment Identifier
42038 , p_source_58 IN NUMBER
42039 --Payment Distribution Identifier
42040 , p_source_59 IN NUMBER
42041 --Distribution Link Type
42042 , p_source_60 IN VARCHAR2
42043 --Override Accounted Amount Indicator
42044 , p_source_64 IN VARCHAR2
42045 , p_source_64_meaning IN VARCHAR2
42046 --Payment Supplier Identifier
42047 , p_source_65 IN NUMBER
42048 --Payment Supplier Site Identifier
42049 , p_source_66 IN NUMBER
42050 --Third Party Type
42051 , p_source_67 IN VARCHAR2
42052 --Payment Distribution Reversed Identifier
42053 , p_source_68 IN NUMBER
42054 --Invoice Distribution Tax Line Identifier
42055 , p_source_69 IN NUMBER
42056 --Invoice Distribution Summary Tax Line Identifier
42057 , p_source_70 IN NUMBER
42058 --Cleared Exchange Date
42059 , p_source_114 IN DATE
42060 --Cleared Exchange Rate
42061 , p_source_115 IN NUMBER
42062 --Cleared Exchange Rate Type
42063 , p_source_116 IN VARCHAR2
42064 )
42065 IS
42066
42067 l_component_type VARCHAR2(80);
42068 l_component_code VARCHAR2(30);
42069 l_component_type_code VARCHAR2(1);
42070 l_component_appl_id INTEGER;
42071 l_amb_context_code VARCHAR2(30);
42072 l_entity_code VARCHAR2(30);
42073 l_event_class_code VARCHAR2(30);
42074 l_ae_header_id NUMBER;
42075 l_event_type_code VARCHAR2(30);
42076 l_line_definition_code VARCHAR2(30);
42077 l_line_definition_owner_code VARCHAR2(1);
42078 --
42079 -- adr variables
42083 l_adr_accounting_coa_id NUMBER;
42080 l_segment VARCHAR2(30);
42081 l_ccid NUMBER;
42082 l_adr_transaction_coa_id NUMBER;
42084 l_adr_flexfield_segment_code VARCHAR2(30);
42085 l_adr_flex_value_set_id NUMBER;
42086 l_adr_value_type_code VARCHAR2(30);
42087 l_adr_value_combination_id NUMBER;
42088 l_adr_value_segment_code VARCHAR2(30);
42089
42090 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42091 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42092 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42093 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42094
42095 -- 4262811 Variables ------------------------------------------------------------------------------------------
42096 l_entered_amt_idx NUMBER;
42097 l_accted_amt_idx NUMBER;
42098 l_acc_rev_flag VARCHAR2(1);
42099 l_accrual_line_num NUMBER;
42100 l_tmp_amt NUMBER;
42101 l_acc_rev_natural_side_code VARCHAR2(1);
42102
42103 l_num_entries NUMBER;
42104 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42105 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42106 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42107 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42108 l_recog_line_1 NUMBER;
42109 l_recog_line_2 NUMBER;
42110
42111 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42112 l_bflow_applied_to_amt NUMBER; -- 5132302
42113 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42114
42115 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42116
42117 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42118 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42119
42120 ---------------------------------------------------------------------------------------------------------------
42121
42122
42123 --
42124 -- bulk performance
42125 --
42126 l_balance_type_code VARCHAR2(1);
42127 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42128 l_log_module VARCHAR2(240);
42129
42130 --
42131 -- Upgrade strategy
42132 --
42133 l_actual_upg_option VARCHAR2(1);
42134 l_enc_upg_option VARCHAR2(1);
42135
42136 --
42137 BEGIN
42138 --
42139 IF g_log_enabled THEN
42140 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
42141 END IF;
42142 --
42143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42144
42145 trace
42146 (p_msg => 'BEGIN of AcctLineType_87'
42147 ,p_level => C_LEVEL_PROCEDURE
42148 ,p_module => l_log_module);
42149
42150 END IF;
42151 --
42152 l_component_type := 'AMB_JLT';
42153 l_component_code := 'AP_FREIGHT_EXPENSE_CLEAR';
42154 l_component_type_code := 'S';
42155 l_component_appl_id := 200;
42156 l_amb_context_code := 'DEFAULT';
42157 l_entity_code := 'AP_PAYMENTS';
42158 l_event_class_code := 'RECONCILED PAYMENTS';
42159 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
42160 l_line_definition_owner_code := 'S';
42161 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
42162 --
42163 l_balance_type_code := 'A';
42164 l_segment := NULL;
42165 l_ccid := NULL;
42166 l_adr_transaction_coa_id := NULL;
42167 l_adr_accounting_coa_id := NULL;
42168 l_adr_flexfield_segment_code := NULL;
42169 l_adr_flex_value_set_id := NULL;
42170 l_adr_value_type_code := NULL;
42171 l_adr_value_combination_id := NULL;
42172 l_adr_value_segment_code := NULL;
42173
42174 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42175 l_bflow_class_code := ''; -- 4219869 Business Flow
42176 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42177 l_budgetary_control_flag := 'N';
42178
42179 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42180 l_bflow_applied_to_amt := NULL; -- 5132302
42181 l_entered_amt_idx := NULL; -- 4262811
42182 l_accted_amt_idx := NULL; -- 4262811
42183 l_acc_rev_flag := NULL; -- 4262811
42184 l_accrual_line_num := NULL; -- 4262811
42185 l_tmp_amt := NULL; -- 4262811
42186 --
42187
42188 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42189 l_balance_type_code <> 'B' THEN
42190 IF NVL(p_source_50,'
42191 ') = 'CLEAR_CLEAR' AND
42192 NVL(p_source_32,'
42193 ') = 'FREIGHT' AND
42194 (NVL(p_source_51,'
42195 ') = 'CASH' OR
42196 NVL(p_source_51,'
42197 ') = 'AWT' OR
42198 NVL(p_source_51,'
42199 ') = 'DISCOUNT')
42200 THEN
42201
42202 --
42203 XLA_AE_LINES_PKG.SetNewLine;
42204
42205 p_balance_type_code := l_balance_type_code;
42206 -- set the flag so later we will know whether the gain loss line needs to be created
42207
42208 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42209 p_actual_flag :='A';
42213 -- bulk performance
42210 END IF;
42211
42212 --
42214 --
42215 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42216 p_header_num => 0); -- 4262811
42217 --
42218 -- set accounting line options
42219 --
42220 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42221 p_natural_side_code => 'D'
42222 , p_gain_or_loss_flag => 'N'
42223 , p_gl_transfer_mode_code => 'S'
42224 , p_acct_entry_type_code => 'A'
42225 , p_switch_side_flag => 'Y'
42226 , p_merge_duplicate_code => 'A'
42227 );
42228 --
42229 l_acc_rev_natural_side_code := 'C'; -- 4262811
42230 --
42231 --
42232 -- set accounting line type info
42233 --
42234 xla_ae_lines_pkg.SetAcctLineType
42235 (p_component_type => l_component_type
42236 ,p_event_type_code => l_event_type_code
42237 ,p_line_definition_owner_code => l_line_definition_owner_code
42238 ,p_line_definition_code => l_line_definition_code
42239 ,p_accounting_line_code => l_component_code
42240 ,p_accounting_line_type_code => l_component_type_code
42241 ,p_accounting_line_appl_id => l_component_appl_id
42242 ,p_amb_context_code => l_amb_context_code
42243 ,p_entity_code => l_entity_code
42244 ,p_event_class_code => l_event_class_code);
42245 --
42246 -- set accounting class
42247 --
42248 xla_ae_lines_pkg.SetAcctClass(
42249 p_accounting_class_code => 'FREIGHT'
42250 , p_ae_header_id => l_ae_header_id
42251 );
42252
42253 --
42254 -- set rounding class
42255 --
42256 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42257 'FREIGHT';
42258
42259 --
42260 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42261 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42262 --
42263 -- bulk performance
42264 --
42265 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42266
42267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42268 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42269
42270 -- 4955764
42271 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42272 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42273
42274 -- 4458381 Public Sector Enh
42275
42276 --
42277 -- set accounting attributes for the line type
42278 --
42279 l_entered_amt_idx := 10;
42280 l_accted_amt_idx := 15;
42281 l_bflow_applied_to_amt_idx := 2; -- 5132302
42282 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42283 l_rec_acct_attrs.array_char_value(1) := p_source_52;
42284 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42285 l_rec_acct_attrs.array_num_value(2) := p_source_53;
42286 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42287 l_rec_acct_attrs.array_num_value(3) := p_source_54;
42288 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42289 l_rec_acct_attrs.array_char_value(4) := p_source_55;
42290 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42291 l_rec_acct_attrs.array_char_value(5) := p_source_56;
42292 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42293 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
42294 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42295 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
42296 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42297 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
42298 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42299 l_rec_acct_attrs.array_char_value(9) := p_source_60;
42300 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42301 l_rec_acct_attrs.array_num_value(10) := p_source_53;
42302 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42303 l_rec_acct_attrs.array_char_value(11) := p_source_12;
42304 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42305 l_rec_acct_attrs.array_date_value(12) := p_source_114;
42306 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42307 l_rec_acct_attrs.array_num_value(13) := p_source_115;
42308 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42309 l_rec_acct_attrs.array_char_value(14) := p_source_116;
42310 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42311 l_rec_acct_attrs.array_num_value(15) := p_source_22;
42312 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42313 l_rec_acct_attrs.array_char_value(16) := p_source_64;
42314 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42315 l_rec_acct_attrs.array_num_value(17) := p_source_65;
42316 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42317 l_rec_acct_attrs.array_num_value(18) := p_source_66;
42318 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42322 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42319 l_rec_acct_attrs.array_char_value(19) := p_source_67;
42320 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42321 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
42323 l_rec_acct_attrs.array_char_value(21) := p_source_60;
42324 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42325 l_rec_acct_attrs.array_num_value(22) := p_source_69;
42326 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42327 l_rec_acct_attrs.array_num_value(23) := p_source_69;
42328 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42329 l_rec_acct_attrs.array_num_value(24) := p_source_70;
42330
42331 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42332 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42333
42334 ---------------------------------------------------------------------------------------------------------------
42335 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42336 ---------------------------------------------------------------------------------------------------------------
42337 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42338
42339 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42340 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42341
42342 IF xla_accounting_cache_pkg.GetValueChar
42343 (p_source_code => 'LEDGER_CATEGORY_CODE'
42344 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42345 AND l_bflow_method_code = 'PRIOR_ENTRY'
42346 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42347 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42348 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42349 )
42350 THEN
42351 xla_ae_lines_pkg.BflowUpgEntry
42352 (p_business_method_code => l_bflow_method_code
42353 ,p_business_class_code => l_bflow_class_code
42354 ,p_balance_type => l_balance_type_code);
42355 ELSE
42356 NULL;
42357 -- No business flow processing for business flow method of NONE.
42358 END IF;
42359
42360 --
42361 -- call analytical criteria
42362 --
42363
42364 --
42365 -- call description
42366 --
42367 -- No description or it is inherited.
42368 --
42369 -- call ADRs
42370 -- Bug 4922099
42371 --
42372 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42373 (NVL(l_actual_upg_option, 'N') = 'O') OR
42374 (NVL(l_enc_upg_option, 'N') = 'O')
42375 )
42376 THEN
42377 NULL;
42378 --
42379 --
42380
42381 l_ccid := AcctDerRule_28(
42382 p_application_id => p_application_id
42383 , p_ae_header_id => l_ae_header_id
42384 , p_source_29 => p_source_29
42385 , x_transaction_coa_id => l_adr_transaction_coa_id
42386 , x_accounting_coa_id => l_adr_accounting_coa_id
42387 , x_value_type_code => l_adr_value_type_code
42388 , p_side => 'NA'
42389 );
42390
42391 xla_ae_lines_pkg.set_ccid(
42392 p_code_combination_id => l_ccid
42393 , p_value_type_code => l_adr_value_type_code
42394 , p_transaction_coa_id => l_adr_transaction_coa_id
42395 , p_accounting_coa_id => l_adr_accounting_coa_id
42396 , p_adr_code => 'AP_INVOICE_DIST'
42397 , p_adr_type_code => 'S'
42398 , p_component_type => l_component_type
42399 , p_component_code => l_component_code
42400 , p_component_type_code => l_component_type_code
42401 , p_component_appl_id => l_component_appl_id
42402 , p_amb_context_code => l_amb_context_code
42403 , p_side => 'NA'
42404 );
42405
42406
42407 --
42408 --
42409 END IF;
42410 --
42411 -- Bug 4922099
42412 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42413 (NVL(l_enc_upg_option, 'N') = 'O')
42414 ) AND
42415 (l_bflow_method_code = 'PRIOR_ENTRY')
42416 )
42417 THEN
42418 IF
42419 --
42420 1 = 2
42421 --
42422 THEN
42423 xla_accounting_err_pkg.build_message
42424 (p_appli_s_name => 'XLA'
42425 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42426 ,p_token_1 => 'LINE_NUMBER'
42427 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42428 ,p_token_2 => 'LINE_TYPE_NAME'
42429 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42430 l_component_type
42431 ,l_component_code
42435 ,l_entity_code
42432 ,l_component_type_code
42433 ,l_component_appl_id
42434 ,l_amb_context_code
42436 ,l_event_class_code
42437 )
42438 ,p_token_3 => 'OWNER'
42439 ,p_value_3 => xla_lookups_pkg.get_meaning(
42440 p_lookup_type => 'XLA_OWNER_TYPE'
42441 ,p_lookup_code => l_component_type_code
42442 )
42443 ,p_token_4 => 'PRODUCT_NAME'
42444 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42445 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42446 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42447 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42448 ,p_ae_header_id => NULL
42449 );
42450
42451 IF (C_LEVEL_ERROR>= g_log_level) THEN
42452 trace
42453 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42454 ,p_level => C_LEVEL_ERROR
42455 ,p_module => l_log_module);
42456 END IF;
42457 END IF;
42458 END IF;
42459 --
42460 --
42461 ------------------------------------------------------------------------------------------------
42462 -- 4219869 Business Flow
42463 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42464 -- Prior Entry. Currently, the following code is always generated.
42465 ------------------------------------------------------------------------------------------------
42466 XLA_AE_LINES_PKG.ValidateCurrentLine;
42467
42468 ------------------------------------------------------------------------------------
42469 -- 4219869 Business Flow
42470 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42471 ------------------------------------------------------------------------------------
42472 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42473
42474 ----------------------------------------------------------------------------------
42475 -- 4219869 Business Flow
42476 -- Update journal entry status -- Need to generate this within IF <condition>
42477 ----------------------------------------------------------------------------------
42478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42479 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42480 ,p_balance_type_code => l_balance_type_code
42481 );
42482
42483 -------------------------------------------------------------------------------------------
42484 -- 4262811 - Generate the Accrual Reversal lines
42485 -------------------------------------------------------------------------------------------
42486 BEGIN
42487 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42488 (g_array_event(p_event_id).array_value_num('header_index'));
42489 IF l_acc_rev_flag IS NULL THEN
42490 l_acc_rev_flag := 'N';
42491 END IF;
42492 EXCEPTION
42493 WHEN OTHERS THEN
42494 l_acc_rev_flag := 'N';
42495 END;
42496 --
42497 IF (l_acc_rev_flag = 'Y') THEN
42498
42499 -- 4645092 ------------------------------------------------------------------------------
42500 -- To allow MPA report to determine if it should generate report process
42501 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42502 ------------------------------------------------------------------------------------------
42503
42504 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42505 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42506 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42507 -- call ADRs
42508 -- Bug 4922099
42509 --
42510 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42511 (NVL(l_actual_upg_option, 'N') = 'O') OR
42512 (NVL(l_enc_upg_option, 'N') = 'O')
42513 )
42514 THEN
42515 NULL;
42516 --
42517 --
42518
42519 l_ccid := AcctDerRule_28(
42520 p_application_id => p_application_id
42521 , p_ae_header_id => l_ae_header_id
42522 , p_source_29 => p_source_29
42523 , x_transaction_coa_id => l_adr_transaction_coa_id
42524 , x_accounting_coa_id => l_adr_accounting_coa_id
42525 , x_value_type_code => l_adr_value_type_code
42526 , p_side => 'NA'
42527 );
42528
42529 xla_ae_lines_pkg.set_ccid(
42533 , p_accounting_coa_id => l_adr_accounting_coa_id
42530 p_code_combination_id => l_ccid
42531 , p_value_type_code => l_adr_value_type_code
42532 , p_transaction_coa_id => l_adr_transaction_coa_id
42534 , p_adr_code => 'AP_INVOICE_DIST'
42535 , p_adr_type_code => 'S'
42536 , p_component_type => l_component_type
42537 , p_component_code => l_component_code
42538 , p_component_type_code => l_component_type_code
42539 , p_component_appl_id => l_component_appl_id
42540 , p_amb_context_code => l_amb_context_code
42541 , p_side => 'NA'
42542 );
42543
42544
42545 --
42546 --
42547 END IF;
42548
42549 --
42550 -- Update the line information that should be overwritten
42551 --
42552 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42553 p_header_num => 1);
42554 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42555
42556 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42557
42558 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42559 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42560 END IF;
42561
42562 --
42563 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42564 --
42565 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42566 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42567 ELSE
42568 ---------------------------------------------------------------------------------------------------
42569 -- 4262811a Switch Sign
42570 ---------------------------------------------------------------------------------------------------
42571 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42574 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42576 -- 5132302
42577 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42579
42580 END IF;
42581
42582 -- 4955764
42583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42585
42586
42587 XLA_AE_LINES_PKG.ValidateCurrentLine;
42588 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42589
42590 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42591 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42592 ,p_balance_type_code => l_balance_type_code);
42593
42594 END IF;
42595
42596 -----------------------------------------------------------------------------------------
42597 -- 4262811 Multiperiod Accounting
42598 -----------------------------------------------------------------------------------------
42599 -- No MPA option is assigned.
42600
42601
42602 END IF;
42603 END IF;
42604 --
42605
42606 --
42607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42608 trace
42609 (p_msg => 'END of AcctLineType_87'
42610 ,p_level => C_LEVEL_PROCEDURE
42611 ,p_module => l_log_module);
42612 END IF;
42613 --
42614 EXCEPTION
42615 WHEN xla_exceptions_pkg.application_exception THEN
42616 RAISE;
42617 WHEN OTHERS THEN
42618 xla_exceptions_pkg.raise_message
42619 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_87');
42620 END AcctLineType_87;
42621 --
42622
42623 ---------------------------------------
42624 --
42625 -- PRIVATE FUNCTION
42626 -- AcctLineType_88
42627 --
42628 ---------------------------------------
42629 PROCEDURE AcctLineType_88 (
42630 p_application_id IN NUMBER
42631 ,p_event_id IN NUMBER
42632 ,p_calculate_acctd_flag IN VARCHAR2
42633 ,p_calculate_g_l_flag IN VARCHAR2
42634 ,p_actual_flag IN OUT VARCHAR2
42635 ,p_balance_type_code OUT VARCHAR2
42636 ,p_gain_or_loss_ref OUT VARCHAR2
42637
42638 --Payment Currency Code
42639 , p_source_12 IN VARCHAR2
42640 --Payment Distribution (Payment Rate) Ledger Amount
42641 , p_source_21 IN NUMBER
42642 --Invoice Distribution Account
42643 , p_source_29 IN NUMBER
42644 --Invoice Distribution Type
42645 , p_source_32 IN VARCHAR2
42646 , p_source_32_meaning IN VARCHAR2
42647 --When to Account for Payment Option
42648 , p_source_50 IN VARCHAR2
42649 --Payment Distribution Type
42650 , p_source_51 IN VARCHAR2
42651 , p_source_51_meaning IN VARCHAR2
42652 --Accounting Reversal Indicator
42656 --Business Flow Accounts Payable Application Identifier
42653 , p_source_52 IN VARCHAR2
42654 --Payment Distribution Amount
42655 , p_source_53 IN NUMBER
42657 , p_source_54 IN NUMBER
42658 --Payment Distribution Identifier
42659 , p_source_59 IN NUMBER
42660 --Distribution Link Type
42661 , p_source_60 IN VARCHAR2
42662 --Override Accounted Amount Indicator
42663 , p_source_64 IN VARCHAR2
42664 , p_source_64_meaning IN VARCHAR2
42665 --Payment Supplier Identifier
42666 , p_source_65 IN NUMBER
42667 --Payment Supplier Site Identifier
42668 , p_source_66 IN NUMBER
42669 --Third Party Type
42670 , p_source_67 IN VARCHAR2
42671 --Payment Distribution Reversed Identifier
42672 , p_source_68 IN NUMBER
42673 --Invoice Distribution Tax Line Identifier
42674 , p_source_69 IN NUMBER
42675 --Invoice Distribution Summary Tax Line Identifier
42676 , p_source_70 IN NUMBER
42677 --Payment Type
42678 , p_source_71 IN VARCHAR2
42679 , p_source_71_meaning IN VARCHAR2
42680 --Invoice Distribution Amount of the Payment Distribution
42681 , p_source_72 IN NUMBER
42682 --Business Flow Invoice Distribution Type
42683 , p_source_73 IN VARCHAR2
42684 --Business Flow Invoice Entity Code
42685 , p_source_74 IN VARCHAR2
42686 --Business Flow Invoice Distribution Identifier
42687 , p_source_75 IN NUMBER
42688 --Business Flow Invoice Identifier
42689 , p_source_76 IN NUMBER
42690 --Invoice Distribution Tax Distribution Identifier from Tax
42691 , p_source_77 IN NUMBER
42692 --Payment Exchange Date
42693 , p_source_121 IN DATE
42694 --Payment Exchange Rate
42695 , p_source_122 IN NUMBER
42696 --Payment Exchange Rate Type
42697 , p_source_123 IN VARCHAR2
42698 )
42699 IS
42700
42701 l_component_type VARCHAR2(80);
42702 l_component_code VARCHAR2(30);
42703 l_component_type_code VARCHAR2(1);
42704 l_component_appl_id INTEGER;
42705 l_amb_context_code VARCHAR2(30);
42706 l_entity_code VARCHAR2(30);
42707 l_event_class_code VARCHAR2(30);
42708 l_ae_header_id NUMBER;
42709 l_event_type_code VARCHAR2(30);
42710 l_line_definition_code VARCHAR2(30);
42711 l_line_definition_owner_code VARCHAR2(1);
42712 --
42713 -- adr variables
42714 l_segment VARCHAR2(30);
42715 l_ccid NUMBER;
42716 l_adr_transaction_coa_id NUMBER;
42717 l_adr_accounting_coa_id NUMBER;
42718 l_adr_flexfield_segment_code VARCHAR2(30);
42719 l_adr_flex_value_set_id NUMBER;
42720 l_adr_value_type_code VARCHAR2(30);
42721 l_adr_value_combination_id NUMBER;
42722 l_adr_value_segment_code VARCHAR2(30);
42723
42724 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42725 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42726 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42727 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42728
42729 -- 4262811 Variables ------------------------------------------------------------------------------------------
42730 l_entered_amt_idx NUMBER;
42731 l_accted_amt_idx NUMBER;
42732 l_acc_rev_flag VARCHAR2(1);
42733 l_accrual_line_num NUMBER;
42734 l_tmp_amt NUMBER;
42735 l_acc_rev_natural_side_code VARCHAR2(1);
42736
42737 l_num_entries NUMBER;
42738 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42739 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42740 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42741 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42742 l_recog_line_1 NUMBER;
42743 l_recog_line_2 NUMBER;
42744
42745 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42746 l_bflow_applied_to_amt NUMBER; -- 5132302
42747 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42748
42749 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42750
42751 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42752 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42753
42754 ---------------------------------------------------------------------------------------------------------------
42755
42756
42757 --
42758 -- bulk performance
42759 --
42760 l_balance_type_code VARCHAR2(1);
42761 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42762 l_log_module VARCHAR2(240);
42763
42764 --
42765 -- Upgrade strategy
42766 --
42767 l_actual_upg_option VARCHAR2(1);
42768 l_enc_upg_option VARCHAR2(1);
42769
42770 --
42771 BEGIN
42772 --
42773 IF g_log_enabled THEN
42774 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
42775 END IF;
42776 --
42777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42778
42779 trace
42780 (p_msg => 'BEGIN of AcctLineType_88'
42781 ,p_level => C_LEVEL_PROCEDURE
42785 --
42782 ,p_module => l_log_module);
42783
42784 END IF;
42786 l_component_type := 'AMB_JLT';
42787 l_component_code := 'AP_FREIGHT_EXPENSE_PMT';
42788 l_component_type_code := 'S';
42789 l_component_appl_id := 200;
42790 l_amb_context_code := 'DEFAULT';
42791 l_entity_code := 'AP_PAYMENTS';
42792 l_event_class_code := 'PAYMENTS';
42793 l_event_type_code := 'PAYMENTS_ALL';
42794 l_line_definition_owner_code := 'S';
42795 l_line_definition_code := 'CASH_PAYMENTS_ALL';
42796 --
42797 l_balance_type_code := 'A';
42798 l_segment := NULL;
42799 l_ccid := NULL;
42800 l_adr_transaction_coa_id := NULL;
42801 l_adr_accounting_coa_id := NULL;
42802 l_adr_flexfield_segment_code := NULL;
42803 l_adr_flex_value_set_id := NULL;
42804 l_adr_value_type_code := NULL;
42805 l_adr_value_combination_id := NULL;
42806 l_adr_value_segment_code := NULL;
42807
42808 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42809 l_bflow_class_code := ''; -- 4219869 Business Flow
42810 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42811 l_budgetary_control_flag := 'N';
42812
42813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42814 l_bflow_applied_to_amt := NULL; -- 5132302
42815 l_entered_amt_idx := NULL; -- 4262811
42816 l_accted_amt_idx := NULL; -- 4262811
42817 l_acc_rev_flag := NULL; -- 4262811
42818 l_accrual_line_num := NULL; -- 4262811
42819 l_tmp_amt := NULL; -- 4262811
42820 --
42821
42822 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42823 l_balance_type_code <> 'B' THEN
42824 IF NVL(p_source_50,'
42825 ') <> 'CLEAR_CLEAR' AND
42826 NVL(p_source_32,'
42827 ') = 'FREIGHT' AND
42828 (NVL(p_source_51,'
42829 ') = 'CASH' OR
42830 NVL(p_source_51,'
42831 ') = 'AWT' OR
42832 NVL(p_source_51,'
42833 ') = 'DISCOUNT') AND
42834 NVL(p_source_71,'
42835 ') <> 'R'
42836 THEN
42837
42838 --
42839 XLA_AE_LINES_PKG.SetNewLine;
42840
42841 p_balance_type_code := l_balance_type_code;
42842 -- set the flag so later we will know whether the gain loss line needs to be created
42843
42844 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42845 p_actual_flag :='A';
42846 END IF;
42847
42848 --
42849 -- bulk performance
42850 --
42851 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42852 p_header_num => 0); -- 4262811
42853 --
42854 -- set accounting line options
42855 --
42856 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42857 p_natural_side_code => 'D'
42858 , p_gain_or_loss_flag => 'N'
42859 , p_gl_transfer_mode_code => 'S'
42860 , p_acct_entry_type_code => 'A'
42861 , p_switch_side_flag => 'Y'
42862 , p_merge_duplicate_code => 'A'
42863 );
42864 --
42865 l_acc_rev_natural_side_code := 'C'; -- 4262811
42866 --
42867 --
42868 -- set accounting line type info
42869 --
42870 xla_ae_lines_pkg.SetAcctLineType
42871 (p_component_type => l_component_type
42872 ,p_event_type_code => l_event_type_code
42873 ,p_line_definition_owner_code => l_line_definition_owner_code
42874 ,p_line_definition_code => l_line_definition_code
42875 ,p_accounting_line_code => l_component_code
42876 ,p_accounting_line_type_code => l_component_type_code
42877 ,p_accounting_line_appl_id => l_component_appl_id
42878 ,p_amb_context_code => l_amb_context_code
42879 ,p_entity_code => l_entity_code
42880 ,p_event_class_code => l_event_class_code);
42881 --
42882 -- set accounting class
42883 --
42884 xla_ae_lines_pkg.SetAcctClass(
42885 p_accounting_class_code => 'FREIGHT'
42886 , p_ae_header_id => l_ae_header_id
42887 );
42888
42889 --
42890 -- set rounding class
42891 --
42892 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42893 'FREIGHT';
42894
42895 --
42896 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42897 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42898 --
42899 -- bulk performance
42900 --
42901 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42902
42903 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42904 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42905
42906 -- 4955764
42907 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42908 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42909
42910 -- 4458381 Public Sector Enh
42911
42912 --
42913 -- set accounting attributes for the line type
42914 --
42915 l_entered_amt_idx := 10;
42916 l_accted_amt_idx := 15;
42920 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42917 l_bflow_applied_to_amt_idx := 2; -- 5132302
42918 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42919 l_rec_acct_attrs.array_char_value(1) := p_source_52;
42921 l_rec_acct_attrs.array_num_value(2) := p_source_72;
42922 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42923 l_rec_acct_attrs.array_num_value(3) := p_source_54;
42924 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42925 l_rec_acct_attrs.array_char_value(4) := p_source_73;
42926 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42927 l_rec_acct_attrs.array_char_value(5) := p_source_74;
42928 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42929 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
42930 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42931 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
42932 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42933 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
42934 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42935 l_rec_acct_attrs.array_char_value(9) := p_source_60;
42936 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42937 l_rec_acct_attrs.array_num_value(10) := p_source_53;
42938 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42939 l_rec_acct_attrs.array_char_value(11) := p_source_12;
42940 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42941 l_rec_acct_attrs.array_date_value(12) := p_source_121;
42942 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42943 l_rec_acct_attrs.array_num_value(13) := p_source_122;
42944 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42945 l_rec_acct_attrs.array_char_value(14) := p_source_123;
42946 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42947 l_rec_acct_attrs.array_num_value(15) := p_source_21;
42948 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42949 l_rec_acct_attrs.array_char_value(16) := p_source_64;
42950 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42951 l_rec_acct_attrs.array_num_value(17) := p_source_65;
42952 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42953 l_rec_acct_attrs.array_num_value(18) := p_source_66;
42954 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42955 l_rec_acct_attrs.array_char_value(19) := p_source_67;
42956 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42957 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
42958 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42959 l_rec_acct_attrs.array_char_value(21) := p_source_60;
42960 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42961 l_rec_acct_attrs.array_num_value(22) := p_source_69;
42962 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42963 l_rec_acct_attrs.array_num_value(23) := p_source_77;
42964 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42965 l_rec_acct_attrs.array_num_value(24) := p_source_70;
42966
42967 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42968 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42969
42970 ---------------------------------------------------------------------------------------------------------------
42971 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42972 ---------------------------------------------------------------------------------------------------------------
42973 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42974
42975 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42976 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42977
42978 IF xla_accounting_cache_pkg.GetValueChar
42979 (p_source_code => 'LEDGER_CATEGORY_CODE'
42980 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42981 AND l_bflow_method_code = 'PRIOR_ENTRY'
42982 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42983 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42984 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42985 )
42986 THEN
42987 xla_ae_lines_pkg.BflowUpgEntry
42988 (p_business_method_code => l_bflow_method_code
42989 ,p_business_class_code => l_bflow_class_code
42990 ,p_balance_type => l_balance_type_code);
42991 ELSE
42992 NULL;
42993 -- No business flow processing for business flow method of NONE.
42994 END IF;
42995
42996 --
42997 -- call analytical criteria
42998 --
42999
43000 --
43001 -- call description
43002 --
43003 -- No description or it is inherited.
43004 --
43005 -- call ADRs
43006 -- Bug 4922099
43007 --
43008 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43009 (NVL(l_actual_upg_option, 'N') = 'O') OR
43010 (NVL(l_enc_upg_option, 'N') = 'O')
43011 )
43012 THEN
43016
43013 NULL;
43014 --
43015 --
43017 l_ccid := AcctDerRule_28(
43018 p_application_id => p_application_id
43019 , p_ae_header_id => l_ae_header_id
43020 , p_source_29 => p_source_29
43021 , x_transaction_coa_id => l_adr_transaction_coa_id
43022 , x_accounting_coa_id => l_adr_accounting_coa_id
43023 , x_value_type_code => l_adr_value_type_code
43024 , p_side => 'NA'
43025 );
43026
43027 xla_ae_lines_pkg.set_ccid(
43028 p_code_combination_id => l_ccid
43029 , p_value_type_code => l_adr_value_type_code
43030 , p_transaction_coa_id => l_adr_transaction_coa_id
43031 , p_accounting_coa_id => l_adr_accounting_coa_id
43032 , p_adr_code => 'AP_INVOICE_DIST'
43033 , p_adr_type_code => 'S'
43034 , p_component_type => l_component_type
43035 , p_component_code => l_component_code
43036 , p_component_type_code => l_component_type_code
43037 , p_component_appl_id => l_component_appl_id
43038 , p_amb_context_code => l_amb_context_code
43039 , p_side => 'NA'
43040 );
43041
43042
43043 --
43044 --
43045 END IF;
43046 --
43047 -- Bug 4922099
43048 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43049 (NVL(l_enc_upg_option, 'N') = 'O')
43050 ) AND
43051 (l_bflow_method_code = 'PRIOR_ENTRY')
43052 )
43053 THEN
43054 IF
43055 --
43056 1 = 2
43057 --
43058 THEN
43059 xla_accounting_err_pkg.build_message
43060 (p_appli_s_name => 'XLA'
43061 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43062 ,p_token_1 => 'LINE_NUMBER'
43063 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43064 ,p_token_2 => 'LINE_TYPE_NAME'
43065 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43066 l_component_type
43067 ,l_component_code
43068 ,l_component_type_code
43069 ,l_component_appl_id
43070 ,l_amb_context_code
43071 ,l_entity_code
43072 ,l_event_class_code
43073 )
43074 ,p_token_3 => 'OWNER'
43075 ,p_value_3 => xla_lookups_pkg.get_meaning(
43076 p_lookup_type => 'XLA_OWNER_TYPE'
43077 ,p_lookup_code => l_component_type_code
43078 )
43079 ,p_token_4 => 'PRODUCT_NAME'
43080 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43081 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43082 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43083 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43084 ,p_ae_header_id => NULL
43085 );
43086
43087 IF (C_LEVEL_ERROR>= g_log_level) THEN
43088 trace
43089 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43090 ,p_level => C_LEVEL_ERROR
43091 ,p_module => l_log_module);
43092 END IF;
43093 END IF;
43094 END IF;
43095 --
43096 --
43097 ------------------------------------------------------------------------------------------------
43098 -- 4219869 Business Flow
43099 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43100 -- Prior Entry. Currently, the following code is always generated.
43101 ------------------------------------------------------------------------------------------------
43102 XLA_AE_LINES_PKG.ValidateCurrentLine;
43103
43104 ------------------------------------------------------------------------------------
43105 -- 4219869 Business Flow
43106 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43107 ------------------------------------------------------------------------------------
43108 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43109
43110 ----------------------------------------------------------------------------------
43111 -- 4219869 Business Flow
43112 -- Update journal entry status -- Need to generate this within IF <condition>
43116 ,p_balance_type_code => l_balance_type_code
43113 ----------------------------------------------------------------------------------
43114 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43115 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43117 );
43118
43119 -------------------------------------------------------------------------------------------
43120 -- 4262811 - Generate the Accrual Reversal lines
43121 -------------------------------------------------------------------------------------------
43122 BEGIN
43123 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43124 (g_array_event(p_event_id).array_value_num('header_index'));
43125 IF l_acc_rev_flag IS NULL THEN
43126 l_acc_rev_flag := 'N';
43127 END IF;
43128 EXCEPTION
43129 WHEN OTHERS THEN
43130 l_acc_rev_flag := 'N';
43131 END;
43132 --
43133 IF (l_acc_rev_flag = 'Y') THEN
43134
43135 -- 4645092 ------------------------------------------------------------------------------
43136 -- To allow MPA report to determine if it should generate report process
43137 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43138 ------------------------------------------------------------------------------------------
43139
43140 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43141 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43142 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43143 -- call ADRs
43144 -- Bug 4922099
43145 --
43146 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43147 (NVL(l_actual_upg_option, 'N') = 'O') OR
43148 (NVL(l_enc_upg_option, 'N') = 'O')
43149 )
43150 THEN
43151 NULL;
43152 --
43153 --
43154
43155 l_ccid := AcctDerRule_28(
43156 p_application_id => p_application_id
43157 , p_ae_header_id => l_ae_header_id
43158 , p_source_29 => p_source_29
43159 , x_transaction_coa_id => l_adr_transaction_coa_id
43160 , x_accounting_coa_id => l_adr_accounting_coa_id
43161 , x_value_type_code => l_adr_value_type_code
43162 , p_side => 'NA'
43163 );
43164
43165 xla_ae_lines_pkg.set_ccid(
43166 p_code_combination_id => l_ccid
43167 , p_value_type_code => l_adr_value_type_code
43168 , p_transaction_coa_id => l_adr_transaction_coa_id
43169 , p_accounting_coa_id => l_adr_accounting_coa_id
43170 , p_adr_code => 'AP_INVOICE_DIST'
43171 , p_adr_type_code => 'S'
43172 , p_component_type => l_component_type
43173 , p_component_code => l_component_code
43174 , p_component_type_code => l_component_type_code
43175 , p_component_appl_id => l_component_appl_id
43176 , p_amb_context_code => l_amb_context_code
43177 , p_side => 'NA'
43178 );
43179
43180
43181 --
43182 --
43183 END IF;
43184
43185 --
43186 -- Update the line information that should be overwritten
43187 --
43188 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43189 p_header_num => 1);
43190 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43191
43192 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43193
43194 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43195 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43196 END IF;
43197
43198 --
43199 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43200 --
43201 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43202 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43203 ELSE
43204 ---------------------------------------------------------------------------------------------------
43205 -- 4262811a Switch Sign
43206 ---------------------------------------------------------------------------------------------------
43207 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43209 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43210 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43211 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43212 -- 5132302
43213 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43214 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43215
43216 END IF;
43217
43218 -- 4955764
43219 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43220 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43221
43222
43226 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43223 XLA_AE_LINES_PKG.ValidateCurrentLine;
43224 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43225
43227 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43228 ,p_balance_type_code => l_balance_type_code);
43229
43230 END IF;
43231
43232 -----------------------------------------------------------------------------------------
43233 -- 4262811 Multiperiod Accounting
43234 -----------------------------------------------------------------------------------------
43235 -- No MPA option is assigned.
43236
43237
43238 END IF;
43239 END IF;
43240 --
43241
43242 --
43243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43244 trace
43245 (p_msg => 'END of AcctLineType_88'
43246 ,p_level => C_LEVEL_PROCEDURE
43247 ,p_module => l_log_module);
43248 END IF;
43249 --
43250 EXCEPTION
43251 WHEN xla_exceptions_pkg.application_exception THEN
43252 RAISE;
43253 WHEN OTHERS THEN
43254 xla_exceptions_pkg.raise_message
43255 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_88');
43256 END AcctLineType_88;
43257 --
43258
43259 ---------------------------------------
43260 --
43261 -- PRIVATE FUNCTION
43262 -- AcctLineType_89
43263 --
43264 ---------------------------------------
43265 PROCEDURE AcctLineType_89 (
43266 p_application_id IN NUMBER
43267 ,p_event_id IN NUMBER
43268 ,p_calculate_acctd_flag IN VARCHAR2
43269 ,p_calculate_g_l_flag IN VARCHAR2
43270 ,p_actual_flag IN OUT VARCHAR2
43271 ,p_balance_type_code OUT VARCHAR2
43272 ,p_gain_or_loss_ref OUT VARCHAR2
43273
43274 --Payment Currency Code
43275 , p_source_12 IN VARCHAR2
43276 --Payment Distribution (Payment Rate) Ledger Amount
43277 , p_source_21 IN NUMBER
43278 --Invoice Distribution Account
43279 , p_source_29 IN NUMBER
43280 --Invoice Distribution Type
43281 , p_source_32 IN VARCHAR2
43282 , p_source_32_meaning IN VARCHAR2
43283 --When to Account for Payment Option
43284 , p_source_50 IN VARCHAR2
43285 --Payment Distribution Type
43286 , p_source_51 IN VARCHAR2
43287 , p_source_51_meaning IN VARCHAR2
43288 --Accounting Reversal Indicator
43289 , p_source_52 IN VARCHAR2
43290 --Payment Distribution Amount
43291 , p_source_53 IN NUMBER
43292 --Business Flow Accounts Payable Application Identifier
43293 , p_source_54 IN NUMBER
43294 --Payment Distribution Identifier
43295 , p_source_59 IN NUMBER
43296 --Distribution Link Type
43297 , p_source_60 IN VARCHAR2
43298 --Override Accounted Amount Indicator
43299 , p_source_64 IN VARCHAR2
43300 , p_source_64_meaning IN VARCHAR2
43301 --Payment Supplier Identifier
43302 , p_source_65 IN NUMBER
43303 --Payment Supplier Site Identifier
43304 , p_source_66 IN NUMBER
43305 --Third Party Type
43306 , p_source_67 IN VARCHAR2
43307 --Payment Distribution Reversed Identifier
43308 , p_source_68 IN NUMBER
43309 --Invoice Distribution Tax Line Identifier
43310 , p_source_69 IN NUMBER
43311 --Invoice Distribution Summary Tax Line Identifier
43312 , p_source_70 IN NUMBER
43313 --Payment Type
43314 , p_source_71 IN VARCHAR2
43315 , p_source_71_meaning IN VARCHAR2
43316 --Business Flow Invoice Distribution Type
43317 , p_source_73 IN VARCHAR2
43318 --Business Flow Invoice Entity Code
43319 , p_source_74 IN VARCHAR2
43320 --Business Flow Invoice Distribution Identifier
43321 , p_source_75 IN NUMBER
43322 --Business Flow Invoice Identifier
43323 , p_source_76 IN NUMBER
43324 --Invoice Distribution Tax Distribution Identifier from Tax
43325 , p_source_77 IN NUMBER
43326 --Payment Exchange Date
43327 , p_source_121 IN DATE
43328 --Payment Exchange Rate
43329 , p_source_122 IN NUMBER
43330 --Payment Exchange Rate Type
43331 , p_source_123 IN VARCHAR2
43332 )
43333 IS
43334
43335 l_component_type VARCHAR2(80);
43336 l_component_code VARCHAR2(30);
43337 l_component_type_code VARCHAR2(1);
43338 l_component_appl_id INTEGER;
43339 l_amb_context_code VARCHAR2(30);
43340 l_entity_code VARCHAR2(30);
43341 l_event_class_code VARCHAR2(30);
43342 l_ae_header_id NUMBER;
43343 l_event_type_code VARCHAR2(30);
43344 l_line_definition_code VARCHAR2(30);
43345 l_line_definition_owner_code VARCHAR2(1);
43346 --
43347 -- adr variables
43348 l_segment VARCHAR2(30);
43349 l_ccid NUMBER;
43350 l_adr_transaction_coa_id NUMBER;
43351 l_adr_accounting_coa_id NUMBER;
43352 l_adr_flexfield_segment_code VARCHAR2(30);
43353 l_adr_flex_value_set_id NUMBER;
43354 l_adr_value_type_code VARCHAR2(30);
43355 l_adr_value_combination_id NUMBER;
43356 l_adr_value_segment_code VARCHAR2(30);
43357
43358 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43359 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43360 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43364 l_entered_amt_idx NUMBER;
43361 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43362
43363 -- 4262811 Variables ------------------------------------------------------------------------------------------
43365 l_accted_amt_idx NUMBER;
43366 l_acc_rev_flag VARCHAR2(1);
43367 l_accrual_line_num NUMBER;
43368 l_tmp_amt NUMBER;
43369 l_acc_rev_natural_side_code VARCHAR2(1);
43370
43371 l_num_entries NUMBER;
43372 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43373 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43374 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43375 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43376 l_recog_line_1 NUMBER;
43377 l_recog_line_2 NUMBER;
43378
43379 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43380 l_bflow_applied_to_amt NUMBER; -- 5132302
43381 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43382
43383 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43384
43385 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43386 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43387
43388 ---------------------------------------------------------------------------------------------------------------
43389
43390
43391 --
43392 -- bulk performance
43393 --
43394 l_balance_type_code VARCHAR2(1);
43395 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43396 l_log_module VARCHAR2(240);
43397
43398 --
43399 -- Upgrade strategy
43400 --
43401 l_actual_upg_option VARCHAR2(1);
43402 l_enc_upg_option VARCHAR2(1);
43403
43404 --
43405 BEGIN
43406 --
43407 IF g_log_enabled THEN
43408 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
43409 END IF;
43410 --
43411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43412
43413 trace
43414 (p_msg => 'BEGIN of AcctLineType_89'
43415 ,p_level => C_LEVEL_PROCEDURE
43416 ,p_module => l_log_module);
43417
43418 END IF;
43419 --
43420 l_component_type := 'AMB_JLT';
43421 l_component_code := 'AP_FREIGHT_EXPENSE_REF';
43422 l_component_type_code := 'S';
43423 l_component_appl_id := 200;
43424 l_amb_context_code := 'DEFAULT';
43425 l_entity_code := 'AP_PAYMENTS';
43426 l_event_class_code := 'REFUNDS';
43427 l_event_type_code := 'REFUNDS_ALL';
43428 l_line_definition_owner_code := 'S';
43429 l_line_definition_code := 'CASH_REFUNDS_ALL';
43430 --
43431 l_balance_type_code := 'A';
43432 l_segment := NULL;
43433 l_ccid := NULL;
43434 l_adr_transaction_coa_id := NULL;
43435 l_adr_accounting_coa_id := NULL;
43436 l_adr_flexfield_segment_code := NULL;
43437 l_adr_flex_value_set_id := NULL;
43438 l_adr_value_type_code := NULL;
43439 l_adr_value_combination_id := NULL;
43440 l_adr_value_segment_code := NULL;
43441
43442 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43443 l_bflow_class_code := ''; -- 4219869 Business Flow
43444 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43445 l_budgetary_control_flag := 'N';
43446
43447 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43448 l_bflow_applied_to_amt := NULL; -- 5132302
43449 l_entered_amt_idx := NULL; -- 4262811
43450 l_accted_amt_idx := NULL; -- 4262811
43451 l_acc_rev_flag := NULL; -- 4262811
43452 l_accrual_line_num := NULL; -- 4262811
43453 l_tmp_amt := NULL; -- 4262811
43454 --
43455
43456 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43457 l_balance_type_code <> 'B' THEN
43458 IF NVL(p_source_50,'
43459 ') <> 'CLEAR_CLEAR' AND
43460 NVL(p_source_32,'
43461 ') = 'FREIGHT' AND
43462 (NVL(p_source_51,'
43463 ') = 'CASH' OR
43464 NVL(p_source_51,'
43465 ') = 'DISCOUNT') AND
43466 NVL(p_source_71,'
43467 ') = 'R'
43468 THEN
43469
43470 --
43471 XLA_AE_LINES_PKG.SetNewLine;
43472
43473 p_balance_type_code := l_balance_type_code;
43474 -- set the flag so later we will know whether the gain loss line needs to be created
43475
43476 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43477 p_actual_flag :='A';
43478 END IF;
43479
43480 --
43481 -- bulk performance
43482 --
43483 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43484 p_header_num => 0); -- 4262811
43485 --
43486 -- set accounting line options
43487 --
43488 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43489 p_natural_side_code => 'D'
43490 , p_gain_or_loss_flag => 'N'
43491 , p_gl_transfer_mode_code => 'S'
43492 , p_acct_entry_type_code => 'A'
43493 , p_switch_side_flag => 'Y'
43494 , p_merge_duplicate_code => 'A'
43495 );
43496 --
43500 -- set accounting line type info
43497 l_acc_rev_natural_side_code := 'C'; -- 4262811
43498 --
43499 --
43501 --
43502 xla_ae_lines_pkg.SetAcctLineType
43503 (p_component_type => l_component_type
43504 ,p_event_type_code => l_event_type_code
43505 ,p_line_definition_owner_code => l_line_definition_owner_code
43506 ,p_line_definition_code => l_line_definition_code
43507 ,p_accounting_line_code => l_component_code
43508 ,p_accounting_line_type_code => l_component_type_code
43509 ,p_accounting_line_appl_id => l_component_appl_id
43510 ,p_amb_context_code => l_amb_context_code
43511 ,p_entity_code => l_entity_code
43512 ,p_event_class_code => l_event_class_code);
43513 --
43514 -- set accounting class
43515 --
43516 xla_ae_lines_pkg.SetAcctClass(
43517 p_accounting_class_code => 'FREIGHT'
43518 , p_ae_header_id => l_ae_header_id
43519 );
43520
43521 --
43522 -- set rounding class
43523 --
43524 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43525 'FREIGHT';
43526
43527 --
43528 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43529 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43530 --
43531 -- bulk performance
43532 --
43533 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43534
43535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43536 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43537
43538 -- 4955764
43539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43541
43542 -- 4458381 Public Sector Enh
43543
43544 --
43545 -- set accounting attributes for the line type
43546 --
43547 l_entered_amt_idx := 9;
43548 l_accted_amt_idx := 14;
43549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43550 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43551 l_rec_acct_attrs.array_char_value(1) := p_source_52;
43552 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
43553 l_rec_acct_attrs.array_num_value(2) := p_source_54;
43554 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43555 l_rec_acct_attrs.array_char_value(3) := p_source_73;
43556 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
43557 l_rec_acct_attrs.array_char_value(4) := p_source_74;
43558 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
43559 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
43560 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43561 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
43562 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
43563 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
43564 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
43565 l_rec_acct_attrs.array_char_value(8) := p_source_60;
43566 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
43567 l_rec_acct_attrs.array_num_value(9) := p_source_53;
43568 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
43569 l_rec_acct_attrs.array_char_value(10) := p_source_12;
43570 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
43571 l_rec_acct_attrs.array_date_value(11) := p_source_121;
43572 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
43573 l_rec_acct_attrs.array_num_value(12) := p_source_122;
43574 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
43575 l_rec_acct_attrs.array_char_value(13) := p_source_123;
43576 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
43577 l_rec_acct_attrs.array_num_value(14) := p_source_21;
43578 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
43579 l_rec_acct_attrs.array_char_value(15) := p_source_64;
43580 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
43581 l_rec_acct_attrs.array_num_value(16) := p_source_65;
43582 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
43583 l_rec_acct_attrs.array_num_value(17) := p_source_66;
43584 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
43585 l_rec_acct_attrs.array_char_value(18) := p_source_67;
43586 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
43587 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
43588 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
43589 l_rec_acct_attrs.array_char_value(20) := p_source_60;
43590 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
43591 l_rec_acct_attrs.array_num_value(21) := p_source_69;
43592 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
43593 l_rec_acct_attrs.array_num_value(22) := p_source_77;
43594 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
43595 l_rec_acct_attrs.array_num_value(23) := p_source_70;
43596
43597 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43601 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43598 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43599
43600 ---------------------------------------------------------------------------------------------------------------
43602 ---------------------------------------------------------------------------------------------------------------
43603 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43604
43605 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43606 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43607
43608 IF xla_accounting_cache_pkg.GetValueChar
43609 (p_source_code => 'LEDGER_CATEGORY_CODE'
43610 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43611 AND l_bflow_method_code = 'PRIOR_ENTRY'
43612 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43613 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43614 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43615 )
43616 THEN
43617 xla_ae_lines_pkg.BflowUpgEntry
43618 (p_business_method_code => l_bflow_method_code
43619 ,p_business_class_code => l_bflow_class_code
43620 ,p_balance_type => l_balance_type_code);
43621 ELSE
43622 NULL;
43623 -- No business flow processing for business flow method of NONE.
43624 END IF;
43625
43626 --
43627 -- call analytical criteria
43628 --
43629
43630 --
43631 -- call description
43632 --
43633 -- No description or it is inherited.
43634 --
43635 -- call ADRs
43636 -- Bug 4922099
43637 --
43638 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43639 (NVL(l_actual_upg_option, 'N') = 'O') OR
43640 (NVL(l_enc_upg_option, 'N') = 'O')
43641 )
43642 THEN
43643 NULL;
43644 --
43645 --
43646
43647 l_ccid := AcctDerRule_28(
43648 p_application_id => p_application_id
43649 , p_ae_header_id => l_ae_header_id
43650 , p_source_29 => p_source_29
43651 , x_transaction_coa_id => l_adr_transaction_coa_id
43652 , x_accounting_coa_id => l_adr_accounting_coa_id
43653 , x_value_type_code => l_adr_value_type_code
43654 , p_side => 'NA'
43655 );
43656
43657 xla_ae_lines_pkg.set_ccid(
43658 p_code_combination_id => l_ccid
43659 , p_value_type_code => l_adr_value_type_code
43660 , p_transaction_coa_id => l_adr_transaction_coa_id
43661 , p_accounting_coa_id => l_adr_accounting_coa_id
43662 , p_adr_code => 'AP_INVOICE_DIST'
43663 , p_adr_type_code => 'S'
43664 , p_component_type => l_component_type
43665 , p_component_code => l_component_code
43666 , p_component_type_code => l_component_type_code
43667 , p_component_appl_id => l_component_appl_id
43668 , p_amb_context_code => l_amb_context_code
43669 , p_side => 'NA'
43670 );
43671
43672
43673 --
43674 --
43675 END IF;
43676 --
43677 -- Bug 4922099
43678 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43679 (NVL(l_enc_upg_option, 'N') = 'O')
43680 ) AND
43681 (l_bflow_method_code = 'PRIOR_ENTRY')
43682 )
43683 THEN
43684 IF
43685 --
43686 1 = 2
43687 --
43688 THEN
43689 xla_accounting_err_pkg.build_message
43690 (p_appli_s_name => 'XLA'
43691 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43692 ,p_token_1 => 'LINE_NUMBER'
43693 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43694 ,p_token_2 => 'LINE_TYPE_NAME'
43695 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43696 l_component_type
43697 ,l_component_code
43698 ,l_component_type_code
43699 ,l_component_appl_id
43700 ,l_amb_context_code
43701 ,l_entity_code
43702 ,l_event_class_code
43703 )
43704 ,p_token_3 => 'OWNER'
43705 ,p_value_3 => xla_lookups_pkg.get_meaning(
43706 p_lookup_type => 'XLA_OWNER_TYPE'
43707 ,p_lookup_code => l_component_type_code
43711 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43708 )
43709 ,p_token_4 => 'PRODUCT_NAME'
43710 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43712 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43713 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43714 ,p_ae_header_id => NULL
43715 );
43716
43717 IF (C_LEVEL_ERROR>= g_log_level) THEN
43718 trace
43719 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43720 ,p_level => C_LEVEL_ERROR
43721 ,p_module => l_log_module);
43722 END IF;
43723 END IF;
43724 END IF;
43725 --
43726 --
43727 ------------------------------------------------------------------------------------------------
43728 -- 4219869 Business Flow
43729 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43730 -- Prior Entry. Currently, the following code is always generated.
43731 ------------------------------------------------------------------------------------------------
43732 XLA_AE_LINES_PKG.ValidateCurrentLine;
43733
43734 ------------------------------------------------------------------------------------
43735 -- 4219869 Business Flow
43736 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43737 ------------------------------------------------------------------------------------
43738 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43739
43740 ----------------------------------------------------------------------------------
43741 -- 4219869 Business Flow
43742 -- Update journal entry status -- Need to generate this within IF <condition>
43743 ----------------------------------------------------------------------------------
43744 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43745 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43746 ,p_balance_type_code => l_balance_type_code
43747 );
43748
43749 -------------------------------------------------------------------------------------------
43750 -- 4262811 - Generate the Accrual Reversal lines
43751 -------------------------------------------------------------------------------------------
43752 BEGIN
43753 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43754 (g_array_event(p_event_id).array_value_num('header_index'));
43755 IF l_acc_rev_flag IS NULL THEN
43756 l_acc_rev_flag := 'N';
43757 END IF;
43758 EXCEPTION
43759 WHEN OTHERS THEN
43760 l_acc_rev_flag := 'N';
43761 END;
43762 --
43763 IF (l_acc_rev_flag = 'Y') THEN
43764
43765 -- 4645092 ------------------------------------------------------------------------------
43766 -- To allow MPA report to determine if it should generate report process
43767 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43768 ------------------------------------------------------------------------------------------
43769
43770 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43771 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43772 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43773 -- call ADRs
43774 -- Bug 4922099
43775 --
43776 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43777 (NVL(l_actual_upg_option, 'N') = 'O') OR
43778 (NVL(l_enc_upg_option, 'N') = 'O')
43779 )
43780 THEN
43781 NULL;
43782 --
43783 --
43784
43785 l_ccid := AcctDerRule_28(
43786 p_application_id => p_application_id
43787 , p_ae_header_id => l_ae_header_id
43788 , p_source_29 => p_source_29
43789 , x_transaction_coa_id => l_adr_transaction_coa_id
43790 , x_accounting_coa_id => l_adr_accounting_coa_id
43791 , x_value_type_code => l_adr_value_type_code
43792 , p_side => 'NA'
43793 );
43794
43795 xla_ae_lines_pkg.set_ccid(
43796 p_code_combination_id => l_ccid
43797 , p_value_type_code => l_adr_value_type_code
43798 , p_transaction_coa_id => l_adr_transaction_coa_id
43799 , p_accounting_coa_id => l_adr_accounting_coa_id
43800 , p_adr_code => 'AP_INVOICE_DIST'
43801 , p_adr_type_code => 'S'
43802 , p_component_type => l_component_type
43803 , p_component_code => l_component_code
43804 , p_component_type_code => l_component_type_code
43805 , p_component_appl_id => l_component_appl_id
43806 , p_amb_context_code => l_amb_context_code
43807 , p_side => 'NA'
43808 );
43809
43810
43811 --
43812 --
43813 END IF;
43814
43815 --
43816 -- Update the line information that should be overwritten
43817 --
43818 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43822 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43819 p_header_num => 1);
43820 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43821
43823
43824 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43825 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43826 END IF;
43827
43828 --
43829 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43830 --
43831 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43832 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43833 ELSE
43834 ---------------------------------------------------------------------------------------------------
43835 -- 4262811a Switch Sign
43836 ---------------------------------------------------------------------------------------------------
43837 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43838 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43840 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43842 -- 5132302
43843 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43845
43846 END IF;
43847
43848 -- 4955764
43849 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43850 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43851
43852
43853 XLA_AE_LINES_PKG.ValidateCurrentLine;
43854 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43855
43856 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43857 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43858 ,p_balance_type_code => l_balance_type_code);
43859
43860 END IF;
43861
43862 -----------------------------------------------------------------------------------------
43863 -- 4262811 Multiperiod Accounting
43864 -----------------------------------------------------------------------------------------
43865 -- No MPA option is assigned.
43866
43867
43868 END IF;
43869 END IF;
43870 --
43871
43872 --
43873 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43874 trace
43875 (p_msg => 'END of AcctLineType_89'
43876 ,p_level => C_LEVEL_PROCEDURE
43877 ,p_module => l_log_module);
43878 END IF;
43879 --
43880 EXCEPTION
43881 WHEN xla_exceptions_pkg.application_exception THEN
43882 RAISE;
43883 WHEN OTHERS THEN
43884 xla_exceptions_pkg.raise_message
43885 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_89');
43886 END AcctLineType_89;
43887 --
43888
43889 ---------------------------------------
43890 --
43891 -- PRIVATE FUNCTION
43892 -- AcctLineType_90
43893 --
43894 ---------------------------------------
43895 PROCEDURE AcctLineType_90 (
43896 p_application_id IN NUMBER
43897 ,p_event_id IN NUMBER
43898 ,p_calculate_acctd_flag IN VARCHAR2
43899 ,p_calculate_g_l_flag IN VARCHAR2
43900 ,p_actual_flag IN OUT VARCHAR2
43901 ,p_balance_type_code OUT VARCHAR2
43902 ,p_gain_or_loss_ref OUT VARCHAR2
43903
43904 --Recipient Invoice Distribution Account
43905 , p_source_48 IN NUMBER
43906 --When to Account for Payment Option
43907 , p_source_50 IN VARCHAR2
43908 --Accounting Reversal Indicator
43909 , p_source_52 IN VARCHAR2
43910 --Business Flow Accounts Payable Application Identifier
43911 , p_source_54 IN NUMBER
43912 --Distribution Link Type
43913 , p_source_60 IN VARCHAR2
43914 --Override Accounted Amount Indicator
43915 , p_source_64 IN VARCHAR2
43916 , p_source_64_meaning IN VARCHAR2
43917 --Third Party Type
43918 , p_source_67 IN VARCHAR2
43919 --Invoice Distribution Tax Line Identifier
43920 , p_source_69 IN NUMBER
43921 --Invoice Distribution Summary Tax Line Identifier
43922 , p_source_70 IN NUMBER
43923 --Invoice Distribution Tax Distribution Identifier from Tax
43924 , p_source_77 IN NUMBER
43925 --Prepayment Distribution Type
43926 , p_source_78 IN VARCHAR2
43927 --Recipient Invoice Distribution Type
43928 , p_source_79 IN VARCHAR2
43929 , p_source_79_meaning IN VARCHAR2
43930 --Prepayment Application Distribution Identifier
43931 , p_source_82 IN NUMBER
43932 --Invoice Identifier
43933 , p_source_83 IN NUMBER
43934 --Business Flow Prepayment Invoice Distribution Type
43935 , p_source_84 IN VARCHAR2
43936 --Business Flow Prepayment Invoice Entity Code
43937 , p_source_85 IN VARCHAR2
43938 --Business Flow Prepayment Invoice Distribution Identifier
43939 , p_source_86 IN NUMBER
43943 , p_source_88 IN VARCHAR2
43940 --Business Flow Prepayment Invoice Identifier
43941 , p_source_87 IN NUMBER
43942 --Upgrade Encumbrance Credit Account Class
43944 --Payables Encumbrance Upgrade Credit Account
43945 , p_source_89 IN NUMBER
43946 --Payables Encumbrance Upgrade Credit Amount
43947 , p_source_90 IN NUMBER
43948 --Invoice Currency Code
43949 , p_source_91 IN VARCHAR2
43950 --Payables Encumbrance Upgrade Credit Base Amount
43951 , p_source_92 IN NUMBER
43952 --Upgrade Encumbrance Debit Account Class
43953 , p_source_93 IN VARCHAR2
43954 --Payables Encumbrance Upgrade Debit Account
43955 , p_source_94 IN NUMBER
43956 --Payables Encumbrance Upgrade Debit Amount
43957 , p_source_95 IN NUMBER
43958 --Payables Encumbrance Upgrade Debit Base Amount
43959 , p_source_96 IN NUMBER
43960 --Payables Encumbrance Upgrade Option
43961 , p_source_97 IN VARCHAR2
43962 --Prepayment Distribution Amount
43963 , p_source_98 IN NUMBER
43964 --Prepayment Clearing Currency Code
43965 , p_source_99 IN VARCHAR2
43966 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
43967 , p_source_100 IN NUMBER
43968 --Deferred Accounting End Date
43969 , p_source_101 IN DATE
43970 --Deferred Accounting Option
43971 , p_source_102 IN VARCHAR2
43972 --Deferred Accounting Start Date
43973 , p_source_103 IN DATE
43974 --Invoice Supplier Identifier
43975 , p_source_104 IN NUMBER
43976 --Invoice Supplier Site Identifier
43977 , p_source_105 IN NUMBER
43978 --Identifier of the Prepayment Application Reversed
43979 , p_source_106 IN NUMBER
43980 --Payables Upgrade Credit Encumbrance Type Identifier
43981 , p_source_107 IN NUMBER
43982 --Payables Upgrade Debit Encumbrance Type Identifier
43983 , p_source_108 IN NUMBER
43984 --Prepayment Clearing Exchange Date
43985 , p_source_125 IN DATE
43986 --Prepayment Clearing Exchange Rate
43987 , p_source_126 IN NUMBER
43988 --Prepayment Clearing Exchange Rate Type
43989 , p_source_127 IN VARCHAR2
43990 )
43991 IS
43992
43993 l_component_type VARCHAR2(80);
43994 l_component_code VARCHAR2(30);
43995 l_component_type_code VARCHAR2(1);
43996 l_component_appl_id INTEGER;
43997 l_amb_context_code VARCHAR2(30);
43998 l_entity_code VARCHAR2(30);
43999 l_event_class_code VARCHAR2(30);
44000 l_ae_header_id NUMBER;
44001 l_event_type_code VARCHAR2(30);
44002 l_line_definition_code VARCHAR2(30);
44003 l_line_definition_owner_code VARCHAR2(1);
44004 --
44005 -- adr variables
44006 l_segment VARCHAR2(30);
44007 l_ccid NUMBER;
44008 l_adr_transaction_coa_id NUMBER;
44009 l_adr_accounting_coa_id NUMBER;
44010 l_adr_flexfield_segment_code VARCHAR2(30);
44011 l_adr_flex_value_set_id NUMBER;
44012 l_adr_value_type_code VARCHAR2(30);
44013 l_adr_value_combination_id NUMBER;
44014 l_adr_value_segment_code VARCHAR2(30);
44015
44016 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44017 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44018 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44019 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44020
44021 -- 4262811 Variables ------------------------------------------------------------------------------------------
44022 l_entered_amt_idx NUMBER;
44023 l_accted_amt_idx NUMBER;
44024 l_acc_rev_flag VARCHAR2(1);
44025 l_accrual_line_num NUMBER;
44026 l_tmp_amt NUMBER;
44027 l_acc_rev_natural_side_code VARCHAR2(1);
44028
44029 l_num_entries NUMBER;
44030 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44031 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44032 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44033 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44034 l_recog_line_1 NUMBER;
44035 l_recog_line_2 NUMBER;
44036
44037 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44038 l_bflow_applied_to_amt NUMBER; -- 5132302
44039 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44040
44041 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44042
44043 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44044 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44045
44046 ---------------------------------------------------------------------------------------------------------------
44047
44048
44049 --
44050 -- bulk performance
44051 --
44052 l_balance_type_code VARCHAR2(1);
44053 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44054 l_log_module VARCHAR2(240);
44055
44056 --
44057 -- Upgrade strategy
44058 --
44059 l_actual_upg_option VARCHAR2(1);
44060 l_enc_upg_option VARCHAR2(1);
44061
44062 --
44063 BEGIN
44064 --
44065 IF g_log_enabled THEN
44069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44066 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
44067 END IF;
44068 --
44070
44071 trace
44072 (p_msg => 'BEGIN of AcctLineType_90'
44073 ,p_level => C_LEVEL_PROCEDURE
44074 ,p_module => l_log_module);
44075
44076 END IF;
44077 --
44078 l_component_type := 'AMB_JLT';
44079 l_component_code := 'AP_FREIGHT_PREPAY_CLR_RATE_APP';
44080 l_component_type_code := 'S';
44081 l_component_appl_id := 200;
44082 l_amb_context_code := 'DEFAULT';
44083 l_entity_code := 'AP_INVOICES';
44084 l_event_class_code := 'PREPAYMENT APPLICATIONS';
44085 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
44086 l_line_definition_owner_code := 'S';
44087 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
44088 --
44089 l_balance_type_code := 'A';
44090 l_segment := NULL;
44091 l_ccid := NULL;
44092 l_adr_transaction_coa_id := NULL;
44093 l_adr_accounting_coa_id := NULL;
44094 l_adr_flexfield_segment_code := NULL;
44095 l_adr_flex_value_set_id := NULL;
44096 l_adr_value_type_code := NULL;
44097 l_adr_value_combination_id := NULL;
44098 l_adr_value_segment_code := NULL;
44099
44100 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44101 l_bflow_class_code := ''; -- 4219869 Business Flow
44102 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44103 l_budgetary_control_flag := 'N';
44104
44105 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44106 l_bflow_applied_to_amt := NULL; -- 5132302
44107 l_entered_amt_idx := NULL; -- 4262811
44108 l_accted_amt_idx := NULL; -- 4262811
44109 l_acc_rev_flag := NULL; -- 4262811
44110 l_accrual_line_num := NULL; -- 4262811
44111 l_tmp_amt := NULL; -- 4262811
44112 --
44113
44114 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44115 l_balance_type_code <> 'B' THEN
44116 IF NVL(p_source_50,'
44117 ') = 'CLEAR_CLEAR' AND
44118 (NVL(p_source_78,'
44119 ') = 'PREPAY APPL' OR
44120 NVL(p_source_78,'
44121 ') = 'PREPAY APPL NONREC TAX' OR
44122 NVL(p_source_78,'
44123 ') = 'PREPAY APPL REC TAX') AND
44124 NVL(p_source_79,'
44125 ') = 'FREIGHT'
44126 THEN
44127
44128 --
44129 XLA_AE_LINES_PKG.SetNewLine;
44130
44131 p_balance_type_code := l_balance_type_code;
44132 -- set the flag so later we will know whether the gain loss line needs to be created
44133
44134 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44135 p_actual_flag :='A';
44136 END IF;
44137
44138 --
44139 -- bulk performance
44140 --
44141 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44142 p_header_num => 0); -- 4262811
44143 --
44144 -- set accounting line options
44145 --
44146 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44147 p_natural_side_code => 'C'
44148 , p_gain_or_loss_flag => 'N'
44149 , p_gl_transfer_mode_code => 'S'
44150 , p_acct_entry_type_code => 'A'
44151 , p_switch_side_flag => 'Y'
44152 , p_merge_duplicate_code => 'A'
44153 );
44154 --
44155 l_acc_rev_natural_side_code := 'D'; -- 4262811
44156 --
44157 --
44158 -- set accounting line type info
44159 --
44160 xla_ae_lines_pkg.SetAcctLineType
44161 (p_component_type => l_component_type
44162 ,p_event_type_code => l_event_type_code
44163 ,p_line_definition_owner_code => l_line_definition_owner_code
44164 ,p_line_definition_code => l_line_definition_code
44165 ,p_accounting_line_code => l_component_code
44166 ,p_accounting_line_type_code => l_component_type_code
44167 ,p_accounting_line_appl_id => l_component_appl_id
44168 ,p_amb_context_code => l_amb_context_code
44169 ,p_entity_code => l_entity_code
44170 ,p_event_class_code => l_event_class_code);
44171 --
44172 -- set accounting class
44173 --
44174 xla_ae_lines_pkg.SetAcctClass(
44175 p_accounting_class_code => 'FREIGHT'
44176 , p_ae_header_id => l_ae_header_id
44177 );
44178
44179 --
44180 -- set rounding class
44181 --
44182 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44183 'FREIGHT';
44184
44185 --
44186 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44187 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44188 --
44189 -- bulk performance
44190 --
44191 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44192
44193 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44194 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44195
44196 -- 4955764
44200 -- 4458381 Public Sector Enh
44197 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44198 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44199
44201
44202 --
44203 -- set accounting attributes for the line type
44204 --
44205 l_entered_amt_idx := 25;
44206 l_accted_amt_idx := 30;
44207 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44208 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44209 l_rec_acct_attrs.array_char_value(1) := p_source_52;
44210 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44211 l_rec_acct_attrs.array_num_value(2) :=
44212 xla_ae_sources_pkg.GetSystemSourceNum(
44213 p_source_code => 'XLA_EVENT_APPL_ID'
44214 , p_source_type_code => 'Y'
44215 , p_source_application_id => 602
44216 );
44217 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44218 l_rec_acct_attrs.array_char_value(3) := p_source_60;
44219 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44220 l_rec_acct_attrs.array_char_value(4) :=
44221 xla_ae_sources_pkg.GetSystemSourceChar(
44222 p_source_code => 'XLA_ENTITY_CODE'
44223 , p_source_type_code => 'Y'
44224 , p_source_application_id => 602
44225 );
44226 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44227 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
44228 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44229 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
44230 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44231 l_rec_acct_attrs.array_num_value(7) := p_source_54;
44232 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44233 l_rec_acct_attrs.array_char_value(8) := p_source_84;
44234 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44235 l_rec_acct_attrs.array_char_value(9) := p_source_85;
44236 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44237 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
44238 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44239 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
44240 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44241 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
44242 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44243 l_rec_acct_attrs.array_char_value(13) := p_source_60;
44244 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44245 l_rec_acct_attrs.array_char_value(14) := p_source_88;
44246 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44247 l_rec_acct_attrs.array_num_value(15) := p_source_89;
44248 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44249 l_rec_acct_attrs.array_num_value(16) := p_source_90;
44250 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44251 l_rec_acct_attrs.array_char_value(17) := p_source_91;
44252 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44253 l_rec_acct_attrs.array_num_value(18) := p_source_92;
44254 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44255 l_rec_acct_attrs.array_char_value(19) := p_source_93;
44256 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44257 l_rec_acct_attrs.array_num_value(20) := p_source_94;
44258 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44259 l_rec_acct_attrs.array_num_value(21) := p_source_95;
44260 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44261 l_rec_acct_attrs.array_char_value(22) := p_source_91;
44262 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44263 l_rec_acct_attrs.array_num_value(23) := p_source_96;
44264 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44265 l_rec_acct_attrs.array_char_value(24) := p_source_97;
44266 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44267 l_rec_acct_attrs.array_num_value(25) := p_source_98;
44268 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44269 l_rec_acct_attrs.array_char_value(26) := p_source_99;
44270 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44271 l_rec_acct_attrs.array_date_value(27) := p_source_125;
44272 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44273 l_rec_acct_attrs.array_num_value(28) := p_source_126;
44274 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44275 l_rec_acct_attrs.array_char_value(29) := p_source_127;
44276 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44277 l_rec_acct_attrs.array_num_value(30) := p_source_100;
44278 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44279 l_rec_acct_attrs.array_date_value(31) := p_source_101;
44280 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44281 l_rec_acct_attrs.array_char_value(32) := p_source_102;
44282 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44283 l_rec_acct_attrs.array_date_value(33) := p_source_103;
44284 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44285 l_rec_acct_attrs.array_char_value(34) := p_source_64;
44286 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44290 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
44287 l_rec_acct_attrs.array_num_value(35) := p_source_104;
44288 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44289 l_rec_acct_attrs.array_num_value(36) := p_source_105;
44291 l_rec_acct_attrs.array_char_value(37) := p_source_67;
44292 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
44293 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
44294 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
44295 l_rec_acct_attrs.array_char_value(39) := p_source_60;
44296 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
44297 l_rec_acct_attrs.array_num_value(40) := p_source_69;
44298 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
44299 l_rec_acct_attrs.array_num_value(41) := p_source_77;
44300 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
44301 l_rec_acct_attrs.array_num_value(42) := p_source_70;
44302 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
44303 l_rec_acct_attrs.array_num_value(43) := p_source_107;
44304 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
44305 l_rec_acct_attrs.array_num_value(44) := p_source_108;
44306
44307 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44308 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44309
44310 ---------------------------------------------------------------------------------------------------------------
44311 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44312 ---------------------------------------------------------------------------------------------------------------
44313 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44314
44315 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44316 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44317
44318 IF xla_accounting_cache_pkg.GetValueChar
44319 (p_source_code => 'LEDGER_CATEGORY_CODE'
44320 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44321 AND l_bflow_method_code = 'PRIOR_ENTRY'
44322 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44323 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44324 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44325 )
44326 THEN
44327 xla_ae_lines_pkg.BflowUpgEntry
44328 (p_business_method_code => l_bflow_method_code
44329 ,p_business_class_code => l_bflow_class_code
44330 ,p_balance_type => l_balance_type_code);
44331 ELSE
44332 NULL;
44333 -- No business flow processing for business flow method of NONE.
44334 END IF;
44335
44336 --
44337 -- call analytical criteria
44338 --
44339
44340 --
44341 -- call description
44342 --
44343 -- No description or it is inherited.
44344 --
44345 -- call ADRs
44346 -- Bug 4922099
44347 --
44348 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44349 (NVL(l_actual_upg_option, 'N') = 'O') OR
44350 (NVL(l_enc_upg_option, 'N') = 'O')
44351 )
44352 THEN
44353 NULL;
44354 --
44355 --
44356
44357 l_ccid := AcctDerRule_35(
44358 p_application_id => p_application_id
44359 , p_ae_header_id => l_ae_header_id
44360 , p_source_48 => p_source_48
44361 , x_transaction_coa_id => l_adr_transaction_coa_id
44362 , x_accounting_coa_id => l_adr_accounting_coa_id
44363 , x_value_type_code => l_adr_value_type_code
44364 , p_side => 'NA'
44365 );
44366
44367 xla_ae_lines_pkg.set_ccid(
44368 p_code_combination_id => l_ccid
44369 , p_value_type_code => l_adr_value_type_code
44370 , p_transaction_coa_id => l_adr_transaction_coa_id
44371 , p_accounting_coa_id => l_adr_accounting_coa_id
44372 , p_adr_code => 'AP_RECP_INV_DIST'
44373 , p_adr_type_code => 'S'
44374 , p_component_type => l_component_type
44375 , p_component_code => l_component_code
44376 , p_component_type_code => l_component_type_code
44377 , p_component_appl_id => l_component_appl_id
44378 , p_amb_context_code => l_amb_context_code
44379 , p_side => 'NA'
44380 );
44381
44382
44383 --
44384 --
44385 END IF;
44386 --
44387 -- Bug 4922099
44388 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44389 (NVL(l_enc_upg_option, 'N') = 'O')
44390 ) AND
44391 (l_bflow_method_code = 'PRIOR_ENTRY')
44392 )
44393 THEN
44394 IF
44395 --
44396 1 = 2
44397 --
44398 THEN
44399 xla_accounting_err_pkg.build_message
44400 (p_appli_s_name => 'XLA'
44401 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44402 ,p_token_1 => 'LINE_NUMBER'
44406 l_component_type
44403 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44404 ,p_token_2 => 'LINE_TYPE_NAME'
44405 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44407 ,l_component_code
44408 ,l_component_type_code
44409 ,l_component_appl_id
44410 ,l_amb_context_code
44411 ,l_entity_code
44412 ,l_event_class_code
44413 )
44414 ,p_token_3 => 'OWNER'
44415 ,p_value_3 => xla_lookups_pkg.get_meaning(
44416 p_lookup_type => 'XLA_OWNER_TYPE'
44417 ,p_lookup_code => l_component_type_code
44418 )
44419 ,p_token_4 => 'PRODUCT_NAME'
44420 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44421 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44422 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44423 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44424 ,p_ae_header_id => NULL
44425 );
44426
44427 IF (C_LEVEL_ERROR>= g_log_level) THEN
44428 trace
44429 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44430 ,p_level => C_LEVEL_ERROR
44431 ,p_module => l_log_module);
44432 END IF;
44433 END IF;
44434 END IF;
44435 --
44436 --
44437 ------------------------------------------------------------------------------------------------
44438 -- 4219869 Business Flow
44439 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44440 -- Prior Entry. Currently, the following code is always generated.
44441 ------------------------------------------------------------------------------------------------
44442 XLA_AE_LINES_PKG.ValidateCurrentLine;
44443
44444 ------------------------------------------------------------------------------------
44445 -- 4219869 Business Flow
44446 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44447 ------------------------------------------------------------------------------------
44448 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44449
44450 ----------------------------------------------------------------------------------
44451 -- 4219869 Business Flow
44452 -- Update journal entry status -- Need to generate this within IF <condition>
44453 ----------------------------------------------------------------------------------
44454 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44455 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44456 ,p_balance_type_code => l_balance_type_code
44457 );
44458
44459 -------------------------------------------------------------------------------------------
44460 -- 4262811 - Generate the Accrual Reversal lines
44461 -------------------------------------------------------------------------------------------
44462 BEGIN
44463 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44464 (g_array_event(p_event_id).array_value_num('header_index'));
44465 IF l_acc_rev_flag IS NULL THEN
44466 l_acc_rev_flag := 'N';
44467 END IF;
44468 EXCEPTION
44469 WHEN OTHERS THEN
44470 l_acc_rev_flag := 'N';
44471 END;
44472 --
44473 IF (l_acc_rev_flag = 'Y') THEN
44474
44475 -- 4645092 ------------------------------------------------------------------------------
44476 -- To allow MPA report to determine if it should generate report process
44477 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44478 ------------------------------------------------------------------------------------------
44479
44480 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44481 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44482 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44483 -- call ADRs
44484 -- Bug 4922099
44485 --
44486 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44487 (NVL(l_actual_upg_option, 'N') = 'O') OR
44488 (NVL(l_enc_upg_option, 'N') = 'O')
44489 )
44490 THEN
44491 NULL;
44492 --
44493 --
44494
44495 l_ccid := AcctDerRule_35(
44496 p_application_id => p_application_id
44497 , p_ae_header_id => l_ae_header_id
44501 , x_value_type_code => l_adr_value_type_code
44498 , p_source_48 => p_source_48
44499 , x_transaction_coa_id => l_adr_transaction_coa_id
44500 , x_accounting_coa_id => l_adr_accounting_coa_id
44502 , p_side => 'NA'
44503 );
44504
44505 xla_ae_lines_pkg.set_ccid(
44506 p_code_combination_id => l_ccid
44507 , p_value_type_code => l_adr_value_type_code
44508 , p_transaction_coa_id => l_adr_transaction_coa_id
44509 , p_accounting_coa_id => l_adr_accounting_coa_id
44510 , p_adr_code => 'AP_RECP_INV_DIST'
44511 , p_adr_type_code => 'S'
44512 , p_component_type => l_component_type
44513 , p_component_code => l_component_code
44514 , p_component_type_code => l_component_type_code
44515 , p_component_appl_id => l_component_appl_id
44516 , p_amb_context_code => l_amb_context_code
44517 , p_side => 'NA'
44518 );
44519
44520
44521 --
44522 --
44523 END IF;
44524
44525 --
44526 -- Update the line information that should be overwritten
44527 --
44528 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44529 p_header_num => 1);
44530 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44531
44532 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44533
44534 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44535 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44536 END IF;
44537
44538 --
44539 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44540 --
44541 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44542 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44543 ELSE
44544 ---------------------------------------------------------------------------------------------------
44545 -- 4262811a Switch Sign
44546 ---------------------------------------------------------------------------------------------------
44547 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44548 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44550 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44552 -- 5132302
44553 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44555
44556 END IF;
44557
44558 -- 4955764
44559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44561
44562
44563 XLA_AE_LINES_PKG.ValidateCurrentLine;
44564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44565
44566 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44567 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44568 ,p_balance_type_code => l_balance_type_code);
44569
44570 END IF;
44571
44572 -----------------------------------------------------------------------------------------
44573 -- 4262811 Multiperiod Accounting
44574 -----------------------------------------------------------------------------------------
44575 -- No MPA option is assigned.
44576
44577
44578 END IF;
44579 END IF;
44580 --
44581
44582 --
44583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44584 trace
44585 (p_msg => 'END of AcctLineType_90'
44586 ,p_level => C_LEVEL_PROCEDURE
44587 ,p_module => l_log_module);
44588 END IF;
44589 --
44590 EXCEPTION
44591 WHEN xla_exceptions_pkg.application_exception THEN
44592 RAISE;
44593 WHEN OTHERS THEN
44594 xla_exceptions_pkg.raise_message
44595 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_90');
44596 END AcctLineType_90;
44597 --
44598
44599 ---------------------------------------
44600 --
44601 -- PRIVATE FUNCTION
44602 -- AcctLineType_91
44603 --
44604 ---------------------------------------
44605 PROCEDURE AcctLineType_91 (
44606 p_application_id IN NUMBER
44607 ,p_event_id IN NUMBER
44608 ,p_calculate_acctd_flag IN VARCHAR2
44609 ,p_calculate_g_l_flag IN VARCHAR2
44610 ,p_actual_flag IN OUT VARCHAR2
44611 ,p_balance_type_code OUT VARCHAR2
44612 ,p_gain_or_loss_ref OUT VARCHAR2
44613
44614 --Recipient Invoice Distribution Account
44615 , p_source_48 IN NUMBER
44616 --When to Account for Payment Option
44617 , p_source_50 IN VARCHAR2
44618 --Accounting Reversal Indicator
44622 --Distribution Link Type
44619 , p_source_52 IN VARCHAR2
44620 --Business Flow Accounts Payable Application Identifier
44621 , p_source_54 IN NUMBER
44623 , p_source_60 IN VARCHAR2
44624 --Override Accounted Amount Indicator
44625 , p_source_64 IN VARCHAR2
44626 , p_source_64_meaning IN VARCHAR2
44627 --Third Party Type
44628 , p_source_67 IN VARCHAR2
44629 --Invoice Distribution Tax Line Identifier
44630 , p_source_69 IN NUMBER
44631 --Invoice Distribution Summary Tax Line Identifier
44632 , p_source_70 IN NUMBER
44633 --Invoice Distribution Tax Distribution Identifier from Tax
44634 , p_source_77 IN NUMBER
44635 --Prepayment Distribution Type
44636 , p_source_78 IN VARCHAR2
44637 --Recipient Invoice Distribution Type
44638 , p_source_79 IN VARCHAR2
44639 , p_source_79_meaning IN VARCHAR2
44640 --Prepayment Application Distribution Identifier
44641 , p_source_82 IN NUMBER
44642 --Invoice Identifier
44643 , p_source_83 IN NUMBER
44644 --Business Flow Prepayment Invoice Distribution Type
44645 , p_source_84 IN VARCHAR2
44646 --Business Flow Prepayment Invoice Entity Code
44647 , p_source_85 IN VARCHAR2
44648 --Business Flow Prepayment Invoice Distribution Identifier
44649 , p_source_86 IN NUMBER
44650 --Business Flow Prepayment Invoice Identifier
44651 , p_source_87 IN NUMBER
44652 --Upgrade Encumbrance Credit Account Class
44653 , p_source_88 IN VARCHAR2
44654 --Payables Encumbrance Upgrade Credit Account
44655 , p_source_89 IN NUMBER
44656 --Payables Encumbrance Upgrade Credit Amount
44657 , p_source_90 IN NUMBER
44658 --Invoice Currency Code
44659 , p_source_91 IN VARCHAR2
44660 --Payables Encumbrance Upgrade Credit Base Amount
44661 , p_source_92 IN NUMBER
44662 --Upgrade Encumbrance Debit Account Class
44663 , p_source_93 IN VARCHAR2
44664 --Payables Encumbrance Upgrade Debit Account
44665 , p_source_94 IN NUMBER
44666 --Payables Encumbrance Upgrade Debit Amount
44667 , p_source_95 IN NUMBER
44668 --Payables Encumbrance Upgrade Debit Base Amount
44669 , p_source_96 IN NUMBER
44670 --Payables Encumbrance Upgrade Option
44671 , p_source_97 IN VARCHAR2
44672 --Prepayment Distribution Amount
44673 , p_source_98 IN NUMBER
44674 --Deferred Accounting End Date
44675 , p_source_101 IN DATE
44676 --Deferred Accounting Option
44677 , p_source_102 IN VARCHAR2
44678 --Deferred Accounting Start Date
44679 , p_source_103 IN DATE
44680 --Invoice Supplier Identifier
44681 , p_source_104 IN NUMBER
44682 --Invoice Supplier Site Identifier
44683 , p_source_105 IN NUMBER
44684 --Identifier of the Prepayment Application Reversed
44685 , p_source_106 IN NUMBER
44686 --Payables Upgrade Credit Encumbrance Type Identifier
44687 , p_source_107 IN NUMBER
44688 --Payables Upgrade Debit Encumbrance Type Identifier
44689 , p_source_108 IN NUMBER
44690 --Prepayment Payment Currency Code
44691 , p_source_109 IN VARCHAR2
44692 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
44693 , p_source_110 IN NUMBER
44694 --Prepayment Payment Exchange Date
44695 , p_source_128 IN DATE
44696 --Prepayment Payment Exchange Rate
44697 , p_source_129 IN NUMBER
44698 --Prepayment Payment Exchange Rate Type
44699 , p_source_130 IN VARCHAR2
44700 )
44701 IS
44702
44703 l_component_type VARCHAR2(80);
44704 l_component_code VARCHAR2(30);
44705 l_component_type_code VARCHAR2(1);
44706 l_component_appl_id INTEGER;
44707 l_amb_context_code VARCHAR2(30);
44708 l_entity_code VARCHAR2(30);
44709 l_event_class_code VARCHAR2(30);
44710 l_ae_header_id NUMBER;
44711 l_event_type_code VARCHAR2(30);
44712 l_line_definition_code VARCHAR2(30);
44713 l_line_definition_owner_code VARCHAR2(1);
44714 --
44715 -- adr variables
44716 l_segment VARCHAR2(30);
44717 l_ccid NUMBER;
44718 l_adr_transaction_coa_id NUMBER;
44719 l_adr_accounting_coa_id NUMBER;
44720 l_adr_flexfield_segment_code VARCHAR2(30);
44721 l_adr_flex_value_set_id NUMBER;
44722 l_adr_value_type_code VARCHAR2(30);
44723 l_adr_value_combination_id NUMBER;
44724 l_adr_value_segment_code VARCHAR2(30);
44725
44726 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44727 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44728 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44729 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44730
44731 -- 4262811 Variables ------------------------------------------------------------------------------------------
44732 l_entered_amt_idx NUMBER;
44733 l_accted_amt_idx NUMBER;
44734 l_acc_rev_flag VARCHAR2(1);
44735 l_accrual_line_num NUMBER;
44736 l_tmp_amt NUMBER;
44737 l_acc_rev_natural_side_code VARCHAR2(1);
44738
44739 l_num_entries NUMBER;
44740 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44744 l_recog_line_1 NUMBER;
44741 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44742 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44743 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44745 l_recog_line_2 NUMBER;
44746
44747 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44748 l_bflow_applied_to_amt NUMBER; -- 5132302
44749 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44750
44751 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44752
44753 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44754 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44755
44756 ---------------------------------------------------------------------------------------------------------------
44757
44758
44759 --
44760 -- bulk performance
44761 --
44762 l_balance_type_code VARCHAR2(1);
44763 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44764 l_log_module VARCHAR2(240);
44765
44766 --
44767 -- Upgrade strategy
44768 --
44769 l_actual_upg_option VARCHAR2(1);
44770 l_enc_upg_option VARCHAR2(1);
44771
44772 --
44773 BEGIN
44774 --
44775 IF g_log_enabled THEN
44776 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
44777 END IF;
44778 --
44779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44780
44781 trace
44782 (p_msg => 'BEGIN of AcctLineType_91'
44783 ,p_level => C_LEVEL_PROCEDURE
44784 ,p_module => l_log_module);
44785
44786 END IF;
44787 --
44788 l_component_type := 'AMB_JLT';
44789 l_component_code := 'AP_FREIGHT_PREPAY_PAY_RATE_APP';
44790 l_component_type_code := 'S';
44791 l_component_appl_id := 200;
44792 l_amb_context_code := 'DEFAULT';
44793 l_entity_code := 'AP_INVOICES';
44794 l_event_class_code := 'PREPAYMENT APPLICATIONS';
44795 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
44796 l_line_definition_owner_code := 'S';
44797 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
44798 --
44799 l_balance_type_code := 'A';
44800 l_segment := NULL;
44801 l_ccid := NULL;
44802 l_adr_transaction_coa_id := NULL;
44803 l_adr_accounting_coa_id := NULL;
44804 l_adr_flexfield_segment_code := NULL;
44805 l_adr_flex_value_set_id := NULL;
44806 l_adr_value_type_code := NULL;
44807 l_adr_value_combination_id := NULL;
44808 l_adr_value_segment_code := NULL;
44809
44810 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44811 l_bflow_class_code := ''; -- 4219869 Business Flow
44812 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44813 l_budgetary_control_flag := 'N';
44814
44815 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44816 l_bflow_applied_to_amt := NULL; -- 5132302
44817 l_entered_amt_idx := NULL; -- 4262811
44818 l_accted_amt_idx := NULL; -- 4262811
44819 l_acc_rev_flag := NULL; -- 4262811
44820 l_accrual_line_num := NULL; -- 4262811
44821 l_tmp_amt := NULL; -- 4262811
44822 --
44823
44824 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44825 l_balance_type_code <> 'B' THEN
44826 IF NVL(p_source_50,'
44827 ') <> 'CLEAR_CLEAR' AND
44828 (NVL(p_source_78,'
44829 ') = 'PREPAY APPL' OR
44830 NVL(p_source_78,'
44831 ') = 'PREPAY APPL NONREC TAX' OR
44832 NVL(p_source_78,'
44833 ') = 'PREPAY APPL REC TAX') AND
44834 NVL(p_source_79,'
44835 ') = 'FREIGHT'
44836 THEN
44837
44838 --
44839 XLA_AE_LINES_PKG.SetNewLine;
44840
44841 p_balance_type_code := l_balance_type_code;
44842 -- set the flag so later we will know whether the gain loss line needs to be created
44843
44844 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44845 p_actual_flag :='A';
44846 END IF;
44847
44848 --
44849 -- bulk performance
44850 --
44851 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44852 p_header_num => 0); -- 4262811
44853 --
44854 -- set accounting line options
44855 --
44856 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44857 p_natural_side_code => 'C'
44858 , p_gain_or_loss_flag => 'N'
44859 , p_gl_transfer_mode_code => 'S'
44860 , p_acct_entry_type_code => 'A'
44861 , p_switch_side_flag => 'Y'
44862 , p_merge_duplicate_code => 'A'
44863 );
44864 --
44865 l_acc_rev_natural_side_code := 'D'; -- 4262811
44866 --
44867 --
44868 -- set accounting line type info
44869 --
44870 xla_ae_lines_pkg.SetAcctLineType
44871 (p_component_type => l_component_type
44872 ,p_event_type_code => l_event_type_code
44873 ,p_line_definition_owner_code => l_line_definition_owner_code
44877 ,p_accounting_line_appl_id => l_component_appl_id
44874 ,p_line_definition_code => l_line_definition_code
44875 ,p_accounting_line_code => l_component_code
44876 ,p_accounting_line_type_code => l_component_type_code
44878 ,p_amb_context_code => l_amb_context_code
44879 ,p_entity_code => l_entity_code
44880 ,p_event_class_code => l_event_class_code);
44881 --
44882 -- set accounting class
44883 --
44884 xla_ae_lines_pkg.SetAcctClass(
44885 p_accounting_class_code => 'FREIGHT'
44886 , p_ae_header_id => l_ae_header_id
44887 );
44888
44889 --
44890 -- set rounding class
44891 --
44892 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44893 'FREIGHT';
44894
44895 --
44896 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44897 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44898 --
44899 -- bulk performance
44900 --
44901 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44902
44903 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44904 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44905
44906 -- 4955764
44907 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44908 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44909
44910 -- 4458381 Public Sector Enh
44911
44912 --
44913 -- set accounting attributes for the line type
44914 --
44915 l_entered_amt_idx := 25;
44916 l_accted_amt_idx := 30;
44917 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44918 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44919 l_rec_acct_attrs.array_char_value(1) := p_source_52;
44920 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44921 l_rec_acct_attrs.array_num_value(2) :=
44922 xla_ae_sources_pkg.GetSystemSourceNum(
44923 p_source_code => 'XLA_EVENT_APPL_ID'
44924 , p_source_type_code => 'Y'
44925 , p_source_application_id => 602
44926 );
44927 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44928 l_rec_acct_attrs.array_char_value(3) := p_source_60;
44929 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44930 l_rec_acct_attrs.array_char_value(4) :=
44931 xla_ae_sources_pkg.GetSystemSourceChar(
44932 p_source_code => 'XLA_ENTITY_CODE'
44933 , p_source_type_code => 'Y'
44934 , p_source_application_id => 602
44935 );
44936 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44937 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
44938 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44939 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
44940 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44941 l_rec_acct_attrs.array_num_value(7) := p_source_54;
44942 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44943 l_rec_acct_attrs.array_char_value(8) := p_source_84;
44944 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44945 l_rec_acct_attrs.array_char_value(9) := p_source_85;
44946 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44947 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
44948 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44949 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
44950 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44951 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
44952 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44953 l_rec_acct_attrs.array_char_value(13) := p_source_60;
44954 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44955 l_rec_acct_attrs.array_char_value(14) := p_source_88;
44956 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44957 l_rec_acct_attrs.array_num_value(15) := p_source_89;
44958 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44959 l_rec_acct_attrs.array_num_value(16) := p_source_90;
44960 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44961 l_rec_acct_attrs.array_char_value(17) := p_source_91;
44962 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44963 l_rec_acct_attrs.array_num_value(18) := p_source_92;
44964 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44965 l_rec_acct_attrs.array_char_value(19) := p_source_93;
44966 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44967 l_rec_acct_attrs.array_num_value(20) := p_source_94;
44968 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44969 l_rec_acct_attrs.array_num_value(21) := p_source_95;
44970 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44971 l_rec_acct_attrs.array_char_value(22) := p_source_91;
44972 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44973 l_rec_acct_attrs.array_num_value(23) := p_source_96;
44974 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44978 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44975 l_rec_acct_attrs.array_char_value(24) := p_source_97;
44976 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44977 l_rec_acct_attrs.array_num_value(25) := p_source_98;
44979 l_rec_acct_attrs.array_char_value(26) := p_source_109;
44980 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44981 l_rec_acct_attrs.array_date_value(27) := p_source_128;
44982 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44983 l_rec_acct_attrs.array_num_value(28) := p_source_129;
44984 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44985 l_rec_acct_attrs.array_char_value(29) := p_source_130;
44986 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44987 l_rec_acct_attrs.array_num_value(30) := p_source_110;
44988 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44989 l_rec_acct_attrs.array_date_value(31) := p_source_101;
44990 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44991 l_rec_acct_attrs.array_char_value(32) := p_source_102;
44992 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44993 l_rec_acct_attrs.array_date_value(33) := p_source_103;
44994 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44995 l_rec_acct_attrs.array_char_value(34) := p_source_64;
44996 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44997 l_rec_acct_attrs.array_num_value(35) := p_source_104;
44998 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44999 l_rec_acct_attrs.array_num_value(36) := p_source_105;
45000 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
45001 l_rec_acct_attrs.array_char_value(37) := p_source_67;
45002 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
45003 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
45004 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
45005 l_rec_acct_attrs.array_char_value(39) := p_source_60;
45006 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
45007 l_rec_acct_attrs.array_num_value(40) := p_source_69;
45008 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
45009 l_rec_acct_attrs.array_num_value(41) := p_source_77;
45010 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
45011 l_rec_acct_attrs.array_num_value(42) := p_source_70;
45012 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
45013 l_rec_acct_attrs.array_num_value(43) := p_source_107;
45014 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
45015 l_rec_acct_attrs.array_num_value(44) := p_source_108;
45016
45017 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45018 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45019
45020 ---------------------------------------------------------------------------------------------------------------
45021 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45022 ---------------------------------------------------------------------------------------------------------------
45023 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45024
45025 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45026 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45027
45028 IF xla_accounting_cache_pkg.GetValueChar
45029 (p_source_code => 'LEDGER_CATEGORY_CODE'
45030 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45031 AND l_bflow_method_code = 'PRIOR_ENTRY'
45032 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45033 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45034 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45035 )
45036 THEN
45037 xla_ae_lines_pkg.BflowUpgEntry
45038 (p_business_method_code => l_bflow_method_code
45039 ,p_business_class_code => l_bflow_class_code
45040 ,p_balance_type => l_balance_type_code);
45041 ELSE
45042 NULL;
45043 -- No business flow processing for business flow method of NONE.
45044 END IF;
45045
45046 --
45047 -- call analytical criteria
45048 --
45049
45050 --
45051 -- call description
45052 --
45053 -- No description or it is inherited.
45054 --
45055 -- call ADRs
45056 -- Bug 4922099
45057 --
45058 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45059 (NVL(l_actual_upg_option, 'N') = 'O') OR
45060 (NVL(l_enc_upg_option, 'N') = 'O')
45061 )
45062 THEN
45063 NULL;
45064 --
45065 --
45066
45067 l_ccid := AcctDerRule_35(
45068 p_application_id => p_application_id
45069 , p_ae_header_id => l_ae_header_id
45070 , p_source_48 => p_source_48
45071 , x_transaction_coa_id => l_adr_transaction_coa_id
45072 , x_accounting_coa_id => l_adr_accounting_coa_id
45073 , x_value_type_code => l_adr_value_type_code
45074 , p_side => 'NA'
45075 );
45076
45077 xla_ae_lines_pkg.set_ccid(
45078 p_code_combination_id => l_ccid
45079 , p_value_type_code => l_adr_value_type_code
45083 , p_adr_type_code => 'S'
45080 , p_transaction_coa_id => l_adr_transaction_coa_id
45081 , p_accounting_coa_id => l_adr_accounting_coa_id
45082 , p_adr_code => 'AP_RECP_INV_DIST'
45084 , p_component_type => l_component_type
45085 , p_component_code => l_component_code
45086 , p_component_type_code => l_component_type_code
45087 , p_component_appl_id => l_component_appl_id
45088 , p_amb_context_code => l_amb_context_code
45089 , p_side => 'NA'
45090 );
45091
45092
45093 --
45094 --
45095 END IF;
45096 --
45097 -- Bug 4922099
45098 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45099 (NVL(l_enc_upg_option, 'N') = 'O')
45100 ) AND
45101 (l_bflow_method_code = 'PRIOR_ENTRY')
45102 )
45103 THEN
45104 IF
45105 --
45106 1 = 2
45107 --
45108 THEN
45109 xla_accounting_err_pkg.build_message
45110 (p_appli_s_name => 'XLA'
45111 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45112 ,p_token_1 => 'LINE_NUMBER'
45113 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45114 ,p_token_2 => 'LINE_TYPE_NAME'
45115 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45116 l_component_type
45117 ,l_component_code
45118 ,l_component_type_code
45119 ,l_component_appl_id
45120 ,l_amb_context_code
45121 ,l_entity_code
45122 ,l_event_class_code
45123 )
45124 ,p_token_3 => 'OWNER'
45125 ,p_value_3 => xla_lookups_pkg.get_meaning(
45126 p_lookup_type => 'XLA_OWNER_TYPE'
45127 ,p_lookup_code => l_component_type_code
45128 )
45129 ,p_token_4 => 'PRODUCT_NAME'
45130 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45131 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45132 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45133 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45134 ,p_ae_header_id => NULL
45135 );
45136
45137 IF (C_LEVEL_ERROR>= g_log_level) THEN
45138 trace
45139 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45140 ,p_level => C_LEVEL_ERROR
45141 ,p_module => l_log_module);
45142 END IF;
45143 END IF;
45144 END IF;
45145 --
45146 --
45147 ------------------------------------------------------------------------------------------------
45148 -- 4219869 Business Flow
45149 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45150 -- Prior Entry. Currently, the following code is always generated.
45151 ------------------------------------------------------------------------------------------------
45152 XLA_AE_LINES_PKG.ValidateCurrentLine;
45153
45154 ------------------------------------------------------------------------------------
45155 -- 4219869 Business Flow
45156 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45157 ------------------------------------------------------------------------------------
45158 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45159
45160 ----------------------------------------------------------------------------------
45161 -- 4219869 Business Flow
45162 -- Update journal entry status -- Need to generate this within IF <condition>
45163 ----------------------------------------------------------------------------------
45164 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45165 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45166 ,p_balance_type_code => l_balance_type_code
45167 );
45168
45169 -------------------------------------------------------------------------------------------
45170 -- 4262811 - Generate the Accrual Reversal lines
45171 -------------------------------------------------------------------------------------------
45172 BEGIN
45173 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45177 END IF;
45174 (g_array_event(p_event_id).array_value_num('header_index'));
45175 IF l_acc_rev_flag IS NULL THEN
45176 l_acc_rev_flag := 'N';
45178 EXCEPTION
45179 WHEN OTHERS THEN
45180 l_acc_rev_flag := 'N';
45181 END;
45182 --
45183 IF (l_acc_rev_flag = 'Y') THEN
45184
45185 -- 4645092 ------------------------------------------------------------------------------
45186 -- To allow MPA report to determine if it should generate report process
45187 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45188 ------------------------------------------------------------------------------------------
45189
45190 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45191 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45192 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
45193 -- call ADRs
45194 -- Bug 4922099
45195 --
45196 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45197 (NVL(l_actual_upg_option, 'N') = 'O') OR
45198 (NVL(l_enc_upg_option, 'N') = 'O')
45199 )
45200 THEN
45201 NULL;
45202 --
45203 --
45204
45205 l_ccid := AcctDerRule_35(
45206 p_application_id => p_application_id
45207 , p_ae_header_id => l_ae_header_id
45208 , p_source_48 => p_source_48
45209 , x_transaction_coa_id => l_adr_transaction_coa_id
45210 , x_accounting_coa_id => l_adr_accounting_coa_id
45211 , x_value_type_code => l_adr_value_type_code
45212 , p_side => 'NA'
45213 );
45214
45215 xla_ae_lines_pkg.set_ccid(
45216 p_code_combination_id => l_ccid
45217 , p_value_type_code => l_adr_value_type_code
45218 , p_transaction_coa_id => l_adr_transaction_coa_id
45219 , p_accounting_coa_id => l_adr_accounting_coa_id
45220 , p_adr_code => 'AP_RECP_INV_DIST'
45221 , p_adr_type_code => 'S'
45222 , p_component_type => l_component_type
45223 , p_component_code => l_component_code
45224 , p_component_type_code => l_component_type_code
45225 , p_component_appl_id => l_component_appl_id
45226 , p_amb_context_code => l_amb_context_code
45227 , p_side => 'NA'
45228 );
45229
45230
45231 --
45232 --
45233 END IF;
45234
45235 --
45236 -- Update the line information that should be overwritten
45237 --
45238 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45239 p_header_num => 1);
45240 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45241
45242 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45243
45244 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45245 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45246 END IF;
45247
45248 --
45249 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45250 --
45251 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45252 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45253 ELSE
45254 ---------------------------------------------------------------------------------------------------
45255 -- 4262811a Switch Sign
45256 ---------------------------------------------------------------------------------------------------
45257 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45258 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45259 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45260 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45261 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45262 -- 5132302
45263 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45264 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45265
45266 END IF;
45267
45268 -- 4955764
45269 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45270 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45271
45272
45273 XLA_AE_LINES_PKG.ValidateCurrentLine;
45274 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45275
45276 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45277 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45278 ,p_balance_type_code => l_balance_type_code);
45279
45280 END IF;
45281
45282 -----------------------------------------------------------------------------------------
45283 -- 4262811 Multiperiod Accounting
45284 -----------------------------------------------------------------------------------------
45285 -- No MPA option is assigned.
45286
45287
45288 END IF;
45289 END IF;
45290 --
45291
45295 (p_msg => 'END of AcctLineType_91'
45292 --
45293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45294 trace
45296 ,p_level => C_LEVEL_PROCEDURE
45297 ,p_module => l_log_module);
45298 END IF;
45299 --
45300 EXCEPTION
45301 WHEN xla_exceptions_pkg.application_exception THEN
45302 RAISE;
45303 WHEN OTHERS THEN
45304 xla_exceptions_pkg.raise_message
45305 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_91');
45306 END AcctLineType_91;
45307 --
45308
45309 ---------------------------------------
45310 --
45311 -- PRIVATE FUNCTION
45312 -- AcctLineType_92
45313 --
45314 ---------------------------------------
45315 PROCEDURE AcctLineType_92 (
45316 p_application_id IN NUMBER
45317 ,p_event_id IN NUMBER
45318 ,p_calculate_acctd_flag IN VARCHAR2
45319 ,p_calculate_g_l_flag IN VARCHAR2
45320 ,p_actual_flag IN OUT VARCHAR2
45321 ,p_balance_type_code OUT VARCHAR2
45322 ,p_gain_or_loss_ref OUT VARCHAR2
45323
45324 --Payment Currency Code
45325 , p_source_12 IN VARCHAR2
45326 --Automatic Offsets Value
45327 , p_source_16 IN VARCHAR2
45328 , p_source_16_meaning IN VARCHAR2
45329 --Payment Distribution (Payment Rate) Ledger Amount
45330 , p_source_21 IN NUMBER
45331 --Bank Future Dated Payment Account
45332 , p_source_23 IN NUMBER
45333 --Future Dated Payment Account Source Option
45334 , p_source_24 IN VARCHAR2
45335 , p_source_24_meaning IN VARCHAR2
45336 --Financials Options Future Dated Payment Account
45337 , p_source_25 IN NUMBER
45338 --Supplier Site Future Dated Payment Account
45339 , p_source_26 IN NUMBER
45340 --Invoice Distribution Account
45341 , p_source_29 IN NUMBER
45342 --When to Account for Payment Option
45343 , p_source_50 IN VARCHAR2
45344 --Payment Distribution Type
45345 , p_source_51 IN VARCHAR2
45346 , p_source_51_meaning IN VARCHAR2
45347 --Accounting Reversal Indicator
45348 , p_source_52 IN VARCHAR2
45349 --Payment Distribution Amount
45350 , p_source_53 IN NUMBER
45351 --Business Flow Accounts Payable Application Identifier
45352 , p_source_54 IN NUMBER
45353 --Payment Distribution Identifier
45354 , p_source_59 IN NUMBER
45355 --Distribution Link Type
45356 , p_source_60 IN VARCHAR2
45357 --Override Accounted Amount Indicator
45358 , p_source_64 IN VARCHAR2
45359 , p_source_64_meaning IN VARCHAR2
45360 --Payment Supplier Identifier
45361 , p_source_65 IN NUMBER
45362 --Payment Supplier Site Identifier
45363 , p_source_66 IN NUMBER
45364 --Third Party Type
45365 , p_source_67 IN VARCHAR2
45366 --Payment Distribution Reversed Identifier
45367 , p_source_68 IN NUMBER
45368 --Invoice Distribution Tax Line Identifier
45369 , p_source_69 IN NUMBER
45370 --Invoice Distribution Summary Tax Line Identifier
45371 , p_source_70 IN NUMBER
45372 --Invoice Distribution Amount of the Payment Distribution
45373 , p_source_72 IN NUMBER
45374 --Business Flow Invoice Distribution Type
45375 , p_source_73 IN VARCHAR2
45376 --Business Flow Invoice Entity Code
45377 , p_source_74 IN VARCHAR2
45378 --Business Flow Invoice Distribution Identifier
45379 , p_source_75 IN NUMBER
45380 --Business Flow Invoice Identifier
45381 , p_source_76 IN NUMBER
45382 --Invoice Distribution Tax Distribution Identifier from Tax
45383 , p_source_77 IN NUMBER
45384 --Payment Maturity Date
45385 , p_source_118 IN DATE
45386 --Payment Processing Type
45387 , p_source_120 IN VARCHAR2
45388 --Payment Exchange Date
45389 , p_source_121 IN DATE
45390 --Payment Exchange Rate
45391 , p_source_122 IN NUMBER
45392 --Payment Exchange Rate Type
45393 , p_source_123 IN VARCHAR2
45394 )
45395 IS
45396
45397 l_component_type VARCHAR2(80);
45398 l_component_code VARCHAR2(30);
45399 l_component_type_code VARCHAR2(1);
45400 l_component_appl_id INTEGER;
45401 l_amb_context_code VARCHAR2(30);
45402 l_entity_code VARCHAR2(30);
45403 l_event_class_code VARCHAR2(30);
45404 l_ae_header_id NUMBER;
45405 l_event_type_code VARCHAR2(30);
45406 l_line_definition_code VARCHAR2(30);
45407 l_line_definition_owner_code VARCHAR2(1);
45408 --
45409 -- adr variables
45410 l_segment VARCHAR2(30);
45411 l_ccid NUMBER;
45412 l_adr_transaction_coa_id NUMBER;
45413 l_adr_accounting_coa_id NUMBER;
45414 l_adr_flexfield_segment_code VARCHAR2(30);
45415 l_adr_flex_value_set_id NUMBER;
45416 l_adr_value_type_code VARCHAR2(30);
45417 l_adr_value_combination_id NUMBER;
45418 l_adr_value_segment_code VARCHAR2(30);
45419
45420 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45421 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45422 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45423 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45424
45428 l_acc_rev_flag VARCHAR2(1);
45425 -- 4262811 Variables ------------------------------------------------------------------------------------------
45426 l_entered_amt_idx NUMBER;
45427 l_accted_amt_idx NUMBER;
45429 l_accrual_line_num NUMBER;
45430 l_tmp_amt NUMBER;
45431 l_acc_rev_natural_side_code VARCHAR2(1);
45432
45433 l_num_entries NUMBER;
45434 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45435 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45436 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45437 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45438 l_recog_line_1 NUMBER;
45439 l_recog_line_2 NUMBER;
45440
45441 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45442 l_bflow_applied_to_amt NUMBER; -- 5132302
45443 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45444
45445 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45446
45447 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45448 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45449
45450 ---------------------------------------------------------------------------------------------------------------
45451
45452
45453 --
45454 -- bulk performance
45455 --
45456 l_balance_type_code VARCHAR2(1);
45457 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45458 l_log_module VARCHAR2(240);
45459
45460 --
45461 -- Upgrade strategy
45462 --
45463 l_actual_upg_option VARCHAR2(1);
45464 l_enc_upg_option VARCHAR2(1);
45465
45466 --
45467 BEGIN
45468 --
45469 IF g_log_enabled THEN
45470 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
45471 END IF;
45472 --
45473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45474
45475 trace
45476 (p_msg => 'BEGIN of AcctLineType_92'
45477 ,p_level => C_LEVEL_PROCEDURE
45478 ,p_module => l_log_module);
45479
45480 END IF;
45481 --
45482 l_component_type := 'AMB_JLT';
45483 l_component_code := 'AP_FUTURE_DATED_PMT';
45484 l_component_type_code := 'S';
45485 l_component_appl_id := 200;
45486 l_amb_context_code := 'DEFAULT';
45487 l_entity_code := 'AP_PAYMENTS';
45488 l_event_class_code := 'PAYMENTS';
45489 l_event_type_code := 'PAYMENTS_ALL';
45490 l_line_definition_owner_code := 'S';
45491 l_line_definition_code := 'CASH_PAYMENTS_ALL';
45492 --
45493 l_balance_type_code := 'A';
45494 l_segment := NULL;
45495 l_ccid := NULL;
45496 l_adr_transaction_coa_id := NULL;
45497 l_adr_accounting_coa_id := NULL;
45498 l_adr_flexfield_segment_code := NULL;
45499 l_adr_flex_value_set_id := NULL;
45500 l_adr_value_type_code := NULL;
45501 l_adr_value_combination_id := NULL;
45502 l_adr_value_segment_code := NULL;
45503
45504 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45505 l_bflow_class_code := 'AP_FUTURE_DTD_PMT'; -- 4219869 Business Flow
45506 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45507 l_budgetary_control_flag := 'N';
45508
45509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45510 l_bflow_applied_to_amt := NULL; -- 5132302
45511 l_entered_amt_idx := NULL; -- 4262811
45512 l_accted_amt_idx := NULL; -- 4262811
45513 l_acc_rev_flag := NULL; -- 4262811
45514 l_accrual_line_num := NULL; -- 4262811
45515 l_tmp_amt := NULL; -- 4262811
45516 --
45517
45518 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45519 l_balance_type_code <> 'B' THEN
45520 IF NVL(p_source_50,'
45521 ') <> 'CLEAR_CLEAR' AND
45522 NVL(p_source_50,'
45523 ') <> 'ALWAYS_CLEAR' AND
45524 NVL(p_source_51,'
45525 ') = 'CASH' AND
45526 p_source_118 IS NOT NULL AND
45527 NVL(p_source_120,'
45528 ') <> 'PAYMENTCARD'
45529 THEN
45530
45531 --
45532 XLA_AE_LINES_PKG.SetNewLine;
45533
45534 p_balance_type_code := l_balance_type_code;
45535 -- set the flag so later we will know whether the gain loss line needs to be created
45536
45537 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45538 p_actual_flag :='A';
45539 END IF;
45540
45541 --
45542 -- bulk performance
45543 --
45544 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45545 p_header_num => 0); -- 4262811
45546 --
45547 -- set accounting line options
45548 --
45549 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45550 p_natural_side_code => 'C'
45551 , p_gain_or_loss_flag => 'N'
45552 , p_gl_transfer_mode_code => 'S'
45553 , p_acct_entry_type_code => 'A'
45554 , p_switch_side_flag => 'Y'
45555 , p_merge_duplicate_code => 'A'
45556 );
45560 --
45557 --
45558 l_acc_rev_natural_side_code := 'D'; -- 4262811
45559 --
45561 -- set accounting line type info
45562 --
45563 xla_ae_lines_pkg.SetAcctLineType
45564 (p_component_type => l_component_type
45565 ,p_event_type_code => l_event_type_code
45566 ,p_line_definition_owner_code => l_line_definition_owner_code
45567 ,p_line_definition_code => l_line_definition_code
45568 ,p_accounting_line_code => l_component_code
45569 ,p_accounting_line_type_code => l_component_type_code
45570 ,p_accounting_line_appl_id => l_component_appl_id
45571 ,p_amb_context_code => l_amb_context_code
45572 ,p_entity_code => l_entity_code
45573 ,p_event_class_code => l_event_class_code);
45574 --
45575 -- set accounting class
45576 --
45577 xla_ae_lines_pkg.SetAcctClass(
45578 p_accounting_class_code => 'FUTURE_DATED_PMT'
45579 , p_ae_header_id => l_ae_header_id
45580 );
45581
45582 --
45583 -- set rounding class
45584 --
45585 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45586 'FUTURE_DATED_PMT';
45587
45588 --
45589 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45590 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45591 --
45592 -- bulk performance
45593 --
45594 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45595
45596 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45597 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45598
45599 -- 4955764
45600 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45601 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45602
45603 -- 4458381 Public Sector Enh
45604
45605 --
45606 -- set accounting attributes for the line type
45607 --
45608 l_entered_amt_idx := 10;
45609 l_accted_amt_idx := 15;
45610 l_bflow_applied_to_amt_idx := 2; -- 5132302
45611 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45612 l_rec_acct_attrs.array_char_value(1) := p_source_52;
45613 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45614 l_rec_acct_attrs.array_num_value(2) := p_source_72;
45615 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45616 l_rec_acct_attrs.array_num_value(3) := p_source_54;
45617 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45618 l_rec_acct_attrs.array_char_value(4) := p_source_73;
45619 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45620 l_rec_acct_attrs.array_char_value(5) := p_source_74;
45621 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45622 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
45623 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45624 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
45625 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45626 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
45627 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45628 l_rec_acct_attrs.array_char_value(9) := p_source_60;
45629 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45630 l_rec_acct_attrs.array_num_value(10) := p_source_53;
45631 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45632 l_rec_acct_attrs.array_char_value(11) := p_source_12;
45633 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
45634 l_rec_acct_attrs.array_date_value(12) := p_source_121;
45635 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
45636 l_rec_acct_attrs.array_num_value(13) := p_source_122;
45637 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
45638 l_rec_acct_attrs.array_char_value(14) := p_source_123;
45639 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
45640 l_rec_acct_attrs.array_num_value(15) := p_source_21;
45641 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
45642 l_rec_acct_attrs.array_char_value(16) := p_source_64;
45643 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
45644 l_rec_acct_attrs.array_num_value(17) := p_source_65;
45645 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
45646 l_rec_acct_attrs.array_num_value(18) := p_source_66;
45647 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
45648 l_rec_acct_attrs.array_char_value(19) := p_source_67;
45649 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
45650 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
45651 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
45652 l_rec_acct_attrs.array_char_value(21) := p_source_60;
45653 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
45654 l_rec_acct_attrs.array_num_value(22) := p_source_69;
45655 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
45656 l_rec_acct_attrs.array_num_value(23) := p_source_77;
45657 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
45661 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45658 l_rec_acct_attrs.array_num_value(24) := p_source_70;
45659
45660 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45662
45663 ---------------------------------------------------------------------------------------------------------------
45664 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45665 ---------------------------------------------------------------------------------------------------------------
45666 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45667
45668 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45669 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45670
45671 IF xla_accounting_cache_pkg.GetValueChar
45672 (p_source_code => 'LEDGER_CATEGORY_CODE'
45673 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45674 AND l_bflow_method_code = 'PRIOR_ENTRY'
45675 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45676 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45677 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45678 )
45679 THEN
45680 xla_ae_lines_pkg.BflowUpgEntry
45681 (p_business_method_code => l_bflow_method_code
45682 ,p_business_class_code => l_bflow_class_code
45683 ,p_balance_type => l_balance_type_code);
45684 ELSE
45685 NULL;
45686 -- No business flow processing for business flow method of NONE.
45687 END IF;
45688
45689 --
45690 -- call analytical criteria
45691 --
45692
45693 --
45694 -- call description
45695 --
45696 -- No description or it is inherited.
45697 --
45698 -- call ADRs
45699 -- Bug 4922099
45700 --
45701 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45702 (NVL(l_actual_upg_option, 'N') = 'O') OR
45703 (NVL(l_enc_upg_option, 'N') = 'O')
45704 )
45705 THEN
45706 NULL;
45707 --
45708 --
45709
45710 l_ccid := AcctDerRule_26(
45711 p_application_id => p_application_id
45712 , p_ae_header_id => l_ae_header_id
45713 , p_source_16 => p_source_16
45714 , p_source_16_meaning => p_source_16_meaning
45715 , p_source_23 => p_source_23
45716 , p_source_24 => p_source_24
45717 , p_source_24_meaning => p_source_24_meaning
45718 , p_source_25 => p_source_25
45719 , p_source_26 => p_source_26
45720 , p_source_29 => p_source_29
45721 , x_transaction_coa_id => l_adr_transaction_coa_id
45722 , x_accounting_coa_id => l_adr_accounting_coa_id
45723 , x_value_type_code => l_adr_value_type_code
45724 , p_side => 'NA'
45725 );
45726
45727 xla_ae_lines_pkg.set_ccid(
45728 p_code_combination_id => l_ccid
45729 , p_value_type_code => l_adr_value_type_code
45730 , p_transaction_coa_id => l_adr_transaction_coa_id
45731 , p_accounting_coa_id => l_adr_accounting_coa_id
45732 , p_adr_code => 'AP_FUTURE_DATED_PMT'
45733 , p_adr_type_code => 'S'
45734 , p_component_type => l_component_type
45735 , p_component_code => l_component_code
45736 , p_component_type_code => l_component_type_code
45737 , p_component_appl_id => l_component_appl_id
45738 , p_amb_context_code => l_amb_context_code
45739 , p_side => 'NA'
45740 );
45741
45742
45743 l_segment := AcctDerRule_9(
45744 p_application_id => p_application_id
45745 , p_ae_header_id => l_ae_header_id
45746 , p_source_16 => p_source_16
45747 , p_source_16_meaning => p_source_16_meaning
45748 , p_source_23 => p_source_23
45749 , p_source_24 => p_source_24
45750 , p_source_24_meaning => p_source_24_meaning
45751 , p_source_25 => p_source_25
45752 , p_source_26 => p_source_26
45753 , x_transaction_coa_id => l_adr_transaction_coa_id
45754 , x_accounting_coa_id => l_adr_accounting_coa_id
45755 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45756 , x_flex_value_set_id => l_adr_flex_value_set_id
45757 , x_value_type_code => l_adr_value_type_code
45758 , x_value_combination_id => l_adr_value_combination_id
45759 , x_value_segment_code => l_adr_value_segment_code
45760 , p_side => 'NA'
45761 , p_override_seg_flag => 'Y'
45762 );
45763
45764 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45765
45766 xla_ae_lines_pkg.set_segment(
45767 p_to_segment_code => 'GL_ACCOUNT'
45768 , p_segment_value => l_segment
45769 , p_from_segment_code => l_adr_value_segment_code
45770 , p_from_combination_id => l_adr_value_combination_id
45771 , p_value_type_code => l_adr_value_type_code
45772 , p_transaction_coa_id => l_adr_transaction_coa_id
45773 , p_accounting_coa_id => l_adr_accounting_coa_id
45774 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45775 , p_flex_value_set_id => l_adr_flex_value_set_id
45779 , p_component_code => l_component_code
45776 , p_adr_code => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
45777 , p_adr_type_code => 'S'
45778 , p_component_type => l_component_type
45780 , p_component_type_code => l_component_type_code
45781 , p_component_appl_id => l_component_appl_id
45782 , p_amb_context_code => l_amb_context_code
45783 , p_entity_code => 'AP_PAYMENTS'
45784 , p_event_class_code => 'PAYMENTS'
45785 , p_side => 'NA'
45786 );
45787
45788 END IF;
45789
45790 l_segment := AcctDerRule_16(
45791 p_application_id => p_application_id
45792 , p_ae_header_id => l_ae_header_id
45793 , p_source_16 => p_source_16
45794 , p_source_16_meaning => p_source_16_meaning
45795 , p_source_29 => p_source_29
45796 , x_transaction_coa_id => l_adr_transaction_coa_id
45797 , x_accounting_coa_id => l_adr_accounting_coa_id
45798 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45799 , x_flex_value_set_id => l_adr_flex_value_set_id
45800 , x_value_type_code => l_adr_value_type_code
45801 , x_value_combination_id => l_adr_value_combination_id
45802 , x_value_segment_code => l_adr_value_segment_code
45803 , p_side => 'NA'
45804 , p_override_seg_flag => 'Y'
45805 );
45806
45807 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45808
45809 xla_ae_lines_pkg.set_segment(
45810 p_to_segment_code => 'GL_BALANCING'
45811 , p_segment_value => l_segment
45812 , p_from_segment_code => l_adr_value_segment_code
45813 , p_from_combination_id => l_adr_value_combination_id
45814 , p_value_type_code => l_adr_value_type_code
45815 , p_transaction_coa_id => l_adr_transaction_coa_id
45816 , p_accounting_coa_id => l_adr_accounting_coa_id
45817 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45818 , p_flex_value_set_id => l_adr_flex_value_set_id
45819 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
45820 , p_adr_type_code => 'S'
45821 , p_component_type => l_component_type
45822 , p_component_code => l_component_code
45823 , p_component_type_code => l_component_type_code
45824 , p_component_appl_id => l_component_appl_id
45825 , p_amb_context_code => l_amb_context_code
45826 , p_entity_code => 'AP_PAYMENTS'
45827 , p_event_class_code => 'PAYMENTS'
45828 , p_side => 'NA'
45829 );
45830
45831 END IF;
45832
45833 --
45834 --
45835 END IF;
45836 --
45837 -- Bug 4922099
45838 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45839 (NVL(l_enc_upg_option, 'N') = 'O')
45840 ) AND
45841 (l_bflow_method_code = 'PRIOR_ENTRY')
45842 )
45843 THEN
45844 IF
45845 --
45846 1 = 2
45847 --
45848 THEN
45849 xla_accounting_err_pkg.build_message
45850 (p_appli_s_name => 'XLA'
45851 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45852 ,p_token_1 => 'LINE_NUMBER'
45853 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45854 ,p_token_2 => 'LINE_TYPE_NAME'
45855 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45856 l_component_type
45857 ,l_component_code
45858 ,l_component_type_code
45859 ,l_component_appl_id
45860 ,l_amb_context_code
45861 ,l_entity_code
45862 ,l_event_class_code
45863 )
45864 ,p_token_3 => 'OWNER'
45865 ,p_value_3 => xla_lookups_pkg.get_meaning(
45866 p_lookup_type => 'XLA_OWNER_TYPE'
45867 ,p_lookup_code => l_component_type_code
45868 )
45869 ,p_token_4 => 'PRODUCT_NAME'
45870 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45871 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45872 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45873 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45877 IF (C_LEVEL_ERROR>= g_log_level) THEN
45874 ,p_ae_header_id => NULL
45875 );
45876
45878 trace
45879 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45880 ,p_level => C_LEVEL_ERROR
45881 ,p_module => l_log_module);
45882 END IF;
45883 END IF;
45884 END IF;
45885 --
45886 --
45887 ------------------------------------------------------------------------------------------------
45888 -- 4219869 Business Flow
45889 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45890 -- Prior Entry. Currently, the following code is always generated.
45891 ------------------------------------------------------------------------------------------------
45892 XLA_AE_LINES_PKG.ValidateCurrentLine;
45893
45894 ------------------------------------------------------------------------------------
45895 -- 4219869 Business Flow
45896 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45897 ------------------------------------------------------------------------------------
45898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45899
45900 ----------------------------------------------------------------------------------
45901 -- 4219869 Business Flow
45902 -- Update journal entry status -- Need to generate this within IF <condition>
45903 ----------------------------------------------------------------------------------
45904 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45905 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45906 ,p_balance_type_code => l_balance_type_code
45907 );
45908
45909 -------------------------------------------------------------------------------------------
45910 -- 4262811 - Generate the Accrual Reversal lines
45911 -------------------------------------------------------------------------------------------
45912 BEGIN
45913 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45914 (g_array_event(p_event_id).array_value_num('header_index'));
45915 IF l_acc_rev_flag IS NULL THEN
45916 l_acc_rev_flag := 'N';
45917 END IF;
45918 EXCEPTION
45919 WHEN OTHERS THEN
45920 l_acc_rev_flag := 'N';
45921 END;
45922 --
45923 IF (l_acc_rev_flag = 'Y') THEN
45924
45925 -- 4645092 ------------------------------------------------------------------------------
45926 -- To allow MPA report to determine if it should generate report process
45927 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45928 ------------------------------------------------------------------------------------------
45929
45930 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45931 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45932 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
45933 -- call ADRs
45934 -- Bug 4922099
45935 --
45936 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45937 (NVL(l_actual_upg_option, 'N') = 'O') OR
45938 (NVL(l_enc_upg_option, 'N') = 'O')
45939 )
45940 THEN
45941 NULL;
45942 --
45943 --
45944
45945 l_ccid := AcctDerRule_26(
45946 p_application_id => p_application_id
45947 , p_ae_header_id => l_ae_header_id
45948 , p_source_16 => p_source_16
45949 , p_source_16_meaning => p_source_16_meaning
45950 , p_source_23 => p_source_23
45951 , p_source_24 => p_source_24
45952 , p_source_24_meaning => p_source_24_meaning
45953 , p_source_25 => p_source_25
45954 , p_source_26 => p_source_26
45955 , p_source_29 => p_source_29
45956 , x_transaction_coa_id => l_adr_transaction_coa_id
45957 , x_accounting_coa_id => l_adr_accounting_coa_id
45958 , x_value_type_code => l_adr_value_type_code
45959 , p_side => 'NA'
45960 );
45961
45962 xla_ae_lines_pkg.set_ccid(
45963 p_code_combination_id => l_ccid
45964 , p_value_type_code => l_adr_value_type_code
45965 , p_transaction_coa_id => l_adr_transaction_coa_id
45966 , p_accounting_coa_id => l_adr_accounting_coa_id
45967 , p_adr_code => 'AP_FUTURE_DATED_PMT'
45968 , p_adr_type_code => 'S'
45969 , p_component_type => l_component_type
45970 , p_component_code => l_component_code
45971 , p_component_type_code => l_component_type_code
45972 , p_component_appl_id => l_component_appl_id
45973 , p_amb_context_code => l_amb_context_code
45974 , p_side => 'NA'
45975 );
45976
45977
45978 l_segment := AcctDerRule_9(
45979 p_application_id => p_application_id
45980 , p_ae_header_id => l_ae_header_id
45981 , p_source_16 => p_source_16
45982 , p_source_16_meaning => p_source_16_meaning
45983 , p_source_23 => p_source_23
45984 , p_source_24 => p_source_24
45985 , p_source_24_meaning => p_source_24_meaning
45986 , p_source_25 => p_source_25
45987 , p_source_26 => p_source_26
45988 , x_transaction_coa_id => l_adr_transaction_coa_id
45989 , x_accounting_coa_id => l_adr_accounting_coa_id
45990 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45994 , x_value_segment_code => l_adr_value_segment_code
45991 , x_flex_value_set_id => l_adr_flex_value_set_id
45992 , x_value_type_code => l_adr_value_type_code
45993 , x_value_combination_id => l_adr_value_combination_id
45995 , p_side => 'NA'
45996 , p_override_seg_flag => 'Y'
45997 );
45998
45999 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
46000
46001 xla_ae_lines_pkg.set_segment(
46002 p_to_segment_code => 'GL_ACCOUNT'
46003 , p_segment_value => l_segment
46004 , p_from_segment_code => l_adr_value_segment_code
46005 , p_from_combination_id => l_adr_value_combination_id
46006 , p_value_type_code => l_adr_value_type_code
46007 , p_transaction_coa_id => l_adr_transaction_coa_id
46008 , p_accounting_coa_id => l_adr_accounting_coa_id
46009 , p_flexfield_segment_code => l_adr_flexfield_segment_code
46010 , p_flex_value_set_id => l_adr_flex_value_set_id
46011 , p_adr_code => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
46012 , p_adr_type_code => 'S'
46013 , p_component_type => l_component_type
46014 , p_component_code => l_component_code
46015 , p_component_type_code => l_component_type_code
46016 , p_component_appl_id => l_component_appl_id
46017 , p_amb_context_code => l_amb_context_code
46018 , p_entity_code => 'AP_PAYMENTS'
46019 , p_event_class_code => 'PAYMENTS'
46020 , p_side => 'NA'
46021 );
46022
46023 END IF;
46024
46025 l_segment := AcctDerRule_16(
46026 p_application_id => p_application_id
46027 , p_ae_header_id => l_ae_header_id
46028 , p_source_16 => p_source_16
46029 , p_source_16_meaning => p_source_16_meaning
46030 , p_source_29 => p_source_29
46031 , x_transaction_coa_id => l_adr_transaction_coa_id
46032 , x_accounting_coa_id => l_adr_accounting_coa_id
46033 , x_flexfield_segment_code => l_adr_flexfield_segment_code
46034 , x_flex_value_set_id => l_adr_flex_value_set_id
46035 , x_value_type_code => l_adr_value_type_code
46036 , x_value_combination_id => l_adr_value_combination_id
46037 , x_value_segment_code => l_adr_value_segment_code
46038 , p_side => 'NA'
46039 , p_override_seg_flag => 'Y'
46040 );
46041
46042 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
46043
46044 xla_ae_lines_pkg.set_segment(
46045 p_to_segment_code => 'GL_BALANCING'
46046 , p_segment_value => l_segment
46047 , p_from_segment_code => l_adr_value_segment_code
46048 , p_from_combination_id => l_adr_value_combination_id
46049 , p_value_type_code => l_adr_value_type_code
46050 , p_transaction_coa_id => l_adr_transaction_coa_id
46051 , p_accounting_coa_id => l_adr_accounting_coa_id
46052 , p_flexfield_segment_code => l_adr_flexfield_segment_code
46053 , p_flex_value_set_id => l_adr_flex_value_set_id
46054 , p_adr_code => 'AP_INV_DIST_BAL_SEG'
46055 , p_adr_type_code => 'S'
46056 , p_component_type => l_component_type
46057 , p_component_code => l_component_code
46058 , p_component_type_code => l_component_type_code
46059 , p_component_appl_id => l_component_appl_id
46060 , p_amb_context_code => l_amb_context_code
46061 , p_entity_code => 'AP_PAYMENTS'
46062 , p_event_class_code => 'PAYMENTS'
46063 , p_side => 'NA'
46064 );
46065
46066 END IF;
46067
46068 --
46069 --
46070 END IF;
46071
46072 --
46073 -- Update the line information that should be overwritten
46074 --
46075 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46076 p_header_num => 1);
46077 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46078
46079 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46080
46081 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46082 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46083 END IF;
46084
46085 --
46086 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46087 --
46088 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46089 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46090 ELSE
46091 ---------------------------------------------------------------------------------------------------
46092 -- 4262811a Switch Sign
46093 ---------------------------------------------------------------------------------------------------
46094 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46098 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46095 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46096 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46097 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46099 -- 5132302
46100 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46101 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46102
46103 END IF;
46104
46105 -- 4955764
46106 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46107 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46108
46109
46110 XLA_AE_LINES_PKG.ValidateCurrentLine;
46111 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46112
46113 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46114 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46115 ,p_balance_type_code => l_balance_type_code);
46116
46117 END IF;
46118
46119 -----------------------------------------------------------------------------------------
46120 -- 4262811 Multiperiod Accounting
46121 -----------------------------------------------------------------------------------------
46122 -- No MPA option is assigned.
46123
46124
46125 END IF;
46126 END IF;
46127 --
46128
46129 --
46130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46131 trace
46132 (p_msg => 'END of AcctLineType_92'
46133 ,p_level => C_LEVEL_PROCEDURE
46134 ,p_module => l_log_module);
46135 END IF;
46136 --
46137 EXCEPTION
46138 WHEN xla_exceptions_pkg.application_exception THEN
46139 RAISE;
46140 WHEN OTHERS THEN
46141 xla_exceptions_pkg.raise_message
46142 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_92');
46143 END AcctLineType_92;
46144 --
46145
46146 ---------------------------------------
46147 --
46148 -- PRIVATE FUNCTION
46149 -- AcctLineType_93
46150 --
46151 ---------------------------------------
46152 PROCEDURE AcctLineType_93 (
46153 p_application_id IN NUMBER
46154 ,p_event_id IN NUMBER
46155 ,p_calculate_acctd_flag IN VARCHAR2
46156 ,p_calculate_g_l_flag IN VARCHAR2
46157 ,p_actual_flag IN OUT VARCHAR2
46158 ,p_balance_type_code OUT VARCHAR2
46159 ,p_gain_or_loss_ref OUT VARCHAR2
46160
46161 --Payment Currency Code
46162 , p_source_12 IN VARCHAR2
46163 --Payment Distribution (Payment Rate) Ledger Amount
46164 , p_source_21 IN NUMBER
46165 --When to Account for Payment Option
46166 , p_source_50 IN VARCHAR2
46167 --Payment Distribution Type
46168 , p_source_51 IN VARCHAR2
46169 , p_source_51_meaning IN VARCHAR2
46170 --Accounting Reversal Indicator
46171 , p_source_52 IN VARCHAR2
46172 --Payment Distribution Amount
46173 , p_source_53 IN NUMBER
46174 --Business Flow Accounts Payable Application Identifier
46175 , p_source_54 IN NUMBER
46176 --Business Flow Payment Distribution Type
46177 , p_source_55 IN VARCHAR2
46178 --Business Flow Payment Entity Code
46179 , p_source_56 IN VARCHAR2
46180 --Business Flow Payment Distribution Identifier
46181 , p_source_57 IN NUMBER
46182 --Business Flow Payment Identifier
46183 , p_source_58 IN NUMBER
46184 --Payment Distribution Identifier
46185 , p_source_59 IN NUMBER
46186 --Distribution Link Type
46187 , p_source_60 IN VARCHAR2
46188 --Override Accounted Amount Indicator
46189 , p_source_64 IN VARCHAR2
46190 , p_source_64_meaning IN VARCHAR2
46191 --Third Party Type
46192 , p_source_67 IN VARCHAR2
46193 --Payment Distribution Reversed Identifier
46194 , p_source_68 IN NUMBER
46195 --Payment Maturity Date
46196 , p_source_118 IN DATE
46197 )
46198 IS
46199
46200 l_component_type VARCHAR2(80);
46201 l_component_code VARCHAR2(30);
46202 l_component_type_code VARCHAR2(1);
46203 l_component_appl_id INTEGER;
46204 l_amb_context_code VARCHAR2(30);
46205 l_entity_code VARCHAR2(30);
46206 l_event_class_code VARCHAR2(30);
46207 l_ae_header_id NUMBER;
46208 l_event_type_code VARCHAR2(30);
46209 l_line_definition_code VARCHAR2(30);
46210 l_line_definition_owner_code VARCHAR2(1);
46211 --
46212 -- adr variables
46213 l_segment VARCHAR2(30);
46214 l_ccid NUMBER;
46215 l_adr_transaction_coa_id NUMBER;
46216 l_adr_accounting_coa_id NUMBER;
46217 l_adr_flexfield_segment_code VARCHAR2(30);
46218 l_adr_flex_value_set_id NUMBER;
46219 l_adr_value_type_code VARCHAR2(30);
46220 l_adr_value_combination_id NUMBER;
46221 l_adr_value_segment_code VARCHAR2(30);
46222
46223 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46224 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46228 -- 4262811 Variables ------------------------------------------------------------------------------------------
46225 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46226 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46227
46229 l_entered_amt_idx NUMBER;
46230 l_accted_amt_idx NUMBER;
46231 l_acc_rev_flag VARCHAR2(1);
46232 l_accrual_line_num NUMBER;
46233 l_tmp_amt NUMBER;
46234 l_acc_rev_natural_side_code VARCHAR2(1);
46235
46236 l_num_entries NUMBER;
46237 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46238 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46239 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46240 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46241 l_recog_line_1 NUMBER;
46242 l_recog_line_2 NUMBER;
46243
46244 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46245 l_bflow_applied_to_amt NUMBER; -- 5132302
46246 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46247
46248 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46249
46250 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46251 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46252
46253 ---------------------------------------------------------------------------------------------------------------
46254
46255
46256 --
46257 -- bulk performance
46258 --
46259 l_balance_type_code VARCHAR2(1);
46260 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46261 l_log_module VARCHAR2(240);
46262
46263 --
46264 -- Upgrade strategy
46265 --
46266 l_actual_upg_option VARCHAR2(1);
46267 l_enc_upg_option VARCHAR2(1);
46268
46269 --
46270 BEGIN
46271 --
46272 IF g_log_enabled THEN
46273 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
46274 END IF;
46275 --
46276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46277
46278 trace
46279 (p_msg => 'BEGIN of AcctLineType_93'
46280 ,p_level => C_LEVEL_PROCEDURE
46281 ,p_module => l_log_module);
46282
46283 END IF;
46284 --
46285 l_component_type := 'AMB_JLT';
46286 l_component_code := 'AP_FUTURE_DATED_PMT_MAT';
46287 l_component_type_code := 'S';
46288 l_component_appl_id := 200;
46289 l_amb_context_code := 'DEFAULT';
46290 l_entity_code := 'AP_PAYMENTS';
46291 l_event_class_code := 'FUTURE DATED PAYMENTS';
46292 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
46293 l_line_definition_owner_code := 'S';
46294 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
46295 --
46296 l_balance_type_code := 'A';
46297 l_segment := NULL;
46298 l_ccid := NULL;
46299 l_adr_transaction_coa_id := NULL;
46300 l_adr_accounting_coa_id := NULL;
46301 l_adr_flexfield_segment_code := NULL;
46302 l_adr_flex_value_set_id := NULL;
46303 l_adr_value_type_code := NULL;
46304 l_adr_value_combination_id := NULL;
46305 l_adr_value_segment_code := NULL;
46306
46307 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46308 l_bflow_class_code := 'AP_FUTURE_DTD_PMT'; -- 4219869 Business Flow
46309 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46310 l_budgetary_control_flag := 'N';
46311
46312 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46313 l_bflow_applied_to_amt := NULL; -- 5132302
46314 l_entered_amt_idx := NULL; -- 4262811
46315 l_accted_amt_idx := NULL; -- 4262811
46316 l_acc_rev_flag := NULL; -- 4262811
46317 l_accrual_line_num := NULL; -- 4262811
46318 l_tmp_amt := NULL; -- 4262811
46319 --
46320
46321 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46322 l_balance_type_code <> 'B' THEN
46323 IF NVL(p_source_50,'
46324 ') <> 'CLEAR_CLEAR' AND
46325 p_source_118 IS NOT NULL AND
46326 (NVL(p_source_51,'
46327 ') = 'CASH' OR
46328 NVL(p_source_51,'
46329 ') = 'ROUNDING')
46330 THEN
46331
46332 --
46333 XLA_AE_LINES_PKG.SetNewLine;
46334
46335 p_balance_type_code := l_balance_type_code;
46336 -- set the flag so later we will know whether the gain loss line needs to be created
46337
46338 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46339 p_actual_flag :='A';
46340 END IF;
46341
46342 --
46343 -- bulk performance
46344 --
46345 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46346 p_header_num => 0); -- 4262811
46347 --
46348 -- set accounting line options
46349 --
46350 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46351 p_natural_side_code => 'D'
46352 , p_gain_or_loss_flag => 'N'
46353 , p_gl_transfer_mode_code => 'S'
46354 , p_acct_entry_type_code => 'A'
46358 --
46355 , p_switch_side_flag => 'Y'
46356 , p_merge_duplicate_code => 'A'
46357 );
46359 l_acc_rev_natural_side_code := 'C'; -- 4262811
46360 --
46361 --
46362 -- set accounting line type info
46363 --
46364 xla_ae_lines_pkg.SetAcctLineType
46365 (p_component_type => l_component_type
46366 ,p_event_type_code => l_event_type_code
46367 ,p_line_definition_owner_code => l_line_definition_owner_code
46368 ,p_line_definition_code => l_line_definition_code
46369 ,p_accounting_line_code => l_component_code
46370 ,p_accounting_line_type_code => l_component_type_code
46371 ,p_accounting_line_appl_id => l_component_appl_id
46372 ,p_amb_context_code => l_amb_context_code
46373 ,p_entity_code => l_entity_code
46374 ,p_event_class_code => l_event_class_code);
46375 --
46376 -- set accounting class
46377 --
46378 xla_ae_lines_pkg.SetAcctClass(
46379 p_accounting_class_code => 'FUTURE_DATED_PMT'
46380 , p_ae_header_id => l_ae_header_id
46381 );
46382
46383 --
46384 -- set rounding class
46385 --
46386 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46387 'FUTURE_DATED_PMT';
46388
46389 --
46390 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46391 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46392 --
46393 -- bulk performance
46394 --
46395 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46396
46397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46398 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46399
46400 -- 4955764
46401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46403
46404 -- 4458381 Public Sector Enh
46405
46406 --
46407 -- set accounting attributes for the line type
46408 --
46409 l_entered_amt_idx := 9;
46410 l_accted_amt_idx := 11;
46411 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46412 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46413 l_rec_acct_attrs.array_char_value(1) := p_source_52;
46414 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46415 l_rec_acct_attrs.array_num_value(2) := p_source_54;
46416 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46417 l_rec_acct_attrs.array_char_value(3) := p_source_55;
46418 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46419 l_rec_acct_attrs.array_char_value(4) := p_source_56;
46420 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46421 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
46422 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46423 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
46424 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46425 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
46426 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46427 l_rec_acct_attrs.array_char_value(8) := p_source_60;
46428 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46429 l_rec_acct_attrs.array_num_value(9) := p_source_53;
46430 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46431 l_rec_acct_attrs.array_char_value(10) := p_source_12;
46432 l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
46433 l_rec_acct_attrs.array_num_value(11) := p_source_21;
46434 l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
46435 l_rec_acct_attrs.array_char_value(12) := p_source_64;
46436 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
46437 l_rec_acct_attrs.array_char_value(13) := p_source_67;
46438 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
46439 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_68);
46440 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
46441 l_rec_acct_attrs.array_char_value(15) := p_source_60;
46442
46443 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46444 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46445
46446 ---------------------------------------------------------------------------------------------------------------
46447 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46448 ---------------------------------------------------------------------------------------------------------------
46449 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46450
46451 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46452 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46453
46454 IF xla_accounting_cache_pkg.GetValueChar
46455 (p_source_code => 'LEDGER_CATEGORY_CODE'
46456 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46460 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46457 AND l_bflow_method_code = 'PRIOR_ENTRY'
46458 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46459 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46461 )
46462 THEN
46463 xla_ae_lines_pkg.BflowUpgEntry
46464 (p_business_method_code => l_bflow_method_code
46465 ,p_business_class_code => l_bflow_class_code
46466 ,p_balance_type => l_balance_type_code);
46467 ELSE
46468 NULL;
46469 XLA_AE_LINES_PKG.business_flow_validation(
46470 p_business_method_code => l_bflow_method_code
46471 ,p_business_class_code => l_bflow_class_code
46472 ,p_inherit_description_flag => l_inherit_desc_flag);
46473 END IF;
46474
46475 --
46476 -- call analytical criteria
46477 --
46478 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46479 --
46480 -- call description
46481 --
46482 -- No description or it is inherited.
46483 --
46484 -- call ADRs
46485 -- Bug 4922099
46486 --
46487 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46488 (NVL(l_actual_upg_option, 'N') = 'O') OR
46489 (NVL(l_enc_upg_option, 'N') = 'O')
46490 )
46491 THEN
46492 NULL;
46493 --
46494 --
46495
46496 --
46497 --
46498 END IF;
46499 --
46500 -- Bug 4922099
46501 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46502 (NVL(l_enc_upg_option, 'N') = 'O')
46503 ) AND
46504 (l_bflow_method_code = 'PRIOR_ENTRY')
46505 )
46506 THEN
46507 IF
46508 --
46509 1 = 1
46510 --
46511 THEN
46512 xla_accounting_err_pkg.build_message
46513 (p_appli_s_name => 'XLA'
46514 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46515 ,p_token_1 => 'LINE_NUMBER'
46516 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46517 ,p_token_2 => 'LINE_TYPE_NAME'
46518 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46519 l_component_type
46520 ,l_component_code
46521 ,l_component_type_code
46522 ,l_component_appl_id
46523 ,l_amb_context_code
46524 ,l_entity_code
46525 ,l_event_class_code
46526 )
46527 ,p_token_3 => 'OWNER'
46528 ,p_value_3 => xla_lookups_pkg.get_meaning(
46529 p_lookup_type => 'XLA_OWNER_TYPE'
46530 ,p_lookup_code => l_component_type_code
46531 )
46532 ,p_token_4 => 'PRODUCT_NAME'
46533 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46534 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46535 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46536 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46537 ,p_ae_header_id => NULL
46538 );
46539
46540 IF (C_LEVEL_ERROR>= g_log_level) THEN
46541 trace
46542 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46543 ,p_level => C_LEVEL_ERROR
46544 ,p_module => l_log_module);
46545 END IF;
46546 END IF;
46547 END IF;
46548 --
46549 --
46550 ------------------------------------------------------------------------------------------------
46551 -- 4219869 Business Flow
46552 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46553 -- Prior Entry. Currently, the following code is always generated.
46554 ------------------------------------------------------------------------------------------------
46555 -- No ValidateCurrentLine for business flow method of Prior Entry
46556
46557 ------------------------------------------------------------------------------------
46558 -- 4219869 Business Flow
46559 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46560 ------------------------------------------------------------------------------------
46561 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46562
46563 ----------------------------------------------------------------------------------
46567 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46564 -- 4219869 Business Flow
46565 -- Update journal entry status -- Need to generate this within IF <condition>
46566 ----------------------------------------------------------------------------------
46568 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46569 ,p_balance_type_code => l_balance_type_code
46570 );
46571
46572 -------------------------------------------------------------------------------------------
46573 -- 4262811 - Generate the Accrual Reversal lines
46574 -------------------------------------------------------------------------------------------
46575 BEGIN
46576 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46577 (g_array_event(p_event_id).array_value_num('header_index'));
46578 IF l_acc_rev_flag IS NULL THEN
46579 l_acc_rev_flag := 'N';
46580 END IF;
46581 EXCEPTION
46582 WHEN OTHERS THEN
46583 l_acc_rev_flag := 'N';
46584 END;
46585 --
46586 IF (l_acc_rev_flag = 'Y') THEN
46587
46588 -- 4645092 ------------------------------------------------------------------------------
46589 -- To allow MPA report to determine if it should generate report process
46590 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46591 ------------------------------------------------------------------------------------------
46592
46593 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46594 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46595 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46596 -- call ADRs
46597 -- Bug 4922099
46598 --
46599 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46600 (NVL(l_actual_upg_option, 'N') = 'O') OR
46601 (NVL(l_enc_upg_option, 'N') = 'O')
46602 )
46603 THEN
46604 NULL;
46605 --
46606 --
46607
46608 --
46609 --
46610 END IF;
46611
46612 --
46613 -- Update the line information that should be overwritten
46614 --
46615 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46616 p_header_num => 1);
46617 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46618
46619 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46620
46621 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46622 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46623 END IF;
46624
46625 --
46626 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46627 --
46628 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46629 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46630 ELSE
46631 ---------------------------------------------------------------------------------------------------
46632 -- 4262811a Switch Sign
46633 ---------------------------------------------------------------------------------------------------
46634 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46635 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46636 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46637 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46638 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46639 -- 5132302
46640 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46641 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46642
46643 END IF;
46644
46645 -- 4955764
46646 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46647 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46648
46649
46650 XLA_AE_LINES_PKG.ValidateCurrentLine;
46651 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46652
46653 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46654 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46655 ,p_balance_type_code => l_balance_type_code);
46656
46657 END IF;
46658
46659 -----------------------------------------------------------------------------------------
46660 -- 4262811 Multiperiod Accounting
46661 -----------------------------------------------------------------------------------------
46662 -- No MPA option is assigned.
46663
46664
46665 END IF;
46666 END IF;
46667 --
46668
46669 --
46670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46671 trace
46672 (p_msg => 'END of AcctLineType_93'
46673 ,p_level => C_LEVEL_PROCEDURE
46674 ,p_module => l_log_module);
46675 END IF;
46676 --
46677 EXCEPTION
46678 WHEN xla_exceptions_pkg.application_exception THEN
46679 RAISE;
46683 END AcctLineType_93;
46680 WHEN OTHERS THEN
46681 xla_exceptions_pkg.raise_message
46682 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_93');
46684 --
46685
46686 ---------------------------------------
46687 --
46688 -- PRIVATE FUNCTION
46689 -- AcctLineType_94
46690 --
46691 ---------------------------------------
46692 PROCEDURE AcctLineType_94 (
46693 p_application_id IN NUMBER
46694 ,p_event_id IN NUMBER
46695 ,p_calculate_acctd_flag IN VARCHAR2
46696 ,p_calculate_g_l_flag IN VARCHAR2
46697 ,p_actual_flag IN OUT VARCHAR2
46698 ,p_balance_type_code OUT VARCHAR2
46699 ,p_gain_or_loss_ref OUT VARCHAR2
46700
46701 --Payment Currency Code
46702 , p_source_12 IN VARCHAR2
46703 --Automatic Offsets Value
46704 , p_source_16 IN VARCHAR2
46705 , p_source_16_meaning IN VARCHAR2
46706 --Payment Distribution (Payment Rate) Ledger Amount
46707 , p_source_21 IN NUMBER
46708 --Invoice Distribution Account
46709 , p_source_29 IN NUMBER
46710 --Payables Options Rounding Account
46711 , p_source_49 IN NUMBER
46712 --When to Account for Payment Option
46713 , p_source_50 IN VARCHAR2
46714 --Payment Distribution Type
46715 , p_source_51 IN VARCHAR2
46716 , p_source_51_meaning IN VARCHAR2
46717 --Accounting Reversal Indicator
46718 , p_source_52 IN VARCHAR2
46719 --Payment Distribution Amount
46720 , p_source_53 IN NUMBER
46721 --Business Flow Accounts Payable Application Identifier
46722 , p_source_54 IN NUMBER
46723 --Business Flow Payment Distribution Type
46724 , p_source_55 IN VARCHAR2
46725 --Business Flow Payment Entity Code
46726 , p_source_56 IN VARCHAR2
46727 --Business Flow Payment Distribution Identifier
46728 , p_source_57 IN NUMBER
46729 --Business Flow Payment Identifier
46730 , p_source_58 IN NUMBER
46731 --Payment Distribution Identifier
46732 , p_source_59 IN NUMBER
46733 --Distribution Link Type
46734 , p_source_60 IN VARCHAR2
46735 --Override Accounted Amount Indicator
46736 , p_source_64 IN VARCHAR2
46737 , p_source_64_meaning IN VARCHAR2
46738 --Payment Supplier Identifier
46739 , p_source_65 IN NUMBER
46740 --Payment Supplier Site Identifier
46741 , p_source_66 IN NUMBER
46742 --Third Party Type
46743 , p_source_67 IN VARCHAR2
46744 --Payment Distribution Reversed Identifier
46745 , p_source_68 IN NUMBER
46746 --Payment Exchange Date
46747 , p_source_121 IN DATE
46748 --Payment Exchange Rate
46749 , p_source_122 IN NUMBER
46750 --Payment Exchange Rate Type
46751 , p_source_123 IN VARCHAR2
46752 )
46753 IS
46754
46755 l_component_type VARCHAR2(80);
46756 l_component_code VARCHAR2(30);
46757 l_component_type_code VARCHAR2(1);
46758 l_component_appl_id INTEGER;
46759 l_amb_context_code VARCHAR2(30);
46760 l_entity_code VARCHAR2(30);
46761 l_event_class_code VARCHAR2(30);
46762 l_ae_header_id NUMBER;
46763 l_event_type_code VARCHAR2(30);
46764 l_line_definition_code VARCHAR2(30);
46765 l_line_definition_owner_code VARCHAR2(1);
46766 --
46767 -- adr variables
46768 l_segment VARCHAR2(30);
46769 l_ccid NUMBER;
46770 l_adr_transaction_coa_id NUMBER;
46771 l_adr_accounting_coa_id NUMBER;
46772 l_adr_flexfield_segment_code VARCHAR2(30);
46773 l_adr_flex_value_set_id NUMBER;
46774 l_adr_value_type_code VARCHAR2(30);
46775 l_adr_value_combination_id NUMBER;
46776 l_adr_value_segment_code VARCHAR2(30);
46777
46778 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46779 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46780 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46781 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46782
46783 -- 4262811 Variables ------------------------------------------------------------------------------------------
46784 l_entered_amt_idx NUMBER;
46785 l_accted_amt_idx NUMBER;
46786 l_acc_rev_flag VARCHAR2(1);
46787 l_accrual_line_num NUMBER;
46788 l_tmp_amt NUMBER;
46789 l_acc_rev_natural_side_code VARCHAR2(1);
46790
46791 l_num_entries NUMBER;
46792 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46793 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46794 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46795 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46796 l_recog_line_1 NUMBER;
46797 l_recog_line_2 NUMBER;
46798
46799 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46800 l_bflow_applied_to_amt NUMBER; -- 5132302
46801 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46802
46803 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46804
46805 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46809
46806 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46807
46808 ---------------------------------------------------------------------------------------------------------------
46810
46811 --
46812 -- bulk performance
46813 --
46814 l_balance_type_code VARCHAR2(1);
46815 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46816 l_log_module VARCHAR2(240);
46817
46818 --
46819 -- Upgrade strategy
46820 --
46821 l_actual_upg_option VARCHAR2(1);
46822 l_enc_upg_option VARCHAR2(1);
46823
46824 --
46825 BEGIN
46826 --
46827 IF g_log_enabled THEN
46828 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
46829 END IF;
46830 --
46831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46832
46833 trace
46834 (p_msg => 'BEGIN of AcctLineType_94'
46835 ,p_level => C_LEVEL_PROCEDURE
46836 ,p_module => l_log_module);
46837
46838 END IF;
46839 --
46840 l_component_type := 'AMB_JLT';
46841 l_component_code := 'AP_FUTURE_PMT_ROUNDING_MAT';
46842 l_component_type_code := 'S';
46843 l_component_appl_id := 200;
46844 l_amb_context_code := 'DEFAULT';
46845 l_entity_code := 'AP_PAYMENTS';
46846 l_event_class_code := 'FUTURE DATED PAYMENTS';
46847 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
46848 l_line_definition_owner_code := 'S';
46849 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
46850 --
46851 l_balance_type_code := 'A';
46852 l_segment := NULL;
46853 l_ccid := NULL;
46854 l_adr_transaction_coa_id := NULL;
46855 l_adr_accounting_coa_id := NULL;
46856 l_adr_flexfield_segment_code := NULL;
46857 l_adr_flex_value_set_id := NULL;
46858 l_adr_value_type_code := NULL;
46859 l_adr_value_combination_id := NULL;
46860 l_adr_value_segment_code := NULL;
46861
46862 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46863 l_bflow_class_code := ''; -- 4219869 Business Flow
46864 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46865 l_budgetary_control_flag := 'N';
46866
46867 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46868 l_bflow_applied_to_amt := NULL; -- 5132302
46869 l_entered_amt_idx := NULL; -- 4262811
46870 l_accted_amt_idx := NULL; -- 4262811
46871 l_acc_rev_flag := NULL; -- 4262811
46872 l_accrual_line_num := NULL; -- 4262811
46873 l_tmp_amt := NULL; -- 4262811
46874 --
46875
46876 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46877 l_balance_type_code <> 'B' THEN
46878 IF NVL(p_source_50,'
46879 ') <> 'CLEAR_CLEAR' AND
46880 NVL(p_source_51,'
46881 ') = 'FUTURE PAYMENT ROUNDING'
46882 THEN
46883
46884 --
46885 XLA_AE_LINES_PKG.SetNewLine;
46886
46887 p_balance_type_code := l_balance_type_code;
46888 -- set the flag so later we will know whether the gain loss line needs to be created
46889
46890 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46891 p_actual_flag :='A';
46892 END IF;
46893
46894 --
46895 -- bulk performance
46896 --
46897 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46898 p_header_num => 0); -- 4262811
46899 --
46900 -- set accounting line options
46901 --
46902 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46903 p_natural_side_code => 'D'
46904 , p_gain_or_loss_flag => 'N'
46905 , p_gl_transfer_mode_code => 'S'
46906 , p_acct_entry_type_code => 'A'
46907 , p_switch_side_flag => 'Y'
46908 , p_merge_duplicate_code => 'A'
46909 );
46910 --
46911 l_acc_rev_natural_side_code := 'C'; -- 4262811
46912 --
46913 --
46914 -- set accounting line type info
46915 --
46916 xla_ae_lines_pkg.SetAcctLineType
46917 (p_component_type => l_component_type
46918 ,p_event_type_code => l_event_type_code
46919 ,p_line_definition_owner_code => l_line_definition_owner_code
46920 ,p_line_definition_code => l_line_definition_code
46921 ,p_accounting_line_code => l_component_code
46922 ,p_accounting_line_type_code => l_component_type_code
46923 ,p_accounting_line_appl_id => l_component_appl_id
46924 ,p_amb_context_code => l_amb_context_code
46925 ,p_entity_code => l_entity_code
46926 ,p_event_class_code => l_event_class_code);
46927 --
46928 -- set accounting class
46929 --
46930 xla_ae_lines_pkg.SetAcctClass(
46931 p_accounting_class_code => 'ROUNDING'
46932 , p_ae_header_id => l_ae_header_id
46933 );
46934
46935 --
46936 -- set rounding class
46937 --
46938 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46939 'ROUNDING';
46940
46941 --
46945 -- bulk performance
46942 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46943 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46944 --
46946 --
46947 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46948
46949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46950 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46951
46952 -- 4955764
46953 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46954 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46955
46956 -- 4458381 Public Sector Enh
46957
46958 --
46959 -- set accounting attributes for the line type
46960 --
46961 l_entered_amt_idx := 9;
46962 l_accted_amt_idx := 14;
46963 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46964 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46965 l_rec_acct_attrs.array_char_value(1) := p_source_52;
46966 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46967 l_rec_acct_attrs.array_num_value(2) := p_source_54;
46968 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46969 l_rec_acct_attrs.array_char_value(3) := p_source_55;
46970 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46971 l_rec_acct_attrs.array_char_value(4) := p_source_56;
46972 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46973 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
46974 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46975 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
46976 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46977 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
46978 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46979 l_rec_acct_attrs.array_char_value(8) := p_source_60;
46980 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46981 l_rec_acct_attrs.array_num_value(9) := p_source_53;
46982 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46983 l_rec_acct_attrs.array_char_value(10) := p_source_12;
46984 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
46985 l_rec_acct_attrs.array_date_value(11) := p_source_121;
46986 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
46987 l_rec_acct_attrs.array_num_value(12) := p_source_122;
46988 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
46989 l_rec_acct_attrs.array_char_value(13) := p_source_123;
46990 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
46991 l_rec_acct_attrs.array_num_value(14) := p_source_21;
46992 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
46993 l_rec_acct_attrs.array_char_value(15) := p_source_64;
46994 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
46995 l_rec_acct_attrs.array_num_value(16) := p_source_65;
46996 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
46997 l_rec_acct_attrs.array_num_value(17) := p_source_66;
46998 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
46999 l_rec_acct_attrs.array_char_value(18) := p_source_67;
47000 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
47001 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
47002 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
47003 l_rec_acct_attrs.array_char_value(20) := p_source_60;
47004
47005 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47006 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47007
47008 ---------------------------------------------------------------------------------------------------------------
47009 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47010 ---------------------------------------------------------------------------------------------------------------
47011 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47012
47013 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47014 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47015
47016 IF xla_accounting_cache_pkg.GetValueChar
47017 (p_source_code => 'LEDGER_CATEGORY_CODE'
47018 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47019 AND l_bflow_method_code = 'PRIOR_ENTRY'
47020 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47021 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47022 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47023 )
47024 THEN
47025 xla_ae_lines_pkg.BflowUpgEntry
47026 (p_business_method_code => l_bflow_method_code
47027 ,p_business_class_code => l_bflow_class_code
47028 ,p_balance_type => l_balance_type_code);
47029 ELSE
47030 NULL;
47031 -- No business flow processing for business flow method of NONE.
47032 END IF;
47033
47034 --
47035 -- call analytical criteria
47036 --
47037
47038 --
47039 -- call description
47040 --
47044 -- Bug 4922099
47041 -- No description or it is inherited.
47042 --
47043 -- call ADRs
47045 --
47046 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47047 (NVL(l_actual_upg_option, 'N') = 'O') OR
47048 (NVL(l_enc_upg_option, 'N') = 'O')
47049 )
47050 THEN
47051 NULL;
47052 --
47053 --
47054
47055 l_ccid := AcctDerRule_37(
47056 p_application_id => p_application_id
47057 , p_ae_header_id => l_ae_header_id
47058 , p_source_16 => p_source_16
47059 , p_source_16_meaning => p_source_16_meaning
47060 , p_source_29 => p_source_29
47061 , p_source_49 => p_source_49
47062 , x_transaction_coa_id => l_adr_transaction_coa_id
47063 , x_accounting_coa_id => l_adr_accounting_coa_id
47064 , x_value_type_code => l_adr_value_type_code
47065 , p_side => 'NA'
47066 );
47067
47068 xla_ae_lines_pkg.set_ccid(
47069 p_code_combination_id => l_ccid
47070 , p_value_type_code => l_adr_value_type_code
47071 , p_transaction_coa_id => l_adr_transaction_coa_id
47072 , p_accounting_coa_id => l_adr_accounting_coa_id
47073 , p_adr_code => 'AP_ROUNDING'
47074 , p_adr_type_code => 'S'
47075 , p_component_type => l_component_type
47076 , p_component_code => l_component_code
47077 , p_component_type_code => l_component_type_code
47078 , p_component_appl_id => l_component_appl_id
47079 , p_amb_context_code => l_amb_context_code
47080 , p_side => 'NA'
47081 );
47082
47083
47084 --
47085 --
47086 END IF;
47087 --
47088 -- Bug 4922099
47089 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47090 (NVL(l_enc_upg_option, 'N') = 'O')
47091 ) AND
47092 (l_bflow_method_code = 'PRIOR_ENTRY')
47093 )
47094 THEN
47095 IF
47096 --
47097 1 = 2
47098 --
47099 THEN
47100 xla_accounting_err_pkg.build_message
47101 (p_appli_s_name => 'XLA'
47102 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47103 ,p_token_1 => 'LINE_NUMBER'
47104 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47105 ,p_token_2 => 'LINE_TYPE_NAME'
47106 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47107 l_component_type
47108 ,l_component_code
47109 ,l_component_type_code
47110 ,l_component_appl_id
47111 ,l_amb_context_code
47112 ,l_entity_code
47113 ,l_event_class_code
47114 )
47115 ,p_token_3 => 'OWNER'
47116 ,p_value_3 => xla_lookups_pkg.get_meaning(
47117 p_lookup_type => 'XLA_OWNER_TYPE'
47118 ,p_lookup_code => l_component_type_code
47119 )
47120 ,p_token_4 => 'PRODUCT_NAME'
47121 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47122 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47123 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47124 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47125 ,p_ae_header_id => NULL
47126 );
47127
47128 IF (C_LEVEL_ERROR>= g_log_level) THEN
47129 trace
47130 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47131 ,p_level => C_LEVEL_ERROR
47132 ,p_module => l_log_module);
47133 END IF;
47134 END IF;
47135 END IF;
47136 --
47137 --
47138 ------------------------------------------------------------------------------------------------
47139 -- 4219869 Business Flow
47140 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47141 -- Prior Entry. Currently, the following code is always generated.
47142 ------------------------------------------------------------------------------------------------
47143 XLA_AE_LINES_PKG.ValidateCurrentLine;
47144
47145 ------------------------------------------------------------------------------------
47146 -- 4219869 Business Flow
47150
47147 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47148 ------------------------------------------------------------------------------------
47149 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47151 ----------------------------------------------------------------------------------
47152 -- 4219869 Business Flow
47153 -- Update journal entry status -- Need to generate this within IF <condition>
47154 ----------------------------------------------------------------------------------
47155 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47156 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47157 ,p_balance_type_code => l_balance_type_code
47158 );
47159
47160 -------------------------------------------------------------------------------------------
47161 -- 4262811 - Generate the Accrual Reversal lines
47162 -------------------------------------------------------------------------------------------
47163 BEGIN
47164 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47165 (g_array_event(p_event_id).array_value_num('header_index'));
47166 IF l_acc_rev_flag IS NULL THEN
47167 l_acc_rev_flag := 'N';
47168 END IF;
47169 EXCEPTION
47170 WHEN OTHERS THEN
47171 l_acc_rev_flag := 'N';
47172 END;
47173 --
47174 IF (l_acc_rev_flag = 'Y') THEN
47175
47176 -- 4645092 ------------------------------------------------------------------------------
47177 -- To allow MPA report to determine if it should generate report process
47178 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47179 ------------------------------------------------------------------------------------------
47180
47181 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47182 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47183 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47184 -- call ADRs
47185 -- Bug 4922099
47186 --
47187 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47188 (NVL(l_actual_upg_option, 'N') = 'O') OR
47189 (NVL(l_enc_upg_option, 'N') = 'O')
47190 )
47191 THEN
47192 NULL;
47193 --
47194 --
47195
47196 l_ccid := AcctDerRule_37(
47197 p_application_id => p_application_id
47198 , p_ae_header_id => l_ae_header_id
47199 , p_source_16 => p_source_16
47200 , p_source_16_meaning => p_source_16_meaning
47201 , p_source_29 => p_source_29
47202 , p_source_49 => p_source_49
47203 , x_transaction_coa_id => l_adr_transaction_coa_id
47204 , x_accounting_coa_id => l_adr_accounting_coa_id
47205 , x_value_type_code => l_adr_value_type_code
47206 , p_side => 'NA'
47207 );
47208
47209 xla_ae_lines_pkg.set_ccid(
47210 p_code_combination_id => l_ccid
47211 , p_value_type_code => l_adr_value_type_code
47212 , p_transaction_coa_id => l_adr_transaction_coa_id
47213 , p_accounting_coa_id => l_adr_accounting_coa_id
47214 , p_adr_code => 'AP_ROUNDING'
47215 , p_adr_type_code => 'S'
47216 , p_component_type => l_component_type
47217 , p_component_code => l_component_code
47218 , p_component_type_code => l_component_type_code
47219 , p_component_appl_id => l_component_appl_id
47220 , p_amb_context_code => l_amb_context_code
47221 , p_side => 'NA'
47222 );
47223
47224
47225 --
47226 --
47227 END IF;
47228
47229 --
47230 -- Update the line information that should be overwritten
47231 --
47232 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47233 p_header_num => 1);
47234 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47235
47236 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47237
47238 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47239 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47240 END IF;
47241
47242 --
47243 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47244 --
47245 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47246 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47247 ELSE
47248 ---------------------------------------------------------------------------------------------------
47249 -- 4262811a Switch Sign
47250 ---------------------------------------------------------------------------------------------------
47251 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47252 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47254 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47258 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47255 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47256 -- 5132302
47257 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47259
47260 END IF;
47261
47262 -- 4955764
47263 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47264 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47265
47266
47267 XLA_AE_LINES_PKG.ValidateCurrentLine;
47268 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47269
47270 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47271 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47272 ,p_balance_type_code => l_balance_type_code);
47273
47274 END IF;
47275
47276 -----------------------------------------------------------------------------------------
47277 -- 4262811 Multiperiod Accounting
47278 -----------------------------------------------------------------------------------------
47279 -- No MPA option is assigned.
47280
47281
47282 END IF;
47283 END IF;
47284 --
47285
47286 --
47287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47288 trace
47289 (p_msg => 'END of AcctLineType_94'
47290 ,p_level => C_LEVEL_PROCEDURE
47291 ,p_module => l_log_module);
47292 END IF;
47293 --
47294 EXCEPTION
47295 WHEN xla_exceptions_pkg.application_exception THEN
47296 RAISE;
47297 WHEN OTHERS THEN
47298 xla_exceptions_pkg.raise_message
47299 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_94');
47300 END AcctLineType_94;
47301 --
47302
47303 ---------------------------------------
47304 --
47305 -- PRIVATE FUNCTION
47306 -- AcctLineType_95
47307 --
47308 ---------------------------------------
47309 PROCEDURE AcctLineType_95 (
47310 p_application_id IN NUMBER
47311 ,p_event_id IN NUMBER
47312 ,p_calculate_acctd_flag IN VARCHAR2
47313 ,p_calculate_g_l_flag IN VARCHAR2
47314 ,p_actual_flag IN OUT VARCHAR2
47315 ,p_balance_type_code OUT VARCHAR2
47316 ,p_gain_or_loss_ref OUT VARCHAR2
47317
47318 --Automatic Offsets Value
47319 , p_source_16 IN VARCHAR2
47320 , p_source_16_meaning IN VARCHAR2
47321 --Invoice Distribution Account
47322 , p_source_29 IN NUMBER
47323 --Internal Realized Gain Account
47324 , p_source_44 IN NUMBER
47325 --Bank Gain Account
47326 , p_source_45 IN NUMBER
47327 --Internal Realized Loss Account
47328 , p_source_46 IN NUMBER
47329 --Bank Loss Account
47330 , p_source_47 IN NUMBER
47331 --When to Account for Payment Option
47332 , p_source_50 IN VARCHAR2
47333 --Payment Distribution Type
47334 , p_source_51 IN VARCHAR2
47335 , p_source_51_meaning IN VARCHAR2
47336 --Accounting Reversal Indicator
47337 , p_source_52 IN VARCHAR2
47338 --Payment Distribution Amount
47339 , p_source_53 IN NUMBER
47340 --Business Flow Accounts Payable Application Identifier
47341 , p_source_54 IN NUMBER
47342 --Business Flow Payment Distribution Type
47343 , p_source_55 IN VARCHAR2
47344 --Business Flow Payment Entity Code
47345 , p_source_56 IN VARCHAR2
47346 --Business Flow Payment Distribution Identifier
47347 , p_source_57 IN NUMBER
47348 --Business Flow Payment Identifier
47349 , p_source_58 IN NUMBER
47350 --Payment Distribution Identifier
47351 , p_source_59 IN NUMBER
47352 --Distribution Link Type
47353 , p_source_60 IN VARCHAR2
47354 --Override Accounted Amount Indicator
47355 , p_source_64 IN VARCHAR2
47356 , p_source_64_meaning IN VARCHAR2
47357 --Payment Supplier Identifier
47358 , p_source_65 IN NUMBER
47359 --Payment Supplier Site Identifier
47360 , p_source_66 IN NUMBER
47361 --Third Party Type
47362 , p_source_67 IN VARCHAR2
47363 --Payment Distribution Reversed Identifier
47364 , p_source_68 IN NUMBER
47365 --Invoice Distribution Tax Line Identifier
47366 , p_source_69 IN NUMBER
47367 --Invoice Distribution Summary Tax Line Identifier
47368 , p_source_70 IN NUMBER
47369 --Payment Maturity Date
47370 , p_source_118 IN DATE
47371 --Invoice/Clearing Ledger Amount Difference
47372 , p_source_134 IN NUMBER
47373 )
47374 IS
47375
47376 l_component_type VARCHAR2(80);
47377 l_component_code VARCHAR2(30);
47378 l_component_type_code VARCHAR2(1);
47379 l_component_appl_id INTEGER;
47380 l_amb_context_code VARCHAR2(30);
47381 l_entity_code VARCHAR2(30);
47382 l_event_class_code VARCHAR2(30);
47383 l_ae_header_id NUMBER;
47384 l_event_type_code VARCHAR2(30);
47385 l_line_definition_code VARCHAR2(30);
47386 l_line_definition_owner_code VARCHAR2(1);
47387 --
47388 -- adr variables
47389 l_segment VARCHAR2(30);
47390 l_ccid NUMBER;
47394 l_adr_flex_value_set_id NUMBER;
47391 l_adr_transaction_coa_id NUMBER;
47392 l_adr_accounting_coa_id NUMBER;
47393 l_adr_flexfield_segment_code VARCHAR2(30);
47395 l_adr_value_type_code VARCHAR2(30);
47396 l_adr_value_combination_id NUMBER;
47397 l_adr_value_segment_code VARCHAR2(30);
47398
47399 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47400 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47401 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47402 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47403
47404 -- 4262811 Variables ------------------------------------------------------------------------------------------
47405 l_entered_amt_idx NUMBER;
47406 l_accted_amt_idx NUMBER;
47407 l_acc_rev_flag VARCHAR2(1);
47408 l_accrual_line_num NUMBER;
47409 l_tmp_amt NUMBER;
47410 l_acc_rev_natural_side_code VARCHAR2(1);
47411
47412 l_num_entries NUMBER;
47413 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47414 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47415 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47416 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47417 l_recog_line_1 NUMBER;
47418 l_recog_line_2 NUMBER;
47419
47420 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47421 l_bflow_applied_to_amt NUMBER; -- 5132302
47422 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47423
47424 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47425
47426 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47427 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47428
47429 ---------------------------------------------------------------------------------------------------------------
47430
47431
47432 --
47433 -- bulk performance
47434 --
47435 l_balance_type_code VARCHAR2(1);
47436 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47437 l_log_module VARCHAR2(240);
47438
47439 --
47440 -- Upgrade strategy
47441 --
47442 l_actual_upg_option VARCHAR2(1);
47443 l_enc_upg_option VARCHAR2(1);
47444
47445 --
47446 BEGIN
47447 --
47448 IF g_log_enabled THEN
47449 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
47450 END IF;
47451 --
47452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47453
47454 trace
47455 (p_msg => 'BEGIN of AcctLineType_95'
47456 ,p_level => C_LEVEL_PROCEDURE
47457 ,p_module => l_log_module);
47458
47459 END IF;
47460 --
47461 l_component_type := 'AMB_JLT';
47462 l_component_code := 'AP_GAIN_LOSS_PAY_CLEAR';
47463 l_component_type_code := 'S';
47464 l_component_appl_id := 200;
47465 l_amb_context_code := 'DEFAULT';
47466 l_entity_code := 'AP_PAYMENTS';
47467 l_event_class_code := 'RECONCILED PAYMENTS';
47468 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
47469 l_line_definition_owner_code := 'S';
47470 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
47471 --
47472 l_balance_type_code := 'A';
47473 l_segment := NULL;
47474 l_ccid := NULL;
47475 l_adr_transaction_coa_id := NULL;
47476 l_adr_accounting_coa_id := NULL;
47477 l_adr_flexfield_segment_code := NULL;
47478 l_adr_flex_value_set_id := NULL;
47479 l_adr_value_type_code := NULL;
47480 l_adr_value_combination_id := NULL;
47481 l_adr_value_segment_code := NULL;
47482
47483 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47484 l_bflow_class_code := ''; -- 4219869 Business Flow
47485 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47486 l_budgetary_control_flag := 'N';
47487
47488 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47489 l_bflow_applied_to_amt := NULL; -- 5132302
47490 l_entered_amt_idx := NULL; -- 4262811
47491 l_accted_amt_idx := NULL; -- 4262811
47492 l_acc_rev_flag := NULL; -- 4262811
47493 l_accrual_line_num := NULL; -- 4262811
47494 l_tmp_amt := NULL; -- 4262811
47495 --
47496 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
47497 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
47498 return;
47499 END IF;
47500
47501 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47502 l_balance_type_code <> 'B' THEN
47503 IF (NVL(p_source_50,'
47504 ') = 'CLEAR_CLEAR' OR
47505 NVL(p_source_50,'
47506 ') = 'ALWAYS_CLEAR' OR
47507 NVL(p_source_50,'
47508 ') = 'ALWAYS_ALWAYS') AND
47509 p_source_118 IS NULL AND
47510 NVL(p_source_51,'
47511 ') <> 'EXCHANGE RATE VARIANCE' AND
47512 NVL(p_source_51,'
47516 NVL(p_source_51,'
47513 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
47514 NVL(p_source_51,'
47515 ') <> 'BANK CHARGE' AND
47517 ') <> 'BANK ERROR'
47518 THEN
47519
47520 --
47521 XLA_AE_LINES_PKG.SetNewLine;
47522
47523 p_balance_type_code := l_balance_type_code;
47524 -- set the flag so later we will know whether the gain loss line needs to be created
47525
47526 IF(l_balance_type_code = 'A' ) THEN
47527 p_actual_flag :='G';
47528 END IF;
47529
47530 --
47531 -- bulk performance
47532 --
47533 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47534 p_header_num => 0); -- 4262811
47535 --
47536 -- set accounting line options
47537 --
47538 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47539 p_natural_side_code => 'G'
47540 , p_gain_or_loss_flag => 'N'
47541 , p_gl_transfer_mode_code => 'S'
47542 , p_acct_entry_type_code => 'A'
47543 , p_switch_side_flag => ''
47544 , p_merge_duplicate_code => 'A'
47545 );
47546 --
47547 l_acc_rev_natural_side_code := 'C'; -- 4262811
47548 --
47549 --
47550 -- set accounting line type info
47551 --
47552 xla_ae_lines_pkg.SetAcctLineType
47553 (p_component_type => l_component_type
47554 ,p_event_type_code => l_event_type_code
47555 ,p_line_definition_owner_code => l_line_definition_owner_code
47556 ,p_line_definition_code => l_line_definition_code
47557 ,p_accounting_line_code => l_component_code
47558 ,p_accounting_line_type_code => l_component_type_code
47559 ,p_accounting_line_appl_id => l_component_appl_id
47560 ,p_amb_context_code => l_amb_context_code
47561 ,p_entity_code => l_entity_code
47562 ,p_event_class_code => l_event_class_code);
47563 --
47564 -- set accounting class
47565 --
47566 xla_ae_lines_pkg.SetAcctClass(
47567 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
47568 , p_ae_header_id => l_ae_header_id
47569 );
47570
47571 --
47572 -- set rounding class
47573 --
47574 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47575 'EXCHANGE_GAIN_LOSS';
47576
47577 --
47578 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47579 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47580 --
47581 -- bulk performance
47582 --
47583 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47584
47585 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47586 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47587
47588 -- 4955764
47589 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47590 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47591
47592 -- 4458381 Public Sector Enh
47593
47594 --
47595 -- set accounting attributes for the line type
47596 --
47597 l_entered_amt_idx := NULL;
47598 l_accted_amt_idx := 10;
47599 l_bflow_applied_to_amt_idx := 2; -- 5132302
47600 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47601 l_rec_acct_attrs.array_char_value(1) := p_source_52;
47602 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
47603 l_rec_acct_attrs.array_num_value(2) := p_source_53;
47604 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
47605 l_rec_acct_attrs.array_num_value(3) := p_source_54;
47606 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47607 l_rec_acct_attrs.array_char_value(4) := p_source_55;
47608 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
47609 l_rec_acct_attrs.array_char_value(5) := p_source_56;
47610 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
47611 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
47612 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47613 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
47614 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
47615 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
47616 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
47617 l_rec_acct_attrs.array_char_value(9) := p_source_60;
47618 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
47619 l_rec_acct_attrs.array_num_value(10) := p_source_134;
47620 l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
47621 l_rec_acct_attrs.array_char_value(11) := p_source_64;
47622 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
47623 l_rec_acct_attrs.array_num_value(12) := p_source_65;
47624 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
47625 l_rec_acct_attrs.array_num_value(13) := p_source_66;
47626 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
47627 l_rec_acct_attrs.array_char_value(14) := p_source_67;
47628 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
47629 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
47633 l_rec_acct_attrs.array_num_value(17) := p_source_69;
47630 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
47631 l_rec_acct_attrs.array_char_value(16) := p_source_60;
47632 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
47634 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
47635 l_rec_acct_attrs.array_num_value(18) := p_source_69;
47636 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
47637 l_rec_acct_attrs.array_num_value(19) := p_source_70;
47638
47639 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47640 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47641
47642 ---------------------------------------------------------------------------------------------------------------
47643 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47644 ---------------------------------------------------------------------------------------------------------------
47645 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47646
47647 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47648 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47649
47650 IF xla_accounting_cache_pkg.GetValueChar
47651 (p_source_code => 'LEDGER_CATEGORY_CODE'
47652 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47653 AND l_bflow_method_code = 'PRIOR_ENTRY'
47654 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47655 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47656 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47657 )
47658 THEN
47659 xla_ae_lines_pkg.BflowUpgEntry
47660 (p_business_method_code => l_bflow_method_code
47661 ,p_business_class_code => l_bflow_class_code
47662 ,p_balance_type => l_balance_type_code);
47663 ELSE
47664 NULL;
47665 -- No business flow processing for business flow method of NONE.
47666 END IF;
47667
47668 --
47669 -- call analytical criteria
47670 --
47671
47672 --
47673 -- call description
47674 --
47675 -- No description or it is inherited.
47676 --
47677 -- call ADRs
47678 -- Bug 4922099
47679 --
47680 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47681 (NVL(l_actual_upg_option, 'N') = 'O') OR
47682 (NVL(l_enc_upg_option, 'N') = 'O')
47683 )
47684 THEN
47685 NULL;
47686 --
47687 --
47688
47689 l_ccid := AcctDerRule_33(
47690 p_application_id => p_application_id
47691 , p_ae_header_id => l_ae_header_id
47692 , p_source_16 => p_source_16
47693 , p_source_16_meaning => p_source_16_meaning
47694 , p_source_29 => p_source_29
47695 , p_source_44 => p_source_44
47696 , p_source_45 => p_source_45
47697 , x_transaction_coa_id => l_adr_transaction_coa_id
47698 , x_accounting_coa_id => l_adr_accounting_coa_id
47699 , x_value_type_code => l_adr_value_type_code
47700 , p_side => 'CREDIT'
47701 );
47702
47703 xla_ae_lines_pkg.set_ccid(
47704 p_code_combination_id => l_ccid
47705 , p_value_type_code => l_adr_value_type_code
47706 , p_transaction_coa_id => l_adr_transaction_coa_id
47707 , p_accounting_coa_id => l_adr_accounting_coa_id
47708 , p_adr_code => 'AP_REAL_GAIN'
47709 , p_adr_type_code => 'S'
47710 , p_component_type => l_component_type
47711 , p_component_code => l_component_code
47712 , p_component_type_code => l_component_type_code
47713 , p_component_appl_id => l_component_appl_id
47714 , p_amb_context_code => l_amb_context_code
47715 , p_side => 'CREDIT'
47716 );
47717
47718
47719 l_ccid := AcctDerRule_34(
47720 p_application_id => p_application_id
47721 , p_ae_header_id => l_ae_header_id
47722 , p_source_16 => p_source_16
47723 , p_source_16_meaning => p_source_16_meaning
47724 , p_source_29 => p_source_29
47725 , p_source_46 => p_source_46
47726 , p_source_47 => p_source_47
47727 , x_transaction_coa_id => l_adr_transaction_coa_id
47728 , x_accounting_coa_id => l_adr_accounting_coa_id
47729 , x_value_type_code => l_adr_value_type_code
47730 , p_side => 'DEBIT'
47731 );
47732
47733 xla_ae_lines_pkg.set_ccid(
47734 p_code_combination_id => l_ccid
47735 , p_value_type_code => l_adr_value_type_code
47736 , p_transaction_coa_id => l_adr_transaction_coa_id
47737 , p_accounting_coa_id => l_adr_accounting_coa_id
47738 , p_adr_code => 'AP_REAL_LOSS'
47739 , p_adr_type_code => 'S'
47740 , p_component_type => l_component_type
47741 , p_component_code => l_component_code
47742 , p_component_type_code => l_component_type_code
47743 , p_component_appl_id => l_component_appl_id
47744 , p_amb_context_code => l_amb_context_code
47748
47745 , p_side => 'DEBIT'
47746 );
47747
47749 --
47750 --
47751 END IF;
47752 --
47753 -- Bug 4922099
47754 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47755 (NVL(l_enc_upg_option, 'N') = 'O')
47756 ) AND
47757 (l_bflow_method_code = 'PRIOR_ENTRY')
47758 )
47759 THEN
47760 IF
47761 --
47762 1 = 2
47763 --
47764 THEN
47765 xla_accounting_err_pkg.build_message
47766 (p_appli_s_name => 'XLA'
47767 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47768 ,p_token_1 => 'LINE_NUMBER'
47769 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47770 ,p_token_2 => 'LINE_TYPE_NAME'
47771 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47772 l_component_type
47773 ,l_component_code
47774 ,l_component_type_code
47775 ,l_component_appl_id
47776 ,l_amb_context_code
47777 ,l_entity_code
47778 ,l_event_class_code
47779 )
47780 ,p_token_3 => 'OWNER'
47781 ,p_value_3 => xla_lookups_pkg.get_meaning(
47782 p_lookup_type => 'XLA_OWNER_TYPE'
47783 ,p_lookup_code => l_component_type_code
47784 )
47785 ,p_token_4 => 'PRODUCT_NAME'
47786 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47787 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47788 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47789 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47790 ,p_ae_header_id => NULL
47791 );
47792
47793 IF (C_LEVEL_ERROR>= g_log_level) THEN
47794 trace
47795 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47796 ,p_level => C_LEVEL_ERROR
47797 ,p_module => l_log_module);
47798 END IF;
47799 END IF;
47800 END IF;
47801 --
47802 --
47803 ------------------------------------------------------------------------------------------------
47804 -- 4219869 Business Flow
47805 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47806 -- Prior Entry. Currently, the following code is always generated.
47807 ------------------------------------------------------------------------------------------------
47808 XLA_AE_LINES_PKG.ValidateCurrentLine;
47809
47810 ------------------------------------------------------------------------------------
47811 -- 4219869 Business Flow
47812 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47813 ------------------------------------------------------------------------------------
47814 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47815
47816 ----------------------------------------------------------------------------------
47817 -- 4219869 Business Flow
47818 -- Update journal entry status -- Need to generate this within IF <condition>
47819 ----------------------------------------------------------------------------------
47820 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47821 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47822 ,p_balance_type_code => l_balance_type_code
47823 );
47824
47825 -------------------------------------------------------------------------------------------
47826 -- 4262811 - Generate the Accrual Reversal lines
47827 -------------------------------------------------------------------------------------------
47828 BEGIN
47829 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47830 (g_array_event(p_event_id).array_value_num('header_index'));
47831 IF l_acc_rev_flag IS NULL THEN
47832 l_acc_rev_flag := 'N';
47833 END IF;
47834 EXCEPTION
47835 WHEN OTHERS THEN
47836 l_acc_rev_flag := 'N';
47837 END;
47838 --
47839 IF (l_acc_rev_flag = 'Y') THEN
47840
47841 -- 4645092 ------------------------------------------------------------------------------
47842 -- To allow MPA report to determine if it should generate report process
47846 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47843 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47844 ------------------------------------------------------------------------------------------
47845
47847 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47848 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47849 -- call ADRs
47850 -- Bug 4922099
47851 --
47852 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47853 (NVL(l_actual_upg_option, 'N') = 'O') OR
47854 (NVL(l_enc_upg_option, 'N') = 'O')
47855 )
47856 THEN
47857 NULL;
47858 --
47859 --
47860
47861 l_ccid := AcctDerRule_33(
47862 p_application_id => p_application_id
47863 , p_ae_header_id => l_ae_header_id
47864 , p_source_16 => p_source_16
47865 , p_source_16_meaning => p_source_16_meaning
47866 , p_source_29 => p_source_29
47867 , p_source_44 => p_source_44
47868 , p_source_45 => p_source_45
47869 , x_transaction_coa_id => l_adr_transaction_coa_id
47870 , x_accounting_coa_id => l_adr_accounting_coa_id
47871 , x_value_type_code => l_adr_value_type_code
47872 , p_side => 'CREDIT'
47873 );
47874
47875 xla_ae_lines_pkg.set_ccid(
47876 p_code_combination_id => l_ccid
47877 , p_value_type_code => l_adr_value_type_code
47878 , p_transaction_coa_id => l_adr_transaction_coa_id
47879 , p_accounting_coa_id => l_adr_accounting_coa_id
47880 , p_adr_code => 'AP_REAL_GAIN'
47881 , p_adr_type_code => 'S'
47882 , p_component_type => l_component_type
47883 , p_component_code => l_component_code
47884 , p_component_type_code => l_component_type_code
47885 , p_component_appl_id => l_component_appl_id
47886 , p_amb_context_code => l_amb_context_code
47887 , p_side => 'CREDIT'
47888 );
47889
47890
47891 l_ccid := AcctDerRule_34(
47892 p_application_id => p_application_id
47893 , p_ae_header_id => l_ae_header_id
47894 , p_source_16 => p_source_16
47895 , p_source_16_meaning => p_source_16_meaning
47896 , p_source_29 => p_source_29
47897 , p_source_46 => p_source_46
47898 , p_source_47 => p_source_47
47899 , x_transaction_coa_id => l_adr_transaction_coa_id
47900 , x_accounting_coa_id => l_adr_accounting_coa_id
47901 , x_value_type_code => l_adr_value_type_code
47902 , p_side => 'DEBIT'
47903 );
47904
47905 xla_ae_lines_pkg.set_ccid(
47906 p_code_combination_id => l_ccid
47907 , p_value_type_code => l_adr_value_type_code
47908 , p_transaction_coa_id => l_adr_transaction_coa_id
47909 , p_accounting_coa_id => l_adr_accounting_coa_id
47910 , p_adr_code => 'AP_REAL_LOSS'
47911 , p_adr_type_code => 'S'
47912 , p_component_type => l_component_type
47913 , p_component_code => l_component_code
47914 , p_component_type_code => l_component_type_code
47915 , p_component_appl_id => l_component_appl_id
47916 , p_amb_context_code => l_amb_context_code
47917 , p_side => 'DEBIT'
47918 );
47919
47920
47921 --
47922 --
47923 END IF;
47924
47925 --
47926 -- Update the line information that should be overwritten
47927 --
47928 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47929 p_header_num => 1);
47930 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47931
47932 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47933
47934 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47935 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47936 END IF;
47937
47938 --
47939 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47940 --
47941 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47942 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47943 ELSE
47944 ---------------------------------------------------------------------------------------------------
47945 -- 4262811a Switch Sign
47946 ---------------------------------------------------------------------------------------------------
47947 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47951 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47952 -- 5132302
47956 END IF;
47953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47954 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47955
47957
47958 -- 4955764
47959 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47960 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47961
47962
47963 XLA_AE_LINES_PKG.ValidateCurrentLine;
47964 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47965
47966 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47967 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47968 ,p_balance_type_code => l_balance_type_code);
47969
47970 END IF;
47971
47972 -----------------------------------------------------------------------------------------
47973 -- 4262811 Multiperiod Accounting
47974 -----------------------------------------------------------------------------------------
47975 -- No MPA option is assigned.
47976
47977
47978 END IF;
47979 END IF;
47980 --
47981
47982 --
47983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47984 trace
47985 (p_msg => 'END of AcctLineType_95'
47986 ,p_level => C_LEVEL_PROCEDURE
47987 ,p_module => l_log_module);
47988 END IF;
47989 --
47990 EXCEPTION
47991 WHEN xla_exceptions_pkg.application_exception THEN
47992 RAISE;
47993 WHEN OTHERS THEN
47994 xla_exceptions_pkg.raise_message
47995 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_95');
47996 END AcctLineType_95;
47997 --
47998
47999 ---------------------------------------
48000 --
48001 -- PRIVATE FUNCTION
48002 -- AcctLineType_96
48003 --
48004 ---------------------------------------
48005 PROCEDURE AcctLineType_96 (
48006 p_application_id IN NUMBER
48007 ,p_event_id IN NUMBER
48008 ,p_calculate_acctd_flag IN VARCHAR2
48009 ,p_calculate_g_l_flag IN VARCHAR2
48010 ,p_actual_flag IN OUT VARCHAR2
48011 ,p_balance_type_code OUT VARCHAR2
48012 ,p_gain_or_loss_ref OUT VARCHAR2
48013
48014 --Automatic Offsets Value
48015 , p_source_16 IN VARCHAR2
48016 , p_source_16_meaning IN VARCHAR2
48017 --Invoice Distribution Account
48018 , p_source_29 IN NUMBER
48019 --Internal Realized Gain Account
48020 , p_source_44 IN NUMBER
48021 --Bank Gain Account
48022 , p_source_45 IN NUMBER
48023 --Internal Realized Loss Account
48024 , p_source_46 IN NUMBER
48025 --Bank Loss Account
48026 , p_source_47 IN NUMBER
48027 --When to Account for Payment Option
48028 , p_source_50 IN VARCHAR2
48029 --Payment Distribution Type
48030 , p_source_51 IN VARCHAR2
48031 , p_source_51_meaning IN VARCHAR2
48032 --Accounting Reversal Indicator
48033 , p_source_52 IN VARCHAR2
48034 --Business Flow Accounts Payable Application Identifier
48035 , p_source_54 IN NUMBER
48036 --Business Flow Payment Distribution Type
48037 , p_source_55 IN VARCHAR2
48038 --Business Flow Payment Entity Code
48039 , p_source_56 IN VARCHAR2
48040 --Business Flow Payment Distribution Identifier
48041 , p_source_57 IN NUMBER
48042 --Business Flow Payment Identifier
48043 , p_source_58 IN NUMBER
48044 --Payment Distribution Identifier
48045 , p_source_59 IN NUMBER
48046 --Distribution Link Type
48047 , p_source_60 IN VARCHAR2
48048 --Override Accounted Amount Indicator
48049 , p_source_64 IN VARCHAR2
48050 , p_source_64_meaning IN VARCHAR2
48051 --Payment Supplier Identifier
48052 , p_source_65 IN NUMBER
48053 --Payment Supplier Site Identifier
48054 , p_source_66 IN NUMBER
48055 --Third Party Type
48056 , p_source_67 IN VARCHAR2
48057 --Payment Distribution Reversed Identifier
48058 , p_source_68 IN NUMBER
48059 --Payment Maturity Date
48060 , p_source_118 IN DATE
48061 --Payment/Maturity Ledger Amount Difference
48062 , p_source_135 IN NUMBER
48063 )
48064 IS
48065
48066 l_component_type VARCHAR2(80);
48067 l_component_code VARCHAR2(30);
48068 l_component_type_code VARCHAR2(1);
48069 l_component_appl_id INTEGER;
48070 l_amb_context_code VARCHAR2(30);
48071 l_entity_code VARCHAR2(30);
48072 l_event_class_code VARCHAR2(30);
48073 l_ae_header_id NUMBER;
48074 l_event_type_code VARCHAR2(30);
48075 l_line_definition_code VARCHAR2(30);
48076 l_line_definition_owner_code VARCHAR2(1);
48077 --
48078 -- adr variables
48079 l_segment VARCHAR2(30);
48080 l_ccid NUMBER;
48081 l_adr_transaction_coa_id NUMBER;
48082 l_adr_accounting_coa_id NUMBER;
48083 l_adr_flexfield_segment_code VARCHAR2(30);
48084 l_adr_flex_value_set_id NUMBER;
48085 l_adr_value_type_code VARCHAR2(30);
48086 l_adr_value_combination_id NUMBER;
48087 l_adr_value_segment_code VARCHAR2(30);
48088
48089 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48093
48090 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48091 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48092 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48094 -- 4262811 Variables ------------------------------------------------------------------------------------------
48095 l_entered_amt_idx NUMBER;
48096 l_accted_amt_idx NUMBER;
48097 l_acc_rev_flag VARCHAR2(1);
48098 l_accrual_line_num NUMBER;
48099 l_tmp_amt NUMBER;
48100 l_acc_rev_natural_side_code VARCHAR2(1);
48101
48102 l_num_entries NUMBER;
48103 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48104 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48105 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48106 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48107 l_recog_line_1 NUMBER;
48108 l_recog_line_2 NUMBER;
48109
48110 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48111 l_bflow_applied_to_amt NUMBER; -- 5132302
48112 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48113
48114 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48115
48116 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48117 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48118
48119 ---------------------------------------------------------------------------------------------------------------
48120
48121
48122 --
48123 -- bulk performance
48124 --
48125 l_balance_type_code VARCHAR2(1);
48126 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48127 l_log_module VARCHAR2(240);
48128
48129 --
48130 -- Upgrade strategy
48131 --
48132 l_actual_upg_option VARCHAR2(1);
48133 l_enc_upg_option VARCHAR2(1);
48134
48135 --
48136 BEGIN
48137 --
48138 IF g_log_enabled THEN
48139 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
48140 END IF;
48141 --
48142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48143
48144 trace
48145 (p_msg => 'BEGIN of AcctLineType_96'
48146 ,p_level => C_LEVEL_PROCEDURE
48147 ,p_module => l_log_module);
48148
48149 END IF;
48150 --
48151 l_component_type := 'AMB_JLT';
48152 l_component_code := 'AP_GAIN_LOSS_PMT_MAT';
48153 l_component_type_code := 'S';
48154 l_component_appl_id := 200;
48155 l_amb_context_code := 'DEFAULT';
48156 l_entity_code := 'AP_PAYMENTS';
48157 l_event_class_code := 'FUTURE DATED PAYMENTS';
48158 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
48159 l_line_definition_owner_code := 'S';
48160 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
48161 --
48162 l_balance_type_code := 'A';
48163 l_segment := NULL;
48164 l_ccid := NULL;
48165 l_adr_transaction_coa_id := NULL;
48166 l_adr_accounting_coa_id := NULL;
48167 l_adr_flexfield_segment_code := NULL;
48168 l_adr_flex_value_set_id := NULL;
48169 l_adr_value_type_code := NULL;
48170 l_adr_value_combination_id := NULL;
48171 l_adr_value_segment_code := NULL;
48172
48173 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48174 l_bflow_class_code := ''; -- 4219869 Business Flow
48175 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48176 l_budgetary_control_flag := 'N';
48177
48178 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48179 l_bflow_applied_to_amt := NULL; -- 5132302
48180 l_entered_amt_idx := NULL; -- 4262811
48181 l_accted_amt_idx := NULL; -- 4262811
48182 l_acc_rev_flag := NULL; -- 4262811
48183 l_accrual_line_num := NULL; -- 4262811
48184 l_tmp_amt := NULL; -- 4262811
48185 --
48186 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
48187 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
48188 return;
48189 END IF;
48190
48191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48192 l_balance_type_code <> 'B' THEN
48193 IF (NVL(p_source_50,'
48194 ') = 'ALWAYS_ALWAYS' OR
48195 NVL(p_source_50,'
48196 ') = 'ALWAYS_ISSUE') AND
48197 p_source_118 IS NOT NULL AND
48198 NVL(p_source_51,'
48199 ') <> 'EXCHANGE RATE VARIANCE' AND
48200 NVL(p_source_51,'
48201 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
48202 NVL(p_source_51,'
48203 ') <> 'BANK CHARGE' AND
48204 NVL(p_source_51,'
48205 ') <> 'BANK ERROR'
48206 THEN
48207
48208 --
48209 XLA_AE_LINES_PKG.SetNewLine;
48210
48211 p_balance_type_code := l_balance_type_code;
48212 -- set the flag so later we will know whether the gain loss line needs to be created
48213
48214 IF(l_balance_type_code = 'A' ) THEN
48215 p_actual_flag :='G';
48216 END IF;
48217
48218 --
48219 -- bulk performance
48220 --
48224 -- set accounting line options
48221 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48222 p_header_num => 0); -- 4262811
48223 --
48225 --
48226 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48227 p_natural_side_code => 'G'
48228 , p_gain_or_loss_flag => 'N'
48229 , p_gl_transfer_mode_code => 'S'
48230 , p_acct_entry_type_code => 'A'
48231 , p_switch_side_flag => ''
48232 , p_merge_duplicate_code => 'A'
48233 );
48234 --
48235 l_acc_rev_natural_side_code := 'C'; -- 4262811
48236 --
48237 --
48238 -- set accounting line type info
48239 --
48240 xla_ae_lines_pkg.SetAcctLineType
48241 (p_component_type => l_component_type
48242 ,p_event_type_code => l_event_type_code
48243 ,p_line_definition_owner_code => l_line_definition_owner_code
48244 ,p_line_definition_code => l_line_definition_code
48245 ,p_accounting_line_code => l_component_code
48246 ,p_accounting_line_type_code => l_component_type_code
48247 ,p_accounting_line_appl_id => l_component_appl_id
48248 ,p_amb_context_code => l_amb_context_code
48249 ,p_entity_code => l_entity_code
48250 ,p_event_class_code => l_event_class_code);
48251 --
48252 -- set accounting class
48253 --
48254 xla_ae_lines_pkg.SetAcctClass(
48255 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
48256 , p_ae_header_id => l_ae_header_id
48257 );
48258
48259 --
48260 -- set rounding class
48261 --
48262 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48263 'EXCHANGE_GAIN_LOSS';
48264
48265 --
48266 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48267 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48268 --
48269 -- bulk performance
48270 --
48271 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48272
48273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48274 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48275
48276 -- 4955764
48277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48279
48280 -- 4458381 Public Sector Enh
48281
48282 --
48283 -- set accounting attributes for the line type
48284 --
48285 l_entered_amt_idx := NULL;
48286 l_accted_amt_idx := 9;
48287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48288 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48289 l_rec_acct_attrs.array_char_value(1) := p_source_52;
48290 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
48291 l_rec_acct_attrs.array_num_value(2) := p_source_54;
48292 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48293 l_rec_acct_attrs.array_char_value(3) := p_source_55;
48294 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
48295 l_rec_acct_attrs.array_char_value(4) := p_source_56;
48296 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
48297 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
48298 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48299 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
48300 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
48301 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
48302 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
48303 l_rec_acct_attrs.array_char_value(8) := p_source_60;
48304 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
48305 l_rec_acct_attrs.array_num_value(9) := p_source_135;
48306 l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
48307 l_rec_acct_attrs.array_char_value(10) := p_source_64;
48308 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
48309 l_rec_acct_attrs.array_num_value(11) := p_source_65;
48310 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
48311 l_rec_acct_attrs.array_num_value(12) := p_source_66;
48312 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
48313 l_rec_acct_attrs.array_char_value(13) := p_source_67;
48314 l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
48315 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_68);
48316 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
48317 l_rec_acct_attrs.array_char_value(15) := p_source_60;
48318
48319 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48320 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48321
48322 ---------------------------------------------------------------------------------------------------------------
48323 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48324 ---------------------------------------------------------------------------------------------------------------
48328 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48325 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48326
48327 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48329
48330 IF xla_accounting_cache_pkg.GetValueChar
48331 (p_source_code => 'LEDGER_CATEGORY_CODE'
48332 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48333 AND l_bflow_method_code = 'PRIOR_ENTRY'
48334 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48335 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48336 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48337 )
48338 THEN
48339 xla_ae_lines_pkg.BflowUpgEntry
48340 (p_business_method_code => l_bflow_method_code
48341 ,p_business_class_code => l_bflow_class_code
48342 ,p_balance_type => l_balance_type_code);
48343 ELSE
48344 NULL;
48345 -- No business flow processing for business flow method of NONE.
48346 END IF;
48347
48348 --
48349 -- call analytical criteria
48350 --
48351
48352 --
48353 -- call description
48354 --
48355 -- No description or it is inherited.
48356 --
48357 -- call ADRs
48358 -- Bug 4922099
48359 --
48360 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48361 (NVL(l_actual_upg_option, 'N') = 'O') OR
48362 (NVL(l_enc_upg_option, 'N') = 'O')
48363 )
48364 THEN
48365 NULL;
48366 --
48367 --
48368
48369 l_ccid := AcctDerRule_33(
48370 p_application_id => p_application_id
48371 , p_ae_header_id => l_ae_header_id
48372 , p_source_16 => p_source_16
48373 , p_source_16_meaning => p_source_16_meaning
48374 , p_source_29 => p_source_29
48375 , p_source_44 => p_source_44
48376 , p_source_45 => p_source_45
48377 , x_transaction_coa_id => l_adr_transaction_coa_id
48378 , x_accounting_coa_id => l_adr_accounting_coa_id
48379 , x_value_type_code => l_adr_value_type_code
48380 , p_side => 'CREDIT'
48381 );
48382
48383 xla_ae_lines_pkg.set_ccid(
48384 p_code_combination_id => l_ccid
48385 , p_value_type_code => l_adr_value_type_code
48386 , p_transaction_coa_id => l_adr_transaction_coa_id
48387 , p_accounting_coa_id => l_adr_accounting_coa_id
48388 , p_adr_code => 'AP_REAL_GAIN'
48389 , p_adr_type_code => 'S'
48390 , p_component_type => l_component_type
48391 , p_component_code => l_component_code
48392 , p_component_type_code => l_component_type_code
48393 , p_component_appl_id => l_component_appl_id
48394 , p_amb_context_code => l_amb_context_code
48395 , p_side => 'CREDIT'
48396 );
48397
48398
48399 l_ccid := AcctDerRule_34(
48400 p_application_id => p_application_id
48401 , p_ae_header_id => l_ae_header_id
48402 , p_source_16 => p_source_16
48403 , p_source_16_meaning => p_source_16_meaning
48404 , p_source_29 => p_source_29
48405 , p_source_46 => p_source_46
48406 , p_source_47 => p_source_47
48407 , x_transaction_coa_id => l_adr_transaction_coa_id
48408 , x_accounting_coa_id => l_adr_accounting_coa_id
48409 , x_value_type_code => l_adr_value_type_code
48410 , p_side => 'DEBIT'
48411 );
48412
48413 xla_ae_lines_pkg.set_ccid(
48414 p_code_combination_id => l_ccid
48415 , p_value_type_code => l_adr_value_type_code
48416 , p_transaction_coa_id => l_adr_transaction_coa_id
48417 , p_accounting_coa_id => l_adr_accounting_coa_id
48418 , p_adr_code => 'AP_REAL_LOSS'
48419 , p_adr_type_code => 'S'
48420 , p_component_type => l_component_type
48421 , p_component_code => l_component_code
48422 , p_component_type_code => l_component_type_code
48423 , p_component_appl_id => l_component_appl_id
48424 , p_amb_context_code => l_amb_context_code
48425 , p_side => 'DEBIT'
48426 );
48427
48428
48429 --
48430 --
48431 END IF;
48432 --
48433 -- Bug 4922099
48434 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48435 (NVL(l_enc_upg_option, 'N') = 'O')
48436 ) AND
48437 (l_bflow_method_code = 'PRIOR_ENTRY')
48438 )
48439 THEN
48440 IF
48441 --
48442 1 = 2
48443 --
48444 THEN
48445 xla_accounting_err_pkg.build_message
48446 (p_appli_s_name => 'XLA'
48447 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48448 ,p_token_1 => 'LINE_NUMBER'
48449 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48450 ,p_token_2 => 'LINE_TYPE_NAME'
48454 ,l_component_type_code
48451 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48452 l_component_type
48453 ,l_component_code
48455 ,l_component_appl_id
48456 ,l_amb_context_code
48457 ,l_entity_code
48458 ,l_event_class_code
48459 )
48460 ,p_token_3 => 'OWNER'
48461 ,p_value_3 => xla_lookups_pkg.get_meaning(
48462 p_lookup_type => 'XLA_OWNER_TYPE'
48463 ,p_lookup_code => l_component_type_code
48464 )
48465 ,p_token_4 => 'PRODUCT_NAME'
48466 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48467 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48468 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48469 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48470 ,p_ae_header_id => NULL
48471 );
48472
48473 IF (C_LEVEL_ERROR>= g_log_level) THEN
48474 trace
48475 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48476 ,p_level => C_LEVEL_ERROR
48477 ,p_module => l_log_module);
48478 END IF;
48479 END IF;
48480 END IF;
48481 --
48482 --
48483 ------------------------------------------------------------------------------------------------
48484 -- 4219869 Business Flow
48485 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48486 -- Prior Entry. Currently, the following code is always generated.
48487 ------------------------------------------------------------------------------------------------
48488 XLA_AE_LINES_PKG.ValidateCurrentLine;
48489
48490 ------------------------------------------------------------------------------------
48491 -- 4219869 Business Flow
48492 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48493 ------------------------------------------------------------------------------------
48494 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48495
48496 ----------------------------------------------------------------------------------
48497 -- 4219869 Business Flow
48498 -- Update journal entry status -- Need to generate this within IF <condition>
48499 ----------------------------------------------------------------------------------
48500 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48501 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48502 ,p_balance_type_code => l_balance_type_code
48503 );
48504
48505 -------------------------------------------------------------------------------------------
48506 -- 4262811 - Generate the Accrual Reversal lines
48507 -------------------------------------------------------------------------------------------
48508 BEGIN
48509 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48510 (g_array_event(p_event_id).array_value_num('header_index'));
48511 IF l_acc_rev_flag IS NULL THEN
48512 l_acc_rev_flag := 'N';
48513 END IF;
48514 EXCEPTION
48515 WHEN OTHERS THEN
48516 l_acc_rev_flag := 'N';
48517 END;
48518 --
48519 IF (l_acc_rev_flag = 'Y') THEN
48520
48521 -- 4645092 ------------------------------------------------------------------------------
48522 -- To allow MPA report to determine if it should generate report process
48523 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48524 ------------------------------------------------------------------------------------------
48525
48526 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48527 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48528 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
48529 -- call ADRs
48530 -- Bug 4922099
48531 --
48532 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48533 (NVL(l_actual_upg_option, 'N') = 'O') OR
48534 (NVL(l_enc_upg_option, 'N') = 'O')
48535 )
48536 THEN
48537 NULL;
48538 --
48539 --
48540
48541 l_ccid := AcctDerRule_33(
48542 p_application_id => p_application_id
48543 , p_ae_header_id => l_ae_header_id
48544 , p_source_16 => p_source_16
48545 , p_source_16_meaning => p_source_16_meaning
48549 , x_transaction_coa_id => l_adr_transaction_coa_id
48546 , p_source_29 => p_source_29
48547 , p_source_44 => p_source_44
48548 , p_source_45 => p_source_45
48550 , x_accounting_coa_id => l_adr_accounting_coa_id
48551 , x_value_type_code => l_adr_value_type_code
48552 , p_side => 'CREDIT'
48553 );
48554
48555 xla_ae_lines_pkg.set_ccid(
48556 p_code_combination_id => l_ccid
48557 , p_value_type_code => l_adr_value_type_code
48558 , p_transaction_coa_id => l_adr_transaction_coa_id
48559 , p_accounting_coa_id => l_adr_accounting_coa_id
48560 , p_adr_code => 'AP_REAL_GAIN'
48561 , p_adr_type_code => 'S'
48562 , p_component_type => l_component_type
48563 , p_component_code => l_component_code
48564 , p_component_type_code => l_component_type_code
48565 , p_component_appl_id => l_component_appl_id
48566 , p_amb_context_code => l_amb_context_code
48567 , p_side => 'CREDIT'
48568 );
48569
48570
48571 l_ccid := AcctDerRule_34(
48572 p_application_id => p_application_id
48573 , p_ae_header_id => l_ae_header_id
48574 , p_source_16 => p_source_16
48575 , p_source_16_meaning => p_source_16_meaning
48576 , p_source_29 => p_source_29
48577 , p_source_46 => p_source_46
48578 , p_source_47 => p_source_47
48579 , x_transaction_coa_id => l_adr_transaction_coa_id
48580 , x_accounting_coa_id => l_adr_accounting_coa_id
48581 , x_value_type_code => l_adr_value_type_code
48582 , p_side => 'DEBIT'
48583 );
48584
48585 xla_ae_lines_pkg.set_ccid(
48586 p_code_combination_id => l_ccid
48587 , p_value_type_code => l_adr_value_type_code
48588 , p_transaction_coa_id => l_adr_transaction_coa_id
48589 , p_accounting_coa_id => l_adr_accounting_coa_id
48590 , p_adr_code => 'AP_REAL_LOSS'
48591 , p_adr_type_code => 'S'
48592 , p_component_type => l_component_type
48593 , p_component_code => l_component_code
48594 , p_component_type_code => l_component_type_code
48595 , p_component_appl_id => l_component_appl_id
48596 , p_amb_context_code => l_amb_context_code
48597 , p_side => 'DEBIT'
48598 );
48599
48600
48601 --
48602 --
48603 END IF;
48604
48605 --
48606 -- Update the line information that should be overwritten
48607 --
48608 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48609 p_header_num => 1);
48610 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48611
48612 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48613
48614 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48615 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48616 END IF;
48617
48618 --
48619 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48620 --
48621 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48622 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48623 ELSE
48624 ---------------------------------------------------------------------------------------------------
48625 -- 4262811a Switch Sign
48626 ---------------------------------------------------------------------------------------------------
48627 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48628 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48629 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48630 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48631 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48632 -- 5132302
48633 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48634 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48635
48636 END IF;
48637
48638 -- 4955764
48639 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48640 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48641
48642
48643 XLA_AE_LINES_PKG.ValidateCurrentLine;
48644 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48645
48646 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48647 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48648 ,p_balance_type_code => l_balance_type_code);
48649
48650 END IF;
48651
48652 -----------------------------------------------------------------------------------------
48653 -- 4262811 Multiperiod Accounting
48657
48654 -----------------------------------------------------------------------------------------
48655 -- No MPA option is assigned.
48656
48658 END IF;
48659 END IF;
48660 --
48661
48662 --
48663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48664 trace
48665 (p_msg => 'END of AcctLineType_96'
48666 ,p_level => C_LEVEL_PROCEDURE
48667 ,p_module => l_log_module);
48668 END IF;
48669 --
48670 EXCEPTION
48671 WHEN xla_exceptions_pkg.application_exception THEN
48672 RAISE;
48673 WHEN OTHERS THEN
48674 xla_exceptions_pkg.raise_message
48675 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_96');
48676 END AcctLineType_96;
48677 --
48678
48679 ---------------------------------------
48680 --
48681 -- PRIVATE FUNCTION
48682 -- AcctLineType_97
48683 --
48684 ---------------------------------------
48685 PROCEDURE AcctLineType_97 (
48686 p_application_id IN NUMBER
48687 ,p_event_id IN NUMBER
48688 ,p_calculate_acctd_flag IN VARCHAR2
48689 ,p_calculate_g_l_flag IN VARCHAR2
48690 ,p_actual_flag IN OUT VARCHAR2
48691 ,p_balance_type_code OUT VARCHAR2
48692 ,p_gain_or_loss_ref OUT VARCHAR2
48693
48694 --Payment Currency Code
48695 , p_source_12 IN VARCHAR2
48696 --Automatic Offsets Value
48697 , p_source_16 IN VARCHAR2
48698 , p_source_16_meaning IN VARCHAR2
48699 --Invoice Distribution Account
48700 , p_source_29 IN NUMBER
48701 --Internal Realized Gain Account
48702 , p_source_44 IN NUMBER
48703 --Bank Gain Account
48704 , p_source_45 IN NUMBER
48705 --When to Account for Payment Option
48706 , p_source_50 IN VARCHAR2
48707 --Payment Distribution Type
48708 , p_source_51 IN VARCHAR2
48709 , p_source_51_meaning IN VARCHAR2
48710 --Accounting Reversal Indicator
48711 , p_source_52 IN VARCHAR2
48712 --Payment Distribution Amount
48713 , p_source_53 IN NUMBER
48714 --Business Flow Accounts Payable Application Identifier
48715 , p_source_54 IN NUMBER
48716 --Business Flow Payment Distribution Type
48717 , p_source_55 IN VARCHAR2
48718 --Business Flow Payment Entity Code
48719 , p_source_56 IN VARCHAR2
48720 --Business Flow Payment Distribution Identifier
48721 , p_source_57 IN NUMBER
48722 --Business Flow Payment Identifier
48723 , p_source_58 IN NUMBER
48724 --Payment Distribution Identifier
48725 , p_source_59 IN NUMBER
48726 --Distribution Link Type
48727 , p_source_60 IN VARCHAR2
48728 --Override Accounted Amount Indicator
48729 , p_source_64 IN VARCHAR2
48730 , p_source_64_meaning IN VARCHAR2
48731 --Payment Supplier Identifier
48732 , p_source_65 IN NUMBER
48733 --Payment Supplier Site Identifier
48734 , p_source_66 IN NUMBER
48735 --Third Party Type
48736 , p_source_67 IN VARCHAR2
48737 --Payment Distribution Reversed Identifier
48738 , p_source_68 IN NUMBER
48739 --Invoice Distribution Tax Line Identifier
48740 , p_source_69 IN NUMBER
48741 --Invoice Distribution Summary Tax Line Identifier
48742 , p_source_70 IN NUMBER
48743 --Cleared Exchange Date
48744 , p_source_114 IN DATE
48745 --Cleared Exchange Rate
48746 , p_source_115 IN NUMBER
48747 --Cleared Exchange Rate Type
48748 , p_source_116 IN VARCHAR2
48749 --Payment Maturity Date
48750 , p_source_118 IN DATE
48751 --Gain or Loss Indicator between Maturity and Clearing
48752 , p_source_136 IN VARCHAR2
48753 --Maturity/Clearing Ledger Amount Difference
48754 , p_source_137 IN NUMBER
48755 )
48756 IS
48757
48758 l_component_type VARCHAR2(80);
48759 l_component_code VARCHAR2(30);
48760 l_component_type_code VARCHAR2(1);
48761 l_component_appl_id INTEGER;
48762 l_amb_context_code VARCHAR2(30);
48763 l_entity_code VARCHAR2(30);
48764 l_event_class_code VARCHAR2(30);
48765 l_ae_header_id NUMBER;
48766 l_event_type_code VARCHAR2(30);
48767 l_line_definition_code VARCHAR2(30);
48768 l_line_definition_owner_code VARCHAR2(1);
48769 --
48770 -- adr variables
48771 l_segment VARCHAR2(30);
48772 l_ccid NUMBER;
48773 l_adr_transaction_coa_id NUMBER;
48774 l_adr_accounting_coa_id NUMBER;
48775 l_adr_flexfield_segment_code VARCHAR2(30);
48776 l_adr_flex_value_set_id NUMBER;
48777 l_adr_value_type_code VARCHAR2(30);
48778 l_adr_value_combination_id NUMBER;
48779 l_adr_value_segment_code VARCHAR2(30);
48780
48781 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48782 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48783 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48784 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48785
48786 -- 4262811 Variables ------------------------------------------------------------------------------------------
48787 l_entered_amt_idx NUMBER;
48788 l_accted_amt_idx NUMBER;
48789 l_acc_rev_flag VARCHAR2(1);
48790 l_accrual_line_num NUMBER;
48791 l_tmp_amt NUMBER;
48792 l_acc_rev_natural_side_code VARCHAR2(1);
48796 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48793
48794 l_num_entries NUMBER;
48795 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48797 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48798 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48799 l_recog_line_1 NUMBER;
48800 l_recog_line_2 NUMBER;
48801
48802 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48803 l_bflow_applied_to_amt NUMBER; -- 5132302
48804 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48805
48806 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48807
48808 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48809 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48810
48811 ---------------------------------------------------------------------------------------------------------------
48812
48813
48814 --
48815 -- bulk performance
48816 --
48817 l_balance_type_code VARCHAR2(1);
48818 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48819 l_log_module VARCHAR2(240);
48820
48821 --
48822 -- Upgrade strategy
48823 --
48824 l_actual_upg_option VARCHAR2(1);
48825 l_enc_upg_option VARCHAR2(1);
48826
48827 --
48828 BEGIN
48829 --
48830 IF g_log_enabled THEN
48831 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
48832 END IF;
48833 --
48834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48835
48836 trace
48837 (p_msg => 'BEGIN of AcctLineType_97'
48838 ,p_level => C_LEVEL_PROCEDURE
48839 ,p_module => l_log_module);
48840
48841 END IF;
48842 --
48843 l_component_type := 'AMB_JLT';
48844 l_component_code := 'AP_GAIN_MAT_CLEAR';
48845 l_component_type_code := 'S';
48846 l_component_appl_id := 200;
48847 l_amb_context_code := 'DEFAULT';
48848 l_entity_code := 'AP_PAYMENTS';
48849 l_event_class_code := 'RECONCILED PAYMENTS';
48850 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
48851 l_line_definition_owner_code := 'S';
48852 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
48853 --
48854 l_balance_type_code := 'A';
48855 l_segment := NULL;
48856 l_ccid := NULL;
48857 l_adr_transaction_coa_id := NULL;
48858 l_adr_accounting_coa_id := NULL;
48859 l_adr_flexfield_segment_code := NULL;
48860 l_adr_flex_value_set_id := NULL;
48861 l_adr_value_type_code := NULL;
48862 l_adr_value_combination_id := NULL;
48863 l_adr_value_segment_code := NULL;
48864
48865 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48866 l_bflow_class_code := ''; -- 4219869 Business Flow
48867 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48868 l_budgetary_control_flag := 'N';
48869
48870 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48871 l_bflow_applied_to_amt := NULL; -- 5132302
48872 l_entered_amt_idx := NULL; -- 4262811
48873 l_accted_amt_idx := NULL; -- 4262811
48874 l_acc_rev_flag := NULL; -- 4262811
48875 l_accrual_line_num := NULL; -- 4262811
48876 l_tmp_amt := NULL; -- 4262811
48877 --
48878 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
48879 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
48880 return;
48881 END IF;
48882
48883 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48884 l_balance_type_code <> 'B' THEN
48885 IF NVL(p_source_50,'
48886 ') = 'ALWAYS_ALWAYS' AND
48887 p_source_118 IS NOT NULL AND
48888 NVL(p_source_136,'
48889 ') = 'GAIN' AND
48890 NVL(p_source_51,'
48891 ') <> 'EXCHANGE RATE VARIANCE' AND
48892 NVL(p_source_51,'
48893 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
48894 NVL(p_source_51,'
48895 ') <> 'BANK CHARGE' AND
48896 NVL(p_source_51,'
48897 ') <> 'BANK ERROR'
48898 THEN
48899
48900 --
48901 XLA_AE_LINES_PKG.SetNewLine;
48902
48903 p_balance_type_code := l_balance_type_code;
48904 -- set the flag so later we will know whether the gain loss line needs to be created
48905
48906 IF(l_balance_type_code = 'A' ) THEN
48907 p_actual_flag :='G';
48908 END IF;
48909
48910 --
48911 -- bulk performance
48912 --
48913 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48914 p_header_num => 0); -- 4262811
48915 --
48916 -- set accounting line options
48917 --
48918 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48919 p_natural_side_code => 'C'
48920 , p_gain_or_loss_flag => 'Y'
48921 , p_gl_transfer_mode_code => 'S'
48922 , p_acct_entry_type_code => 'A'
48923 , p_switch_side_flag => 'Y'
48924 , p_merge_duplicate_code => 'A'
48928 --
48925 );
48926 --
48927 l_acc_rev_natural_side_code := 'D'; -- 4262811
48929 --
48930 -- set accounting line type info
48931 --
48932 xla_ae_lines_pkg.SetAcctLineType
48933 (p_component_type => l_component_type
48934 ,p_event_type_code => l_event_type_code
48935 ,p_line_definition_owner_code => l_line_definition_owner_code
48936 ,p_line_definition_code => l_line_definition_code
48937 ,p_accounting_line_code => l_component_code
48938 ,p_accounting_line_type_code => l_component_type_code
48939 ,p_accounting_line_appl_id => l_component_appl_id
48940 ,p_amb_context_code => l_amb_context_code
48941 ,p_entity_code => l_entity_code
48942 ,p_event_class_code => l_event_class_code);
48943 --
48944 -- set accounting class
48945 --
48946 xla_ae_lines_pkg.SetAcctClass(
48947 p_accounting_class_code => 'GAIN'
48948 , p_ae_header_id => l_ae_header_id
48949 );
48950
48951 --
48952 -- set rounding class
48953 --
48954 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48955 'GAIN';
48956
48957 --
48958 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48959 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48960 --
48961 -- bulk performance
48962 --
48963 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48964
48965 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48966 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48967
48968 -- 4955764
48969 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48970 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48971
48972 -- 4458381 Public Sector Enh
48973
48974 --
48975 -- set accounting attributes for the line type
48976 --
48977 l_entered_amt_idx := 10;
48978 l_accted_amt_idx := 15;
48979 l_bflow_applied_to_amt_idx := 2; -- 5132302
48980 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48981 l_rec_acct_attrs.array_char_value(1) := p_source_52;
48982 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
48983 l_rec_acct_attrs.array_num_value(2) := p_source_53;
48984 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
48985 l_rec_acct_attrs.array_num_value(3) := p_source_54;
48986 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48987 l_rec_acct_attrs.array_char_value(4) := p_source_55;
48988 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
48989 l_rec_acct_attrs.array_char_value(5) := p_source_56;
48990 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
48991 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
48992 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48993 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
48994 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
48995 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
48996 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
48997 l_rec_acct_attrs.array_char_value(9) := p_source_60;
48998 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
48999 l_rec_acct_attrs.array_num_value(10) := p_source_53;
49000 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49001 l_rec_acct_attrs.array_char_value(11) := p_source_12;
49002 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49003 l_rec_acct_attrs.array_date_value(12) := p_source_114;
49004 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49005 l_rec_acct_attrs.array_num_value(13) := p_source_115;
49006 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49007 l_rec_acct_attrs.array_char_value(14) := p_source_116;
49008 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49009 l_rec_acct_attrs.array_num_value(15) := p_source_137;
49010 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49011 l_rec_acct_attrs.array_char_value(16) := p_source_64;
49012 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49013 l_rec_acct_attrs.array_num_value(17) := p_source_65;
49014 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49015 l_rec_acct_attrs.array_num_value(18) := p_source_66;
49016 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49017 l_rec_acct_attrs.array_char_value(19) := p_source_67;
49018 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49019 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
49020 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49021 l_rec_acct_attrs.array_char_value(21) := p_source_60;
49022 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49023 l_rec_acct_attrs.array_num_value(22) := p_source_69;
49024 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49025 l_rec_acct_attrs.array_num_value(23) := p_source_69;
49026 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49027 l_rec_acct_attrs.array_num_value(24) := p_source_70;
49028
49032 ---------------------------------------------------------------------------------------------------------------
49029 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49030 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49031
49033 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49034 ---------------------------------------------------------------------------------------------------------------
49035 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49036
49037 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49038 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49039
49040 IF xla_accounting_cache_pkg.GetValueChar
49041 (p_source_code => 'LEDGER_CATEGORY_CODE'
49042 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49043 AND l_bflow_method_code = 'PRIOR_ENTRY'
49044 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49045 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49046 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49047 )
49048 THEN
49049 xla_ae_lines_pkg.BflowUpgEntry
49050 (p_business_method_code => l_bflow_method_code
49051 ,p_business_class_code => l_bflow_class_code
49052 ,p_balance_type => l_balance_type_code);
49053 ELSE
49054 NULL;
49055 -- No business flow processing for business flow method of NONE.
49056 END IF;
49057
49058 --
49059 -- call analytical criteria
49060 --
49061
49062 --
49063 -- call description
49064 --
49065 -- No description or it is inherited.
49066 --
49067 -- call ADRs
49068 -- Bug 4922099
49069 --
49070 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49071 (NVL(l_actual_upg_option, 'N') = 'O') OR
49072 (NVL(l_enc_upg_option, 'N') = 'O')
49073 )
49074 THEN
49075 NULL;
49076 --
49077 --
49078
49079 l_ccid := AcctDerRule_33(
49080 p_application_id => p_application_id
49081 , p_ae_header_id => l_ae_header_id
49082 , p_source_16 => p_source_16
49083 , p_source_16_meaning => p_source_16_meaning
49084 , p_source_29 => p_source_29
49085 , p_source_44 => p_source_44
49086 , p_source_45 => p_source_45
49087 , x_transaction_coa_id => l_adr_transaction_coa_id
49088 , x_accounting_coa_id => l_adr_accounting_coa_id
49089 , x_value_type_code => l_adr_value_type_code
49090 , p_side => 'NA'
49091 );
49092
49093 xla_ae_lines_pkg.set_ccid(
49094 p_code_combination_id => l_ccid
49095 , p_value_type_code => l_adr_value_type_code
49096 , p_transaction_coa_id => l_adr_transaction_coa_id
49097 , p_accounting_coa_id => l_adr_accounting_coa_id
49098 , p_adr_code => 'AP_REAL_GAIN'
49099 , p_adr_type_code => 'S'
49100 , p_component_type => l_component_type
49101 , p_component_code => l_component_code
49102 , p_component_type_code => l_component_type_code
49103 , p_component_appl_id => l_component_appl_id
49104 , p_amb_context_code => l_amb_context_code
49105 , p_side => 'NA'
49106 );
49107
49108
49109 --
49110 --
49111 END IF;
49112 --
49113 -- Bug 4922099
49114 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49115 (NVL(l_enc_upg_option, 'N') = 'O')
49116 ) AND
49117 (l_bflow_method_code = 'PRIOR_ENTRY')
49118 )
49119 THEN
49120 IF
49121 --
49122 1 = 2
49123 --
49124 THEN
49125 xla_accounting_err_pkg.build_message
49126 (p_appli_s_name => 'XLA'
49127 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49128 ,p_token_1 => 'LINE_NUMBER'
49129 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49130 ,p_token_2 => 'LINE_TYPE_NAME'
49131 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49132 l_component_type
49133 ,l_component_code
49134 ,l_component_type_code
49135 ,l_component_appl_id
49136 ,l_amb_context_code
49137 ,l_entity_code
49138 ,l_event_class_code
49139 )
49140 ,p_token_3 => 'OWNER'
49144 )
49141 ,p_value_3 => xla_lookups_pkg.get_meaning(
49142 p_lookup_type => 'XLA_OWNER_TYPE'
49143 ,p_lookup_code => l_component_type_code
49145 ,p_token_4 => 'PRODUCT_NAME'
49146 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49147 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49148 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49149 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49150 ,p_ae_header_id => NULL
49151 );
49152
49153 IF (C_LEVEL_ERROR>= g_log_level) THEN
49154 trace
49155 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49156 ,p_level => C_LEVEL_ERROR
49157 ,p_module => l_log_module);
49158 END IF;
49159 END IF;
49160 END IF;
49161 --
49162 --
49163 ------------------------------------------------------------------------------------------------
49164 -- 4219869 Business Flow
49165 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49166 -- Prior Entry. Currently, the following code is always generated.
49167 ------------------------------------------------------------------------------------------------
49168 XLA_AE_LINES_PKG.ValidateCurrentLine;
49169
49170 ------------------------------------------------------------------------------------
49171 -- 4219869 Business Flow
49172 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49173 ------------------------------------------------------------------------------------
49174 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49175
49176 ----------------------------------------------------------------------------------
49177 -- 4219869 Business Flow
49178 -- Update journal entry status -- Need to generate this within IF <condition>
49179 ----------------------------------------------------------------------------------
49180 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49181 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49182 ,p_balance_type_code => l_balance_type_code
49183 );
49184
49185 -------------------------------------------------------------------------------------------
49186 -- 4262811 - Generate the Accrual Reversal lines
49187 -------------------------------------------------------------------------------------------
49188 BEGIN
49189 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49190 (g_array_event(p_event_id).array_value_num('header_index'));
49191 IF l_acc_rev_flag IS NULL THEN
49192 l_acc_rev_flag := 'N';
49193 END IF;
49194 EXCEPTION
49195 WHEN OTHERS THEN
49196 l_acc_rev_flag := 'N';
49197 END;
49198 --
49199 IF (l_acc_rev_flag = 'Y') THEN
49200
49201 -- 4645092 ------------------------------------------------------------------------------
49202 -- To allow MPA report to determine if it should generate report process
49203 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49204 ------------------------------------------------------------------------------------------
49205
49206 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49207 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49208 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49209 -- call ADRs
49210 -- Bug 4922099
49211 --
49212 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49213 (NVL(l_actual_upg_option, 'N') = 'O') OR
49214 (NVL(l_enc_upg_option, 'N') = 'O')
49215 )
49216 THEN
49217 NULL;
49218 --
49219 --
49220
49221 l_ccid := AcctDerRule_33(
49222 p_application_id => p_application_id
49223 , p_ae_header_id => l_ae_header_id
49224 , p_source_16 => p_source_16
49225 , p_source_16_meaning => p_source_16_meaning
49226 , p_source_29 => p_source_29
49227 , p_source_44 => p_source_44
49228 , p_source_45 => p_source_45
49229 , x_transaction_coa_id => l_adr_transaction_coa_id
49230 , x_accounting_coa_id => l_adr_accounting_coa_id
49231 , x_value_type_code => l_adr_value_type_code
49232 , p_side => 'NA'
49233 );
49234
49235 xla_ae_lines_pkg.set_ccid(
49236 p_code_combination_id => l_ccid
49237 , p_value_type_code => l_adr_value_type_code
49238 , p_transaction_coa_id => l_adr_transaction_coa_id
49239 , p_accounting_coa_id => l_adr_accounting_coa_id
49240 , p_adr_code => 'AP_REAL_GAIN'
49241 , p_adr_type_code => 'S'
49242 , p_component_type => l_component_type
49243 , p_component_code => l_component_code
49247 , p_side => 'NA'
49244 , p_component_type_code => l_component_type_code
49245 , p_component_appl_id => l_component_appl_id
49246 , p_amb_context_code => l_amb_context_code
49248 );
49249
49250
49251 --
49252 --
49253 END IF;
49254
49255 --
49256 -- Update the line information that should be overwritten
49257 --
49258 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49259 p_header_num => 1);
49260 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49261
49262 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49263
49264 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49265 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49266 END IF;
49267
49268 --
49269 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49270 --
49271 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49272 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49273 ELSE
49274 ---------------------------------------------------------------------------------------------------
49275 -- 4262811a Switch Sign
49276 ---------------------------------------------------------------------------------------------------
49277 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49278 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49279 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49280 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49281 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49282 -- 5132302
49283 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49284 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49285
49286 END IF;
49287
49288 -- 4955764
49289 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49290 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49291
49292
49293 XLA_AE_LINES_PKG.ValidateCurrentLine;
49294 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49295
49296 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49297 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49298 ,p_balance_type_code => l_balance_type_code);
49299
49300 END IF;
49301
49302 -----------------------------------------------------------------------------------------
49303 -- 4262811 Multiperiod Accounting
49304 -----------------------------------------------------------------------------------------
49305 -- No MPA option is assigned.
49306
49307
49308 END IF;
49309 END IF;
49310 --
49311
49312 --
49313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49314 trace
49315 (p_msg => 'END of AcctLineType_97'
49316 ,p_level => C_LEVEL_PROCEDURE
49317 ,p_module => l_log_module);
49318 END IF;
49319 --
49320 EXCEPTION
49321 WHEN xla_exceptions_pkg.application_exception THEN
49322 RAISE;
49323 WHEN OTHERS THEN
49324 xla_exceptions_pkg.raise_message
49325 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_97');
49326 END AcctLineType_97;
49327 --
49328
49329 ---------------------------------------
49330 --
49331 -- PRIVATE FUNCTION
49332 -- AcctLineType_98
49333 --
49334 ---------------------------------------
49335 PROCEDURE AcctLineType_98 (
49336 p_application_id IN NUMBER
49337 ,p_event_id IN NUMBER
49338 ,p_calculate_acctd_flag IN VARCHAR2
49339 ,p_calculate_g_l_flag IN VARCHAR2
49340 ,p_actual_flag IN OUT VARCHAR2
49341 ,p_balance_type_code OUT VARCHAR2
49342 ,p_gain_or_loss_ref OUT VARCHAR2
49343
49344 --Payment Currency Code
49345 , p_source_12 IN VARCHAR2
49346 --Automatic Offsets Value
49347 , p_source_16 IN VARCHAR2
49348 , p_source_16_meaning IN VARCHAR2
49349 --Invoice Distribution Account
49350 , p_source_29 IN NUMBER
49351 --Internal Realized Gain Account
49352 , p_source_44 IN NUMBER
49353 --Bank Gain Account
49354 , p_source_45 IN NUMBER
49355 --When to Account for Payment Option
49356 , p_source_50 IN VARCHAR2
49357 --Payment Distribution Type
49358 , p_source_51 IN VARCHAR2
49359 , p_source_51_meaning IN VARCHAR2
49360 --Accounting Reversal Indicator
49361 , p_source_52 IN VARCHAR2
49362 --Payment Distribution Amount
49363 , p_source_53 IN NUMBER
49364 --Business Flow Accounts Payable Application Identifier
49365 , p_source_54 IN NUMBER
49366 --Business Flow Payment Distribution Type
49367 , p_source_55 IN VARCHAR2
49368 --Business Flow Payment Entity Code
49369 , p_source_56 IN VARCHAR2
49373 , p_source_58 IN NUMBER
49370 --Business Flow Payment Distribution Identifier
49371 , p_source_57 IN NUMBER
49372 --Business Flow Payment Identifier
49374 --Payment Distribution Identifier
49375 , p_source_59 IN NUMBER
49376 --Distribution Link Type
49377 , p_source_60 IN VARCHAR2
49378 --Override Accounted Amount Indicator
49379 , p_source_64 IN VARCHAR2
49380 , p_source_64_meaning IN VARCHAR2
49381 --Payment Supplier Identifier
49382 , p_source_65 IN NUMBER
49383 --Payment Supplier Site Identifier
49384 , p_source_66 IN NUMBER
49385 --Third Party Type
49386 , p_source_67 IN VARCHAR2
49387 --Payment Distribution Reversed Identifier
49388 , p_source_68 IN NUMBER
49389 --Invoice Distribution Tax Line Identifier
49390 , p_source_69 IN NUMBER
49391 --Invoice Distribution Summary Tax Line Identifier
49392 , p_source_70 IN NUMBER
49393 --Cleared Exchange Date
49394 , p_source_114 IN DATE
49395 --Cleared Exchange Rate
49396 , p_source_115 IN NUMBER
49397 --Cleared Exchange Rate Type
49398 , p_source_116 IN VARCHAR2
49399 --Payment Maturity Date
49400 , p_source_118 IN DATE
49401 --Gain or Loss Indicator between Payment and Clearing
49402 , p_source_138 IN VARCHAR2
49403 --Payment/Clearing Ledger Amount Difference
49404 , p_source_139 IN NUMBER
49405 )
49406 IS
49407
49408 l_component_type VARCHAR2(80);
49409 l_component_code VARCHAR2(30);
49410 l_component_type_code VARCHAR2(1);
49411 l_component_appl_id INTEGER;
49412 l_amb_context_code VARCHAR2(30);
49413 l_entity_code VARCHAR2(30);
49414 l_event_class_code VARCHAR2(30);
49415 l_ae_header_id NUMBER;
49416 l_event_type_code VARCHAR2(30);
49417 l_line_definition_code VARCHAR2(30);
49418 l_line_definition_owner_code VARCHAR2(1);
49419 --
49420 -- adr variables
49421 l_segment VARCHAR2(30);
49422 l_ccid NUMBER;
49423 l_adr_transaction_coa_id NUMBER;
49424 l_adr_accounting_coa_id NUMBER;
49425 l_adr_flexfield_segment_code VARCHAR2(30);
49426 l_adr_flex_value_set_id NUMBER;
49427 l_adr_value_type_code VARCHAR2(30);
49428 l_adr_value_combination_id NUMBER;
49429 l_adr_value_segment_code VARCHAR2(30);
49430
49431 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49432 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49433 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49434 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49435
49436 -- 4262811 Variables ------------------------------------------------------------------------------------------
49437 l_entered_amt_idx NUMBER;
49438 l_accted_amt_idx NUMBER;
49439 l_acc_rev_flag VARCHAR2(1);
49440 l_accrual_line_num NUMBER;
49441 l_tmp_amt NUMBER;
49442 l_acc_rev_natural_side_code VARCHAR2(1);
49443
49444 l_num_entries NUMBER;
49445 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49446 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49447 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49448 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49449 l_recog_line_1 NUMBER;
49450 l_recog_line_2 NUMBER;
49451
49452 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49453 l_bflow_applied_to_amt NUMBER; -- 5132302
49454 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49455
49456 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49457
49458 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49459 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49460
49461 ---------------------------------------------------------------------------------------------------------------
49462
49463
49464 --
49465 -- bulk performance
49466 --
49467 l_balance_type_code VARCHAR2(1);
49468 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49469 l_log_module VARCHAR2(240);
49470
49471 --
49472 -- Upgrade strategy
49473 --
49474 l_actual_upg_option VARCHAR2(1);
49475 l_enc_upg_option VARCHAR2(1);
49476
49477 --
49478 BEGIN
49479 --
49480 IF g_log_enabled THEN
49481 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
49482 END IF;
49483 --
49484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49485
49486 trace
49487 (p_msg => 'BEGIN of AcctLineType_98'
49488 ,p_level => C_LEVEL_PROCEDURE
49489 ,p_module => l_log_module);
49490
49491 END IF;
49492 --
49493 l_component_type := 'AMB_JLT';
49494 l_component_code := 'AP_GAIN_PMT_CLEAR';
49495 l_component_type_code := 'S';
49496 l_component_appl_id := 200;
49497 l_amb_context_code := 'DEFAULT';
49498 l_entity_code := 'AP_PAYMENTS';
49499 l_event_class_code := 'RECONCILED PAYMENTS';
49503 --
49500 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
49501 l_line_definition_owner_code := 'S';
49502 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
49504 l_balance_type_code := 'A';
49505 l_segment := NULL;
49506 l_ccid := NULL;
49507 l_adr_transaction_coa_id := NULL;
49508 l_adr_accounting_coa_id := NULL;
49509 l_adr_flexfield_segment_code := NULL;
49510 l_adr_flex_value_set_id := NULL;
49511 l_adr_value_type_code := NULL;
49512 l_adr_value_combination_id := NULL;
49513 l_adr_value_segment_code := NULL;
49514
49515 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49516 l_bflow_class_code := ''; -- 4219869 Business Flow
49517 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49518 l_budgetary_control_flag := 'N';
49519
49520 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49521 l_bflow_applied_to_amt := NULL; -- 5132302
49522 l_entered_amt_idx := NULL; -- 4262811
49523 l_accted_amt_idx := NULL; -- 4262811
49524 l_acc_rev_flag := NULL; -- 4262811
49525 l_accrual_line_num := NULL; -- 4262811
49526 l_tmp_amt := NULL; -- 4262811
49527 --
49528 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
49529 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
49530 return;
49531 END IF;
49532
49533 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49534 l_balance_type_code <> 'B' THEN
49535 IF NVL(p_source_50,'
49536 ') = 'ALWAYS_ALWAYS' AND
49537 p_source_118 IS NULL AND
49538 NVL(p_source_138,'
49539 ') = 'GAIN' AND
49540 NVL(p_source_51,'
49541 ') <> 'EXCHANGE RATE VARIANCE' AND
49542 NVL(p_source_51,'
49543 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
49544 NVL(p_source_51,'
49545 ') <> 'BANK CHARGE' AND
49546 NVL(p_source_51,'
49547 ') <> 'BANK ERROR' AND
49548 NVL(p_source_51,'
49549 ') <> 'AWT'
49550 THEN
49551
49552 --
49553 XLA_AE_LINES_PKG.SetNewLine;
49554
49555 p_balance_type_code := l_balance_type_code;
49556 -- set the flag so later we will know whether the gain loss line needs to be created
49557
49558 IF(l_balance_type_code = 'A' ) THEN
49559 p_actual_flag :='G';
49560 END IF;
49561
49562 --
49563 -- bulk performance
49564 --
49565 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49566 p_header_num => 0); -- 4262811
49567 --
49568 -- set accounting line options
49569 --
49570 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49571 p_natural_side_code => 'C'
49572 , p_gain_or_loss_flag => 'Y'
49573 , p_gl_transfer_mode_code => 'S'
49574 , p_acct_entry_type_code => 'A'
49575 , p_switch_side_flag => 'Y'
49576 , p_merge_duplicate_code => 'A'
49577 );
49578 --
49579 l_acc_rev_natural_side_code := 'D'; -- 4262811
49580 --
49581 --
49582 -- set accounting line type info
49583 --
49584 xla_ae_lines_pkg.SetAcctLineType
49585 (p_component_type => l_component_type
49586 ,p_event_type_code => l_event_type_code
49587 ,p_line_definition_owner_code => l_line_definition_owner_code
49588 ,p_line_definition_code => l_line_definition_code
49589 ,p_accounting_line_code => l_component_code
49590 ,p_accounting_line_type_code => l_component_type_code
49591 ,p_accounting_line_appl_id => l_component_appl_id
49592 ,p_amb_context_code => l_amb_context_code
49593 ,p_entity_code => l_entity_code
49594 ,p_event_class_code => l_event_class_code);
49595 --
49596 -- set accounting class
49597 --
49598 xla_ae_lines_pkg.SetAcctClass(
49599 p_accounting_class_code => 'GAIN'
49600 , p_ae_header_id => l_ae_header_id
49601 );
49602
49603 --
49604 -- set rounding class
49605 --
49606 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49607 'GAIN';
49608
49609 --
49610 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49611 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49612 --
49613 -- bulk performance
49614 --
49615 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49616
49617 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49618 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49619
49620 -- 4955764
49621 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49622 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49623
49624 -- 4458381 Public Sector Enh
49625
49626 --
49627 -- set accounting attributes for the line type
49628 --
49629 l_entered_amt_idx := 10;
49630 l_accted_amt_idx := 15;
49634 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49631 l_bflow_applied_to_amt_idx := 2; -- 5132302
49632 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49633 l_rec_acct_attrs.array_char_value(1) := p_source_52;
49635 l_rec_acct_attrs.array_num_value(2) := p_source_53;
49636 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49637 l_rec_acct_attrs.array_num_value(3) := p_source_54;
49638 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49639 l_rec_acct_attrs.array_char_value(4) := p_source_55;
49640 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49641 l_rec_acct_attrs.array_char_value(5) := p_source_56;
49642 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49643 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
49644 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49645 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
49646 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49647 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
49648 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49649 l_rec_acct_attrs.array_char_value(9) := p_source_60;
49650 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49651 l_rec_acct_attrs.array_num_value(10) := p_source_53;
49652 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49653 l_rec_acct_attrs.array_char_value(11) := p_source_12;
49654 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49655 l_rec_acct_attrs.array_date_value(12) := p_source_114;
49656 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49657 l_rec_acct_attrs.array_num_value(13) := p_source_115;
49658 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49659 l_rec_acct_attrs.array_char_value(14) := p_source_116;
49660 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49661 l_rec_acct_attrs.array_num_value(15) := p_source_139;
49662 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49663 l_rec_acct_attrs.array_char_value(16) := p_source_64;
49664 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49665 l_rec_acct_attrs.array_num_value(17) := p_source_65;
49666 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49667 l_rec_acct_attrs.array_num_value(18) := p_source_66;
49668 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49669 l_rec_acct_attrs.array_char_value(19) := p_source_67;
49670 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49671 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
49672 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49673 l_rec_acct_attrs.array_char_value(21) := p_source_60;
49674 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49675 l_rec_acct_attrs.array_num_value(22) := p_source_69;
49676 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49677 l_rec_acct_attrs.array_num_value(23) := p_source_69;
49678 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49679 l_rec_acct_attrs.array_num_value(24) := p_source_70;
49680
49681 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49682 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49683
49684 ---------------------------------------------------------------------------------------------------------------
49685 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49686 ---------------------------------------------------------------------------------------------------------------
49687 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49688
49689 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49690 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49691
49692 IF xla_accounting_cache_pkg.GetValueChar
49693 (p_source_code => 'LEDGER_CATEGORY_CODE'
49694 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49695 AND l_bflow_method_code = 'PRIOR_ENTRY'
49696 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49697 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49698 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49699 )
49700 THEN
49701 xla_ae_lines_pkg.BflowUpgEntry
49702 (p_business_method_code => l_bflow_method_code
49703 ,p_business_class_code => l_bflow_class_code
49704 ,p_balance_type => l_balance_type_code);
49705 ELSE
49706 NULL;
49707 -- No business flow processing for business flow method of NONE.
49708 END IF;
49709
49710 --
49711 -- call analytical criteria
49712 --
49713
49714 --
49715 -- call description
49716 --
49717 -- No description or it is inherited.
49718 --
49719 -- call ADRs
49720 -- Bug 4922099
49721 --
49722 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49723 (NVL(l_actual_upg_option, 'N') = 'O') OR
49724 (NVL(l_enc_upg_option, 'N') = 'O')
49725 )
49726 THEN
49727 NULL;
49728 --
49732 p_application_id => p_application_id
49729 --
49730
49731 l_ccid := AcctDerRule_33(
49733 , p_ae_header_id => l_ae_header_id
49734 , p_source_16 => p_source_16
49735 , p_source_16_meaning => p_source_16_meaning
49736 , p_source_29 => p_source_29
49737 , p_source_44 => p_source_44
49738 , p_source_45 => p_source_45
49739 , x_transaction_coa_id => l_adr_transaction_coa_id
49740 , x_accounting_coa_id => l_adr_accounting_coa_id
49741 , x_value_type_code => l_adr_value_type_code
49742 , p_side => 'NA'
49743 );
49744
49745 xla_ae_lines_pkg.set_ccid(
49746 p_code_combination_id => l_ccid
49747 , p_value_type_code => l_adr_value_type_code
49748 , p_transaction_coa_id => l_adr_transaction_coa_id
49749 , p_accounting_coa_id => l_adr_accounting_coa_id
49750 , p_adr_code => 'AP_REAL_GAIN'
49751 , p_adr_type_code => 'S'
49752 , p_component_type => l_component_type
49753 , p_component_code => l_component_code
49754 , p_component_type_code => l_component_type_code
49755 , p_component_appl_id => l_component_appl_id
49756 , p_amb_context_code => l_amb_context_code
49757 , p_side => 'NA'
49758 );
49759
49760
49761 --
49762 --
49763 END IF;
49764 --
49765 -- Bug 4922099
49766 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49767 (NVL(l_enc_upg_option, 'N') = 'O')
49768 ) AND
49769 (l_bflow_method_code = 'PRIOR_ENTRY')
49770 )
49771 THEN
49772 IF
49773 --
49774 1 = 2
49775 --
49776 THEN
49777 xla_accounting_err_pkg.build_message
49778 (p_appli_s_name => 'XLA'
49779 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49780 ,p_token_1 => 'LINE_NUMBER'
49781 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49782 ,p_token_2 => 'LINE_TYPE_NAME'
49783 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49784 l_component_type
49785 ,l_component_code
49786 ,l_component_type_code
49787 ,l_component_appl_id
49788 ,l_amb_context_code
49789 ,l_entity_code
49790 ,l_event_class_code
49791 )
49792 ,p_token_3 => 'OWNER'
49793 ,p_value_3 => xla_lookups_pkg.get_meaning(
49794 p_lookup_type => 'XLA_OWNER_TYPE'
49795 ,p_lookup_code => l_component_type_code
49796 )
49797 ,p_token_4 => 'PRODUCT_NAME'
49798 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49799 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49800 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49801 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49802 ,p_ae_header_id => NULL
49803 );
49804
49805 IF (C_LEVEL_ERROR>= g_log_level) THEN
49806 trace
49807 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49808 ,p_level => C_LEVEL_ERROR
49809 ,p_module => l_log_module);
49810 END IF;
49811 END IF;
49812 END IF;
49813 --
49814 --
49815 ------------------------------------------------------------------------------------------------
49816 -- 4219869 Business Flow
49817 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49818 -- Prior Entry. Currently, the following code is always generated.
49819 ------------------------------------------------------------------------------------------------
49820 XLA_AE_LINES_PKG.ValidateCurrentLine;
49821
49822 ------------------------------------------------------------------------------------
49823 -- 4219869 Business Flow
49824 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49825 ------------------------------------------------------------------------------------
49826 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49827
49831 ----------------------------------------------------------------------------------
49828 ----------------------------------------------------------------------------------
49829 -- 4219869 Business Flow
49830 -- Update journal entry status -- Need to generate this within IF <condition>
49832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49834 ,p_balance_type_code => l_balance_type_code
49835 );
49836
49837 -------------------------------------------------------------------------------------------
49838 -- 4262811 - Generate the Accrual Reversal lines
49839 -------------------------------------------------------------------------------------------
49840 BEGIN
49841 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49842 (g_array_event(p_event_id).array_value_num('header_index'));
49843 IF l_acc_rev_flag IS NULL THEN
49844 l_acc_rev_flag := 'N';
49845 END IF;
49846 EXCEPTION
49847 WHEN OTHERS THEN
49848 l_acc_rev_flag := 'N';
49849 END;
49850 --
49851 IF (l_acc_rev_flag = 'Y') THEN
49852
49853 -- 4645092 ------------------------------------------------------------------------------
49854 -- To allow MPA report to determine if it should generate report process
49855 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49856 ------------------------------------------------------------------------------------------
49857
49858 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49859 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49860 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49861 -- call ADRs
49862 -- Bug 4922099
49863 --
49864 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49865 (NVL(l_actual_upg_option, 'N') = 'O') OR
49866 (NVL(l_enc_upg_option, 'N') = 'O')
49867 )
49868 THEN
49869 NULL;
49870 --
49871 --
49872
49873 l_ccid := AcctDerRule_33(
49874 p_application_id => p_application_id
49875 , p_ae_header_id => l_ae_header_id
49876 , p_source_16 => p_source_16
49877 , p_source_16_meaning => p_source_16_meaning
49878 , p_source_29 => p_source_29
49879 , p_source_44 => p_source_44
49880 , p_source_45 => p_source_45
49881 , x_transaction_coa_id => l_adr_transaction_coa_id
49882 , x_accounting_coa_id => l_adr_accounting_coa_id
49883 , x_value_type_code => l_adr_value_type_code
49884 , p_side => 'NA'
49885 );
49886
49887 xla_ae_lines_pkg.set_ccid(
49888 p_code_combination_id => l_ccid
49889 , p_value_type_code => l_adr_value_type_code
49890 , p_transaction_coa_id => l_adr_transaction_coa_id
49891 , p_accounting_coa_id => l_adr_accounting_coa_id
49892 , p_adr_code => 'AP_REAL_GAIN'
49893 , p_adr_type_code => 'S'
49894 , p_component_type => l_component_type
49895 , p_component_code => l_component_code
49896 , p_component_type_code => l_component_type_code
49897 , p_component_appl_id => l_component_appl_id
49898 , p_amb_context_code => l_amb_context_code
49899 , p_side => 'NA'
49900 );
49901
49902
49903 --
49904 --
49905 END IF;
49906
49907 --
49908 -- Update the line information that should be overwritten
49909 --
49910 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49911 p_header_num => 1);
49912 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49913
49914 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49915
49916 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49917 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49918 END IF;
49919
49920 --
49921 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49922 --
49923 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49924 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49925 ELSE
49926 ---------------------------------------------------------------------------------------------------
49927 -- 4262811a Switch Sign
49928 ---------------------------------------------------------------------------------------------------
49929 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49931 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49933 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49934 -- 5132302
49935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49939
49936 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49937
49938 END IF;
49940 -- 4955764
49941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49943
49944
49945 XLA_AE_LINES_PKG.ValidateCurrentLine;
49946 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49947
49948 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49949 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49950 ,p_balance_type_code => l_balance_type_code);
49951
49952 END IF;
49953
49954 -----------------------------------------------------------------------------------------
49955 -- 4262811 Multiperiod Accounting
49956 -----------------------------------------------------------------------------------------
49957 -- No MPA option is assigned.
49958
49959
49960 END IF;
49961 END IF;
49962 --
49963
49964 --
49965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49966 trace
49967 (p_msg => 'END of AcctLineType_98'
49968 ,p_level => C_LEVEL_PROCEDURE
49969 ,p_module => l_log_module);
49970 END IF;
49971 --
49972 EXCEPTION
49973 WHEN xla_exceptions_pkg.application_exception THEN
49974 RAISE;
49975 WHEN OTHERS THEN
49976 xla_exceptions_pkg.raise_message
49977 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_98');
49978 END AcctLineType_98;
49979 --
49980
49981 ---------------------------------------
49982 --
49983 -- PRIVATE FUNCTION
49984 -- AcctLineType_99
49985 --
49986 ---------------------------------------
49987 PROCEDURE AcctLineType_99 (
49988 p_application_id IN NUMBER
49989 ,p_event_id IN NUMBER
49990 ,p_calculate_acctd_flag IN VARCHAR2
49991 ,p_calculate_g_l_flag IN VARCHAR2
49992 ,p_actual_flag IN OUT VARCHAR2
49993 ,p_balance_type_code OUT VARCHAR2
49994 ,p_gain_or_loss_ref OUT VARCHAR2
49995
49996 --Payment Currency Code
49997 , p_source_12 IN VARCHAR2
49998 --Automatic Offsets Value
49999 , p_source_16 IN VARCHAR2
50000 , p_source_16_meaning IN VARCHAR2
50001 --Invoice Distribution Account
50002 , p_source_29 IN NUMBER
50003 --Internal Realized Gain Account
50004 , p_source_44 IN NUMBER
50005 --Bank Gain Account
50006 , p_source_45 IN NUMBER
50007 --When to Account for Payment Option
50008 , p_source_50 IN VARCHAR2
50009 --Payment Distribution Type
50010 , p_source_51 IN VARCHAR2
50011 , p_source_51_meaning IN VARCHAR2
50012 --Accounting Reversal Indicator
50013 , p_source_52 IN VARCHAR2
50014 --Payment Distribution Amount
50015 , p_source_53 IN NUMBER
50016 --Business Flow Accounts Payable Application Identifier
50017 , p_source_54 IN NUMBER
50018 --Business Flow Payment Distribution Type
50019 , p_source_55 IN VARCHAR2
50020 --Business Flow Payment Entity Code
50021 , p_source_56 IN VARCHAR2
50022 --Business Flow Payment Distribution Identifier
50023 , p_source_57 IN NUMBER
50024 --Business Flow Payment Identifier
50025 , p_source_58 IN NUMBER
50026 --Payment Distribution Identifier
50027 , p_source_59 IN NUMBER
50028 --Distribution Link Type
50029 , p_source_60 IN VARCHAR2
50030 --Override Accounted Amount Indicator
50031 , p_source_64 IN VARCHAR2
50032 , p_source_64_meaning IN VARCHAR2
50033 --Payment Supplier Identifier
50034 , p_source_65 IN NUMBER
50035 --Payment Supplier Site Identifier
50036 , p_source_66 IN NUMBER
50037 --Third Party Type
50038 , p_source_67 IN VARCHAR2
50039 --Payment Distribution Reversed Identifier
50040 , p_source_68 IN NUMBER
50041 --Payment Maturity Date
50042 , p_source_118 IN DATE
50043 --Payment Exchange Date
50044 , p_source_121 IN DATE
50045 --Payment Exchange Rate
50046 , p_source_122 IN NUMBER
50047 --Payment Exchange Rate Type
50048 , p_source_123 IN VARCHAR2
50049 --Payment/Maturity Ledger Amount Difference
50050 , p_source_135 IN NUMBER
50051 --Gain or Loss Indicator between Payment and Maturity
50052 , p_source_140 IN VARCHAR2
50053 )
50054 IS
50055
50056 l_component_type VARCHAR2(80);
50057 l_component_code VARCHAR2(30);
50058 l_component_type_code VARCHAR2(1);
50059 l_component_appl_id INTEGER;
50060 l_amb_context_code VARCHAR2(30);
50061 l_entity_code VARCHAR2(30);
50062 l_event_class_code VARCHAR2(30);
50063 l_ae_header_id NUMBER;
50064 l_event_type_code VARCHAR2(30);
50065 l_line_definition_code VARCHAR2(30);
50066 l_line_definition_owner_code VARCHAR2(1);
50067 --
50068 -- adr variables
50069 l_segment VARCHAR2(30);
50070 l_ccid NUMBER;
50071 l_adr_transaction_coa_id NUMBER;
50072 l_adr_accounting_coa_id NUMBER;
50073 l_adr_flexfield_segment_code VARCHAR2(30);
50074 l_adr_flex_value_set_id NUMBER;
50075 l_adr_value_type_code VARCHAR2(30);
50076 l_adr_value_combination_id NUMBER;
50080 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50077 l_adr_value_segment_code VARCHAR2(30);
50078
50079 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50081 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50082 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50083
50084 -- 4262811 Variables ------------------------------------------------------------------------------------------
50085 l_entered_amt_idx NUMBER;
50086 l_accted_amt_idx NUMBER;
50087 l_acc_rev_flag VARCHAR2(1);
50088 l_accrual_line_num NUMBER;
50089 l_tmp_amt NUMBER;
50090 l_acc_rev_natural_side_code VARCHAR2(1);
50091
50092 l_num_entries NUMBER;
50093 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50094 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50095 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50096 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50097 l_recog_line_1 NUMBER;
50098 l_recog_line_2 NUMBER;
50099
50100 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50101 l_bflow_applied_to_amt NUMBER; -- 5132302
50102 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50103
50104 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50105
50106 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50107 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50108
50109 ---------------------------------------------------------------------------------------------------------------
50110
50111
50112 --
50113 -- bulk performance
50114 --
50115 l_balance_type_code VARCHAR2(1);
50116 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50117 l_log_module VARCHAR2(240);
50118
50119 --
50120 -- Upgrade strategy
50121 --
50122 l_actual_upg_option VARCHAR2(1);
50123 l_enc_upg_option VARCHAR2(1);
50124
50125 --
50126 BEGIN
50127 --
50128 IF g_log_enabled THEN
50129 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
50130 END IF;
50131 --
50132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50133
50134 trace
50135 (p_msg => 'BEGIN of AcctLineType_99'
50136 ,p_level => C_LEVEL_PROCEDURE
50137 ,p_module => l_log_module);
50138
50139 END IF;
50140 --
50141 l_component_type := 'AMB_JLT';
50142 l_component_code := 'AP_GAIN_PMT_MAT';
50143 l_component_type_code := 'S';
50144 l_component_appl_id := 200;
50145 l_amb_context_code := 'DEFAULT';
50146 l_entity_code := 'AP_PAYMENTS';
50147 l_event_class_code := 'FUTURE DATED PAYMENTS';
50148 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
50149 l_line_definition_owner_code := 'S';
50150 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
50151 --
50152 l_balance_type_code := 'A';
50153 l_segment := NULL;
50154 l_ccid := NULL;
50155 l_adr_transaction_coa_id := NULL;
50156 l_adr_accounting_coa_id := NULL;
50157 l_adr_flexfield_segment_code := NULL;
50158 l_adr_flex_value_set_id := NULL;
50159 l_adr_value_type_code := NULL;
50160 l_adr_value_combination_id := NULL;
50161 l_adr_value_segment_code := NULL;
50162
50163 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50164 l_bflow_class_code := ''; -- 4219869 Business Flow
50165 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50166 l_budgetary_control_flag := 'N';
50167
50168 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50169 l_bflow_applied_to_amt := NULL; -- 5132302
50170 l_entered_amt_idx := NULL; -- 4262811
50171 l_accted_amt_idx := NULL; -- 4262811
50172 l_acc_rev_flag := NULL; -- 4262811
50173 l_accrual_line_num := NULL; -- 4262811
50174 l_tmp_amt := NULL; -- 4262811
50175 --
50176 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
50177 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
50178 return;
50179 END IF;
50180
50181 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50182 l_balance_type_code <> 'B' THEN
50183 IF (NVL(p_source_50,'
50184 ') = 'ALWAYS_ALWAYS' OR
50185 NVL(p_source_50,'
50186 ') = 'ISSUE_ISSUE') AND
50187 p_source_118 IS NOT NULL AND
50188 NVL(p_source_140,'
50189 ') = 'GAIN' AND
50190 NVL(p_source_51,'
50191 ') <> 'EXCHANGE RATE VARIANCE' AND
50192 NVL(p_source_51,'
50193 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
50194 NVL(p_source_51,'
50195 ') <> 'BANK CHARGE' AND
50196 NVL(p_source_51,'
50197 ') <> 'BANK ERROR' AND
50198 NVL(p_source_51,'
50199 ') <> 'AWT'
50200 THEN
50201
50202 --
50203 XLA_AE_LINES_PKG.SetNewLine;
50204
50205 p_balance_type_code := l_balance_type_code;
50209 p_actual_flag :='G';
50206 -- set the flag so later we will know whether the gain loss line needs to be created
50207
50208 IF(l_balance_type_code = 'A' ) THEN
50210 END IF;
50211
50212 --
50213 -- bulk performance
50214 --
50215 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50216 p_header_num => 0); -- 4262811
50217 --
50218 -- set accounting line options
50219 --
50220 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50221 p_natural_side_code => 'C'
50222 , p_gain_or_loss_flag => 'Y'
50223 , p_gl_transfer_mode_code => 'S'
50224 , p_acct_entry_type_code => 'A'
50225 , p_switch_side_flag => 'Y'
50226 , p_merge_duplicate_code => 'A'
50227 );
50228 --
50229 l_acc_rev_natural_side_code := 'D'; -- 4262811
50230 --
50231 --
50232 -- set accounting line type info
50233 --
50234 xla_ae_lines_pkg.SetAcctLineType
50235 (p_component_type => l_component_type
50236 ,p_event_type_code => l_event_type_code
50237 ,p_line_definition_owner_code => l_line_definition_owner_code
50238 ,p_line_definition_code => l_line_definition_code
50239 ,p_accounting_line_code => l_component_code
50240 ,p_accounting_line_type_code => l_component_type_code
50241 ,p_accounting_line_appl_id => l_component_appl_id
50242 ,p_amb_context_code => l_amb_context_code
50243 ,p_entity_code => l_entity_code
50244 ,p_event_class_code => l_event_class_code);
50245 --
50246 -- set accounting class
50247 --
50248 xla_ae_lines_pkg.SetAcctClass(
50249 p_accounting_class_code => 'GAIN'
50250 , p_ae_header_id => l_ae_header_id
50251 );
50252
50253 --
50254 -- set rounding class
50255 --
50256 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50257 'GAIN';
50258
50259 --
50260 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50261 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50262 --
50263 -- bulk performance
50264 --
50265 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50266
50267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50268 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50269
50270 -- 4955764
50271 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50272 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50273
50274 -- 4458381 Public Sector Enh
50275
50276 --
50277 -- set accounting attributes for the line type
50278 --
50279 l_entered_amt_idx := 9;
50280 l_accted_amt_idx := 14;
50281 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50282 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50283 l_rec_acct_attrs.array_char_value(1) := p_source_52;
50284 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
50285 l_rec_acct_attrs.array_num_value(2) := p_source_54;
50286 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50287 l_rec_acct_attrs.array_char_value(3) := p_source_55;
50288 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
50289 l_rec_acct_attrs.array_char_value(4) := p_source_56;
50290 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
50291 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
50292 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50293 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
50294 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
50295 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
50296 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
50297 l_rec_acct_attrs.array_char_value(8) := p_source_60;
50298 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
50299 l_rec_acct_attrs.array_num_value(9) := p_source_53;
50300 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
50301 l_rec_acct_attrs.array_char_value(10) := p_source_12;
50302 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
50303 l_rec_acct_attrs.array_date_value(11) := p_source_121;
50304 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
50305 l_rec_acct_attrs.array_num_value(12) := p_source_122;
50306 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
50307 l_rec_acct_attrs.array_char_value(13) := p_source_123;
50308 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
50309 l_rec_acct_attrs.array_num_value(14) := p_source_135;
50310 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
50311 l_rec_acct_attrs.array_char_value(15) := p_source_64;
50312 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
50313 l_rec_acct_attrs.array_num_value(16) := p_source_65;
50314 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
50315 l_rec_acct_attrs.array_num_value(17) := p_source_66;
50316 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
50320 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
50317 l_rec_acct_attrs.array_char_value(18) := p_source_67;
50318 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
50319 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
50321 l_rec_acct_attrs.array_char_value(20) := p_source_60;
50322
50323 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50324 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50325
50326 ---------------------------------------------------------------------------------------------------------------
50327 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50328 ---------------------------------------------------------------------------------------------------------------
50329 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50330
50331 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50332 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50333
50334 IF xla_accounting_cache_pkg.GetValueChar
50335 (p_source_code => 'LEDGER_CATEGORY_CODE'
50336 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50337 AND l_bflow_method_code = 'PRIOR_ENTRY'
50338 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50339 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50340 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50341 )
50342 THEN
50343 xla_ae_lines_pkg.BflowUpgEntry
50344 (p_business_method_code => l_bflow_method_code
50345 ,p_business_class_code => l_bflow_class_code
50346 ,p_balance_type => l_balance_type_code);
50347 ELSE
50348 NULL;
50349 -- No business flow processing for business flow method of NONE.
50350 END IF;
50351
50352 --
50353 -- call analytical criteria
50354 --
50355
50356 --
50357 -- call description
50358 --
50359 -- No description or it is inherited.
50360 --
50361 -- call ADRs
50362 -- Bug 4922099
50363 --
50364 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50365 (NVL(l_actual_upg_option, 'N') = 'O') OR
50366 (NVL(l_enc_upg_option, 'N') = 'O')
50367 )
50368 THEN
50369 NULL;
50370 --
50371 --
50372
50373 l_ccid := AcctDerRule_33(
50374 p_application_id => p_application_id
50375 , p_ae_header_id => l_ae_header_id
50376 , p_source_16 => p_source_16
50377 , p_source_16_meaning => p_source_16_meaning
50378 , p_source_29 => p_source_29
50379 , p_source_44 => p_source_44
50380 , p_source_45 => p_source_45
50381 , x_transaction_coa_id => l_adr_transaction_coa_id
50382 , x_accounting_coa_id => l_adr_accounting_coa_id
50383 , x_value_type_code => l_adr_value_type_code
50384 , p_side => 'NA'
50385 );
50386
50387 xla_ae_lines_pkg.set_ccid(
50388 p_code_combination_id => l_ccid
50389 , p_value_type_code => l_adr_value_type_code
50390 , p_transaction_coa_id => l_adr_transaction_coa_id
50391 , p_accounting_coa_id => l_adr_accounting_coa_id
50392 , p_adr_code => 'AP_REAL_GAIN'
50393 , p_adr_type_code => 'S'
50394 , p_component_type => l_component_type
50395 , p_component_code => l_component_code
50396 , p_component_type_code => l_component_type_code
50397 , p_component_appl_id => l_component_appl_id
50398 , p_amb_context_code => l_amb_context_code
50399 , p_side => 'NA'
50400 );
50401
50402
50403 --
50404 --
50405 END IF;
50406 --
50407 -- Bug 4922099
50408 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50409 (NVL(l_enc_upg_option, 'N') = 'O')
50410 ) AND
50411 (l_bflow_method_code = 'PRIOR_ENTRY')
50412 )
50413 THEN
50414 IF
50415 --
50416 1 = 2
50417 --
50418 THEN
50419 xla_accounting_err_pkg.build_message
50420 (p_appli_s_name => 'XLA'
50421 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50422 ,p_token_1 => 'LINE_NUMBER'
50423 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50424 ,p_token_2 => 'LINE_TYPE_NAME'
50425 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50426 l_component_type
50427 ,l_component_code
50428 ,l_component_type_code
50429 ,l_component_appl_id
50430 ,l_amb_context_code
50434 ,p_token_3 => 'OWNER'
50431 ,l_entity_code
50432 ,l_event_class_code
50433 )
50435 ,p_value_3 => xla_lookups_pkg.get_meaning(
50436 p_lookup_type => 'XLA_OWNER_TYPE'
50437 ,p_lookup_code => l_component_type_code
50438 )
50439 ,p_token_4 => 'PRODUCT_NAME'
50440 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50441 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50442 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50443 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50444 ,p_ae_header_id => NULL
50445 );
50446
50447 IF (C_LEVEL_ERROR>= g_log_level) THEN
50448 trace
50449 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50450 ,p_level => C_LEVEL_ERROR
50451 ,p_module => l_log_module);
50452 END IF;
50453 END IF;
50454 END IF;
50455 --
50456 --
50457 ------------------------------------------------------------------------------------------------
50458 -- 4219869 Business Flow
50459 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50460 -- Prior Entry. Currently, the following code is always generated.
50461 ------------------------------------------------------------------------------------------------
50462 XLA_AE_LINES_PKG.ValidateCurrentLine;
50463
50464 ------------------------------------------------------------------------------------
50465 -- 4219869 Business Flow
50466 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50467 ------------------------------------------------------------------------------------
50468 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50469
50470 ----------------------------------------------------------------------------------
50471 -- 4219869 Business Flow
50472 -- Update journal entry status -- Need to generate this within IF <condition>
50473 ----------------------------------------------------------------------------------
50474 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50475 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50476 ,p_balance_type_code => l_balance_type_code
50477 );
50478
50479 -------------------------------------------------------------------------------------------
50480 -- 4262811 - Generate the Accrual Reversal lines
50481 -------------------------------------------------------------------------------------------
50482 BEGIN
50483 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50484 (g_array_event(p_event_id).array_value_num('header_index'));
50485 IF l_acc_rev_flag IS NULL THEN
50486 l_acc_rev_flag := 'N';
50487 END IF;
50488 EXCEPTION
50489 WHEN OTHERS THEN
50490 l_acc_rev_flag := 'N';
50491 END;
50492 --
50493 IF (l_acc_rev_flag = 'Y') THEN
50494
50495 -- 4645092 ------------------------------------------------------------------------------
50496 -- To allow MPA report to determine if it should generate report process
50497 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50498 ------------------------------------------------------------------------------------------
50499
50500 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50501 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50502 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50503 -- call ADRs
50504 -- Bug 4922099
50505 --
50506 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50507 (NVL(l_actual_upg_option, 'N') = 'O') OR
50508 (NVL(l_enc_upg_option, 'N') = 'O')
50509 )
50510 THEN
50511 NULL;
50512 --
50513 --
50514
50515 l_ccid := AcctDerRule_33(
50516 p_application_id => p_application_id
50517 , p_ae_header_id => l_ae_header_id
50518 , p_source_16 => p_source_16
50519 , p_source_16_meaning => p_source_16_meaning
50520 , p_source_29 => p_source_29
50521 , p_source_44 => p_source_44
50522 , p_source_45 => p_source_45
50523 , x_transaction_coa_id => l_adr_transaction_coa_id
50524 , x_accounting_coa_id => l_adr_accounting_coa_id
50525 , x_value_type_code => l_adr_value_type_code
50526 , p_side => 'NA'
50527 );
50528
50529 xla_ae_lines_pkg.set_ccid(
50530 p_code_combination_id => l_ccid
50531 , p_value_type_code => l_adr_value_type_code
50532 , p_transaction_coa_id => l_adr_transaction_coa_id
50536 , p_component_type => l_component_type
50533 , p_accounting_coa_id => l_adr_accounting_coa_id
50534 , p_adr_code => 'AP_REAL_GAIN'
50535 , p_adr_type_code => 'S'
50537 , p_component_code => l_component_code
50538 , p_component_type_code => l_component_type_code
50539 , p_component_appl_id => l_component_appl_id
50540 , p_amb_context_code => l_amb_context_code
50541 , p_side => 'NA'
50542 );
50543
50544
50545 --
50546 --
50547 END IF;
50548
50549 --
50550 -- Update the line information that should be overwritten
50551 --
50552 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50553 p_header_num => 1);
50554 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50555
50556 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50557
50558 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50559 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50560 END IF;
50561
50562 --
50563 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50564 --
50565 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50566 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50567 ELSE
50568 ---------------------------------------------------------------------------------------------------
50569 -- 4262811a Switch Sign
50570 ---------------------------------------------------------------------------------------------------
50571 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50574 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50576 -- 5132302
50577 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50579
50580 END IF;
50581
50582 -- 4955764
50583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50585
50586
50587 XLA_AE_LINES_PKG.ValidateCurrentLine;
50588 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50589
50590 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50591 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50592 ,p_balance_type_code => l_balance_type_code);
50593
50594 END IF;
50595
50596 -----------------------------------------------------------------------------------------
50597 -- 4262811 Multiperiod Accounting
50598 -----------------------------------------------------------------------------------------
50599 -- No MPA option is assigned.
50600
50601
50602 END IF;
50603 END IF;
50604 --
50605
50606 --
50607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50608 trace
50609 (p_msg => 'END of AcctLineType_99'
50610 ,p_level => C_LEVEL_PROCEDURE
50611 ,p_module => l_log_module);
50612 END IF;
50613 --
50614 EXCEPTION
50615 WHEN xla_exceptions_pkg.application_exception THEN
50616 RAISE;
50617 WHEN OTHERS THEN
50618 xla_exceptions_pkg.raise_message
50619 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_99');
50620 END AcctLineType_99;
50621 --
50622
50623 ---------------------------------------
50624 --
50625 -- PRIVATE FUNCTION
50626 -- AcctLineType_100
50627 --
50628 ---------------------------------------
50629 PROCEDURE AcctLineType_100 (
50630 p_application_id IN NUMBER
50631 ,p_event_id IN NUMBER
50632 ,p_calculate_acctd_flag IN VARCHAR2
50633 ,p_calculate_g_l_flag IN VARCHAR2
50634 ,p_actual_flag IN OUT VARCHAR2
50635 ,p_balance_type_code OUT VARCHAR2
50636 ,p_gain_or_loss_ref OUT VARCHAR2
50637
50638 --Payment Currency Code
50639 , p_source_12 IN VARCHAR2
50640 --Payment Distribution (Cleared Rate) Ledger Amount
50641 , p_source_22 IN NUMBER
50642 --Interest Account
50643 , p_source_27 IN NUMBER
50644 --Prorate Interest Invoice Across Distributions Option
50645 , p_source_28 IN VARCHAR2
50646 --Invoice Distribution Account
50647 , p_source_29 IN NUMBER
50648 --Invoice Distribution Type
50649 , p_source_32 IN VARCHAR2
50650 , p_source_32_meaning IN VARCHAR2
50651 --When to Account for Payment Option
50652 , p_source_50 IN VARCHAR2
50653 --Payment Distribution Type
50654 , p_source_51 IN VARCHAR2
50658 --Payment Distribution Amount
50655 , p_source_51_meaning IN VARCHAR2
50656 --Accounting Reversal Indicator
50657 , p_source_52 IN VARCHAR2
50659 , p_source_53 IN NUMBER
50660 --Business Flow Accounts Payable Application Identifier
50661 , p_source_54 IN NUMBER
50662 --Business Flow Payment Distribution Type
50663 , p_source_55 IN VARCHAR2
50664 --Business Flow Payment Entity Code
50665 , p_source_56 IN VARCHAR2
50666 --Business Flow Payment Distribution Identifier
50667 , p_source_57 IN NUMBER
50668 --Business Flow Payment Identifier
50669 , p_source_58 IN NUMBER
50670 --Payment Distribution Identifier
50671 , p_source_59 IN NUMBER
50672 --Distribution Link Type
50673 , p_source_60 IN VARCHAR2
50674 --Override Accounted Amount Indicator
50675 , p_source_64 IN VARCHAR2
50676 , p_source_64_meaning IN VARCHAR2
50677 --Payment Supplier Identifier
50678 , p_source_65 IN NUMBER
50679 --Payment Supplier Site Identifier
50680 , p_source_66 IN NUMBER
50681 --Third Party Type
50682 , p_source_67 IN VARCHAR2
50683 --Payment Distribution Reversed Identifier
50684 , p_source_68 IN NUMBER
50685 --Invoice Distribution Tax Line Identifier
50686 , p_source_69 IN NUMBER
50687 --Invoice Distribution Summary Tax Line Identifier
50688 , p_source_70 IN NUMBER
50689 --Payment Type
50690 , p_source_71 IN VARCHAR2
50691 , p_source_71_meaning IN VARCHAR2
50692 --Invoice Type Paid
50693 , p_source_112 IN VARCHAR2
50694 , p_source_112_meaning IN VARCHAR2
50695 --Cleared Exchange Date
50696 , p_source_114 IN DATE
50697 --Cleared Exchange Rate
50698 , p_source_115 IN NUMBER
50699 --Cleared Exchange Rate Type
50700 , p_source_116 IN VARCHAR2
50701 )
50702 IS
50703
50704 l_component_type VARCHAR2(80);
50705 l_component_code VARCHAR2(30);
50706 l_component_type_code VARCHAR2(1);
50707 l_component_appl_id INTEGER;
50708 l_amb_context_code VARCHAR2(30);
50709 l_entity_code VARCHAR2(30);
50710 l_event_class_code VARCHAR2(30);
50711 l_ae_header_id NUMBER;
50712 l_event_type_code VARCHAR2(30);
50713 l_line_definition_code VARCHAR2(30);
50714 l_line_definition_owner_code VARCHAR2(1);
50715 --
50716 -- adr variables
50717 l_segment VARCHAR2(30);
50718 l_ccid NUMBER;
50719 l_adr_transaction_coa_id NUMBER;
50720 l_adr_accounting_coa_id NUMBER;
50721 l_adr_flexfield_segment_code VARCHAR2(30);
50722 l_adr_flex_value_set_id NUMBER;
50723 l_adr_value_type_code VARCHAR2(30);
50724 l_adr_value_combination_id NUMBER;
50725 l_adr_value_segment_code VARCHAR2(30);
50726
50727 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50728 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50729 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50730 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50731
50732 -- 4262811 Variables ------------------------------------------------------------------------------------------
50733 l_entered_amt_idx NUMBER;
50734 l_accted_amt_idx NUMBER;
50735 l_acc_rev_flag VARCHAR2(1);
50736 l_accrual_line_num NUMBER;
50737 l_tmp_amt NUMBER;
50738 l_acc_rev_natural_side_code VARCHAR2(1);
50739
50740 l_num_entries NUMBER;
50741 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50742 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50743 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50744 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50745 l_recog_line_1 NUMBER;
50746 l_recog_line_2 NUMBER;
50747
50748 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50749 l_bflow_applied_to_amt NUMBER; -- 5132302
50750 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50751
50752 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50753
50754 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50755 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50756
50757 ---------------------------------------------------------------------------------------------------------------
50758
50759
50760 --
50761 -- bulk performance
50762 --
50763 l_balance_type_code VARCHAR2(1);
50764 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50765 l_log_module VARCHAR2(240);
50766
50767 --
50768 -- Upgrade strategy
50769 --
50770 l_actual_upg_option VARCHAR2(1);
50771 l_enc_upg_option VARCHAR2(1);
50772
50773 --
50774 BEGIN
50775 --
50776 IF g_log_enabled THEN
50777 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
50778 END IF;
50779 --
50780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50781
50782 trace
50783 (p_msg => 'BEGIN of AcctLineType_100'
50784 ,p_level => C_LEVEL_PROCEDURE
50785 ,p_module => l_log_module);
50786
50787 END IF;
50791 l_component_type_code := 'S';
50788 --
50789 l_component_type := 'AMB_JLT';
50790 l_component_code := 'AP_INTEREST_EXPENSE_CLEAR';
50792 l_component_appl_id := 200;
50793 l_amb_context_code := 'DEFAULT';
50794 l_entity_code := 'AP_PAYMENTS';
50795 l_event_class_code := 'RECONCILED PAYMENTS';
50796 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
50797 l_line_definition_owner_code := 'S';
50798 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
50799 --
50800 l_balance_type_code := 'A';
50801 l_segment := NULL;
50802 l_ccid := NULL;
50803 l_adr_transaction_coa_id := NULL;
50804 l_adr_accounting_coa_id := NULL;
50805 l_adr_flexfield_segment_code := NULL;
50806 l_adr_flex_value_set_id := NULL;
50807 l_adr_value_type_code := NULL;
50808 l_adr_value_combination_id := NULL;
50809 l_adr_value_segment_code := NULL;
50810
50811 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50812 l_bflow_class_code := ''; -- 4219869 Business Flow
50813 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50814 l_budgetary_control_flag := 'N';
50815
50816 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50817 l_bflow_applied_to_amt := NULL; -- 5132302
50818 l_entered_amt_idx := NULL; -- 4262811
50819 l_accted_amt_idx := NULL; -- 4262811
50820 l_acc_rev_flag := NULL; -- 4262811
50821 l_accrual_line_num := NULL; -- 4262811
50822 l_tmp_amt := NULL; -- 4262811
50823 --
50824
50825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50826 l_balance_type_code <> 'B' THEN
50827 IF NVL(p_source_50,'
50828 ') = 'CLEAR_CLEAR' AND
50829 NVL(p_source_32,'
50830 ') = 'ITEM' AND
50831 NVL(p_source_112,'
50832 ') = 'INTEREST' AND
50833 (NVL(p_source_51,'
50834 ') = 'CASH' OR
50835 NVL(p_source_51,'
50836 ') = 'DISCOUNT') AND
50837 NVL(p_source_71,'
50838 ') <> 'R'
50839 THEN
50840
50841 --
50842 XLA_AE_LINES_PKG.SetNewLine;
50843
50844 p_balance_type_code := l_balance_type_code;
50845 -- set the flag so later we will know whether the gain loss line needs to be created
50846
50847 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50848 p_actual_flag :='A';
50849 END IF;
50850
50851 --
50852 -- bulk performance
50853 --
50854 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50855 p_header_num => 0); -- 4262811
50856 --
50857 -- set accounting line options
50858 --
50859 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50860 p_natural_side_code => 'D'
50861 , p_gain_or_loss_flag => 'N'
50862 , p_gl_transfer_mode_code => 'S'
50863 , p_acct_entry_type_code => 'A'
50864 , p_switch_side_flag => 'Y'
50865 , p_merge_duplicate_code => 'A'
50866 );
50867 --
50868 l_acc_rev_natural_side_code := 'C'; -- 4262811
50869 --
50870 --
50871 -- set accounting line type info
50872 --
50873 xla_ae_lines_pkg.SetAcctLineType
50874 (p_component_type => l_component_type
50875 ,p_event_type_code => l_event_type_code
50876 ,p_line_definition_owner_code => l_line_definition_owner_code
50877 ,p_line_definition_code => l_line_definition_code
50878 ,p_accounting_line_code => l_component_code
50879 ,p_accounting_line_type_code => l_component_type_code
50880 ,p_accounting_line_appl_id => l_component_appl_id
50881 ,p_amb_context_code => l_amb_context_code
50882 ,p_entity_code => l_entity_code
50883 ,p_event_class_code => l_event_class_code);
50884 --
50885 -- set accounting class
50886 --
50887 xla_ae_lines_pkg.SetAcctClass(
50888 p_accounting_class_code => 'INTEREST_EXPENSE'
50889 , p_ae_header_id => l_ae_header_id
50890 );
50891
50892 --
50893 -- set rounding class
50894 --
50895 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50896 'INTEREST_EXPENSE';
50897
50898 --
50899 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50900 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50901 --
50902 -- bulk performance
50903 --
50904 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50905
50906 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50907 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50908
50909 -- 4955764
50910 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50911 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50912
50913 -- 4458381 Public Sector Enh
50914
50915 --
50916 -- set accounting attributes for the line type
50917 --
50918 l_entered_amt_idx := 10;
50919 l_accted_amt_idx := 15;
50923 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
50920 l_bflow_applied_to_amt_idx := 2; -- 5132302
50921 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50922 l_rec_acct_attrs.array_char_value(1) := p_source_52;
50924 l_rec_acct_attrs.array_num_value(2) := p_source_53;
50925 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
50926 l_rec_acct_attrs.array_num_value(3) := p_source_54;
50927 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50928 l_rec_acct_attrs.array_char_value(4) := p_source_55;
50929 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
50930 l_rec_acct_attrs.array_char_value(5) := p_source_56;
50931 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
50932 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
50933 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50934 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
50935 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
50936 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
50937 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
50938 l_rec_acct_attrs.array_char_value(9) := p_source_60;
50939 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
50940 l_rec_acct_attrs.array_num_value(10) := p_source_53;
50941 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
50942 l_rec_acct_attrs.array_char_value(11) := p_source_12;
50943 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
50944 l_rec_acct_attrs.array_date_value(12) := p_source_114;
50945 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
50946 l_rec_acct_attrs.array_num_value(13) := p_source_115;
50947 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
50948 l_rec_acct_attrs.array_char_value(14) := p_source_116;
50949 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
50950 l_rec_acct_attrs.array_num_value(15) := p_source_22;
50951 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
50952 l_rec_acct_attrs.array_char_value(16) := p_source_64;
50953 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
50954 l_rec_acct_attrs.array_num_value(17) := p_source_65;
50955 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
50956 l_rec_acct_attrs.array_num_value(18) := p_source_66;
50957 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
50958 l_rec_acct_attrs.array_char_value(19) := p_source_67;
50959 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
50960 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
50961 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
50962 l_rec_acct_attrs.array_char_value(21) := p_source_60;
50963 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
50964 l_rec_acct_attrs.array_num_value(22) := p_source_69;
50965 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
50966 l_rec_acct_attrs.array_num_value(23) := p_source_69;
50967 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
50968 l_rec_acct_attrs.array_num_value(24) := p_source_70;
50969
50970 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50971 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50972
50973 ---------------------------------------------------------------------------------------------------------------
50974 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50975 ---------------------------------------------------------------------------------------------------------------
50976 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50977
50978 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50979 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50980
50981 IF xla_accounting_cache_pkg.GetValueChar
50982 (p_source_code => 'LEDGER_CATEGORY_CODE'
50983 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50984 AND l_bflow_method_code = 'PRIOR_ENTRY'
50985 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50986 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50987 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50988 )
50989 THEN
50990 xla_ae_lines_pkg.BflowUpgEntry
50991 (p_business_method_code => l_bflow_method_code
50992 ,p_business_class_code => l_bflow_class_code
50993 ,p_balance_type => l_balance_type_code);
50994 ELSE
50995 NULL;
50996 -- No business flow processing for business flow method of NONE.
50997 END IF;
50998
50999 --
51000 -- call analytical criteria
51001 --
51002
51003 --
51004 -- call description
51005 --
51006 -- No description or it is inherited.
51007 --
51008 -- call ADRs
51009 -- Bug 4922099
51010 --
51011 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51012 (NVL(l_actual_upg_option, 'N') = 'O') OR
51013 (NVL(l_enc_upg_option, 'N') = 'O')
51014 )
51015 THEN
51016 NULL;
51017 --
51018 --
51019
51020 l_ccid := AcctDerRule_27(
51024 , p_source_28 => p_source_28
51021 p_application_id => p_application_id
51022 , p_ae_header_id => l_ae_header_id
51023 , p_source_27 => p_source_27
51025 , p_source_29 => p_source_29
51026 , x_transaction_coa_id => l_adr_transaction_coa_id
51027 , x_accounting_coa_id => l_adr_accounting_coa_id
51028 , x_value_type_code => l_adr_value_type_code
51029 , p_side => 'NA'
51030 );
51031
51032 xla_ae_lines_pkg.set_ccid(
51033 p_code_combination_id => l_ccid
51034 , p_value_type_code => l_adr_value_type_code
51035 , p_transaction_coa_id => l_adr_transaction_coa_id
51036 , p_accounting_coa_id => l_adr_accounting_coa_id
51037 , p_adr_code => 'AP_INTEREST'
51038 , p_adr_type_code => 'S'
51039 , p_component_type => l_component_type
51040 , p_component_code => l_component_code
51041 , p_component_type_code => l_component_type_code
51042 , p_component_appl_id => l_component_appl_id
51043 , p_amb_context_code => l_amb_context_code
51044 , p_side => 'NA'
51045 );
51046
51047
51048 l_segment := AcctDerRule_10(
51049 p_application_id => p_application_id
51050 , p_ae_header_id => l_ae_header_id
51051 , p_source_27 => p_source_27
51052 , p_source_28 => p_source_28
51053 , x_transaction_coa_id => l_adr_transaction_coa_id
51054 , x_accounting_coa_id => l_adr_accounting_coa_id
51055 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51056 , x_flex_value_set_id => l_adr_flex_value_set_id
51057 , x_value_type_code => l_adr_value_type_code
51058 , x_value_combination_id => l_adr_value_combination_id
51059 , x_value_segment_code => l_adr_value_segment_code
51060 , p_side => 'NA'
51061 , p_override_seg_flag => 'Y'
51062 );
51063
51064 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51065
51066 xla_ae_lines_pkg.set_segment(
51067 p_to_segment_code => 'GL_ACCOUNT'
51068 , p_segment_value => l_segment
51069 , p_from_segment_code => l_adr_value_segment_code
51070 , p_from_combination_id => l_adr_value_combination_id
51071 , p_value_type_code => l_adr_value_type_code
51072 , p_transaction_coa_id => l_adr_transaction_coa_id
51073 , p_accounting_coa_id => l_adr_accounting_coa_id
51074 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51075 , p_flex_value_set_id => l_adr_flex_value_set_id
51076 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
51077 , p_adr_type_code => 'S'
51078 , p_component_type => l_component_type
51079 , p_component_code => l_component_code
51080 , p_component_type_code => l_component_type_code
51081 , p_component_appl_id => l_component_appl_id
51082 , p_amb_context_code => l_amb_context_code
51083 , p_entity_code => 'AP_PAYMENTS'
51084 , p_event_class_code => 'RECONCILED PAYMENTS'
51085 , p_side => 'NA'
51086 );
51087
51088 END IF;
51089
51090 --
51091 --
51092 END IF;
51093 --
51094 -- Bug 4922099
51095 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51096 (NVL(l_enc_upg_option, 'N') = 'O')
51097 ) AND
51098 (l_bflow_method_code = 'PRIOR_ENTRY')
51099 )
51100 THEN
51101 IF
51102 --
51103 1 = 2
51104 --
51105 THEN
51106 xla_accounting_err_pkg.build_message
51107 (p_appli_s_name => 'XLA'
51108 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51109 ,p_token_1 => 'LINE_NUMBER'
51110 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51111 ,p_token_2 => 'LINE_TYPE_NAME'
51112 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51113 l_component_type
51114 ,l_component_code
51115 ,l_component_type_code
51116 ,l_component_appl_id
51117 ,l_amb_context_code
51118 ,l_entity_code
51119 ,l_event_class_code
51120 )
51121 ,p_token_3 => 'OWNER'
51122 ,p_value_3 => xla_lookups_pkg.get_meaning(
51123 p_lookup_type => 'XLA_OWNER_TYPE'
51127 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51124 ,p_lookup_code => l_component_type_code
51125 )
51126 ,p_token_4 => 'PRODUCT_NAME'
51128 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51129 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51130 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51131 ,p_ae_header_id => NULL
51132 );
51133
51134 IF (C_LEVEL_ERROR>= g_log_level) THEN
51135 trace
51136 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51137 ,p_level => C_LEVEL_ERROR
51138 ,p_module => l_log_module);
51139 END IF;
51140 END IF;
51141 END IF;
51142 --
51143 --
51144 ------------------------------------------------------------------------------------------------
51145 -- 4219869 Business Flow
51146 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51147 -- Prior Entry. Currently, the following code is always generated.
51148 ------------------------------------------------------------------------------------------------
51149 XLA_AE_LINES_PKG.ValidateCurrentLine;
51150
51151 ------------------------------------------------------------------------------------
51152 -- 4219869 Business Flow
51153 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51154 ------------------------------------------------------------------------------------
51155 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51156
51157 ----------------------------------------------------------------------------------
51158 -- 4219869 Business Flow
51159 -- Update journal entry status -- Need to generate this within IF <condition>
51160 ----------------------------------------------------------------------------------
51161 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51162 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51163 ,p_balance_type_code => l_balance_type_code
51164 );
51165
51166 -------------------------------------------------------------------------------------------
51167 -- 4262811 - Generate the Accrual Reversal lines
51168 -------------------------------------------------------------------------------------------
51169 BEGIN
51170 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51171 (g_array_event(p_event_id).array_value_num('header_index'));
51172 IF l_acc_rev_flag IS NULL THEN
51173 l_acc_rev_flag := 'N';
51174 END IF;
51175 EXCEPTION
51176 WHEN OTHERS THEN
51177 l_acc_rev_flag := 'N';
51178 END;
51179 --
51180 IF (l_acc_rev_flag = 'Y') THEN
51181
51182 -- 4645092 ------------------------------------------------------------------------------
51183 -- To allow MPA report to determine if it should generate report process
51184 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51185 ------------------------------------------------------------------------------------------
51186
51187 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51188 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51189 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51190 -- call ADRs
51191 -- Bug 4922099
51192 --
51193 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51194 (NVL(l_actual_upg_option, 'N') = 'O') OR
51195 (NVL(l_enc_upg_option, 'N') = 'O')
51196 )
51197 THEN
51198 NULL;
51199 --
51200 --
51201
51202 l_ccid := AcctDerRule_27(
51203 p_application_id => p_application_id
51204 , p_ae_header_id => l_ae_header_id
51205 , p_source_27 => p_source_27
51206 , p_source_28 => p_source_28
51207 , p_source_29 => p_source_29
51208 , x_transaction_coa_id => l_adr_transaction_coa_id
51209 , x_accounting_coa_id => l_adr_accounting_coa_id
51210 , x_value_type_code => l_adr_value_type_code
51211 , p_side => 'NA'
51212 );
51213
51214 xla_ae_lines_pkg.set_ccid(
51215 p_code_combination_id => l_ccid
51216 , p_value_type_code => l_adr_value_type_code
51217 , p_transaction_coa_id => l_adr_transaction_coa_id
51218 , p_accounting_coa_id => l_adr_accounting_coa_id
51219 , p_adr_code => 'AP_INTEREST'
51220 , p_adr_type_code => 'S'
51221 , p_component_type => l_component_type
51222 , p_component_code => l_component_code
51223 , p_component_type_code => l_component_type_code
51224 , p_component_appl_id => l_component_appl_id
51225 , p_amb_context_code => l_amb_context_code
51226 , p_side => 'NA'
51227 );
51228
51229
51230 l_segment := AcctDerRule_10(
51234 , p_source_28 => p_source_28
51231 p_application_id => p_application_id
51232 , p_ae_header_id => l_ae_header_id
51233 , p_source_27 => p_source_27
51235 , x_transaction_coa_id => l_adr_transaction_coa_id
51236 , x_accounting_coa_id => l_adr_accounting_coa_id
51237 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51238 , x_flex_value_set_id => l_adr_flex_value_set_id
51239 , x_value_type_code => l_adr_value_type_code
51240 , x_value_combination_id => l_adr_value_combination_id
51241 , x_value_segment_code => l_adr_value_segment_code
51242 , p_side => 'NA'
51243 , p_override_seg_flag => 'Y'
51244 );
51245
51246 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51247
51248 xla_ae_lines_pkg.set_segment(
51249 p_to_segment_code => 'GL_ACCOUNT'
51250 , p_segment_value => l_segment
51251 , p_from_segment_code => l_adr_value_segment_code
51252 , p_from_combination_id => l_adr_value_combination_id
51253 , p_value_type_code => l_adr_value_type_code
51254 , p_transaction_coa_id => l_adr_transaction_coa_id
51255 , p_accounting_coa_id => l_adr_accounting_coa_id
51256 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51257 , p_flex_value_set_id => l_adr_flex_value_set_id
51258 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
51259 , p_adr_type_code => 'S'
51260 , p_component_type => l_component_type
51261 , p_component_code => l_component_code
51262 , p_component_type_code => l_component_type_code
51263 , p_component_appl_id => l_component_appl_id
51264 , p_amb_context_code => l_amb_context_code
51265 , p_entity_code => 'AP_PAYMENTS'
51266 , p_event_class_code => 'RECONCILED PAYMENTS'
51267 , p_side => 'NA'
51268 );
51269
51270 END IF;
51271
51272 --
51273 --
51274 END IF;
51275
51276 --
51277 -- Update the line information that should be overwritten
51278 --
51279 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51280 p_header_num => 1);
51281 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51282
51283 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51284
51285 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51286 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51287 END IF;
51288
51289 --
51290 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51291 --
51292 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51293 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51294 ELSE
51295 ---------------------------------------------------------------------------------------------------
51296 -- 4262811a Switch Sign
51297 ---------------------------------------------------------------------------------------------------
51298 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51299 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51300 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51301 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51302 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51303 -- 5132302
51304 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51305 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51306
51307 END IF;
51308
51309 -- 4955764
51310 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51311 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51312
51313
51314 XLA_AE_LINES_PKG.ValidateCurrentLine;
51315 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51316
51317 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51318 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51319 ,p_balance_type_code => l_balance_type_code);
51320
51321 END IF;
51322
51323 -----------------------------------------------------------------------------------------
51324 -- 4262811 Multiperiod Accounting
51325 -----------------------------------------------------------------------------------------
51326 -- No MPA option is assigned.
51327
51328
51329 END IF;
51330 END IF;
51331 --
51332
51333 --
51334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51335 trace
51336 (p_msg => 'END of AcctLineType_100'
51337 ,p_level => C_LEVEL_PROCEDURE
51338 ,p_module => l_log_module);
51339 END IF;
51340 --
51344 WHEN OTHERS THEN
51341 EXCEPTION
51342 WHEN xla_exceptions_pkg.application_exception THEN
51343 RAISE;
51345 xla_exceptions_pkg.raise_message
51346 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_100');
51347 END AcctLineType_100;
51348 --
51349
51350 ---------------------------------------
51351 --
51352 -- PRIVATE FUNCTION
51353 -- AcctLineType_101
51354 --
51355 ---------------------------------------
51356 PROCEDURE AcctLineType_101 (
51357 p_application_id IN NUMBER
51358 ,p_event_id IN NUMBER
51359 ,p_calculate_acctd_flag IN VARCHAR2
51360 ,p_calculate_g_l_flag IN VARCHAR2
51361 ,p_actual_flag IN OUT VARCHAR2
51362 ,p_balance_type_code OUT VARCHAR2
51363 ,p_gain_or_loss_ref OUT VARCHAR2
51364
51365 --Payment Currency Code
51366 , p_source_12 IN VARCHAR2
51367 --Payment Distribution (Payment Rate) Ledger Amount
51368 , p_source_21 IN NUMBER
51369 --Interest Account
51370 , p_source_27 IN NUMBER
51371 --Prorate Interest Invoice Across Distributions Option
51372 , p_source_28 IN VARCHAR2
51373 --Invoice Distribution Account
51374 , p_source_29 IN NUMBER
51375 --Invoice Distribution Type
51376 , p_source_32 IN VARCHAR2
51377 , p_source_32_meaning IN VARCHAR2
51378 --When to Account for Payment Option
51379 , p_source_50 IN VARCHAR2
51380 --Payment Distribution Type
51381 , p_source_51 IN VARCHAR2
51382 , p_source_51_meaning IN VARCHAR2
51383 --Accounting Reversal Indicator
51384 , p_source_52 IN VARCHAR2
51385 --Payment Distribution Amount
51386 , p_source_53 IN NUMBER
51387 --Business Flow Accounts Payable Application Identifier
51388 , p_source_54 IN NUMBER
51389 --Payment Distribution Identifier
51390 , p_source_59 IN NUMBER
51391 --Distribution Link Type
51392 , p_source_60 IN VARCHAR2
51393 --Override Accounted Amount Indicator
51394 , p_source_64 IN VARCHAR2
51395 , p_source_64_meaning IN VARCHAR2
51396 --Payment Supplier Identifier
51397 , p_source_65 IN NUMBER
51398 --Payment Supplier Site Identifier
51399 , p_source_66 IN NUMBER
51400 --Third Party Type
51401 , p_source_67 IN VARCHAR2
51402 --Payment Distribution Reversed Identifier
51403 , p_source_68 IN NUMBER
51404 --Invoice Distribution Tax Line Identifier
51405 , p_source_69 IN NUMBER
51406 --Invoice Distribution Summary Tax Line Identifier
51407 , p_source_70 IN NUMBER
51408 --Invoice Distribution Amount of the Payment Distribution
51409 , p_source_72 IN NUMBER
51410 --Business Flow Invoice Distribution Type
51411 , p_source_73 IN VARCHAR2
51412 --Business Flow Invoice Entity Code
51413 , p_source_74 IN VARCHAR2
51414 --Business Flow Invoice Distribution Identifier
51415 , p_source_75 IN NUMBER
51416 --Business Flow Invoice Identifier
51417 , p_source_76 IN NUMBER
51418 --Invoice Distribution Tax Distribution Identifier from Tax
51419 , p_source_77 IN NUMBER
51420 --Invoice Type Paid
51421 , p_source_112 IN VARCHAR2
51422 , p_source_112_meaning IN VARCHAR2
51423 --Payment Processing Type
51424 , p_source_120 IN VARCHAR2
51425 --Payment Exchange Date
51426 , p_source_121 IN DATE
51427 --Payment Exchange Rate
51428 , p_source_122 IN NUMBER
51429 --Payment Exchange Rate Type
51430 , p_source_123 IN VARCHAR2
51431 )
51432 IS
51433
51434 l_component_type VARCHAR2(80);
51435 l_component_code VARCHAR2(30);
51436 l_component_type_code VARCHAR2(1);
51437 l_component_appl_id INTEGER;
51438 l_amb_context_code VARCHAR2(30);
51439 l_entity_code VARCHAR2(30);
51440 l_event_class_code VARCHAR2(30);
51441 l_ae_header_id NUMBER;
51442 l_event_type_code VARCHAR2(30);
51443 l_line_definition_code VARCHAR2(30);
51444 l_line_definition_owner_code VARCHAR2(1);
51445 --
51446 -- adr variables
51447 l_segment VARCHAR2(30);
51448 l_ccid NUMBER;
51449 l_adr_transaction_coa_id NUMBER;
51450 l_adr_accounting_coa_id NUMBER;
51451 l_adr_flexfield_segment_code VARCHAR2(30);
51452 l_adr_flex_value_set_id NUMBER;
51453 l_adr_value_type_code VARCHAR2(30);
51454 l_adr_value_combination_id NUMBER;
51455 l_adr_value_segment_code VARCHAR2(30);
51456
51457 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51458 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51459 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51460 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51461
51462 -- 4262811 Variables ------------------------------------------------------------------------------------------
51463 l_entered_amt_idx NUMBER;
51464 l_accted_amt_idx NUMBER;
51465 l_acc_rev_flag VARCHAR2(1);
51466 l_accrual_line_num NUMBER;
51467 l_tmp_amt NUMBER;
51468 l_acc_rev_natural_side_code VARCHAR2(1);
51469
51470 l_num_entries NUMBER;
51471 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51472 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51476 l_recog_line_2 NUMBER;
51473 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51474 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51475 l_recog_line_1 NUMBER;
51477
51478 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51479 l_bflow_applied_to_amt NUMBER; -- 5132302
51480 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51481
51482 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51483
51484 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51485 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51486
51487 ---------------------------------------------------------------------------------------------------------------
51488
51489
51490 --
51491 -- bulk performance
51492 --
51493 l_balance_type_code VARCHAR2(1);
51494 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51495 l_log_module VARCHAR2(240);
51496
51497 --
51498 -- Upgrade strategy
51499 --
51500 l_actual_upg_option VARCHAR2(1);
51501 l_enc_upg_option VARCHAR2(1);
51502
51503 --
51504 BEGIN
51505 --
51506 IF g_log_enabled THEN
51507 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
51508 END IF;
51509 --
51510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51511
51512 trace
51513 (p_msg => 'BEGIN of AcctLineType_101'
51514 ,p_level => C_LEVEL_PROCEDURE
51515 ,p_module => l_log_module);
51516
51517 END IF;
51518 --
51519 l_component_type := 'AMB_JLT';
51520 l_component_code := 'AP_INTEREST_EXPENSE_PMT';
51521 l_component_type_code := 'S';
51522 l_component_appl_id := 200;
51523 l_amb_context_code := 'DEFAULT';
51524 l_entity_code := 'AP_PAYMENTS';
51525 l_event_class_code := 'PAYMENTS';
51526 l_event_type_code := 'PAYMENTS_ALL';
51527 l_line_definition_owner_code := 'S';
51528 l_line_definition_code := 'CASH_PAYMENTS_ALL';
51529 --
51530 l_balance_type_code := 'A';
51531 l_segment := NULL;
51532 l_ccid := NULL;
51533 l_adr_transaction_coa_id := NULL;
51534 l_adr_accounting_coa_id := NULL;
51535 l_adr_flexfield_segment_code := NULL;
51536 l_adr_flex_value_set_id := NULL;
51537 l_adr_value_type_code := NULL;
51538 l_adr_value_combination_id := NULL;
51539 l_adr_value_segment_code := NULL;
51540
51541 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51542 l_bflow_class_code := ''; -- 4219869 Business Flow
51543 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51544 l_budgetary_control_flag := 'N';
51545
51546 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51547 l_bflow_applied_to_amt := NULL; -- 5132302
51548 l_entered_amt_idx := NULL; -- 4262811
51549 l_accted_amt_idx := NULL; -- 4262811
51550 l_acc_rev_flag := NULL; -- 4262811
51551 l_accrual_line_num := NULL; -- 4262811
51552 l_tmp_amt := NULL; -- 4262811
51553 --
51554
51555 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51556 l_balance_type_code <> 'B' THEN
51557 IF NVL(p_source_50,'
51558 ') <> 'CLEAR_CLEAR' AND
51559 NVL(p_source_112,'
51560 ') = 'INTEREST' AND
51561 NVL(p_source_32,'
51562 ') = 'ITEM' AND
51563 (NVL(p_source_51,'
51564 ') = 'CASH' OR
51565 NVL(p_source_51,'
51566 ') = 'DISCOUNT') AND
51567 NVL(p_source_120,'
51568 ') <> 'PAYMENTCARD'
51569 THEN
51570
51571 --
51572 XLA_AE_LINES_PKG.SetNewLine;
51573
51574 p_balance_type_code := l_balance_type_code;
51575 -- set the flag so later we will know whether the gain loss line needs to be created
51576
51577 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51578 p_actual_flag :='A';
51579 END IF;
51580
51581 --
51582 -- bulk performance
51583 --
51584 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51585 p_header_num => 0); -- 4262811
51586 --
51587 -- set accounting line options
51588 --
51589 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51590 p_natural_side_code => 'D'
51591 , p_gain_or_loss_flag => 'N'
51592 , p_gl_transfer_mode_code => 'S'
51593 , p_acct_entry_type_code => 'A'
51594 , p_switch_side_flag => 'Y'
51595 , p_merge_duplicate_code => 'A'
51596 );
51597 --
51598 l_acc_rev_natural_side_code := 'C'; -- 4262811
51599 --
51600 --
51601 -- set accounting line type info
51602 --
51603 xla_ae_lines_pkg.SetAcctLineType
51604 (p_component_type => l_component_type
51605 ,p_event_type_code => l_event_type_code
51606 ,p_line_definition_owner_code => l_line_definition_owner_code
51607 ,p_line_definition_code => l_line_definition_code
51608 ,p_accounting_line_code => l_component_code
51609 ,p_accounting_line_type_code => l_component_type_code
51613 ,p_event_class_code => l_event_class_code);
51610 ,p_accounting_line_appl_id => l_component_appl_id
51611 ,p_amb_context_code => l_amb_context_code
51612 ,p_entity_code => l_entity_code
51614 --
51615 -- set accounting class
51616 --
51617 xla_ae_lines_pkg.SetAcctClass(
51618 p_accounting_class_code => 'INTEREST_EXPENSE'
51619 , p_ae_header_id => l_ae_header_id
51620 );
51621
51622 --
51623 -- set rounding class
51624 --
51625 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51626 'INTEREST_EXPENSE';
51627
51628 --
51629 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51630 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51631 --
51632 -- bulk performance
51633 --
51634 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51635
51636 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51637 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51638
51639 -- 4955764
51640 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51641 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51642
51643 -- 4458381 Public Sector Enh
51644
51645 --
51646 -- set accounting attributes for the line type
51647 --
51648 l_entered_amt_idx := 10;
51649 l_accted_amt_idx := 15;
51650 l_bflow_applied_to_amt_idx := 2; -- 5132302
51651 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51652 l_rec_acct_attrs.array_char_value(1) := p_source_52;
51653 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
51654 l_rec_acct_attrs.array_num_value(2) := p_source_72;
51655 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
51656 l_rec_acct_attrs.array_num_value(3) := p_source_54;
51657 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51658 l_rec_acct_attrs.array_char_value(4) := p_source_73;
51659 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
51660 l_rec_acct_attrs.array_char_value(5) := p_source_74;
51661 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
51662 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
51663 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51664 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
51665 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
51666 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
51667 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
51668 l_rec_acct_attrs.array_char_value(9) := p_source_60;
51669 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
51670 l_rec_acct_attrs.array_num_value(10) := p_source_53;
51671 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
51672 l_rec_acct_attrs.array_char_value(11) := p_source_12;
51673 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
51674 l_rec_acct_attrs.array_date_value(12) := p_source_121;
51675 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
51676 l_rec_acct_attrs.array_num_value(13) := p_source_122;
51677 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
51678 l_rec_acct_attrs.array_char_value(14) := p_source_123;
51679 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
51680 l_rec_acct_attrs.array_num_value(15) := p_source_21;
51681 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
51682 l_rec_acct_attrs.array_char_value(16) := p_source_64;
51683 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
51684 l_rec_acct_attrs.array_num_value(17) := p_source_65;
51685 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
51686 l_rec_acct_attrs.array_num_value(18) := p_source_66;
51687 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
51688 l_rec_acct_attrs.array_char_value(19) := p_source_67;
51689 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
51690 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
51691 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
51692 l_rec_acct_attrs.array_char_value(21) := p_source_60;
51693 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
51694 l_rec_acct_attrs.array_num_value(22) := p_source_69;
51695 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
51696 l_rec_acct_attrs.array_num_value(23) := p_source_77;
51697 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
51698 l_rec_acct_attrs.array_num_value(24) := p_source_70;
51699
51700 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51701 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51702
51703 ---------------------------------------------------------------------------------------------------------------
51704 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51705 ---------------------------------------------------------------------------------------------------------------
51709 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51706 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51707
51708 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51710
51711 IF xla_accounting_cache_pkg.GetValueChar
51712 (p_source_code => 'LEDGER_CATEGORY_CODE'
51713 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51714 AND l_bflow_method_code = 'PRIOR_ENTRY'
51715 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51716 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51717 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51718 )
51719 THEN
51720 xla_ae_lines_pkg.BflowUpgEntry
51721 (p_business_method_code => l_bflow_method_code
51722 ,p_business_class_code => l_bflow_class_code
51723 ,p_balance_type => l_balance_type_code);
51724 ELSE
51725 NULL;
51726 -- No business flow processing for business flow method of NONE.
51727 END IF;
51728
51729 --
51730 -- call analytical criteria
51731 --
51732
51733 --
51734 -- call description
51735 --
51736 -- No description or it is inherited.
51737 --
51738 -- call ADRs
51739 -- Bug 4922099
51740 --
51741 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51742 (NVL(l_actual_upg_option, 'N') = 'O') OR
51743 (NVL(l_enc_upg_option, 'N') = 'O')
51744 )
51745 THEN
51746 NULL;
51747 --
51748 --
51749
51750 l_ccid := AcctDerRule_27(
51751 p_application_id => p_application_id
51752 , p_ae_header_id => l_ae_header_id
51753 , p_source_27 => p_source_27
51754 , p_source_28 => p_source_28
51755 , p_source_29 => p_source_29
51756 , x_transaction_coa_id => l_adr_transaction_coa_id
51757 , x_accounting_coa_id => l_adr_accounting_coa_id
51758 , x_value_type_code => l_adr_value_type_code
51759 , p_side => 'NA'
51760 );
51761
51762 xla_ae_lines_pkg.set_ccid(
51763 p_code_combination_id => l_ccid
51764 , p_value_type_code => l_adr_value_type_code
51765 , p_transaction_coa_id => l_adr_transaction_coa_id
51766 , p_accounting_coa_id => l_adr_accounting_coa_id
51767 , p_adr_code => 'AP_INTEREST'
51768 , p_adr_type_code => 'S'
51769 , p_component_type => l_component_type
51770 , p_component_code => l_component_code
51771 , p_component_type_code => l_component_type_code
51772 , p_component_appl_id => l_component_appl_id
51773 , p_amb_context_code => l_amb_context_code
51774 , p_side => 'NA'
51775 );
51776
51777
51778 l_segment := AcctDerRule_10(
51779 p_application_id => p_application_id
51780 , p_ae_header_id => l_ae_header_id
51781 , p_source_27 => p_source_27
51782 , p_source_28 => p_source_28
51783 , x_transaction_coa_id => l_adr_transaction_coa_id
51784 , x_accounting_coa_id => l_adr_accounting_coa_id
51785 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51786 , x_flex_value_set_id => l_adr_flex_value_set_id
51787 , x_value_type_code => l_adr_value_type_code
51788 , x_value_combination_id => l_adr_value_combination_id
51789 , x_value_segment_code => l_adr_value_segment_code
51790 , p_side => 'NA'
51791 , p_override_seg_flag => 'Y'
51792 );
51793
51794 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51795
51796 xla_ae_lines_pkg.set_segment(
51797 p_to_segment_code => 'GL_ACCOUNT'
51798 , p_segment_value => l_segment
51799 , p_from_segment_code => l_adr_value_segment_code
51800 , p_from_combination_id => l_adr_value_combination_id
51801 , p_value_type_code => l_adr_value_type_code
51802 , p_transaction_coa_id => l_adr_transaction_coa_id
51803 , p_accounting_coa_id => l_adr_accounting_coa_id
51804 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51805 , p_flex_value_set_id => l_adr_flex_value_set_id
51806 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
51807 , p_adr_type_code => 'S'
51808 , p_component_type => l_component_type
51809 , p_component_code => l_component_code
51810 , p_component_type_code => l_component_type_code
51811 , p_component_appl_id => l_component_appl_id
51812 , p_amb_context_code => l_amb_context_code
51813 , p_entity_code => 'AP_PAYMENTS'
51814 , p_event_class_code => 'PAYMENTS'
51815 , p_side => 'NA'
51816 );
51817
51818 END IF;
51819
51820 --
51821 --
51822 END IF;
51823 --
51824 -- Bug 4922099
51825 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51826 (NVL(l_enc_upg_option, 'N') = 'O')
51827 ) AND
51831 IF
51828 (l_bflow_method_code = 'PRIOR_ENTRY')
51829 )
51830 THEN
51832 --
51833 1 = 2
51834 --
51835 THEN
51836 xla_accounting_err_pkg.build_message
51837 (p_appli_s_name => 'XLA'
51838 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51839 ,p_token_1 => 'LINE_NUMBER'
51840 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51841 ,p_token_2 => 'LINE_TYPE_NAME'
51842 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51843 l_component_type
51844 ,l_component_code
51845 ,l_component_type_code
51846 ,l_component_appl_id
51847 ,l_amb_context_code
51848 ,l_entity_code
51849 ,l_event_class_code
51850 )
51851 ,p_token_3 => 'OWNER'
51852 ,p_value_3 => xla_lookups_pkg.get_meaning(
51853 p_lookup_type => 'XLA_OWNER_TYPE'
51854 ,p_lookup_code => l_component_type_code
51855 )
51856 ,p_token_4 => 'PRODUCT_NAME'
51857 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51858 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51859 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51860 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51861 ,p_ae_header_id => NULL
51862 );
51863
51864 IF (C_LEVEL_ERROR>= g_log_level) THEN
51865 trace
51866 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51867 ,p_level => C_LEVEL_ERROR
51868 ,p_module => l_log_module);
51869 END IF;
51870 END IF;
51871 END IF;
51872 --
51873 --
51874 ------------------------------------------------------------------------------------------------
51875 -- 4219869 Business Flow
51876 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51877 -- Prior Entry. Currently, the following code is always generated.
51878 ------------------------------------------------------------------------------------------------
51879 XLA_AE_LINES_PKG.ValidateCurrentLine;
51880
51881 ------------------------------------------------------------------------------------
51882 -- 4219869 Business Flow
51883 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51884 ------------------------------------------------------------------------------------
51885 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51886
51887 ----------------------------------------------------------------------------------
51888 -- 4219869 Business Flow
51889 -- Update journal entry status -- Need to generate this within IF <condition>
51890 ----------------------------------------------------------------------------------
51891 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51892 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51893 ,p_balance_type_code => l_balance_type_code
51894 );
51895
51896 -------------------------------------------------------------------------------------------
51897 -- 4262811 - Generate the Accrual Reversal lines
51898 -------------------------------------------------------------------------------------------
51899 BEGIN
51900 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51901 (g_array_event(p_event_id).array_value_num('header_index'));
51902 IF l_acc_rev_flag IS NULL THEN
51903 l_acc_rev_flag := 'N';
51904 END IF;
51905 EXCEPTION
51906 WHEN OTHERS THEN
51907 l_acc_rev_flag := 'N';
51908 END;
51909 --
51910 IF (l_acc_rev_flag = 'Y') THEN
51911
51912 -- 4645092 ------------------------------------------------------------------------------
51913 -- To allow MPA report to determine if it should generate report process
51914 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51915 ------------------------------------------------------------------------------------------
51916
51917 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51918 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51922 --
51919 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51920 -- call ADRs
51921 -- Bug 4922099
51923 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51924 (NVL(l_actual_upg_option, 'N') = 'O') OR
51925 (NVL(l_enc_upg_option, 'N') = 'O')
51926 )
51927 THEN
51928 NULL;
51929 --
51930 --
51931
51932 l_ccid := AcctDerRule_27(
51933 p_application_id => p_application_id
51934 , p_ae_header_id => l_ae_header_id
51935 , p_source_27 => p_source_27
51936 , p_source_28 => p_source_28
51937 , p_source_29 => p_source_29
51938 , x_transaction_coa_id => l_adr_transaction_coa_id
51939 , x_accounting_coa_id => l_adr_accounting_coa_id
51940 , x_value_type_code => l_adr_value_type_code
51941 , p_side => 'NA'
51942 );
51943
51944 xla_ae_lines_pkg.set_ccid(
51945 p_code_combination_id => l_ccid
51946 , p_value_type_code => l_adr_value_type_code
51947 , p_transaction_coa_id => l_adr_transaction_coa_id
51948 , p_accounting_coa_id => l_adr_accounting_coa_id
51949 , p_adr_code => 'AP_INTEREST'
51950 , p_adr_type_code => 'S'
51951 , p_component_type => l_component_type
51952 , p_component_code => l_component_code
51953 , p_component_type_code => l_component_type_code
51954 , p_component_appl_id => l_component_appl_id
51955 , p_amb_context_code => l_amb_context_code
51956 , p_side => 'NA'
51957 );
51958
51959
51960 l_segment := AcctDerRule_10(
51961 p_application_id => p_application_id
51962 , p_ae_header_id => l_ae_header_id
51963 , p_source_27 => p_source_27
51964 , p_source_28 => p_source_28
51965 , x_transaction_coa_id => l_adr_transaction_coa_id
51966 , x_accounting_coa_id => l_adr_accounting_coa_id
51967 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51968 , x_flex_value_set_id => l_adr_flex_value_set_id
51969 , x_value_type_code => l_adr_value_type_code
51970 , x_value_combination_id => l_adr_value_combination_id
51971 , x_value_segment_code => l_adr_value_segment_code
51972 , p_side => 'NA'
51973 , p_override_seg_flag => 'Y'
51974 );
51975
51976 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51977
51978 xla_ae_lines_pkg.set_segment(
51979 p_to_segment_code => 'GL_ACCOUNT'
51980 , p_segment_value => l_segment
51981 , p_from_segment_code => l_adr_value_segment_code
51982 , p_from_combination_id => l_adr_value_combination_id
51983 , p_value_type_code => l_adr_value_type_code
51984 , p_transaction_coa_id => l_adr_transaction_coa_id
51985 , p_accounting_coa_id => l_adr_accounting_coa_id
51986 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51987 , p_flex_value_set_id => l_adr_flex_value_set_id
51988 , p_adr_code => 'AP_INTEREST_NAT_ACCT_SEG'
51989 , p_adr_type_code => 'S'
51990 , p_component_type => l_component_type
51991 , p_component_code => l_component_code
51992 , p_component_type_code => l_component_type_code
51993 , p_component_appl_id => l_component_appl_id
51994 , p_amb_context_code => l_amb_context_code
51995 , p_entity_code => 'AP_PAYMENTS'
51996 , p_event_class_code => 'PAYMENTS'
51997 , p_side => 'NA'
51998 );
51999
52000 END IF;
52001
52002 --
52003 --
52004 END IF;
52005
52006 --
52007 -- Update the line information that should be overwritten
52008 --
52009 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52010 p_header_num => 1);
52011 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52012
52013 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52014
52015 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52016 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52017 END IF;
52018
52019 --
52020 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52021 --
52022 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52023 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52024 ELSE
52025 ---------------------------------------------------------------------------------------------------
52026 -- 4262811a Switch Sign
52027 ---------------------------------------------------------------------------------------------------
52028 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52029 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52030 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52034 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52031 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52032 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52033 -- 5132302
52035 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52036
52037 END IF;
52038
52039 -- 4955764
52040 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52041 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52042
52043
52044 XLA_AE_LINES_PKG.ValidateCurrentLine;
52045 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52046
52047 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52048 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52049 ,p_balance_type_code => l_balance_type_code);
52050
52051 END IF;
52052
52053 -----------------------------------------------------------------------------------------
52054 -- 4262811 Multiperiod Accounting
52055 -----------------------------------------------------------------------------------------
52056 -- No MPA option is assigned.
52057
52058
52059 END IF;
52060 END IF;
52061 --
52062
52063 --
52064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52065 trace
52066 (p_msg => 'END of AcctLineType_101'
52067 ,p_level => C_LEVEL_PROCEDURE
52068 ,p_module => l_log_module);
52069 END IF;
52070 --
52071 EXCEPTION
52072 WHEN xla_exceptions_pkg.application_exception THEN
52073 RAISE;
52074 WHEN OTHERS THEN
52075 xla_exceptions_pkg.raise_message
52076 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_101');
52077 END AcctLineType_101;
52078 --
52079
52080 ---------------------------------------
52081 --
52082 -- PRIVATE FUNCTION
52083 -- AcctLineType_102
52084 --
52085 ---------------------------------------
52086 PROCEDURE AcctLineType_102 (
52087 p_application_id IN NUMBER
52088 ,p_event_id IN NUMBER
52089 ,p_calculate_acctd_flag IN VARCHAR2
52090 ,p_calculate_g_l_flag IN VARCHAR2
52091 ,p_actual_flag IN OUT VARCHAR2
52092 ,p_balance_type_code OUT VARCHAR2
52093 ,p_gain_or_loss_ref OUT VARCHAR2
52094
52095 --Payment Currency Code
52096 , p_source_12 IN VARCHAR2
52097 --Payment Distribution (Cleared Rate) Ledger Amount
52098 , p_source_22 IN NUMBER
52099 --Invoice Distribution Account
52100 , p_source_29 IN NUMBER
52101 --Invoice Distribution Type
52102 , p_source_32 IN VARCHAR2
52103 , p_source_32_meaning IN VARCHAR2
52104 --When to Account for Payment Option
52105 , p_source_50 IN VARCHAR2
52106 --Payment Distribution Type
52107 , p_source_51 IN VARCHAR2
52108 , p_source_51_meaning IN VARCHAR2
52109 --Accounting Reversal Indicator
52110 , p_source_52 IN VARCHAR2
52111 --Payment Distribution Amount
52112 , p_source_53 IN NUMBER
52113 --Business Flow Accounts Payable Application Identifier
52114 , p_source_54 IN NUMBER
52115 --Business Flow Payment Distribution Type
52116 , p_source_55 IN VARCHAR2
52117 --Business Flow Payment Entity Code
52118 , p_source_56 IN VARCHAR2
52119 --Business Flow Payment Distribution Identifier
52120 , p_source_57 IN NUMBER
52121 --Business Flow Payment Identifier
52122 , p_source_58 IN NUMBER
52123 --Payment Distribution Identifier
52124 , p_source_59 IN NUMBER
52125 --Distribution Link Type
52126 , p_source_60 IN VARCHAR2
52127 --Override Accounted Amount Indicator
52128 , p_source_64 IN VARCHAR2
52129 , p_source_64_meaning IN VARCHAR2
52130 --Payment Supplier Identifier
52131 , p_source_65 IN NUMBER
52132 --Payment Supplier Site Identifier
52133 , p_source_66 IN NUMBER
52134 --Third Party Type
52135 , p_source_67 IN VARCHAR2
52136 --Payment Distribution Reversed Identifier
52137 , p_source_68 IN NUMBER
52138 --Invoice Distribution Tax Line Identifier
52139 , p_source_69 IN NUMBER
52140 --Invoice Distribution Summary Tax Line Identifier
52141 , p_source_70 IN NUMBER
52142 --Accrue on Receipt Option
52143 , p_source_111 IN VARCHAR2
52144 , p_source_111_meaning IN VARCHAR2
52145 --Cleared Exchange Date
52146 , p_source_114 IN DATE
52147 --Cleared Exchange Rate
52148 , p_source_115 IN NUMBER
52149 --Cleared Exchange Rate Type
52150 , p_source_116 IN VARCHAR2
52151 )
52152 IS
52153
52154 l_component_type VARCHAR2(80);
52155 l_component_code VARCHAR2(30);
52156 l_component_type_code VARCHAR2(1);
52157 l_component_appl_id INTEGER;
52158 l_amb_context_code VARCHAR2(30);
52159 l_entity_code VARCHAR2(30);
52160 l_event_class_code VARCHAR2(30);
52161 l_ae_header_id NUMBER;
52162 l_event_type_code VARCHAR2(30);
52163 l_line_definition_code VARCHAR2(30);
52164 l_line_definition_owner_code VARCHAR2(1);
52165 --
52166 -- adr variables
52170 l_adr_accounting_coa_id NUMBER;
52167 l_segment VARCHAR2(30);
52168 l_ccid NUMBER;
52169 l_adr_transaction_coa_id NUMBER;
52171 l_adr_flexfield_segment_code VARCHAR2(30);
52172 l_adr_flex_value_set_id NUMBER;
52173 l_adr_value_type_code VARCHAR2(30);
52174 l_adr_value_combination_id NUMBER;
52175 l_adr_value_segment_code VARCHAR2(30);
52176
52177 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52178 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52179 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52180 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52181
52182 -- 4262811 Variables ------------------------------------------------------------------------------------------
52183 l_entered_amt_idx NUMBER;
52184 l_accted_amt_idx NUMBER;
52185 l_acc_rev_flag VARCHAR2(1);
52186 l_accrual_line_num NUMBER;
52187 l_tmp_amt NUMBER;
52188 l_acc_rev_natural_side_code VARCHAR2(1);
52189
52190 l_num_entries NUMBER;
52191 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52192 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52193 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52194 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52195 l_recog_line_1 NUMBER;
52196 l_recog_line_2 NUMBER;
52197
52198 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52199 l_bflow_applied_to_amt NUMBER; -- 5132302
52200 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52201
52202 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52203
52204 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52205 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52206
52207 ---------------------------------------------------------------------------------------------------------------
52208
52209
52210 --
52211 -- bulk performance
52212 --
52213 l_balance_type_code VARCHAR2(1);
52214 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52215 l_log_module VARCHAR2(240);
52216
52217 --
52218 -- Upgrade strategy
52219 --
52220 l_actual_upg_option VARCHAR2(1);
52221 l_enc_upg_option VARCHAR2(1);
52222
52223 --
52224 BEGIN
52225 --
52226 IF g_log_enabled THEN
52227 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
52228 END IF;
52229 --
52230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52231
52232 trace
52233 (p_msg => 'BEGIN of AcctLineType_102'
52234 ,p_level => C_LEVEL_PROCEDURE
52235 ,p_module => l_log_module);
52236
52237 END IF;
52238 --
52239 l_component_type := 'AMB_JLT';
52240 l_component_code := 'AP_INV_PRICE_VAR_CLEAR';
52241 l_component_type_code := 'S';
52242 l_component_appl_id := 200;
52243 l_amb_context_code := 'DEFAULT';
52244 l_entity_code := 'AP_PAYMENTS';
52245 l_event_class_code := 'RECONCILED PAYMENTS';
52246 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
52247 l_line_definition_owner_code := 'S';
52248 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
52249 --
52250 l_balance_type_code := 'A';
52251 l_segment := NULL;
52252 l_ccid := NULL;
52253 l_adr_transaction_coa_id := NULL;
52254 l_adr_accounting_coa_id := NULL;
52255 l_adr_flexfield_segment_code := NULL;
52256 l_adr_flex_value_set_id := NULL;
52257 l_adr_value_type_code := NULL;
52258 l_adr_value_combination_id := NULL;
52259 l_adr_value_segment_code := NULL;
52260
52261 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52262 l_bflow_class_code := ''; -- 4219869 Business Flow
52263 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52264 l_budgetary_control_flag := 'N';
52265
52266 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52267 l_bflow_applied_to_amt := NULL; -- 5132302
52268 l_entered_amt_idx := NULL; -- 4262811
52269 l_accted_amt_idx := NULL; -- 4262811
52270 l_acc_rev_flag := NULL; -- 4262811
52271 l_accrual_line_num := NULL; -- 4262811
52272 l_tmp_amt := NULL; -- 4262811
52273 --
52274
52275 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52276 l_balance_type_code <> 'B' THEN
52277 IF NVL(p_source_50,'
52278 ') = 'CLEAR_CLEAR' AND
52279 NVL(p_source_32,'
52280 ') = 'IPV' AND
52281 NVL(p_source_111,'
52282 ') = 'Y' AND
52283 (NVL(p_source_51,'
52284 ') = 'CASH' OR
52285 NVL(p_source_51,'
52286 ') = 'AWT' OR
52287 NVL(p_source_51,'
52288 ') = 'DISCOUNT')
52289 THEN
52290
52291 --
52292 XLA_AE_LINES_PKG.SetNewLine;
52293
52294 p_balance_type_code := l_balance_type_code;
52295 -- set the flag so later we will know whether the gain loss line needs to be created
52299 END IF;
52296
52297 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52298 p_actual_flag :='A';
52300
52301 --
52302 -- bulk performance
52303 --
52304 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52305 p_header_num => 0); -- 4262811
52306 --
52307 -- set accounting line options
52308 --
52309 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52310 p_natural_side_code => 'D'
52311 , p_gain_or_loss_flag => 'N'
52312 , p_gl_transfer_mode_code => 'S'
52313 , p_acct_entry_type_code => 'A'
52314 , p_switch_side_flag => 'Y'
52315 , p_merge_duplicate_code => 'A'
52316 );
52317 --
52318 l_acc_rev_natural_side_code := 'C'; -- 4262811
52319 --
52320 --
52321 -- set accounting line type info
52322 --
52323 xla_ae_lines_pkg.SetAcctLineType
52324 (p_component_type => l_component_type
52325 ,p_event_type_code => l_event_type_code
52326 ,p_line_definition_owner_code => l_line_definition_owner_code
52327 ,p_line_definition_code => l_line_definition_code
52328 ,p_accounting_line_code => l_component_code
52329 ,p_accounting_line_type_code => l_component_type_code
52330 ,p_accounting_line_appl_id => l_component_appl_id
52331 ,p_amb_context_code => l_amb_context_code
52332 ,p_entity_code => l_entity_code
52333 ,p_event_class_code => l_event_class_code);
52334 --
52335 -- set accounting class
52336 --
52337 xla_ae_lines_pkg.SetAcctClass(
52338 p_accounting_class_code => 'IPV'
52339 , p_ae_header_id => l_ae_header_id
52340 );
52341
52342 --
52343 -- set rounding class
52344 --
52345 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52346 'IPV';
52347
52348 --
52349 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52350 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52351 --
52352 -- bulk performance
52353 --
52354 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52355
52356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52357 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52358
52359 -- 4955764
52360 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52361 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52362
52363 -- 4458381 Public Sector Enh
52364
52365 --
52366 -- set accounting attributes for the line type
52367 --
52368 l_entered_amt_idx := 10;
52369 l_accted_amt_idx := 15;
52370 l_bflow_applied_to_amt_idx := 2; -- 5132302
52371 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52372 l_rec_acct_attrs.array_char_value(1) := p_source_52;
52373 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
52374 l_rec_acct_attrs.array_num_value(2) := p_source_53;
52375 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
52376 l_rec_acct_attrs.array_num_value(3) := p_source_54;
52377 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52378 l_rec_acct_attrs.array_char_value(4) := p_source_55;
52379 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
52380 l_rec_acct_attrs.array_char_value(5) := p_source_56;
52381 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
52382 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
52383 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52384 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
52385 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
52386 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
52387 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
52388 l_rec_acct_attrs.array_char_value(9) := p_source_60;
52389 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
52390 l_rec_acct_attrs.array_num_value(10) := p_source_53;
52391 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
52392 l_rec_acct_attrs.array_char_value(11) := p_source_12;
52393 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
52394 l_rec_acct_attrs.array_date_value(12) := p_source_114;
52395 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
52396 l_rec_acct_attrs.array_num_value(13) := p_source_115;
52397 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
52398 l_rec_acct_attrs.array_char_value(14) := p_source_116;
52399 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
52400 l_rec_acct_attrs.array_num_value(15) := p_source_22;
52401 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
52402 l_rec_acct_attrs.array_char_value(16) := p_source_64;
52403 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
52404 l_rec_acct_attrs.array_num_value(17) := p_source_65;
52408 l_rec_acct_attrs.array_char_value(19) := p_source_67;
52405 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
52406 l_rec_acct_attrs.array_num_value(18) := p_source_66;
52407 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
52409 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
52410 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
52411 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
52412 l_rec_acct_attrs.array_char_value(21) := p_source_60;
52413 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
52414 l_rec_acct_attrs.array_num_value(22) := p_source_69;
52415 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
52416 l_rec_acct_attrs.array_num_value(23) := p_source_69;
52417 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
52418 l_rec_acct_attrs.array_num_value(24) := p_source_70;
52419
52420 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52421 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52422
52423 ---------------------------------------------------------------------------------------------------------------
52424 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52425 ---------------------------------------------------------------------------------------------------------------
52426 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52427
52428 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52429 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52430
52431 IF xla_accounting_cache_pkg.GetValueChar
52432 (p_source_code => 'LEDGER_CATEGORY_CODE'
52433 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52434 AND l_bflow_method_code = 'PRIOR_ENTRY'
52435 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52436 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52437 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52438 )
52439 THEN
52440 xla_ae_lines_pkg.BflowUpgEntry
52441 (p_business_method_code => l_bflow_method_code
52442 ,p_business_class_code => l_bflow_class_code
52443 ,p_balance_type => l_balance_type_code);
52444 ELSE
52445 NULL;
52446 -- No business flow processing for business flow method of NONE.
52447 END IF;
52448
52449 --
52450 -- call analytical criteria
52451 --
52452
52453 --
52454 -- call description
52455 --
52456 -- No description or it is inherited.
52457 --
52458 -- call ADRs
52459 -- Bug 4922099
52460 --
52461 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52462 (NVL(l_actual_upg_option, 'N') = 'O') OR
52463 (NVL(l_enc_upg_option, 'N') = 'O')
52464 )
52465 THEN
52466 NULL;
52467 --
52468 --
52469
52470 l_ccid := AcctDerRule_28(
52471 p_application_id => p_application_id
52472 , p_ae_header_id => l_ae_header_id
52473 , p_source_29 => p_source_29
52474 , x_transaction_coa_id => l_adr_transaction_coa_id
52475 , x_accounting_coa_id => l_adr_accounting_coa_id
52476 , x_value_type_code => l_adr_value_type_code
52477 , p_side => 'NA'
52478 );
52479
52480 xla_ae_lines_pkg.set_ccid(
52481 p_code_combination_id => l_ccid
52482 , p_value_type_code => l_adr_value_type_code
52483 , p_transaction_coa_id => l_adr_transaction_coa_id
52484 , p_accounting_coa_id => l_adr_accounting_coa_id
52485 , p_adr_code => 'AP_INVOICE_DIST'
52486 , p_adr_type_code => 'S'
52487 , p_component_type => l_component_type
52488 , p_component_code => l_component_code
52489 , p_component_type_code => l_component_type_code
52490 , p_component_appl_id => l_component_appl_id
52491 , p_amb_context_code => l_amb_context_code
52492 , p_side => 'NA'
52493 );
52494
52495
52496 --
52497 --
52498 END IF;
52499 --
52500 -- Bug 4922099
52501 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52502 (NVL(l_enc_upg_option, 'N') = 'O')
52503 ) AND
52504 (l_bflow_method_code = 'PRIOR_ENTRY')
52505 )
52506 THEN
52507 IF
52508 --
52509 1 = 2
52510 --
52511 THEN
52512 xla_accounting_err_pkg.build_message
52513 (p_appli_s_name => 'XLA'
52514 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52515 ,p_token_1 => 'LINE_NUMBER'
52516 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52517 ,p_token_2 => 'LINE_TYPE_NAME'
52518 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52522 ,l_component_appl_id
52519 l_component_type
52520 ,l_component_code
52521 ,l_component_type_code
52523 ,l_amb_context_code
52524 ,l_entity_code
52525 ,l_event_class_code
52526 )
52527 ,p_token_3 => 'OWNER'
52528 ,p_value_3 => xla_lookups_pkg.get_meaning(
52529 p_lookup_type => 'XLA_OWNER_TYPE'
52530 ,p_lookup_code => l_component_type_code
52531 )
52532 ,p_token_4 => 'PRODUCT_NAME'
52533 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52534 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52535 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52536 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52537 ,p_ae_header_id => NULL
52538 );
52539
52540 IF (C_LEVEL_ERROR>= g_log_level) THEN
52541 trace
52542 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52543 ,p_level => C_LEVEL_ERROR
52544 ,p_module => l_log_module);
52545 END IF;
52546 END IF;
52547 END IF;
52548 --
52549 --
52550 ------------------------------------------------------------------------------------------------
52551 -- 4219869 Business Flow
52552 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52553 -- Prior Entry. Currently, the following code is always generated.
52554 ------------------------------------------------------------------------------------------------
52555 XLA_AE_LINES_PKG.ValidateCurrentLine;
52556
52557 ------------------------------------------------------------------------------------
52558 -- 4219869 Business Flow
52559 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52560 ------------------------------------------------------------------------------------
52561 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52562
52563 ----------------------------------------------------------------------------------
52564 -- 4219869 Business Flow
52565 -- Update journal entry status -- Need to generate this within IF <condition>
52566 ----------------------------------------------------------------------------------
52567 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52568 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52569 ,p_balance_type_code => l_balance_type_code
52570 );
52571
52572 -------------------------------------------------------------------------------------------
52573 -- 4262811 - Generate the Accrual Reversal lines
52574 -------------------------------------------------------------------------------------------
52575 BEGIN
52576 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52577 (g_array_event(p_event_id).array_value_num('header_index'));
52578 IF l_acc_rev_flag IS NULL THEN
52579 l_acc_rev_flag := 'N';
52580 END IF;
52581 EXCEPTION
52582 WHEN OTHERS THEN
52583 l_acc_rev_flag := 'N';
52584 END;
52585 --
52586 IF (l_acc_rev_flag = 'Y') THEN
52587
52588 -- 4645092 ------------------------------------------------------------------------------
52589 -- To allow MPA report to determine if it should generate report process
52590 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52591 ------------------------------------------------------------------------------------------
52592
52593 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52594 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52595 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
52596 -- call ADRs
52597 -- Bug 4922099
52598 --
52599 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52600 (NVL(l_actual_upg_option, 'N') = 'O') OR
52601 (NVL(l_enc_upg_option, 'N') = 'O')
52602 )
52603 THEN
52604 NULL;
52605 --
52606 --
52607
52608 l_ccid := AcctDerRule_28(
52609 p_application_id => p_application_id
52610 , p_ae_header_id => l_ae_header_id
52611 , p_source_29 => p_source_29
52612 , x_transaction_coa_id => l_adr_transaction_coa_id
52613 , x_accounting_coa_id => l_adr_accounting_coa_id
52614 , x_value_type_code => l_adr_value_type_code
52615 , p_side => 'NA'
52616 );
52617
52618 xla_ae_lines_pkg.set_ccid(
52622 , p_accounting_coa_id => l_adr_accounting_coa_id
52619 p_code_combination_id => l_ccid
52620 , p_value_type_code => l_adr_value_type_code
52621 , p_transaction_coa_id => l_adr_transaction_coa_id
52623 , p_adr_code => 'AP_INVOICE_DIST'
52624 , p_adr_type_code => 'S'
52625 , p_component_type => l_component_type
52626 , p_component_code => l_component_code
52627 , p_component_type_code => l_component_type_code
52628 , p_component_appl_id => l_component_appl_id
52629 , p_amb_context_code => l_amb_context_code
52630 , p_side => 'NA'
52631 );
52632
52633
52634 --
52635 --
52636 END IF;
52637
52638 --
52639 -- Update the line information that should be overwritten
52640 --
52641 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52642 p_header_num => 1);
52643 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52644
52645 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52646
52647 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52648 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52649 END IF;
52650
52651 --
52652 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52653 --
52654 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52655 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52656 ELSE
52657 ---------------------------------------------------------------------------------------------------
52658 -- 4262811a Switch Sign
52659 ---------------------------------------------------------------------------------------------------
52660 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52661 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52662 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52663 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52664 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52665 -- 5132302
52666 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52667 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52668
52669 END IF;
52670
52671 -- 4955764
52672 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52673 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52674
52675
52676 XLA_AE_LINES_PKG.ValidateCurrentLine;
52677 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52678
52679 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52680 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52681 ,p_balance_type_code => l_balance_type_code);
52682
52683 END IF;
52684
52685 -----------------------------------------------------------------------------------------
52686 -- 4262811 Multiperiod Accounting
52687 -----------------------------------------------------------------------------------------
52688 -- No MPA option is assigned.
52689
52690
52691 END IF;
52692 END IF;
52693 --
52694
52695 --
52696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52697 trace
52698 (p_msg => 'END of AcctLineType_102'
52699 ,p_level => C_LEVEL_PROCEDURE
52700 ,p_module => l_log_module);
52701 END IF;
52702 --
52703 EXCEPTION
52704 WHEN xla_exceptions_pkg.application_exception THEN
52705 RAISE;
52706 WHEN OTHERS THEN
52707 xla_exceptions_pkg.raise_message
52708 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_102');
52709 END AcctLineType_102;
52710 --
52711
52712 ---------------------------------------
52713 --
52714 -- PRIVATE FUNCTION
52715 -- AcctLineType_103
52716 --
52717 ---------------------------------------
52718 PROCEDURE AcctLineType_103 (
52719 p_application_id IN NUMBER
52720 ,p_event_id IN NUMBER
52721 ,p_calculate_acctd_flag IN VARCHAR2
52722 ,p_calculate_g_l_flag IN VARCHAR2
52723 ,p_actual_flag IN OUT VARCHAR2
52724 ,p_balance_type_code OUT VARCHAR2
52725 ,p_gain_or_loss_ref OUT VARCHAR2
52726
52727 --Payment Currency Code
52728 , p_source_12 IN VARCHAR2
52729 --Payment Distribution (Payment Rate) Ledger Amount
52730 , p_source_21 IN NUMBER
52731 --Invoice Distribution Account
52732 , p_source_29 IN NUMBER
52733 --Invoice Distribution Type
52734 , p_source_32 IN VARCHAR2
52735 , p_source_32_meaning IN VARCHAR2
52736 --When to Account for Payment Option
52737 , p_source_50 IN VARCHAR2
52738 --Payment Distribution Type
52739 , p_source_51 IN VARCHAR2
52740 , p_source_51_meaning IN VARCHAR2
52744 , p_source_53 IN NUMBER
52741 --Accounting Reversal Indicator
52742 , p_source_52 IN VARCHAR2
52743 --Payment Distribution Amount
52745 --Business Flow Accounts Payable Application Identifier
52746 , p_source_54 IN NUMBER
52747 --Payment Distribution Identifier
52748 , p_source_59 IN NUMBER
52749 --Distribution Link Type
52750 , p_source_60 IN VARCHAR2
52751 --Override Accounted Amount Indicator
52752 , p_source_64 IN VARCHAR2
52753 , p_source_64_meaning IN VARCHAR2
52754 --Payment Supplier Identifier
52755 , p_source_65 IN NUMBER
52756 --Payment Supplier Site Identifier
52757 , p_source_66 IN NUMBER
52758 --Third Party Type
52759 , p_source_67 IN VARCHAR2
52760 --Payment Distribution Reversed Identifier
52761 , p_source_68 IN NUMBER
52762 --Invoice Distribution Tax Line Identifier
52763 , p_source_69 IN NUMBER
52764 --Invoice Distribution Summary Tax Line Identifier
52765 , p_source_70 IN NUMBER
52766 --Payment Type
52767 , p_source_71 IN VARCHAR2
52768 , p_source_71_meaning IN VARCHAR2
52769 --Invoice Distribution Amount of the Payment Distribution
52770 , p_source_72 IN NUMBER
52771 --Business Flow Invoice Distribution Type
52772 , p_source_73 IN VARCHAR2
52773 --Business Flow Invoice Entity Code
52774 , p_source_74 IN VARCHAR2
52775 --Business Flow Invoice Distribution Identifier
52776 , p_source_75 IN NUMBER
52777 --Business Flow Invoice Identifier
52778 , p_source_76 IN NUMBER
52779 --Invoice Distribution Tax Distribution Identifier from Tax
52780 , p_source_77 IN NUMBER
52781 --Accrue on Receipt Option
52782 , p_source_111 IN VARCHAR2
52783 , p_source_111_meaning IN VARCHAR2
52784 --Payment Exchange Date
52785 , p_source_121 IN DATE
52786 --Payment Exchange Rate
52787 , p_source_122 IN NUMBER
52788 --Payment Exchange Rate Type
52789 , p_source_123 IN VARCHAR2
52790 )
52791 IS
52792
52793 l_component_type VARCHAR2(80);
52794 l_component_code VARCHAR2(30);
52795 l_component_type_code VARCHAR2(1);
52796 l_component_appl_id INTEGER;
52797 l_amb_context_code VARCHAR2(30);
52798 l_entity_code VARCHAR2(30);
52799 l_event_class_code VARCHAR2(30);
52800 l_ae_header_id NUMBER;
52801 l_event_type_code VARCHAR2(30);
52802 l_line_definition_code VARCHAR2(30);
52803 l_line_definition_owner_code VARCHAR2(1);
52804 --
52805 -- adr variables
52806 l_segment VARCHAR2(30);
52807 l_ccid NUMBER;
52808 l_adr_transaction_coa_id NUMBER;
52809 l_adr_accounting_coa_id NUMBER;
52810 l_adr_flexfield_segment_code VARCHAR2(30);
52811 l_adr_flex_value_set_id NUMBER;
52812 l_adr_value_type_code VARCHAR2(30);
52813 l_adr_value_combination_id NUMBER;
52814 l_adr_value_segment_code VARCHAR2(30);
52815
52816 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52817 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52818 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52819 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52820
52821 -- 4262811 Variables ------------------------------------------------------------------------------------------
52822 l_entered_amt_idx NUMBER;
52823 l_accted_amt_idx NUMBER;
52824 l_acc_rev_flag VARCHAR2(1);
52825 l_accrual_line_num NUMBER;
52826 l_tmp_amt NUMBER;
52827 l_acc_rev_natural_side_code VARCHAR2(1);
52828
52829 l_num_entries NUMBER;
52830 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52831 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52832 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52833 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52834 l_recog_line_1 NUMBER;
52835 l_recog_line_2 NUMBER;
52836
52837 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52838 l_bflow_applied_to_amt NUMBER; -- 5132302
52839 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52840
52841 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52842
52843 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52844 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52845
52846 ---------------------------------------------------------------------------------------------------------------
52847
52848
52849 --
52850 -- bulk performance
52851 --
52852 l_balance_type_code VARCHAR2(1);
52853 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52854 l_log_module VARCHAR2(240);
52855
52856 --
52857 -- Upgrade strategy
52858 --
52859 l_actual_upg_option VARCHAR2(1);
52860 l_enc_upg_option VARCHAR2(1);
52861
52862 --
52863 BEGIN
52864 --
52865 IF g_log_enabled THEN
52866 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
52867 END IF;
52868 --
52872 (p_msg => 'BEGIN of AcctLineType_103'
52869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52870
52871 trace
52873 ,p_level => C_LEVEL_PROCEDURE
52874 ,p_module => l_log_module);
52875
52876 END IF;
52877 --
52878 l_component_type := 'AMB_JLT';
52879 l_component_code := 'AP_INV_PRICE_VAR_PMT';
52880 l_component_type_code := 'S';
52881 l_component_appl_id := 200;
52882 l_amb_context_code := 'DEFAULT';
52883 l_entity_code := 'AP_PAYMENTS';
52884 l_event_class_code := 'PAYMENTS';
52885 l_event_type_code := 'PAYMENTS_ALL';
52886 l_line_definition_owner_code := 'S';
52887 l_line_definition_code := 'CASH_PAYMENTS_ALL';
52888 --
52889 l_balance_type_code := 'A';
52890 l_segment := NULL;
52891 l_ccid := NULL;
52892 l_adr_transaction_coa_id := NULL;
52893 l_adr_accounting_coa_id := NULL;
52894 l_adr_flexfield_segment_code := NULL;
52895 l_adr_flex_value_set_id := NULL;
52896 l_adr_value_type_code := NULL;
52897 l_adr_value_combination_id := NULL;
52898 l_adr_value_segment_code := NULL;
52899
52900 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52901 l_bflow_class_code := ''; -- 4219869 Business Flow
52902 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52903 l_budgetary_control_flag := 'N';
52904
52905 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52906 l_bflow_applied_to_amt := NULL; -- 5132302
52907 l_entered_amt_idx := NULL; -- 4262811
52908 l_accted_amt_idx := NULL; -- 4262811
52909 l_acc_rev_flag := NULL; -- 4262811
52910 l_accrual_line_num := NULL; -- 4262811
52911 l_tmp_amt := NULL; -- 4262811
52912 --
52913
52914 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52915 l_balance_type_code <> 'B' THEN
52916 IF NVL(p_source_50,'
52917 ') <> 'CLEAR_CLEAR' AND
52918 NVL(p_source_32,'
52919 ') = 'IPV' AND
52920 NVL(p_source_111,'
52921 ') = 'Y' AND
52922 (NVL(p_source_51,'
52923 ') = 'CASH' OR
52924 NVL(p_source_51,'
52925 ') = 'AWT' OR
52926 NVL(p_source_51,'
52927 ') = 'DISCOUNT') AND
52928 NVL(p_source_71,'
52929 ') <> 'R'
52930 THEN
52931
52932 --
52933 XLA_AE_LINES_PKG.SetNewLine;
52934
52935 p_balance_type_code := l_balance_type_code;
52936 -- set the flag so later we will know whether the gain loss line needs to be created
52937
52938 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52939 p_actual_flag :='A';
52940 END IF;
52941
52942 --
52943 -- bulk performance
52944 --
52945 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52946 p_header_num => 0); -- 4262811
52947 --
52948 -- set accounting line options
52949 --
52950 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52951 p_natural_side_code => 'D'
52952 , p_gain_or_loss_flag => 'N'
52953 , p_gl_transfer_mode_code => 'S'
52954 , p_acct_entry_type_code => 'A'
52955 , p_switch_side_flag => 'Y'
52956 , p_merge_duplicate_code => 'A'
52957 );
52958 --
52959 l_acc_rev_natural_side_code := 'C'; -- 4262811
52960 --
52961 --
52962 -- set accounting line type info
52963 --
52964 xla_ae_lines_pkg.SetAcctLineType
52965 (p_component_type => l_component_type
52966 ,p_event_type_code => l_event_type_code
52967 ,p_line_definition_owner_code => l_line_definition_owner_code
52968 ,p_line_definition_code => l_line_definition_code
52969 ,p_accounting_line_code => l_component_code
52970 ,p_accounting_line_type_code => l_component_type_code
52971 ,p_accounting_line_appl_id => l_component_appl_id
52972 ,p_amb_context_code => l_amb_context_code
52973 ,p_entity_code => l_entity_code
52974 ,p_event_class_code => l_event_class_code);
52975 --
52976 -- set accounting class
52977 --
52978 xla_ae_lines_pkg.SetAcctClass(
52979 p_accounting_class_code => 'IPV'
52980 , p_ae_header_id => l_ae_header_id
52981 );
52982
52983 --
52984 -- set rounding class
52985 --
52986 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52987 'IPV';
52988
52989 --
52990 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52991 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52992 --
52993 -- bulk performance
52994 --
52995 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52996
52997 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52998 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52999
53000 -- 4955764
53001 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53005
53002 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53003
53004 -- 4458381 Public Sector Enh
53006 --
53007 -- set accounting attributes for the line type
53008 --
53009 l_entered_amt_idx := 10;
53010 l_accted_amt_idx := 15;
53011 l_bflow_applied_to_amt_idx := 2; -- 5132302
53012 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53013 l_rec_acct_attrs.array_char_value(1) := p_source_52;
53014 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53015 l_rec_acct_attrs.array_num_value(2) := p_source_72;
53016 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53017 l_rec_acct_attrs.array_num_value(3) := p_source_54;
53018 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53019 l_rec_acct_attrs.array_char_value(4) := p_source_73;
53020 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53021 l_rec_acct_attrs.array_char_value(5) := p_source_74;
53022 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53023 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
53024 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53025 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
53026 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53027 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
53028 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53029 l_rec_acct_attrs.array_char_value(9) := p_source_60;
53030 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53031 l_rec_acct_attrs.array_num_value(10) := p_source_53;
53032 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53033 l_rec_acct_attrs.array_char_value(11) := p_source_12;
53034 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53035 l_rec_acct_attrs.array_date_value(12) := p_source_121;
53036 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53037 l_rec_acct_attrs.array_num_value(13) := p_source_122;
53038 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53039 l_rec_acct_attrs.array_char_value(14) := p_source_123;
53040 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53041 l_rec_acct_attrs.array_num_value(15) := p_source_21;
53042 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53043 l_rec_acct_attrs.array_char_value(16) := p_source_64;
53044 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53045 l_rec_acct_attrs.array_num_value(17) := p_source_65;
53046 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53047 l_rec_acct_attrs.array_num_value(18) := p_source_66;
53048 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53049 l_rec_acct_attrs.array_char_value(19) := p_source_67;
53050 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53051 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
53052 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53053 l_rec_acct_attrs.array_char_value(21) := p_source_60;
53054 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53055 l_rec_acct_attrs.array_num_value(22) := p_source_69;
53056 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53057 l_rec_acct_attrs.array_num_value(23) := p_source_77;
53058 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53059 l_rec_acct_attrs.array_num_value(24) := p_source_70;
53060
53061 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53062 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53063
53064 ---------------------------------------------------------------------------------------------------------------
53065 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53066 ---------------------------------------------------------------------------------------------------------------
53067 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53068
53069 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53070 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53071
53072 IF xla_accounting_cache_pkg.GetValueChar
53073 (p_source_code => 'LEDGER_CATEGORY_CODE'
53074 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53075 AND l_bflow_method_code = 'PRIOR_ENTRY'
53076 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53077 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53078 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53079 )
53080 THEN
53081 xla_ae_lines_pkg.BflowUpgEntry
53082 (p_business_method_code => l_bflow_method_code
53083 ,p_business_class_code => l_bflow_class_code
53084 ,p_balance_type => l_balance_type_code);
53085 ELSE
53086 NULL;
53087 -- No business flow processing for business flow method of NONE.
53088 END IF;
53089
53090 --
53091 -- call analytical criteria
53092 --
53093
53094 --
53095 -- call description
53099 -- call ADRs
53096 --
53097 -- No description or it is inherited.
53098 --
53100 -- Bug 4922099
53101 --
53102 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53103 (NVL(l_actual_upg_option, 'N') = 'O') OR
53104 (NVL(l_enc_upg_option, 'N') = 'O')
53105 )
53106 THEN
53107 NULL;
53108 --
53109 --
53110
53111 l_ccid := AcctDerRule_28(
53112 p_application_id => p_application_id
53113 , p_ae_header_id => l_ae_header_id
53114 , p_source_29 => p_source_29
53115 , x_transaction_coa_id => l_adr_transaction_coa_id
53116 , x_accounting_coa_id => l_adr_accounting_coa_id
53117 , x_value_type_code => l_adr_value_type_code
53118 , p_side => 'NA'
53119 );
53120
53121 xla_ae_lines_pkg.set_ccid(
53122 p_code_combination_id => l_ccid
53123 , p_value_type_code => l_adr_value_type_code
53124 , p_transaction_coa_id => l_adr_transaction_coa_id
53125 , p_accounting_coa_id => l_adr_accounting_coa_id
53126 , p_adr_code => 'AP_INVOICE_DIST'
53127 , p_adr_type_code => 'S'
53128 , p_component_type => l_component_type
53129 , p_component_code => l_component_code
53130 , p_component_type_code => l_component_type_code
53131 , p_component_appl_id => l_component_appl_id
53132 , p_amb_context_code => l_amb_context_code
53133 , p_side => 'NA'
53134 );
53135
53136
53137 --
53138 --
53139 END IF;
53140 --
53141 -- Bug 4922099
53142 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53143 (NVL(l_enc_upg_option, 'N') = 'O')
53144 ) AND
53145 (l_bflow_method_code = 'PRIOR_ENTRY')
53146 )
53147 THEN
53148 IF
53149 --
53150 1 = 2
53151 --
53152 THEN
53153 xla_accounting_err_pkg.build_message
53154 (p_appli_s_name => 'XLA'
53155 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53156 ,p_token_1 => 'LINE_NUMBER'
53157 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53158 ,p_token_2 => 'LINE_TYPE_NAME'
53159 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53160 l_component_type
53161 ,l_component_code
53162 ,l_component_type_code
53163 ,l_component_appl_id
53164 ,l_amb_context_code
53165 ,l_entity_code
53166 ,l_event_class_code
53167 )
53168 ,p_token_3 => 'OWNER'
53169 ,p_value_3 => xla_lookups_pkg.get_meaning(
53170 p_lookup_type => 'XLA_OWNER_TYPE'
53171 ,p_lookup_code => l_component_type_code
53172 )
53173 ,p_token_4 => 'PRODUCT_NAME'
53174 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53175 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53176 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53177 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53178 ,p_ae_header_id => NULL
53179 );
53180
53181 IF (C_LEVEL_ERROR>= g_log_level) THEN
53182 trace
53183 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53184 ,p_level => C_LEVEL_ERROR
53185 ,p_module => l_log_module);
53186 END IF;
53187 END IF;
53188 END IF;
53189 --
53190 --
53191 ------------------------------------------------------------------------------------------------
53192 -- 4219869 Business Flow
53193 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53194 -- Prior Entry. Currently, the following code is always generated.
53195 ------------------------------------------------------------------------------------------------
53196 XLA_AE_LINES_PKG.ValidateCurrentLine;
53197
53198 ------------------------------------------------------------------------------------
53199 -- 4219869 Business Flow
53200 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53201 ------------------------------------------------------------------------------------
53202 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53206 -- Update journal entry status -- Need to generate this within IF <condition>
53203
53204 ----------------------------------------------------------------------------------
53205 -- 4219869 Business Flow
53207 ----------------------------------------------------------------------------------
53208 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53209 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53210 ,p_balance_type_code => l_balance_type_code
53211 );
53212
53213 -------------------------------------------------------------------------------------------
53214 -- 4262811 - Generate the Accrual Reversal lines
53215 -------------------------------------------------------------------------------------------
53216 BEGIN
53217 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53218 (g_array_event(p_event_id).array_value_num('header_index'));
53219 IF l_acc_rev_flag IS NULL THEN
53220 l_acc_rev_flag := 'N';
53221 END IF;
53222 EXCEPTION
53223 WHEN OTHERS THEN
53224 l_acc_rev_flag := 'N';
53225 END;
53226 --
53227 IF (l_acc_rev_flag = 'Y') THEN
53228
53229 -- 4645092 ------------------------------------------------------------------------------
53230 -- To allow MPA report to determine if it should generate report process
53231 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53232 ------------------------------------------------------------------------------------------
53233
53234 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53235 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53236 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53237 -- call ADRs
53238 -- Bug 4922099
53239 --
53240 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53241 (NVL(l_actual_upg_option, 'N') = 'O') OR
53242 (NVL(l_enc_upg_option, 'N') = 'O')
53243 )
53244 THEN
53245 NULL;
53246 --
53247 --
53248
53249 l_ccid := AcctDerRule_28(
53250 p_application_id => p_application_id
53251 , p_ae_header_id => l_ae_header_id
53252 , p_source_29 => p_source_29
53253 , x_transaction_coa_id => l_adr_transaction_coa_id
53254 , x_accounting_coa_id => l_adr_accounting_coa_id
53255 , x_value_type_code => l_adr_value_type_code
53256 , p_side => 'NA'
53257 );
53258
53259 xla_ae_lines_pkg.set_ccid(
53260 p_code_combination_id => l_ccid
53261 , p_value_type_code => l_adr_value_type_code
53262 , p_transaction_coa_id => l_adr_transaction_coa_id
53263 , p_accounting_coa_id => l_adr_accounting_coa_id
53264 , p_adr_code => 'AP_INVOICE_DIST'
53265 , p_adr_type_code => 'S'
53266 , p_component_type => l_component_type
53267 , p_component_code => l_component_code
53268 , p_component_type_code => l_component_type_code
53269 , p_component_appl_id => l_component_appl_id
53270 , p_amb_context_code => l_amb_context_code
53271 , p_side => 'NA'
53272 );
53273
53274
53275 --
53276 --
53277 END IF;
53278
53279 --
53280 -- Update the line information that should be overwritten
53281 --
53282 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53283 p_header_num => 1);
53284 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53285
53286 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53287
53288 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53289 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53290 END IF;
53291
53292 --
53293 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53294 --
53295 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53296 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53297 ELSE
53298 ---------------------------------------------------------------------------------------------------
53299 -- 4262811a Switch Sign
53300 ---------------------------------------------------------------------------------------------------
53301 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53302 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53303 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53304 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53305 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53306 -- 5132302
53307 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53308 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53309
53310 END IF;
53311
53312 -- 4955764
53316
53313 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53314 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53315
53317 XLA_AE_LINES_PKG.ValidateCurrentLine;
53318 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53319
53320 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53321 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53322 ,p_balance_type_code => l_balance_type_code);
53323
53324 END IF;
53325
53326 -----------------------------------------------------------------------------------------
53327 -- 4262811 Multiperiod Accounting
53328 -----------------------------------------------------------------------------------------
53329 -- No MPA option is assigned.
53330
53331
53332 END IF;
53333 END IF;
53334 --
53335
53336 --
53337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53338 trace
53339 (p_msg => 'END of AcctLineType_103'
53340 ,p_level => C_LEVEL_PROCEDURE
53341 ,p_module => l_log_module);
53342 END IF;
53343 --
53344 EXCEPTION
53345 WHEN xla_exceptions_pkg.application_exception THEN
53346 RAISE;
53347 WHEN OTHERS THEN
53348 xla_exceptions_pkg.raise_message
53349 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_103');
53350 END AcctLineType_103;
53351 --
53352
53353 ---------------------------------------
53354 --
53355 -- PRIVATE FUNCTION
53356 -- AcctLineType_104
53357 --
53358 ---------------------------------------
53359 PROCEDURE AcctLineType_104 (
53360 p_application_id IN NUMBER
53361 ,p_event_id IN NUMBER
53362 ,p_calculate_acctd_flag IN VARCHAR2
53363 ,p_calculate_g_l_flag IN VARCHAR2
53364 ,p_actual_flag IN OUT VARCHAR2
53365 ,p_balance_type_code OUT VARCHAR2
53366 ,p_gain_or_loss_ref OUT VARCHAR2
53367
53368 --Payment Currency Code
53369 , p_source_12 IN VARCHAR2
53370 --Payment Distribution (Payment Rate) Ledger Amount
53371 , p_source_21 IN NUMBER
53372 --Invoice Distribution Account
53373 , p_source_29 IN NUMBER
53374 --Invoice Distribution Type
53375 , p_source_32 IN VARCHAR2
53376 , p_source_32_meaning IN VARCHAR2
53377 --When to Account for Payment Option
53378 , p_source_50 IN VARCHAR2
53379 --Payment Distribution Type
53380 , p_source_51 IN VARCHAR2
53381 , p_source_51_meaning IN VARCHAR2
53382 --Accounting Reversal Indicator
53383 , p_source_52 IN VARCHAR2
53384 --Payment Distribution Amount
53385 , p_source_53 IN NUMBER
53386 --Business Flow Accounts Payable Application Identifier
53387 , p_source_54 IN NUMBER
53388 --Payment Distribution Identifier
53389 , p_source_59 IN NUMBER
53390 --Distribution Link Type
53391 , p_source_60 IN VARCHAR2
53392 --Override Accounted Amount Indicator
53393 , p_source_64 IN VARCHAR2
53394 , p_source_64_meaning IN VARCHAR2
53395 --Payment Supplier Identifier
53396 , p_source_65 IN NUMBER
53397 --Payment Supplier Site Identifier
53398 , p_source_66 IN NUMBER
53399 --Third Party Type
53400 , p_source_67 IN VARCHAR2
53401 --Payment Distribution Reversed Identifier
53402 , p_source_68 IN NUMBER
53403 --Invoice Distribution Tax Line Identifier
53404 , p_source_69 IN NUMBER
53405 --Invoice Distribution Summary Tax Line Identifier
53406 , p_source_70 IN NUMBER
53407 --Payment Type
53408 , p_source_71 IN VARCHAR2
53409 , p_source_71_meaning IN VARCHAR2
53410 --Business Flow Invoice Distribution Type
53411 , p_source_73 IN VARCHAR2
53412 --Business Flow Invoice Entity Code
53413 , p_source_74 IN VARCHAR2
53414 --Business Flow Invoice Distribution Identifier
53415 , p_source_75 IN NUMBER
53416 --Business Flow Invoice Identifier
53417 , p_source_76 IN NUMBER
53418 --Invoice Distribution Tax Distribution Identifier from Tax
53419 , p_source_77 IN NUMBER
53420 --Accrue on Receipt Option
53421 , p_source_111 IN VARCHAR2
53422 , p_source_111_meaning IN VARCHAR2
53423 --Payment Exchange Date
53424 , p_source_121 IN DATE
53425 --Payment Exchange Rate
53426 , p_source_122 IN NUMBER
53427 --Payment Exchange Rate Type
53428 , p_source_123 IN VARCHAR2
53429 )
53430 IS
53431
53432 l_component_type VARCHAR2(80);
53433 l_component_code VARCHAR2(30);
53434 l_component_type_code VARCHAR2(1);
53435 l_component_appl_id INTEGER;
53436 l_amb_context_code VARCHAR2(30);
53437 l_entity_code VARCHAR2(30);
53438 l_event_class_code VARCHAR2(30);
53439 l_ae_header_id NUMBER;
53440 l_event_type_code VARCHAR2(30);
53441 l_line_definition_code VARCHAR2(30);
53442 l_line_definition_owner_code VARCHAR2(1);
53443 --
53444 -- adr variables
53445 l_segment VARCHAR2(30);
53446 l_ccid NUMBER;
53447 l_adr_transaction_coa_id NUMBER;
53448 l_adr_accounting_coa_id NUMBER;
53449 l_adr_flexfield_segment_code VARCHAR2(30);
53450 l_adr_flex_value_set_id NUMBER;
53451 l_adr_value_type_code VARCHAR2(30);
53452 l_adr_value_combination_id NUMBER;
53456 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53453 l_adr_value_segment_code VARCHAR2(30);
53454
53455 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53457 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53458 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53459
53460 -- 4262811 Variables ------------------------------------------------------------------------------------------
53461 l_entered_amt_idx NUMBER;
53462 l_accted_amt_idx NUMBER;
53463 l_acc_rev_flag VARCHAR2(1);
53464 l_accrual_line_num NUMBER;
53465 l_tmp_amt NUMBER;
53466 l_acc_rev_natural_side_code VARCHAR2(1);
53467
53468 l_num_entries NUMBER;
53469 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53470 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53471 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53472 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53473 l_recog_line_1 NUMBER;
53474 l_recog_line_2 NUMBER;
53475
53476 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53477 l_bflow_applied_to_amt NUMBER; -- 5132302
53478 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53479
53480 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53481
53482 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53483 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53484
53485 ---------------------------------------------------------------------------------------------------------------
53486
53487
53488 --
53489 -- bulk performance
53490 --
53491 l_balance_type_code VARCHAR2(1);
53492 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53493 l_log_module VARCHAR2(240);
53494
53495 --
53496 -- Upgrade strategy
53497 --
53498 l_actual_upg_option VARCHAR2(1);
53499 l_enc_upg_option VARCHAR2(1);
53500
53501 --
53502 BEGIN
53503 --
53504 IF g_log_enabled THEN
53505 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
53506 END IF;
53507 --
53508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53509
53510 trace
53511 (p_msg => 'BEGIN of AcctLineType_104'
53512 ,p_level => C_LEVEL_PROCEDURE
53513 ,p_module => l_log_module);
53514
53515 END IF;
53516 --
53517 l_component_type := 'AMB_JLT';
53518 l_component_code := 'AP_INV_PRICE_VAR_REF';
53519 l_component_type_code := 'S';
53520 l_component_appl_id := 200;
53521 l_amb_context_code := 'DEFAULT';
53522 l_entity_code := 'AP_PAYMENTS';
53523 l_event_class_code := 'REFUNDS';
53524 l_event_type_code := 'REFUNDS_ALL';
53525 l_line_definition_owner_code := 'S';
53526 l_line_definition_code := 'CASH_REFUNDS_ALL';
53527 --
53528 l_balance_type_code := 'A';
53529 l_segment := NULL;
53530 l_ccid := NULL;
53531 l_adr_transaction_coa_id := NULL;
53532 l_adr_accounting_coa_id := NULL;
53533 l_adr_flexfield_segment_code := NULL;
53534 l_adr_flex_value_set_id := NULL;
53535 l_adr_value_type_code := NULL;
53536 l_adr_value_combination_id := NULL;
53537 l_adr_value_segment_code := NULL;
53538
53539 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53540 l_bflow_class_code := ''; -- 4219869 Business Flow
53541 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53542 l_budgetary_control_flag := 'N';
53543
53544 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53545 l_bflow_applied_to_amt := NULL; -- 5132302
53546 l_entered_amt_idx := NULL; -- 4262811
53547 l_accted_amt_idx := NULL; -- 4262811
53548 l_acc_rev_flag := NULL; -- 4262811
53549 l_accrual_line_num := NULL; -- 4262811
53550 l_tmp_amt := NULL; -- 4262811
53551 --
53552
53553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53554 l_balance_type_code <> 'B' THEN
53555 IF NVL(p_source_50,'
53556 ') <> 'CLEAR_CLEAR' AND
53557 NVL(p_source_32,'
53558 ') = 'IPV' AND
53559 NVL(p_source_111,'
53560 ') = 'Y' AND
53561 (NVL(p_source_51,'
53562 ') = 'CASH' OR
53563 NVL(p_source_51,'
53564 ') = 'DISCOUNT') AND
53565 NVL(p_source_71,'
53566 ') = 'R'
53567 THEN
53568
53569 --
53570 XLA_AE_LINES_PKG.SetNewLine;
53571
53572 p_balance_type_code := l_balance_type_code;
53573 -- set the flag so later we will know whether the gain loss line needs to be created
53574
53575 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53576 p_actual_flag :='A';
53577 END IF;
53578
53579 --
53580 -- bulk performance
53581 --
53582 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53583 p_header_num => 0); -- 4262811
53584 --
53585 -- set accounting line options
53589 , p_gain_or_loss_flag => 'N'
53586 --
53587 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53588 p_natural_side_code => 'D'
53590 , p_gl_transfer_mode_code => 'S'
53591 , p_acct_entry_type_code => 'A'
53592 , p_switch_side_flag => 'Y'
53593 , p_merge_duplicate_code => 'A'
53594 );
53595 --
53596 l_acc_rev_natural_side_code := 'C'; -- 4262811
53597 --
53598 --
53599 -- set accounting line type info
53600 --
53601 xla_ae_lines_pkg.SetAcctLineType
53602 (p_component_type => l_component_type
53603 ,p_event_type_code => l_event_type_code
53604 ,p_line_definition_owner_code => l_line_definition_owner_code
53605 ,p_line_definition_code => l_line_definition_code
53606 ,p_accounting_line_code => l_component_code
53607 ,p_accounting_line_type_code => l_component_type_code
53608 ,p_accounting_line_appl_id => l_component_appl_id
53609 ,p_amb_context_code => l_amb_context_code
53610 ,p_entity_code => l_entity_code
53611 ,p_event_class_code => l_event_class_code);
53612 --
53613 -- set accounting class
53614 --
53615 xla_ae_lines_pkg.SetAcctClass(
53616 p_accounting_class_code => 'IPV'
53617 , p_ae_header_id => l_ae_header_id
53618 );
53619
53620 --
53621 -- set rounding class
53622 --
53623 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53624 'IPV';
53625
53626 --
53627 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53628 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53629 --
53630 -- bulk performance
53631 --
53632 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53633
53634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53635 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53636
53637 -- 4955764
53638 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53639 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53640
53641 -- 4458381 Public Sector Enh
53642
53643 --
53644 -- set accounting attributes for the line type
53645 --
53646 l_entered_amt_idx := 9;
53647 l_accted_amt_idx := 14;
53648 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53649 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53650 l_rec_acct_attrs.array_char_value(1) := p_source_52;
53651 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
53652 l_rec_acct_attrs.array_num_value(2) := p_source_54;
53653 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53654 l_rec_acct_attrs.array_char_value(3) := p_source_73;
53655 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
53656 l_rec_acct_attrs.array_char_value(4) := p_source_74;
53657 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
53658 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
53659 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53660 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
53661 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
53662 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
53663 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
53664 l_rec_acct_attrs.array_char_value(8) := p_source_60;
53665 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
53666 l_rec_acct_attrs.array_num_value(9) := p_source_53;
53667 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
53668 l_rec_acct_attrs.array_char_value(10) := p_source_12;
53669 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
53670 l_rec_acct_attrs.array_date_value(11) := p_source_121;
53671 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
53672 l_rec_acct_attrs.array_num_value(12) := p_source_122;
53673 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
53674 l_rec_acct_attrs.array_char_value(13) := p_source_123;
53675 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
53676 l_rec_acct_attrs.array_num_value(14) := p_source_21;
53677 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
53678 l_rec_acct_attrs.array_char_value(15) := p_source_64;
53679 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
53680 l_rec_acct_attrs.array_num_value(16) := p_source_65;
53681 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
53682 l_rec_acct_attrs.array_num_value(17) := p_source_66;
53683 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
53684 l_rec_acct_attrs.array_char_value(18) := p_source_67;
53685 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
53686 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
53687 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
53688 l_rec_acct_attrs.array_char_value(20) := p_source_60;
53689 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
53693 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
53690 l_rec_acct_attrs.array_num_value(21) := p_source_69;
53691 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
53692 l_rec_acct_attrs.array_num_value(22) := p_source_77;
53694 l_rec_acct_attrs.array_num_value(23) := p_source_70;
53695
53696 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53697 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53698
53699 ---------------------------------------------------------------------------------------------------------------
53700 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53701 ---------------------------------------------------------------------------------------------------------------
53702 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53703
53704 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53705 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53706
53707 IF xla_accounting_cache_pkg.GetValueChar
53708 (p_source_code => 'LEDGER_CATEGORY_CODE'
53709 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53710 AND l_bflow_method_code = 'PRIOR_ENTRY'
53711 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53712 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53713 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53714 )
53715 THEN
53716 xla_ae_lines_pkg.BflowUpgEntry
53717 (p_business_method_code => l_bflow_method_code
53718 ,p_business_class_code => l_bflow_class_code
53719 ,p_balance_type => l_balance_type_code);
53720 ELSE
53721 NULL;
53722 -- No business flow processing for business flow method of NONE.
53723 END IF;
53724
53725 --
53726 -- call analytical criteria
53727 --
53728
53729 --
53730 -- call description
53731 --
53732 -- No description or it is inherited.
53733 --
53734 -- call ADRs
53735 -- Bug 4922099
53736 --
53737 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53738 (NVL(l_actual_upg_option, 'N') = 'O') OR
53739 (NVL(l_enc_upg_option, 'N') = 'O')
53740 )
53741 THEN
53742 NULL;
53743 --
53744 --
53745
53746 l_ccid := AcctDerRule_28(
53747 p_application_id => p_application_id
53748 , p_ae_header_id => l_ae_header_id
53749 , p_source_29 => p_source_29
53750 , x_transaction_coa_id => l_adr_transaction_coa_id
53751 , x_accounting_coa_id => l_adr_accounting_coa_id
53752 , x_value_type_code => l_adr_value_type_code
53753 , p_side => 'NA'
53754 );
53755
53756 xla_ae_lines_pkg.set_ccid(
53757 p_code_combination_id => l_ccid
53758 , p_value_type_code => l_adr_value_type_code
53759 , p_transaction_coa_id => l_adr_transaction_coa_id
53760 , p_accounting_coa_id => l_adr_accounting_coa_id
53761 , p_adr_code => 'AP_INVOICE_DIST'
53762 , p_adr_type_code => 'S'
53763 , p_component_type => l_component_type
53764 , p_component_code => l_component_code
53765 , p_component_type_code => l_component_type_code
53766 , p_component_appl_id => l_component_appl_id
53767 , p_amb_context_code => l_amb_context_code
53768 , p_side => 'NA'
53769 );
53770
53771
53772 --
53773 --
53774 END IF;
53775 --
53776 -- Bug 4922099
53777 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53778 (NVL(l_enc_upg_option, 'N') = 'O')
53779 ) AND
53780 (l_bflow_method_code = 'PRIOR_ENTRY')
53781 )
53782 THEN
53783 IF
53784 --
53785 1 = 2
53786 --
53787 THEN
53788 xla_accounting_err_pkg.build_message
53789 (p_appli_s_name => 'XLA'
53790 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53791 ,p_token_1 => 'LINE_NUMBER'
53792 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53793 ,p_token_2 => 'LINE_TYPE_NAME'
53794 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53795 l_component_type
53796 ,l_component_code
53797 ,l_component_type_code
53798 ,l_component_appl_id
53799 ,l_amb_context_code
53800 ,l_entity_code
53801 ,l_event_class_code
53805 p_lookup_type => 'XLA_OWNER_TYPE'
53802 )
53803 ,p_token_3 => 'OWNER'
53804 ,p_value_3 => xla_lookups_pkg.get_meaning(
53806 ,p_lookup_code => l_component_type_code
53807 )
53808 ,p_token_4 => 'PRODUCT_NAME'
53809 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53810 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53811 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53812 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53813 ,p_ae_header_id => NULL
53814 );
53815
53816 IF (C_LEVEL_ERROR>= g_log_level) THEN
53817 trace
53818 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53819 ,p_level => C_LEVEL_ERROR
53820 ,p_module => l_log_module);
53821 END IF;
53822 END IF;
53823 END IF;
53824 --
53825 --
53826 ------------------------------------------------------------------------------------------------
53827 -- 4219869 Business Flow
53828 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53829 -- Prior Entry. Currently, the following code is always generated.
53830 ------------------------------------------------------------------------------------------------
53831 XLA_AE_LINES_PKG.ValidateCurrentLine;
53832
53833 ------------------------------------------------------------------------------------
53834 -- 4219869 Business Flow
53835 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53836 ------------------------------------------------------------------------------------
53837 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53838
53839 ----------------------------------------------------------------------------------
53840 -- 4219869 Business Flow
53841 -- Update journal entry status -- Need to generate this within IF <condition>
53842 ----------------------------------------------------------------------------------
53843 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53844 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53845 ,p_balance_type_code => l_balance_type_code
53846 );
53847
53848 -------------------------------------------------------------------------------------------
53849 -- 4262811 - Generate the Accrual Reversal lines
53850 -------------------------------------------------------------------------------------------
53851 BEGIN
53852 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53853 (g_array_event(p_event_id).array_value_num('header_index'));
53854 IF l_acc_rev_flag IS NULL THEN
53855 l_acc_rev_flag := 'N';
53856 END IF;
53857 EXCEPTION
53858 WHEN OTHERS THEN
53859 l_acc_rev_flag := 'N';
53860 END;
53861 --
53862 IF (l_acc_rev_flag = 'Y') THEN
53863
53864 -- 4645092 ------------------------------------------------------------------------------
53865 -- To allow MPA report to determine if it should generate report process
53866 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53867 ------------------------------------------------------------------------------------------
53868
53869 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53870 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53871 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53872 -- call ADRs
53873 -- Bug 4922099
53874 --
53875 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53876 (NVL(l_actual_upg_option, 'N') = 'O') OR
53877 (NVL(l_enc_upg_option, 'N') = 'O')
53878 )
53879 THEN
53880 NULL;
53881 --
53882 --
53883
53884 l_ccid := AcctDerRule_28(
53885 p_application_id => p_application_id
53886 , p_ae_header_id => l_ae_header_id
53887 , p_source_29 => p_source_29
53888 , x_transaction_coa_id => l_adr_transaction_coa_id
53889 , x_accounting_coa_id => l_adr_accounting_coa_id
53890 , x_value_type_code => l_adr_value_type_code
53891 , p_side => 'NA'
53892 );
53893
53894 xla_ae_lines_pkg.set_ccid(
53895 p_code_combination_id => l_ccid
53896 , p_value_type_code => l_adr_value_type_code
53897 , p_transaction_coa_id => l_adr_transaction_coa_id
53898 , p_accounting_coa_id => l_adr_accounting_coa_id
53899 , p_adr_code => 'AP_INVOICE_DIST'
53900 , p_adr_type_code => 'S'
53901 , p_component_type => l_component_type
53902 , p_component_code => l_component_code
53903 , p_component_type_code => l_component_type_code
53904 , p_component_appl_id => l_component_appl_id
53905 , p_amb_context_code => l_amb_context_code
53909
53906 , p_side => 'NA'
53907 );
53908
53910 --
53911 --
53912 END IF;
53913
53914 --
53915 -- Update the line information that should be overwritten
53916 --
53917 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53918 p_header_num => 1);
53919 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53920
53921 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53922
53923 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53924 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53925 END IF;
53926
53927 --
53928 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53929 --
53930 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53931 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53932 ELSE
53933 ---------------------------------------------------------------------------------------------------
53934 -- 4262811a Switch Sign
53935 ---------------------------------------------------------------------------------------------------
53936 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53939 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53941 -- 5132302
53942 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53944
53945 END IF;
53946
53947 -- 4955764
53948 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53949 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53950
53951
53952 XLA_AE_LINES_PKG.ValidateCurrentLine;
53953 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53954
53955 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53956 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53957 ,p_balance_type_code => l_balance_type_code);
53958
53959 END IF;
53960
53961 -----------------------------------------------------------------------------------------
53962 -- 4262811 Multiperiod Accounting
53963 -----------------------------------------------------------------------------------------
53964 -- No MPA option is assigned.
53965
53966
53967 END IF;
53968 END IF;
53969 --
53970
53971 --
53972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53973 trace
53974 (p_msg => 'END of AcctLineType_104'
53975 ,p_level => C_LEVEL_PROCEDURE
53976 ,p_module => l_log_module);
53977 END IF;
53978 --
53979 EXCEPTION
53980 WHEN xla_exceptions_pkg.application_exception THEN
53981 RAISE;
53982 WHEN OTHERS THEN
53983 xla_exceptions_pkg.raise_message
53984 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_104');
53985 END AcctLineType_104;
53986 --
53987
53988 ---------------------------------------
53989 --
53990 -- PRIVATE FUNCTION
53991 -- AcctLineType_105
53992 --
53993 ---------------------------------------
53994 PROCEDURE AcctLineType_105 (
53995 p_application_id IN NUMBER
53996 ,p_event_id IN NUMBER
53997 ,p_calculate_acctd_flag IN VARCHAR2
53998 ,p_calculate_g_l_flag IN VARCHAR2
53999 ,p_actual_flag IN OUT VARCHAR2
54000 ,p_balance_type_code OUT VARCHAR2
54001 ,p_gain_or_loss_ref OUT VARCHAR2
54002
54003 --Recipient Invoice Distribution Account
54004 , p_source_48 IN NUMBER
54005 --When to Account for Payment Option
54006 , p_source_50 IN VARCHAR2
54007 --Accounting Reversal Indicator
54008 , p_source_52 IN VARCHAR2
54009 --Business Flow Accounts Payable Application Identifier
54010 , p_source_54 IN NUMBER
54011 --Distribution Link Type
54012 , p_source_60 IN VARCHAR2
54013 --Override Accounted Amount Indicator
54014 , p_source_64 IN VARCHAR2
54015 , p_source_64_meaning IN VARCHAR2
54016 --Third Party Type
54017 , p_source_67 IN VARCHAR2
54018 --Invoice Distribution Tax Line Identifier
54019 , p_source_69 IN NUMBER
54020 --Invoice Distribution Summary Tax Line Identifier
54021 , p_source_70 IN NUMBER
54022 --Invoice Distribution Tax Distribution Identifier from Tax
54023 , p_source_77 IN NUMBER
54024 --Prepayment Distribution Type
54025 , p_source_78 IN VARCHAR2
54026 --Recipient Invoice Distribution Type
54027 , p_source_79 IN VARCHAR2
54028 , p_source_79_meaning IN VARCHAR2
54029 --Prepayment Application Distribution Identifier
54033 --Business Flow Prepayment Invoice Distribution Type
54030 , p_source_82 IN NUMBER
54031 --Invoice Identifier
54032 , p_source_83 IN NUMBER
54034 , p_source_84 IN VARCHAR2
54035 --Business Flow Prepayment Invoice Entity Code
54036 , p_source_85 IN VARCHAR2
54037 --Business Flow Prepayment Invoice Distribution Identifier
54038 , p_source_86 IN NUMBER
54039 --Business Flow Prepayment Invoice Identifier
54040 , p_source_87 IN NUMBER
54041 --Upgrade Encumbrance Credit Account Class
54042 , p_source_88 IN VARCHAR2
54043 --Payables Encumbrance Upgrade Credit Account
54044 , p_source_89 IN NUMBER
54045 --Payables Encumbrance Upgrade Credit Amount
54046 , p_source_90 IN NUMBER
54047 --Invoice Currency Code
54048 , p_source_91 IN VARCHAR2
54049 --Payables Encumbrance Upgrade Credit Base Amount
54050 , p_source_92 IN NUMBER
54051 --Upgrade Encumbrance Debit Account Class
54052 , p_source_93 IN VARCHAR2
54053 --Payables Encumbrance Upgrade Debit Account
54054 , p_source_94 IN NUMBER
54055 --Payables Encumbrance Upgrade Debit Amount
54056 , p_source_95 IN NUMBER
54057 --Payables Encumbrance Upgrade Debit Base Amount
54058 , p_source_96 IN NUMBER
54059 --Payables Encumbrance Upgrade Option
54060 , p_source_97 IN VARCHAR2
54061 --Prepayment Distribution Amount
54062 , p_source_98 IN NUMBER
54063 --Prepayment Clearing Currency Code
54064 , p_source_99 IN VARCHAR2
54065 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
54066 , p_source_100 IN NUMBER
54067 --Deferred Accounting End Date
54068 , p_source_101 IN DATE
54069 --Deferred Accounting Option
54070 , p_source_102 IN VARCHAR2
54071 --Deferred Accounting Start Date
54072 , p_source_103 IN DATE
54073 --Invoice Supplier Identifier
54074 , p_source_104 IN NUMBER
54075 --Invoice Supplier Site Identifier
54076 , p_source_105 IN NUMBER
54077 --Identifier of the Prepayment Application Reversed
54078 , p_source_106 IN NUMBER
54079 --Payables Upgrade Credit Encumbrance Type Identifier
54080 , p_source_107 IN NUMBER
54081 --Payables Upgrade Debit Encumbrance Type Identifier
54082 , p_source_108 IN NUMBER
54083 --Accrue on Receipt Option
54084 , p_source_111 IN VARCHAR2
54085 , p_source_111_meaning IN VARCHAR2
54086 --Prepayment Clearing Exchange Date
54087 , p_source_125 IN DATE
54088 --Prepayment Clearing Exchange Rate
54089 , p_source_126 IN NUMBER
54090 --Prepayment Clearing Exchange Rate Type
54091 , p_source_127 IN VARCHAR2
54092 )
54093 IS
54094
54095 l_component_type VARCHAR2(80);
54096 l_component_code VARCHAR2(30);
54097 l_component_type_code VARCHAR2(1);
54098 l_component_appl_id INTEGER;
54099 l_amb_context_code VARCHAR2(30);
54100 l_entity_code VARCHAR2(30);
54101 l_event_class_code VARCHAR2(30);
54102 l_ae_header_id NUMBER;
54103 l_event_type_code VARCHAR2(30);
54104 l_line_definition_code VARCHAR2(30);
54105 l_line_definition_owner_code VARCHAR2(1);
54106 --
54107 -- adr variables
54108 l_segment VARCHAR2(30);
54109 l_ccid NUMBER;
54110 l_adr_transaction_coa_id NUMBER;
54111 l_adr_accounting_coa_id NUMBER;
54112 l_adr_flexfield_segment_code VARCHAR2(30);
54113 l_adr_flex_value_set_id NUMBER;
54114 l_adr_value_type_code VARCHAR2(30);
54115 l_adr_value_combination_id NUMBER;
54116 l_adr_value_segment_code VARCHAR2(30);
54117
54118 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54119 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54120 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54121 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54122
54123 -- 4262811 Variables ------------------------------------------------------------------------------------------
54124 l_entered_amt_idx NUMBER;
54125 l_accted_amt_idx NUMBER;
54126 l_acc_rev_flag VARCHAR2(1);
54127 l_accrual_line_num NUMBER;
54128 l_tmp_amt NUMBER;
54129 l_acc_rev_natural_side_code VARCHAR2(1);
54130
54131 l_num_entries NUMBER;
54132 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54133 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54134 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54135 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54136 l_recog_line_1 NUMBER;
54137 l_recog_line_2 NUMBER;
54138
54139 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54140 l_bflow_applied_to_amt NUMBER; -- 5132302
54141 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54142
54143 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54144
54145 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54146 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54147
54148 ---------------------------------------------------------------------------------------------------------------
54149
54150
54154 l_balance_type_code VARCHAR2(1);
54151 --
54152 -- bulk performance
54153 --
54155 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54156 l_log_module VARCHAR2(240);
54157
54158 --
54159 -- Upgrade strategy
54160 --
54161 l_actual_upg_option VARCHAR2(1);
54162 l_enc_upg_option VARCHAR2(1);
54163
54164 --
54165 BEGIN
54166 --
54167 IF g_log_enabled THEN
54168 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
54169 END IF;
54170 --
54171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54172
54173 trace
54174 (p_msg => 'BEGIN of AcctLineType_105'
54175 ,p_level => C_LEVEL_PROCEDURE
54176 ,p_module => l_log_module);
54177
54178 END IF;
54179 --
54180 l_component_type := 'AMB_JLT';
54181 l_component_code := 'AP_IPV_PREPAY_CLR_RATE_APP';
54182 l_component_type_code := 'S';
54183 l_component_appl_id := 200;
54184 l_amb_context_code := 'DEFAULT';
54185 l_entity_code := 'AP_INVOICES';
54186 l_event_class_code := 'PREPAYMENT APPLICATIONS';
54187 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
54188 l_line_definition_owner_code := 'S';
54189 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
54190 --
54191 l_balance_type_code := 'A';
54192 l_segment := NULL;
54193 l_ccid := NULL;
54194 l_adr_transaction_coa_id := NULL;
54195 l_adr_accounting_coa_id := NULL;
54196 l_adr_flexfield_segment_code := NULL;
54197 l_adr_flex_value_set_id := NULL;
54198 l_adr_value_type_code := NULL;
54199 l_adr_value_combination_id := NULL;
54200 l_adr_value_segment_code := NULL;
54201
54202 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54203 l_bflow_class_code := ''; -- 4219869 Business Flow
54204 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54205 l_budgetary_control_flag := 'N';
54206
54207 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54208 l_bflow_applied_to_amt := NULL; -- 5132302
54209 l_entered_amt_idx := NULL; -- 4262811
54210 l_accted_amt_idx := NULL; -- 4262811
54211 l_acc_rev_flag := NULL; -- 4262811
54212 l_accrual_line_num := NULL; -- 4262811
54213 l_tmp_amt := NULL; -- 4262811
54214 --
54215
54216 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54217 l_balance_type_code <> 'B' THEN
54218 IF NVL(p_source_50,'
54219 ') = 'CLEAR_CLEAR' AND
54220 (NVL(p_source_78,'
54221 ') = 'PREPAY APPL' OR
54222 NVL(p_source_78,'
54223 ') = 'PREPAY APPL NONREC TAX' OR
54224 NVL(p_source_78,'
54225 ') = 'PREPAY APPL REC TAX') AND
54226 NVL(p_source_79,'
54227 ') = 'IPV' AND
54228 NVL(p_source_111,'
54229 ') = 'Y'
54230 THEN
54231
54232 --
54233 XLA_AE_LINES_PKG.SetNewLine;
54234
54235 p_balance_type_code := l_balance_type_code;
54236 -- set the flag so later we will know whether the gain loss line needs to be created
54237
54238 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54239 p_actual_flag :='A';
54240 END IF;
54241
54242 --
54243 -- bulk performance
54244 --
54245 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54246 p_header_num => 0); -- 4262811
54247 --
54248 -- set accounting line options
54249 --
54250 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54251 p_natural_side_code => 'C'
54252 , p_gain_or_loss_flag => 'N'
54253 , p_gl_transfer_mode_code => 'S'
54254 , p_acct_entry_type_code => 'A'
54255 , p_switch_side_flag => 'Y'
54256 , p_merge_duplicate_code => 'A'
54257 );
54258 --
54259 l_acc_rev_natural_side_code := 'D'; -- 4262811
54260 --
54261 --
54262 -- set accounting line type info
54263 --
54264 xla_ae_lines_pkg.SetAcctLineType
54265 (p_component_type => l_component_type
54266 ,p_event_type_code => l_event_type_code
54267 ,p_line_definition_owner_code => l_line_definition_owner_code
54268 ,p_line_definition_code => l_line_definition_code
54269 ,p_accounting_line_code => l_component_code
54270 ,p_accounting_line_type_code => l_component_type_code
54271 ,p_accounting_line_appl_id => l_component_appl_id
54272 ,p_amb_context_code => l_amb_context_code
54273 ,p_entity_code => l_entity_code
54274 ,p_event_class_code => l_event_class_code);
54275 --
54276 -- set accounting class
54277 --
54278 xla_ae_lines_pkg.SetAcctClass(
54279 p_accounting_class_code => 'IPV'
54280 , p_ae_header_id => l_ae_header_id
54281 );
54282
54283 --
54284 -- set rounding class
54285 --
54286 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54287 'IPV';
54288
54289 --
54293 -- bulk performance
54290 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54291 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54292 --
54294 --
54295 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54296
54297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54298 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54299
54300 -- 4955764
54301 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54302 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54303
54304 -- 4458381 Public Sector Enh
54305
54306 --
54307 -- set accounting attributes for the line type
54308 --
54309 l_entered_amt_idx := 25;
54310 l_accted_amt_idx := 30;
54311 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54312 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54313 l_rec_acct_attrs.array_char_value(1) := p_source_52;
54314 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54315 l_rec_acct_attrs.array_num_value(2) :=
54316 xla_ae_sources_pkg.GetSystemSourceNum(
54317 p_source_code => 'XLA_EVENT_APPL_ID'
54318 , p_source_type_code => 'Y'
54319 , p_source_application_id => 602
54320 );
54321 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54322 l_rec_acct_attrs.array_char_value(3) := p_source_60;
54323 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54324 l_rec_acct_attrs.array_char_value(4) :=
54325 xla_ae_sources_pkg.GetSystemSourceChar(
54326 p_source_code => 'XLA_ENTITY_CODE'
54327 , p_source_type_code => 'Y'
54328 , p_source_application_id => 602
54329 );
54330 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54331 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
54332 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54333 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
54334 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54335 l_rec_acct_attrs.array_num_value(7) := p_source_54;
54336 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54337 l_rec_acct_attrs.array_char_value(8) := p_source_84;
54338 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54339 l_rec_acct_attrs.array_char_value(9) := p_source_85;
54340 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54341 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
54342 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54343 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
54344 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54345 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
54346 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54347 l_rec_acct_attrs.array_char_value(13) := p_source_60;
54348 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
54349 l_rec_acct_attrs.array_char_value(14) := p_source_88;
54350 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
54351 l_rec_acct_attrs.array_num_value(15) := p_source_89;
54352 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
54353 l_rec_acct_attrs.array_num_value(16) := p_source_90;
54354 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
54355 l_rec_acct_attrs.array_char_value(17) := p_source_91;
54356 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
54357 l_rec_acct_attrs.array_num_value(18) := p_source_92;
54358 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
54359 l_rec_acct_attrs.array_char_value(19) := p_source_93;
54360 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
54361 l_rec_acct_attrs.array_num_value(20) := p_source_94;
54362 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
54363 l_rec_acct_attrs.array_num_value(21) := p_source_95;
54364 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
54365 l_rec_acct_attrs.array_char_value(22) := p_source_91;
54366 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
54367 l_rec_acct_attrs.array_num_value(23) := p_source_96;
54368 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
54369 l_rec_acct_attrs.array_char_value(24) := p_source_97;
54370 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
54371 l_rec_acct_attrs.array_num_value(25) := p_source_98;
54372 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
54373 l_rec_acct_attrs.array_char_value(26) := p_source_99;
54374 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
54375 l_rec_acct_attrs.array_date_value(27) := p_source_125;
54376 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
54377 l_rec_acct_attrs.array_num_value(28) := p_source_126;
54378 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
54379 l_rec_acct_attrs.array_char_value(29) := p_source_127;
54380 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
54381 l_rec_acct_attrs.array_num_value(30) := p_source_100;
54385 l_rec_acct_attrs.array_char_value(32) := p_source_102;
54382 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
54383 l_rec_acct_attrs.array_date_value(31) := p_source_101;
54384 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
54386 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
54387 l_rec_acct_attrs.array_date_value(33) := p_source_103;
54388 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
54389 l_rec_acct_attrs.array_char_value(34) := p_source_64;
54390 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
54391 l_rec_acct_attrs.array_num_value(35) := p_source_104;
54392 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
54393 l_rec_acct_attrs.array_num_value(36) := p_source_105;
54394 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
54395 l_rec_acct_attrs.array_char_value(37) := p_source_67;
54396 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54397 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
54398 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
54399 l_rec_acct_attrs.array_char_value(39) := p_source_60;
54400 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
54401 l_rec_acct_attrs.array_num_value(40) := p_source_69;
54402 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
54403 l_rec_acct_attrs.array_num_value(41) := p_source_77;
54404 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
54405 l_rec_acct_attrs.array_num_value(42) := p_source_70;
54406 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
54407 l_rec_acct_attrs.array_num_value(43) := p_source_107;
54408 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
54409 l_rec_acct_attrs.array_num_value(44) := p_source_108;
54410
54411 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54412 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54413
54414 ---------------------------------------------------------------------------------------------------------------
54415 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54416 ---------------------------------------------------------------------------------------------------------------
54417 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54418
54419 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54420 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54421
54422 IF xla_accounting_cache_pkg.GetValueChar
54423 (p_source_code => 'LEDGER_CATEGORY_CODE'
54424 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54425 AND l_bflow_method_code = 'PRIOR_ENTRY'
54426 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54427 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54428 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54429 )
54430 THEN
54431 xla_ae_lines_pkg.BflowUpgEntry
54432 (p_business_method_code => l_bflow_method_code
54433 ,p_business_class_code => l_bflow_class_code
54434 ,p_balance_type => l_balance_type_code);
54435 ELSE
54436 NULL;
54437 -- No business flow processing for business flow method of NONE.
54438 END IF;
54439
54440 --
54441 -- call analytical criteria
54442 --
54443
54444 --
54445 -- call description
54446 --
54447 -- No description or it is inherited.
54448 --
54449 -- call ADRs
54450 -- Bug 4922099
54451 --
54452 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54453 (NVL(l_actual_upg_option, 'N') = 'O') OR
54454 (NVL(l_enc_upg_option, 'N') = 'O')
54455 )
54456 THEN
54457 NULL;
54458 --
54459 --
54460
54461 l_ccid := AcctDerRule_35(
54462 p_application_id => p_application_id
54463 , p_ae_header_id => l_ae_header_id
54464 , p_source_48 => p_source_48
54465 , x_transaction_coa_id => l_adr_transaction_coa_id
54466 , x_accounting_coa_id => l_adr_accounting_coa_id
54467 , x_value_type_code => l_adr_value_type_code
54468 , p_side => 'NA'
54469 );
54470
54471 xla_ae_lines_pkg.set_ccid(
54472 p_code_combination_id => l_ccid
54473 , p_value_type_code => l_adr_value_type_code
54474 , p_transaction_coa_id => l_adr_transaction_coa_id
54475 , p_accounting_coa_id => l_adr_accounting_coa_id
54476 , p_adr_code => 'AP_RECP_INV_DIST'
54477 , p_adr_type_code => 'S'
54478 , p_component_type => l_component_type
54479 , p_component_code => l_component_code
54480 , p_component_type_code => l_component_type_code
54481 , p_component_appl_id => l_component_appl_id
54482 , p_amb_context_code => l_amb_context_code
54483 , p_side => 'NA'
54484 );
54485
54486
54487 --
54488 --
54489 END IF;
54490 --
54491 -- Bug 4922099
54492 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54496 )
54493 (NVL(l_enc_upg_option, 'N') = 'O')
54494 ) AND
54495 (l_bflow_method_code = 'PRIOR_ENTRY')
54497 THEN
54498 IF
54499 --
54500 1 = 2
54501 --
54502 THEN
54503 xla_accounting_err_pkg.build_message
54504 (p_appli_s_name => 'XLA'
54505 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54506 ,p_token_1 => 'LINE_NUMBER'
54507 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54508 ,p_token_2 => 'LINE_TYPE_NAME'
54509 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54510 l_component_type
54511 ,l_component_code
54512 ,l_component_type_code
54513 ,l_component_appl_id
54514 ,l_amb_context_code
54515 ,l_entity_code
54516 ,l_event_class_code
54517 )
54518 ,p_token_3 => 'OWNER'
54519 ,p_value_3 => xla_lookups_pkg.get_meaning(
54520 p_lookup_type => 'XLA_OWNER_TYPE'
54521 ,p_lookup_code => l_component_type_code
54522 )
54523 ,p_token_4 => 'PRODUCT_NAME'
54524 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54525 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54526 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54527 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54528 ,p_ae_header_id => NULL
54529 );
54530
54531 IF (C_LEVEL_ERROR>= g_log_level) THEN
54532 trace
54533 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54534 ,p_level => C_LEVEL_ERROR
54535 ,p_module => l_log_module);
54536 END IF;
54537 END IF;
54538 END IF;
54539 --
54540 --
54541 ------------------------------------------------------------------------------------------------
54542 -- 4219869 Business Flow
54543 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54544 -- Prior Entry. Currently, the following code is always generated.
54545 ------------------------------------------------------------------------------------------------
54546 XLA_AE_LINES_PKG.ValidateCurrentLine;
54547
54548 ------------------------------------------------------------------------------------
54549 -- 4219869 Business Flow
54550 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54551 ------------------------------------------------------------------------------------
54552 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54553
54554 ----------------------------------------------------------------------------------
54555 -- 4219869 Business Flow
54556 -- Update journal entry status -- Need to generate this within IF <condition>
54557 ----------------------------------------------------------------------------------
54558 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54559 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54560 ,p_balance_type_code => l_balance_type_code
54561 );
54562
54563 -------------------------------------------------------------------------------------------
54564 -- 4262811 - Generate the Accrual Reversal lines
54565 -------------------------------------------------------------------------------------------
54566 BEGIN
54567 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54568 (g_array_event(p_event_id).array_value_num('header_index'));
54569 IF l_acc_rev_flag IS NULL THEN
54570 l_acc_rev_flag := 'N';
54571 END IF;
54572 EXCEPTION
54573 WHEN OTHERS THEN
54574 l_acc_rev_flag := 'N';
54575 END;
54576 --
54577 IF (l_acc_rev_flag = 'Y') THEN
54578
54579 -- 4645092 ------------------------------------------------------------------------------
54580 -- To allow MPA report to determine if it should generate report process
54581 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54582 ------------------------------------------------------------------------------------------
54583
54584 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54585 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54589 --
54586 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54587 -- call ADRs
54588 -- Bug 4922099
54590 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54591 (NVL(l_actual_upg_option, 'N') = 'O') OR
54592 (NVL(l_enc_upg_option, 'N') = 'O')
54593 )
54594 THEN
54595 NULL;
54596 --
54597 --
54598
54599 l_ccid := AcctDerRule_35(
54600 p_application_id => p_application_id
54601 , p_ae_header_id => l_ae_header_id
54602 , p_source_48 => p_source_48
54603 , x_transaction_coa_id => l_adr_transaction_coa_id
54604 , x_accounting_coa_id => l_adr_accounting_coa_id
54605 , x_value_type_code => l_adr_value_type_code
54606 , p_side => 'NA'
54607 );
54608
54609 xla_ae_lines_pkg.set_ccid(
54610 p_code_combination_id => l_ccid
54611 , p_value_type_code => l_adr_value_type_code
54612 , p_transaction_coa_id => l_adr_transaction_coa_id
54613 , p_accounting_coa_id => l_adr_accounting_coa_id
54614 , p_adr_code => 'AP_RECP_INV_DIST'
54615 , p_adr_type_code => 'S'
54616 , p_component_type => l_component_type
54617 , p_component_code => l_component_code
54618 , p_component_type_code => l_component_type_code
54619 , p_component_appl_id => l_component_appl_id
54620 , p_amb_context_code => l_amb_context_code
54621 , p_side => 'NA'
54622 );
54623
54624
54625 --
54626 --
54627 END IF;
54628
54629 --
54630 -- Update the line information that should be overwritten
54631 --
54632 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54633 p_header_num => 1);
54634 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54635
54636 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54637
54638 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54639 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54640 END IF;
54641
54642 --
54643 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54644 --
54645 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54646 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54647 ELSE
54648 ---------------------------------------------------------------------------------------------------
54649 -- 4262811a Switch Sign
54650 ---------------------------------------------------------------------------------------------------
54651 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54652 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54653 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54654 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54655 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54656 -- 5132302
54657 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54658 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54659
54660 END IF;
54661
54662 -- 4955764
54663 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54664 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54665
54666
54667 XLA_AE_LINES_PKG.ValidateCurrentLine;
54668 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54669
54670 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54671 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54672 ,p_balance_type_code => l_balance_type_code);
54673
54674 END IF;
54675
54676 -----------------------------------------------------------------------------------------
54677 -- 4262811 Multiperiod Accounting
54678 -----------------------------------------------------------------------------------------
54679 -- No MPA option is assigned.
54680
54681
54682 END IF;
54683 END IF;
54684 --
54685
54686 --
54687 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54688 trace
54689 (p_msg => 'END of AcctLineType_105'
54690 ,p_level => C_LEVEL_PROCEDURE
54691 ,p_module => l_log_module);
54692 END IF;
54693 --
54694 EXCEPTION
54695 WHEN xla_exceptions_pkg.application_exception THEN
54696 RAISE;
54697 WHEN OTHERS THEN
54698 xla_exceptions_pkg.raise_message
54699 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_105');
54700 END AcctLineType_105;
54701 --
54702
54703 ---------------------------------------
54704 --
54705 -- PRIVATE FUNCTION
54706 -- AcctLineType_106
54707 --
54711 ,p_event_id IN NUMBER
54708 ---------------------------------------
54709 PROCEDURE AcctLineType_106 (
54710 p_application_id IN NUMBER
54712 ,p_calculate_acctd_flag IN VARCHAR2
54713 ,p_calculate_g_l_flag IN VARCHAR2
54714 ,p_actual_flag IN OUT VARCHAR2
54715 ,p_balance_type_code OUT VARCHAR2
54716 ,p_gain_or_loss_ref OUT VARCHAR2
54717
54718 --Recipient Invoice Distribution Account
54719 , p_source_48 IN NUMBER
54720 --When to Account for Payment Option
54721 , p_source_50 IN VARCHAR2
54722 --Accounting Reversal Indicator
54723 , p_source_52 IN VARCHAR2
54724 --Business Flow Accounts Payable Application Identifier
54725 , p_source_54 IN NUMBER
54726 --Distribution Link Type
54727 , p_source_60 IN VARCHAR2
54728 --Override Accounted Amount Indicator
54729 , p_source_64 IN VARCHAR2
54730 , p_source_64_meaning IN VARCHAR2
54731 --Third Party Type
54732 , p_source_67 IN VARCHAR2
54733 --Invoice Distribution Tax Line Identifier
54734 , p_source_69 IN NUMBER
54735 --Invoice Distribution Summary Tax Line Identifier
54736 , p_source_70 IN NUMBER
54737 --Invoice Distribution Tax Distribution Identifier from Tax
54738 , p_source_77 IN NUMBER
54739 --Prepayment Distribution Type
54740 , p_source_78 IN VARCHAR2
54741 --Recipient Invoice Distribution Type
54742 , p_source_79 IN VARCHAR2
54743 , p_source_79_meaning IN VARCHAR2
54744 --Prepayment Application Distribution Identifier
54745 , p_source_82 IN NUMBER
54746 --Invoice Identifier
54747 , p_source_83 IN NUMBER
54748 --Business Flow Prepayment Invoice Distribution Type
54749 , p_source_84 IN VARCHAR2
54750 --Business Flow Prepayment Invoice Entity Code
54751 , p_source_85 IN VARCHAR2
54752 --Business Flow Prepayment Invoice Distribution Identifier
54753 , p_source_86 IN NUMBER
54754 --Business Flow Prepayment Invoice Identifier
54755 , p_source_87 IN NUMBER
54756 --Upgrade Encumbrance Credit Account Class
54757 , p_source_88 IN VARCHAR2
54758 --Payables Encumbrance Upgrade Credit Account
54759 , p_source_89 IN NUMBER
54760 --Payables Encumbrance Upgrade Credit Amount
54761 , p_source_90 IN NUMBER
54762 --Invoice Currency Code
54763 , p_source_91 IN VARCHAR2
54764 --Payables Encumbrance Upgrade Credit Base Amount
54765 , p_source_92 IN NUMBER
54766 --Upgrade Encumbrance Debit Account Class
54767 , p_source_93 IN VARCHAR2
54768 --Payables Encumbrance Upgrade Debit Account
54769 , p_source_94 IN NUMBER
54770 --Payables Encumbrance Upgrade Debit Amount
54771 , p_source_95 IN NUMBER
54772 --Payables Encumbrance Upgrade Debit Base Amount
54773 , p_source_96 IN NUMBER
54774 --Payables Encumbrance Upgrade Option
54775 , p_source_97 IN VARCHAR2
54776 --Prepayment Distribution Amount
54777 , p_source_98 IN NUMBER
54778 --Deferred Accounting End Date
54779 , p_source_101 IN DATE
54780 --Deferred Accounting Option
54781 , p_source_102 IN VARCHAR2
54782 --Deferred Accounting Start Date
54783 , p_source_103 IN DATE
54784 --Invoice Supplier Identifier
54785 , p_source_104 IN NUMBER
54786 --Invoice Supplier Site Identifier
54787 , p_source_105 IN NUMBER
54788 --Identifier of the Prepayment Application Reversed
54789 , p_source_106 IN NUMBER
54790 --Payables Upgrade Credit Encumbrance Type Identifier
54791 , p_source_107 IN NUMBER
54792 --Payables Upgrade Debit Encumbrance Type Identifier
54793 , p_source_108 IN NUMBER
54794 --Prepayment Payment Currency Code
54795 , p_source_109 IN VARCHAR2
54796 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
54797 , p_source_110 IN NUMBER
54798 --Accrue on Receipt Option
54799 , p_source_111 IN VARCHAR2
54800 , p_source_111_meaning IN VARCHAR2
54801 --Prepayment Clearing Exchange Date
54802 , p_source_125 IN DATE
54803 --Prepayment Payment Exchange Rate
54804 , p_source_129 IN NUMBER
54805 --Prepayment Payment Exchange Rate Type
54806 , p_source_130 IN VARCHAR2
54807 )
54808 IS
54809
54810 l_component_type VARCHAR2(80);
54811 l_component_code VARCHAR2(30);
54812 l_component_type_code VARCHAR2(1);
54813 l_component_appl_id INTEGER;
54814 l_amb_context_code VARCHAR2(30);
54815 l_entity_code VARCHAR2(30);
54816 l_event_class_code VARCHAR2(30);
54817 l_ae_header_id NUMBER;
54818 l_event_type_code VARCHAR2(30);
54819 l_line_definition_code VARCHAR2(30);
54820 l_line_definition_owner_code VARCHAR2(1);
54821 --
54822 -- adr variables
54823 l_segment VARCHAR2(30);
54824 l_ccid NUMBER;
54825 l_adr_transaction_coa_id NUMBER;
54826 l_adr_accounting_coa_id NUMBER;
54827 l_adr_flexfield_segment_code VARCHAR2(30);
54828 l_adr_flex_value_set_id NUMBER;
54829 l_adr_value_type_code VARCHAR2(30);
54830 l_adr_value_combination_id NUMBER;
54831 l_adr_value_segment_code VARCHAR2(30);
54832
54833 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54837
54834 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54835 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54836 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54838 -- 4262811 Variables ------------------------------------------------------------------------------------------
54839 l_entered_amt_idx NUMBER;
54840 l_accted_amt_idx NUMBER;
54841 l_acc_rev_flag VARCHAR2(1);
54842 l_accrual_line_num NUMBER;
54843 l_tmp_amt NUMBER;
54844 l_acc_rev_natural_side_code VARCHAR2(1);
54845
54846 l_num_entries NUMBER;
54847 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54848 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54849 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54850 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54851 l_recog_line_1 NUMBER;
54852 l_recog_line_2 NUMBER;
54853
54854 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54855 l_bflow_applied_to_amt NUMBER; -- 5132302
54856 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54857
54858 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54859
54860 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54861 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54862
54863 ---------------------------------------------------------------------------------------------------------------
54864
54865
54866 --
54867 -- bulk performance
54868 --
54869 l_balance_type_code VARCHAR2(1);
54870 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54871 l_log_module VARCHAR2(240);
54872
54873 --
54874 -- Upgrade strategy
54875 --
54876 l_actual_upg_option VARCHAR2(1);
54877 l_enc_upg_option VARCHAR2(1);
54878
54879 --
54880 BEGIN
54881 --
54882 IF g_log_enabled THEN
54883 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
54884 END IF;
54885 --
54886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54887
54888 trace
54889 (p_msg => 'BEGIN of AcctLineType_106'
54890 ,p_level => C_LEVEL_PROCEDURE
54891 ,p_module => l_log_module);
54892
54893 END IF;
54894 --
54895 l_component_type := 'AMB_JLT';
54896 l_component_code := 'AP_IPV_PREPAY_PAY_RATE_APP';
54897 l_component_type_code := 'S';
54898 l_component_appl_id := 200;
54899 l_amb_context_code := 'DEFAULT';
54900 l_entity_code := 'AP_INVOICES';
54901 l_event_class_code := 'PREPAYMENT APPLICATIONS';
54902 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
54903 l_line_definition_owner_code := 'S';
54904 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
54905 --
54906 l_balance_type_code := 'A';
54907 l_segment := NULL;
54908 l_ccid := NULL;
54909 l_adr_transaction_coa_id := NULL;
54910 l_adr_accounting_coa_id := NULL;
54911 l_adr_flexfield_segment_code := NULL;
54912 l_adr_flex_value_set_id := NULL;
54913 l_adr_value_type_code := NULL;
54914 l_adr_value_combination_id := NULL;
54915 l_adr_value_segment_code := NULL;
54916
54917 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54918 l_bflow_class_code := ''; -- 4219869 Business Flow
54919 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54920 l_budgetary_control_flag := 'N';
54921
54922 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54923 l_bflow_applied_to_amt := NULL; -- 5132302
54924 l_entered_amt_idx := NULL; -- 4262811
54925 l_accted_amt_idx := NULL; -- 4262811
54926 l_acc_rev_flag := NULL; -- 4262811
54927 l_accrual_line_num := NULL; -- 4262811
54928 l_tmp_amt := NULL; -- 4262811
54929 --
54930
54931 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54932 l_balance_type_code <> 'B' THEN
54933 IF NVL(p_source_50,'
54934 ') <> 'CLEAR_CLEAR' AND
54935 (NVL(p_source_78,'
54936 ') = 'PREPAY APPL' OR
54937 NVL(p_source_78,'
54938 ') = 'PREPAY APPL NONREC TAX' OR
54939 NVL(p_source_78,'
54940 ') = 'PREPAY APPL REC TAX') AND
54941 NVL(p_source_79,'
54942 ') = 'IPV' AND
54943 NVL(p_source_111,'
54944 ') = 'Y'
54945 THEN
54946
54947 --
54948 XLA_AE_LINES_PKG.SetNewLine;
54949
54950 p_balance_type_code := l_balance_type_code;
54951 -- set the flag so later we will know whether the gain loss line needs to be created
54952
54953 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54954 p_actual_flag :='A';
54955 END IF;
54956
54957 --
54958 -- bulk performance
54959 --
54960 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54961 p_header_num => 0); -- 4262811
54962 --
54963 -- set accounting line options
54964 --
54968 , p_gl_transfer_mode_code => 'S'
54965 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54966 p_natural_side_code => 'C'
54967 , p_gain_or_loss_flag => 'N'
54969 , p_acct_entry_type_code => 'A'
54970 , p_switch_side_flag => 'Y'
54971 , p_merge_duplicate_code => 'A'
54972 );
54973 --
54974 l_acc_rev_natural_side_code := 'D'; -- 4262811
54975 --
54976 --
54977 -- set accounting line type info
54978 --
54979 xla_ae_lines_pkg.SetAcctLineType
54980 (p_component_type => l_component_type
54981 ,p_event_type_code => l_event_type_code
54982 ,p_line_definition_owner_code => l_line_definition_owner_code
54983 ,p_line_definition_code => l_line_definition_code
54984 ,p_accounting_line_code => l_component_code
54985 ,p_accounting_line_type_code => l_component_type_code
54986 ,p_accounting_line_appl_id => l_component_appl_id
54987 ,p_amb_context_code => l_amb_context_code
54988 ,p_entity_code => l_entity_code
54989 ,p_event_class_code => l_event_class_code);
54990 --
54991 -- set accounting class
54992 --
54993 xla_ae_lines_pkg.SetAcctClass(
54994 p_accounting_class_code => 'IPV'
54995 , p_ae_header_id => l_ae_header_id
54996 );
54997
54998 --
54999 -- set rounding class
55000 --
55001 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55002 'IPV';
55003
55004 --
55005 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55006 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55007 --
55008 -- bulk performance
55009 --
55010 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55011
55012 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55013 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55014
55015 -- 4955764
55016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55018
55019 -- 4458381 Public Sector Enh
55020
55021 --
55022 -- set accounting attributes for the line type
55023 --
55024 l_entered_amt_idx := 25;
55025 l_accted_amt_idx := 30;
55026 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55027 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55028 l_rec_acct_attrs.array_char_value(1) := p_source_52;
55029 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55030 l_rec_acct_attrs.array_num_value(2) :=
55031 xla_ae_sources_pkg.GetSystemSourceNum(
55032 p_source_code => 'XLA_EVENT_APPL_ID'
55033 , p_source_type_code => 'Y'
55034 , p_source_application_id => 602
55035 );
55036 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55037 l_rec_acct_attrs.array_char_value(3) := p_source_60;
55038 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55039 l_rec_acct_attrs.array_char_value(4) :=
55040 xla_ae_sources_pkg.GetSystemSourceChar(
55041 p_source_code => 'XLA_ENTITY_CODE'
55042 , p_source_type_code => 'Y'
55043 , p_source_application_id => 602
55044 );
55045 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55046 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
55047 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55048 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
55049 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55050 l_rec_acct_attrs.array_num_value(7) := p_source_54;
55051 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55052 l_rec_acct_attrs.array_char_value(8) := p_source_84;
55053 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55054 l_rec_acct_attrs.array_char_value(9) := p_source_85;
55055 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55056 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
55057 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55058 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
55059 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
55060 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
55061 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
55062 l_rec_acct_attrs.array_char_value(13) := p_source_60;
55063 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
55064 l_rec_acct_attrs.array_char_value(14) := p_source_88;
55065 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
55066 l_rec_acct_attrs.array_num_value(15) := p_source_89;
55067 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
55068 l_rec_acct_attrs.array_num_value(16) := p_source_90;
55069 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
55070 l_rec_acct_attrs.array_char_value(17) := p_source_91;
55071 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
55075 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
55072 l_rec_acct_attrs.array_num_value(18) := p_source_92;
55073 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
55074 l_rec_acct_attrs.array_char_value(19) := p_source_93;
55076 l_rec_acct_attrs.array_num_value(20) := p_source_94;
55077 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
55078 l_rec_acct_attrs.array_num_value(21) := p_source_95;
55079 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
55080 l_rec_acct_attrs.array_char_value(22) := p_source_91;
55081 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
55082 l_rec_acct_attrs.array_num_value(23) := p_source_96;
55083 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
55084 l_rec_acct_attrs.array_char_value(24) := p_source_97;
55085 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
55086 l_rec_acct_attrs.array_num_value(25) := p_source_98;
55087 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
55088 l_rec_acct_attrs.array_char_value(26) := p_source_109;
55089 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
55090 l_rec_acct_attrs.array_date_value(27) := p_source_125;
55091 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
55092 l_rec_acct_attrs.array_num_value(28) := p_source_129;
55093 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
55094 l_rec_acct_attrs.array_char_value(29) := p_source_130;
55095 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
55096 l_rec_acct_attrs.array_num_value(30) := p_source_110;
55097 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
55098 l_rec_acct_attrs.array_date_value(31) := p_source_101;
55099 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
55100 l_rec_acct_attrs.array_char_value(32) := p_source_102;
55101 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
55102 l_rec_acct_attrs.array_date_value(33) := p_source_103;
55103 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
55104 l_rec_acct_attrs.array_char_value(34) := p_source_64;
55105 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
55106 l_rec_acct_attrs.array_num_value(35) := p_source_104;
55107 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
55108 l_rec_acct_attrs.array_num_value(36) := p_source_105;
55109 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
55110 l_rec_acct_attrs.array_char_value(37) := p_source_67;
55111 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
55112 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
55113 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
55114 l_rec_acct_attrs.array_char_value(39) := p_source_60;
55115 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
55116 l_rec_acct_attrs.array_num_value(40) := p_source_69;
55117 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
55118 l_rec_acct_attrs.array_num_value(41) := p_source_77;
55119 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
55120 l_rec_acct_attrs.array_num_value(42) := p_source_70;
55121 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
55122 l_rec_acct_attrs.array_num_value(43) := p_source_107;
55123 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
55124 l_rec_acct_attrs.array_num_value(44) := p_source_108;
55125
55126 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55127 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55128
55129 ---------------------------------------------------------------------------------------------------------------
55130 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55131 ---------------------------------------------------------------------------------------------------------------
55132 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55133
55134 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55135 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55136
55137 IF xla_accounting_cache_pkg.GetValueChar
55138 (p_source_code => 'LEDGER_CATEGORY_CODE'
55139 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55140 AND l_bflow_method_code = 'PRIOR_ENTRY'
55141 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55142 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55143 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55144 )
55145 THEN
55146 xla_ae_lines_pkg.BflowUpgEntry
55147 (p_business_method_code => l_bflow_method_code
55148 ,p_business_class_code => l_bflow_class_code
55149 ,p_balance_type => l_balance_type_code);
55150 ELSE
55151 NULL;
55152 -- No business flow processing for business flow method of NONE.
55153 END IF;
55154
55155 --
55156 -- call analytical criteria
55157 --
55158
55159 --
55160 -- call description
55161 --
55162 -- No description or it is inherited.
55163 --
55164 -- call ADRs
55165 -- Bug 4922099
55166 --
55167 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55168 (NVL(l_actual_upg_option, 'N') = 'O') OR
55172 NULL;
55169 (NVL(l_enc_upg_option, 'N') = 'O')
55170 )
55171 THEN
55173 --
55174 --
55175
55176 l_ccid := AcctDerRule_35(
55177 p_application_id => p_application_id
55178 , p_ae_header_id => l_ae_header_id
55179 , p_source_48 => p_source_48
55180 , x_transaction_coa_id => l_adr_transaction_coa_id
55181 , x_accounting_coa_id => l_adr_accounting_coa_id
55182 , x_value_type_code => l_adr_value_type_code
55183 , p_side => 'NA'
55184 );
55185
55186 xla_ae_lines_pkg.set_ccid(
55187 p_code_combination_id => l_ccid
55188 , p_value_type_code => l_adr_value_type_code
55189 , p_transaction_coa_id => l_adr_transaction_coa_id
55190 , p_accounting_coa_id => l_adr_accounting_coa_id
55191 , p_adr_code => 'AP_RECP_INV_DIST'
55192 , p_adr_type_code => 'S'
55193 , p_component_type => l_component_type
55194 , p_component_code => l_component_code
55195 , p_component_type_code => l_component_type_code
55196 , p_component_appl_id => l_component_appl_id
55197 , p_amb_context_code => l_amb_context_code
55198 , p_side => 'NA'
55199 );
55200
55201
55202 --
55203 --
55204 END IF;
55205 --
55206 -- Bug 4922099
55207 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55208 (NVL(l_enc_upg_option, 'N') = 'O')
55209 ) AND
55210 (l_bflow_method_code = 'PRIOR_ENTRY')
55211 )
55212 THEN
55213 IF
55214 --
55215 1 = 2
55216 --
55217 THEN
55218 xla_accounting_err_pkg.build_message
55219 (p_appli_s_name => 'XLA'
55220 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55221 ,p_token_1 => 'LINE_NUMBER'
55222 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55223 ,p_token_2 => 'LINE_TYPE_NAME'
55224 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55225 l_component_type
55226 ,l_component_code
55227 ,l_component_type_code
55228 ,l_component_appl_id
55229 ,l_amb_context_code
55230 ,l_entity_code
55231 ,l_event_class_code
55232 )
55233 ,p_token_3 => 'OWNER'
55234 ,p_value_3 => xla_lookups_pkg.get_meaning(
55235 p_lookup_type => 'XLA_OWNER_TYPE'
55236 ,p_lookup_code => l_component_type_code
55237 )
55238 ,p_token_4 => 'PRODUCT_NAME'
55239 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55240 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55241 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55242 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55243 ,p_ae_header_id => NULL
55244 );
55245
55246 IF (C_LEVEL_ERROR>= g_log_level) THEN
55247 trace
55248 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55249 ,p_level => C_LEVEL_ERROR
55250 ,p_module => l_log_module);
55251 END IF;
55252 END IF;
55253 END IF;
55254 --
55255 --
55256 ------------------------------------------------------------------------------------------------
55257 -- 4219869 Business Flow
55258 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55259 -- Prior Entry. Currently, the following code is always generated.
55260 ------------------------------------------------------------------------------------------------
55261 XLA_AE_LINES_PKG.ValidateCurrentLine;
55262
55263 ------------------------------------------------------------------------------------
55264 -- 4219869 Business Flow
55265 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55266 ------------------------------------------------------------------------------------
55267 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55268
55269 ----------------------------------------------------------------------------------
55270 -- 4219869 Business Flow
55274 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55271 -- Update journal entry status -- Need to generate this within IF <condition>
55272 ----------------------------------------------------------------------------------
55273 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55275 ,p_balance_type_code => l_balance_type_code
55276 );
55277
55278 -------------------------------------------------------------------------------------------
55279 -- 4262811 - Generate the Accrual Reversal lines
55280 -------------------------------------------------------------------------------------------
55281 BEGIN
55282 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55283 (g_array_event(p_event_id).array_value_num('header_index'));
55284 IF l_acc_rev_flag IS NULL THEN
55285 l_acc_rev_flag := 'N';
55286 END IF;
55287 EXCEPTION
55288 WHEN OTHERS THEN
55289 l_acc_rev_flag := 'N';
55290 END;
55291 --
55292 IF (l_acc_rev_flag = 'Y') THEN
55293
55294 -- 4645092 ------------------------------------------------------------------------------
55295 -- To allow MPA report to determine if it should generate report process
55296 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55297 ------------------------------------------------------------------------------------------
55298
55299 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55300 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55301 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55302 -- call ADRs
55303 -- Bug 4922099
55304 --
55305 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55306 (NVL(l_actual_upg_option, 'N') = 'O') OR
55307 (NVL(l_enc_upg_option, 'N') = 'O')
55308 )
55309 THEN
55310 NULL;
55311 --
55312 --
55313
55314 l_ccid := AcctDerRule_35(
55315 p_application_id => p_application_id
55316 , p_ae_header_id => l_ae_header_id
55317 , p_source_48 => p_source_48
55318 , x_transaction_coa_id => l_adr_transaction_coa_id
55319 , x_accounting_coa_id => l_adr_accounting_coa_id
55320 , x_value_type_code => l_adr_value_type_code
55321 , p_side => 'NA'
55322 );
55323
55324 xla_ae_lines_pkg.set_ccid(
55325 p_code_combination_id => l_ccid
55326 , p_value_type_code => l_adr_value_type_code
55327 , p_transaction_coa_id => l_adr_transaction_coa_id
55328 , p_accounting_coa_id => l_adr_accounting_coa_id
55329 , p_adr_code => 'AP_RECP_INV_DIST'
55330 , p_adr_type_code => 'S'
55331 , p_component_type => l_component_type
55332 , p_component_code => l_component_code
55333 , p_component_type_code => l_component_type_code
55334 , p_component_appl_id => l_component_appl_id
55335 , p_amb_context_code => l_amb_context_code
55336 , p_side => 'NA'
55337 );
55338
55339
55340 --
55341 --
55342 END IF;
55343
55344 --
55345 -- Update the line information that should be overwritten
55346 --
55347 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55348 p_header_num => 1);
55349 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55350
55351 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55352
55353 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55354 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55355 END IF;
55356
55357 --
55358 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55359 --
55360 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55361 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55362 ELSE
55363 ---------------------------------------------------------------------------------------------------
55364 -- 4262811a Switch Sign
55365 ---------------------------------------------------------------------------------------------------
55366 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55368 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55369 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55370 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55371 -- 5132302
55372 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55373 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55374
55375 END IF;
55376
55377 -- 4955764
55378 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55382 XLA_AE_LINES_PKG.ValidateCurrentLine;
55379 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55380
55381
55383 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55384
55385 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55386 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55387 ,p_balance_type_code => l_balance_type_code);
55388
55389 END IF;
55390
55391 -----------------------------------------------------------------------------------------
55392 -- 4262811 Multiperiod Accounting
55393 -----------------------------------------------------------------------------------------
55394 -- No MPA option is assigned.
55395
55396
55397 END IF;
55398 END IF;
55399 --
55400
55401 --
55402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55403 trace
55404 (p_msg => 'END of AcctLineType_106'
55405 ,p_level => C_LEVEL_PROCEDURE
55406 ,p_module => l_log_module);
55407 END IF;
55408 --
55409 EXCEPTION
55410 WHEN xla_exceptions_pkg.application_exception THEN
55411 RAISE;
55412 WHEN OTHERS THEN
55413 xla_exceptions_pkg.raise_message
55414 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_106');
55415 END AcctLineType_106;
55416 --
55417
55418 ---------------------------------------
55419 --
55420 -- PRIVATE FUNCTION
55421 -- AcctLineType_107
55422 --
55423 ---------------------------------------
55424 PROCEDURE AcctLineType_107 (
55425 p_application_id IN NUMBER
55426 ,p_event_id IN NUMBER
55427 ,p_calculate_acctd_flag IN VARCHAR2
55428 ,p_calculate_g_l_flag IN VARCHAR2
55429 ,p_actual_flag IN OUT VARCHAR2
55430 ,p_balance_type_code OUT VARCHAR2
55431 ,p_gain_or_loss_ref OUT VARCHAR2
55432
55433 --Payment Currency Code
55434 , p_source_12 IN VARCHAR2
55435 --Payment Distribution (Cleared Rate) Ledger Amount
55436 , p_source_22 IN NUMBER
55437 --Invoice Distribution Account
55438 , p_source_29 IN NUMBER
55439 --Invoice Distribution Type
55440 , p_source_32 IN VARCHAR2
55441 , p_source_32_meaning IN VARCHAR2
55442 --When to Account for Payment Option
55443 , p_source_50 IN VARCHAR2
55444 --Payment Distribution Type
55445 , p_source_51 IN VARCHAR2
55446 , p_source_51_meaning IN VARCHAR2
55447 --Accounting Reversal Indicator
55448 , p_source_52 IN VARCHAR2
55449 --Payment Distribution Amount
55450 , p_source_53 IN NUMBER
55451 --Business Flow Accounts Payable Application Identifier
55452 , p_source_54 IN NUMBER
55453 --Business Flow Payment Distribution Type
55454 , p_source_55 IN VARCHAR2
55455 --Business Flow Payment Entity Code
55456 , p_source_56 IN VARCHAR2
55457 --Business Flow Payment Distribution Identifier
55458 , p_source_57 IN NUMBER
55459 --Business Flow Payment Identifier
55460 , p_source_58 IN NUMBER
55461 --Payment Distribution Identifier
55462 , p_source_59 IN NUMBER
55463 --Distribution Link Type
55464 , p_source_60 IN VARCHAR2
55465 --Override Accounted Amount Indicator
55466 , p_source_64 IN VARCHAR2
55467 , p_source_64_meaning IN VARCHAR2
55468 --Payment Supplier Identifier
55469 , p_source_65 IN NUMBER
55470 --Payment Supplier Site Identifier
55471 , p_source_66 IN NUMBER
55472 --Third Party Type
55473 , p_source_67 IN VARCHAR2
55474 --Payment Distribution Reversed Identifier
55475 , p_source_68 IN NUMBER
55476 --Invoice Distribution Tax Line Identifier
55477 , p_source_69 IN NUMBER
55478 --Invoice Distribution Summary Tax Line Identifier
55479 , p_source_70 IN NUMBER
55480 --Accrue on Receipt Option
55481 , p_source_111 IN VARCHAR2
55482 , p_source_111_meaning IN VARCHAR2
55483 --Invoice Type Paid
55484 , p_source_112 IN VARCHAR2
55485 , p_source_112_meaning IN VARCHAR2
55486 --Cleared Exchange Date
55487 , p_source_114 IN DATE
55488 --Cleared Exchange Rate
55489 , p_source_115 IN NUMBER
55490 --Cleared Exchange Rate Type
55491 , p_source_116 IN VARCHAR2
55492 )
55493 IS
55494
55495 l_component_type VARCHAR2(80);
55496 l_component_code VARCHAR2(30);
55497 l_component_type_code VARCHAR2(1);
55498 l_component_appl_id INTEGER;
55499 l_amb_context_code VARCHAR2(30);
55500 l_entity_code VARCHAR2(30);
55501 l_event_class_code VARCHAR2(30);
55502 l_ae_header_id NUMBER;
55503 l_event_type_code VARCHAR2(30);
55504 l_line_definition_code VARCHAR2(30);
55505 l_line_definition_owner_code VARCHAR2(1);
55506 --
55507 -- adr variables
55508 l_segment VARCHAR2(30);
55509 l_ccid NUMBER;
55510 l_adr_transaction_coa_id NUMBER;
55511 l_adr_accounting_coa_id NUMBER;
55512 l_adr_flexfield_segment_code VARCHAR2(30);
55513 l_adr_flex_value_set_id NUMBER;
55514 l_adr_value_type_code VARCHAR2(30);
55515 l_adr_value_combination_id NUMBER;
55519 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55516 l_adr_value_segment_code VARCHAR2(30);
55517
55518 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55520 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55521 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55522
55523 -- 4262811 Variables ------------------------------------------------------------------------------------------
55524 l_entered_amt_idx NUMBER;
55525 l_accted_amt_idx NUMBER;
55526 l_acc_rev_flag VARCHAR2(1);
55527 l_accrual_line_num NUMBER;
55528 l_tmp_amt NUMBER;
55529 l_acc_rev_natural_side_code VARCHAR2(1);
55530
55531 l_num_entries NUMBER;
55532 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55533 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55534 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55535 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55536 l_recog_line_1 NUMBER;
55537 l_recog_line_2 NUMBER;
55538
55539 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55540 l_bflow_applied_to_amt NUMBER; -- 5132302
55541 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55542
55543 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55544
55545 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55546 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55547
55548 ---------------------------------------------------------------------------------------------------------------
55549
55550
55551 --
55552 -- bulk performance
55553 --
55554 l_balance_type_code VARCHAR2(1);
55555 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55556 l_log_module VARCHAR2(240);
55557
55558 --
55559 -- Upgrade strategy
55560 --
55561 l_actual_upg_option VARCHAR2(1);
55562 l_enc_upg_option VARCHAR2(1);
55563
55564 --
55565 BEGIN
55566 --
55567 IF g_log_enabled THEN
55568 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
55569 END IF;
55570 --
55571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55572
55573 trace
55574 (p_msg => 'BEGIN of AcctLineType_107'
55575 ,p_level => C_LEVEL_PROCEDURE
55576 ,p_module => l_log_module);
55577
55578 END IF;
55579 --
55580 l_component_type := 'AMB_JLT';
55581 l_component_code := 'AP_ITEM_EXPENSE_CLEAR';
55582 l_component_type_code := 'S';
55583 l_component_appl_id := 200;
55584 l_amb_context_code := 'DEFAULT';
55585 l_entity_code := 'AP_PAYMENTS';
55586 l_event_class_code := 'RECONCILED PAYMENTS';
55587 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
55588 l_line_definition_owner_code := 'S';
55589 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
55590 --
55591 l_balance_type_code := 'A';
55592 l_segment := NULL;
55593 l_ccid := NULL;
55594 l_adr_transaction_coa_id := NULL;
55595 l_adr_accounting_coa_id := NULL;
55596 l_adr_flexfield_segment_code := NULL;
55597 l_adr_flex_value_set_id := NULL;
55598 l_adr_value_type_code := NULL;
55599 l_adr_value_combination_id := NULL;
55600 l_adr_value_segment_code := NULL;
55601
55602 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55603 l_bflow_class_code := ''; -- 4219869 Business Flow
55604 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55605 l_budgetary_control_flag := 'N';
55606
55607 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55608 l_bflow_applied_to_amt := NULL; -- 5132302
55609 l_entered_amt_idx := NULL; -- 4262811
55610 l_accted_amt_idx := NULL; -- 4262811
55611 l_acc_rev_flag := NULL; -- 4262811
55612 l_accrual_line_num := NULL; -- 4262811
55613 l_tmp_amt := NULL; -- 4262811
55614 --
55615
55616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55617 l_balance_type_code <> 'B' THEN
55618 IF NVL(p_source_50,'
55619 ') = 'CLEAR_CLEAR' AND
55620 (NVL(p_source_32,'
55621 ') = 'ITEM' OR
55622 NVL(p_source_32,'
55623 ') = 'RETROEXPENSE' OR
55624 NVL(p_source_32,'
55625 ') = 'ERV' AND
55626 NVL(p_source_111,'
55627 ') <> 'Y' OR
55628 NVL(p_source_32,'
55629 ') = 'IPV' AND
55630 NVL(p_source_111,'
55631 ') <> 'Y') AND
55632 NVL(p_source_112,'
55633 ') <> 'INTEREST' AND
55634 (NVL(p_source_51,'
55635 ') = 'CASH' OR
55636 NVL(p_source_51,'
55637 ') = 'AWT' OR
55638 NVL(p_source_51,'
55639 ') = 'DISCOUNT')
55640 THEN
55641
55642 --
55643 XLA_AE_LINES_PKG.SetNewLine;
55644
55645 p_balance_type_code := l_balance_type_code;
55646 -- set the flag so later we will know whether the gain loss line needs to be created
55647
55651
55648 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55649 p_actual_flag :='A';
55650 END IF;
55652 --
55653 -- bulk performance
55654 --
55655 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55656 p_header_num => 0); -- 4262811
55657 --
55658 -- set accounting line options
55659 --
55660 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55661 p_natural_side_code => 'D'
55662 , p_gain_or_loss_flag => 'N'
55663 , p_gl_transfer_mode_code => 'S'
55664 , p_acct_entry_type_code => 'A'
55665 , p_switch_side_flag => 'Y'
55666 , p_merge_duplicate_code => 'A'
55667 );
55668 --
55669 l_acc_rev_natural_side_code := 'C'; -- 4262811
55670 --
55671 --
55672 -- set accounting line type info
55673 --
55674 xla_ae_lines_pkg.SetAcctLineType
55675 (p_component_type => l_component_type
55676 ,p_event_type_code => l_event_type_code
55677 ,p_line_definition_owner_code => l_line_definition_owner_code
55678 ,p_line_definition_code => l_line_definition_code
55679 ,p_accounting_line_code => l_component_code
55680 ,p_accounting_line_type_code => l_component_type_code
55681 ,p_accounting_line_appl_id => l_component_appl_id
55682 ,p_amb_context_code => l_amb_context_code
55683 ,p_entity_code => l_entity_code
55684 ,p_event_class_code => l_event_class_code);
55685 --
55686 -- set accounting class
55687 --
55688 xla_ae_lines_pkg.SetAcctClass(
55689 p_accounting_class_code => 'ITEM EXPENSE'
55690 , p_ae_header_id => l_ae_header_id
55691 );
55692
55693 --
55694 -- set rounding class
55695 --
55696 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55697 'ITEM EXPENSE';
55698
55699 --
55700 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55701 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55702 --
55703 -- bulk performance
55704 --
55705 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55706
55707 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55708 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55709
55710 -- 4955764
55711 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55712 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55713
55714 -- 4458381 Public Sector Enh
55715
55716 --
55717 -- set accounting attributes for the line type
55718 --
55719 l_entered_amt_idx := 10;
55720 l_accted_amt_idx := 15;
55721 l_bflow_applied_to_amt_idx := 2; -- 5132302
55722 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55723 l_rec_acct_attrs.array_char_value(1) := p_source_52;
55724 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55725 l_rec_acct_attrs.array_num_value(2) := p_source_53;
55726 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55727 l_rec_acct_attrs.array_num_value(3) := p_source_54;
55728 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55729 l_rec_acct_attrs.array_char_value(4) := p_source_55;
55730 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55731 l_rec_acct_attrs.array_char_value(5) := p_source_56;
55732 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55733 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
55734 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55735 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
55736 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55737 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
55738 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55739 l_rec_acct_attrs.array_char_value(9) := p_source_60;
55740 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55741 l_rec_acct_attrs.array_num_value(10) := p_source_53;
55742 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55743 l_rec_acct_attrs.array_char_value(11) := p_source_12;
55744 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55745 l_rec_acct_attrs.array_date_value(12) := p_source_114;
55746 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55747 l_rec_acct_attrs.array_num_value(13) := p_source_115;
55748 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55749 l_rec_acct_attrs.array_char_value(14) := p_source_116;
55750 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55751 l_rec_acct_attrs.array_num_value(15) := p_source_22;
55752 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55753 l_rec_acct_attrs.array_char_value(16) := p_source_64;
55754 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55755 l_rec_acct_attrs.array_num_value(17) := p_source_65;
55756 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55757 l_rec_acct_attrs.array_num_value(18) := p_source_66;
55761 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
55758 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55759 l_rec_acct_attrs.array_char_value(19) := p_source_67;
55760 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55762 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55763 l_rec_acct_attrs.array_char_value(21) := p_source_60;
55764 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55765 l_rec_acct_attrs.array_num_value(22) := p_source_69;
55766 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55767 l_rec_acct_attrs.array_num_value(23) := p_source_69;
55768 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55769 l_rec_acct_attrs.array_num_value(24) := p_source_70;
55770
55771 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55772 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55773
55774 ---------------------------------------------------------------------------------------------------------------
55775 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55776 ---------------------------------------------------------------------------------------------------------------
55777 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55778
55779 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55780 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55781
55782 IF xla_accounting_cache_pkg.GetValueChar
55783 (p_source_code => 'LEDGER_CATEGORY_CODE'
55784 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55785 AND l_bflow_method_code = 'PRIOR_ENTRY'
55786 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55787 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55788 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55789 )
55790 THEN
55791 xla_ae_lines_pkg.BflowUpgEntry
55792 (p_business_method_code => l_bflow_method_code
55793 ,p_business_class_code => l_bflow_class_code
55794 ,p_balance_type => l_balance_type_code);
55795 ELSE
55796 NULL;
55797 -- No business flow processing for business flow method of NONE.
55798 END IF;
55799
55800 --
55801 -- call analytical criteria
55802 --
55803
55804 --
55805 -- call description
55806 --
55807 -- No description or it is inherited.
55808 --
55809 -- call ADRs
55810 -- Bug 4922099
55811 --
55812 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55813 (NVL(l_actual_upg_option, 'N') = 'O') OR
55814 (NVL(l_enc_upg_option, 'N') = 'O')
55815 )
55816 THEN
55817 NULL;
55818 --
55819 --
55820
55821 l_ccid := AcctDerRule_28(
55822 p_application_id => p_application_id
55823 , p_ae_header_id => l_ae_header_id
55824 , p_source_29 => p_source_29
55825 , x_transaction_coa_id => l_adr_transaction_coa_id
55826 , x_accounting_coa_id => l_adr_accounting_coa_id
55827 , x_value_type_code => l_adr_value_type_code
55828 , p_side => 'NA'
55829 );
55830
55831 xla_ae_lines_pkg.set_ccid(
55832 p_code_combination_id => l_ccid
55833 , p_value_type_code => l_adr_value_type_code
55834 , p_transaction_coa_id => l_adr_transaction_coa_id
55835 , p_accounting_coa_id => l_adr_accounting_coa_id
55836 , p_adr_code => 'AP_INVOICE_DIST'
55837 , p_adr_type_code => 'S'
55838 , p_component_type => l_component_type
55839 , p_component_code => l_component_code
55840 , p_component_type_code => l_component_type_code
55841 , p_component_appl_id => l_component_appl_id
55842 , p_amb_context_code => l_amb_context_code
55843 , p_side => 'NA'
55844 );
55845
55846
55847 --
55848 --
55849 END IF;
55850 --
55851 -- Bug 4922099
55852 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55853 (NVL(l_enc_upg_option, 'N') = 'O')
55854 ) AND
55855 (l_bflow_method_code = 'PRIOR_ENTRY')
55856 )
55857 THEN
55858 IF
55859 --
55860 1 = 2
55861 --
55862 THEN
55863 xla_accounting_err_pkg.build_message
55864 (p_appli_s_name => 'XLA'
55865 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55866 ,p_token_1 => 'LINE_NUMBER'
55867 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55868 ,p_token_2 => 'LINE_TYPE_NAME'
55869 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55870 l_component_type
55871 ,l_component_code
55875 ,l_entity_code
55872 ,l_component_type_code
55873 ,l_component_appl_id
55874 ,l_amb_context_code
55876 ,l_event_class_code
55877 )
55878 ,p_token_3 => 'OWNER'
55879 ,p_value_3 => xla_lookups_pkg.get_meaning(
55880 p_lookup_type => 'XLA_OWNER_TYPE'
55881 ,p_lookup_code => l_component_type_code
55882 )
55883 ,p_token_4 => 'PRODUCT_NAME'
55884 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55885 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55886 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55887 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55888 ,p_ae_header_id => NULL
55889 );
55890
55891 IF (C_LEVEL_ERROR>= g_log_level) THEN
55892 trace
55893 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55894 ,p_level => C_LEVEL_ERROR
55895 ,p_module => l_log_module);
55896 END IF;
55897 END IF;
55898 END IF;
55899 --
55900 --
55901 ------------------------------------------------------------------------------------------------
55902 -- 4219869 Business Flow
55903 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55904 -- Prior Entry. Currently, the following code is always generated.
55905 ------------------------------------------------------------------------------------------------
55906 XLA_AE_LINES_PKG.ValidateCurrentLine;
55907
55908 ------------------------------------------------------------------------------------
55909 -- 4219869 Business Flow
55910 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55911 ------------------------------------------------------------------------------------
55912 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55913
55914 ----------------------------------------------------------------------------------
55915 -- 4219869 Business Flow
55916 -- Update journal entry status -- Need to generate this within IF <condition>
55917 ----------------------------------------------------------------------------------
55918 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55919 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55920 ,p_balance_type_code => l_balance_type_code
55921 );
55922
55923 -------------------------------------------------------------------------------------------
55924 -- 4262811 - Generate the Accrual Reversal lines
55925 -------------------------------------------------------------------------------------------
55926 BEGIN
55927 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55928 (g_array_event(p_event_id).array_value_num('header_index'));
55929 IF l_acc_rev_flag IS NULL THEN
55930 l_acc_rev_flag := 'N';
55931 END IF;
55932 EXCEPTION
55933 WHEN OTHERS THEN
55934 l_acc_rev_flag := 'N';
55935 END;
55936 --
55937 IF (l_acc_rev_flag = 'Y') THEN
55938
55939 -- 4645092 ------------------------------------------------------------------------------
55940 -- To allow MPA report to determine if it should generate report process
55941 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55942 ------------------------------------------------------------------------------------------
55943
55944 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55945 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55946 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55947 -- call ADRs
55948 -- Bug 4922099
55949 --
55950 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55951 (NVL(l_actual_upg_option, 'N') = 'O') OR
55952 (NVL(l_enc_upg_option, 'N') = 'O')
55953 )
55954 THEN
55955 NULL;
55956 --
55957 --
55958
55959 l_ccid := AcctDerRule_28(
55960 p_application_id => p_application_id
55961 , p_ae_header_id => l_ae_header_id
55962 , p_source_29 => p_source_29
55963 , x_transaction_coa_id => l_adr_transaction_coa_id
55964 , x_accounting_coa_id => l_adr_accounting_coa_id
55965 , x_value_type_code => l_adr_value_type_code
55966 , p_side => 'NA'
55967 );
55968
55969 xla_ae_lines_pkg.set_ccid(
55970 p_code_combination_id => l_ccid
55971 , p_value_type_code => l_adr_value_type_code
55975 , p_adr_type_code => 'S'
55972 , p_transaction_coa_id => l_adr_transaction_coa_id
55973 , p_accounting_coa_id => l_adr_accounting_coa_id
55974 , p_adr_code => 'AP_INVOICE_DIST'
55976 , p_component_type => l_component_type
55977 , p_component_code => l_component_code
55978 , p_component_type_code => l_component_type_code
55979 , p_component_appl_id => l_component_appl_id
55980 , p_amb_context_code => l_amb_context_code
55981 , p_side => 'NA'
55982 );
55983
55984
55985 --
55986 --
55987 END IF;
55988
55989 --
55990 -- Update the line information that should be overwritten
55991 --
55992 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55993 p_header_num => 1);
55994 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55995
55996 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55997
55998 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55999 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56000 END IF;
56001
56002 --
56003 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56004 --
56005 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56006 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56007 ELSE
56008 ---------------------------------------------------------------------------------------------------
56009 -- 4262811a Switch Sign
56010 ---------------------------------------------------------------------------------------------------
56011 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56012 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56013 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56014 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56015 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56016 -- 5132302
56017 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56018 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56019
56020 END IF;
56021
56022 -- 4955764
56023 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56024 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56025
56026
56027 XLA_AE_LINES_PKG.ValidateCurrentLine;
56028 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56029
56030 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56031 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56032 ,p_balance_type_code => l_balance_type_code);
56033
56034 END IF;
56035
56036 -----------------------------------------------------------------------------------------
56037 -- 4262811 Multiperiod Accounting
56038 -----------------------------------------------------------------------------------------
56039 -- No MPA option is assigned.
56040
56041
56042 END IF;
56043 END IF;
56044 --
56045
56046 --
56047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56048 trace
56049 (p_msg => 'END of AcctLineType_107'
56050 ,p_level => C_LEVEL_PROCEDURE
56051 ,p_module => l_log_module);
56052 END IF;
56053 --
56054 EXCEPTION
56055 WHEN xla_exceptions_pkg.application_exception THEN
56056 RAISE;
56057 WHEN OTHERS THEN
56058 xla_exceptions_pkg.raise_message
56059 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_107');
56060 END AcctLineType_107;
56061 --
56062
56063 ---------------------------------------
56064 --
56065 -- PRIVATE FUNCTION
56066 -- AcctLineType_108
56067 --
56068 ---------------------------------------
56069 PROCEDURE AcctLineType_108 (
56070 p_application_id IN NUMBER
56071 ,p_event_id IN NUMBER
56072 ,p_calculate_acctd_flag IN VARCHAR2
56073 ,p_calculate_g_l_flag IN VARCHAR2
56074 ,p_actual_flag IN OUT VARCHAR2
56075 ,p_balance_type_code OUT VARCHAR2
56076 ,p_gain_or_loss_ref OUT VARCHAR2
56077
56078 --Payment Currency Code
56079 , p_source_12 IN VARCHAR2
56080 --Payment Distribution (Payment Rate) Ledger Amount
56081 , p_source_21 IN NUMBER
56082 --Invoice Distribution Account
56083 , p_source_29 IN NUMBER
56084 --Invoice Distribution Type
56085 , p_source_32 IN VARCHAR2
56086 , p_source_32_meaning IN VARCHAR2
56087 --When to Account for Payment Option
56088 , p_source_50 IN VARCHAR2
56089 --Payment Distribution Type
56090 , p_source_51 IN VARCHAR2
56091 , p_source_51_meaning IN VARCHAR2
56092 --Accounting Reversal Indicator
56096 --Business Flow Accounts Payable Application Identifier
56093 , p_source_52 IN VARCHAR2
56094 --Payment Distribution Amount
56095 , p_source_53 IN NUMBER
56097 , p_source_54 IN NUMBER
56098 --Payment Distribution Identifier
56099 , p_source_59 IN NUMBER
56100 --Distribution Link Type
56101 , p_source_60 IN VARCHAR2
56102 --Override Accounted Amount Indicator
56103 , p_source_64 IN VARCHAR2
56104 , p_source_64_meaning IN VARCHAR2
56105 --Payment Supplier Identifier
56106 , p_source_65 IN NUMBER
56107 --Payment Supplier Site Identifier
56108 , p_source_66 IN NUMBER
56109 --Third Party Type
56110 , p_source_67 IN VARCHAR2
56111 --Payment Distribution Reversed Identifier
56112 , p_source_68 IN NUMBER
56113 --Invoice Distribution Tax Line Identifier
56114 , p_source_69 IN NUMBER
56115 --Invoice Distribution Summary Tax Line Identifier
56116 , p_source_70 IN NUMBER
56117 --Payment Type
56118 , p_source_71 IN VARCHAR2
56119 , p_source_71_meaning IN VARCHAR2
56120 --Invoice Distribution Amount of the Payment Distribution
56121 , p_source_72 IN NUMBER
56122 --Business Flow Invoice Distribution Type
56123 , p_source_73 IN VARCHAR2
56124 --Business Flow Invoice Entity Code
56125 , p_source_74 IN VARCHAR2
56126 --Business Flow Invoice Distribution Identifier
56127 , p_source_75 IN NUMBER
56128 --Business Flow Invoice Identifier
56129 , p_source_76 IN NUMBER
56130 --Invoice Distribution Tax Distribution Identifier from Tax
56131 , p_source_77 IN NUMBER
56132 --Accrue on Receipt Option
56133 , p_source_111 IN VARCHAR2
56134 , p_source_111_meaning IN VARCHAR2
56135 --Invoice Type Paid
56136 , p_source_112 IN VARCHAR2
56137 , p_source_112_meaning IN VARCHAR2
56138 --Payment Exchange Date
56139 , p_source_121 IN DATE
56140 --Payment Exchange Rate
56141 , p_source_122 IN NUMBER
56142 --Payment Exchange Rate Type
56143 , p_source_123 IN VARCHAR2
56144 )
56145 IS
56146
56147 l_component_type VARCHAR2(80);
56148 l_component_code VARCHAR2(30);
56149 l_component_type_code VARCHAR2(1);
56150 l_component_appl_id INTEGER;
56151 l_amb_context_code VARCHAR2(30);
56152 l_entity_code VARCHAR2(30);
56153 l_event_class_code VARCHAR2(30);
56154 l_ae_header_id NUMBER;
56155 l_event_type_code VARCHAR2(30);
56156 l_line_definition_code VARCHAR2(30);
56157 l_line_definition_owner_code VARCHAR2(1);
56158 --
56159 -- adr variables
56160 l_segment VARCHAR2(30);
56161 l_ccid NUMBER;
56162 l_adr_transaction_coa_id NUMBER;
56163 l_adr_accounting_coa_id NUMBER;
56164 l_adr_flexfield_segment_code VARCHAR2(30);
56165 l_adr_flex_value_set_id NUMBER;
56166 l_adr_value_type_code VARCHAR2(30);
56167 l_adr_value_combination_id NUMBER;
56168 l_adr_value_segment_code VARCHAR2(30);
56169
56170 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56171 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56172 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56173 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56174
56175 -- 4262811 Variables ------------------------------------------------------------------------------------------
56176 l_entered_amt_idx NUMBER;
56177 l_accted_amt_idx NUMBER;
56178 l_acc_rev_flag VARCHAR2(1);
56179 l_accrual_line_num NUMBER;
56180 l_tmp_amt NUMBER;
56181 l_acc_rev_natural_side_code VARCHAR2(1);
56182
56183 l_num_entries NUMBER;
56184 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56185 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56186 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56187 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56188 l_recog_line_1 NUMBER;
56189 l_recog_line_2 NUMBER;
56190
56191 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56192 l_bflow_applied_to_amt NUMBER; -- 5132302
56193 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56194
56195 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56196
56197 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56198 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56199
56200 ---------------------------------------------------------------------------------------------------------------
56201
56202
56203 --
56204 -- bulk performance
56205 --
56206 l_balance_type_code VARCHAR2(1);
56207 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56208 l_log_module VARCHAR2(240);
56209
56210 --
56211 -- Upgrade strategy
56212 --
56213 l_actual_upg_option VARCHAR2(1);
56214 l_enc_upg_option VARCHAR2(1);
56215
56216 --
56217 BEGIN
56218 --
56219 IF g_log_enabled THEN
56223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56220 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
56221 END IF;
56222 --
56224
56225 trace
56226 (p_msg => 'BEGIN of AcctLineType_108'
56227 ,p_level => C_LEVEL_PROCEDURE
56228 ,p_module => l_log_module);
56229
56230 END IF;
56231 --
56232 l_component_type := 'AMB_JLT';
56233 l_component_code := 'AP_ITEM_EXPENSE_PMT';
56234 l_component_type_code := 'S';
56235 l_component_appl_id := 200;
56236 l_amb_context_code := 'DEFAULT';
56237 l_entity_code := 'AP_PAYMENTS';
56238 l_event_class_code := 'PAYMENTS';
56239 l_event_type_code := 'PAYMENTS_ALL';
56240 l_line_definition_owner_code := 'S';
56241 l_line_definition_code := 'CASH_PAYMENTS_ALL';
56242 --
56243 l_balance_type_code := 'A';
56244 l_segment := NULL;
56245 l_ccid := NULL;
56246 l_adr_transaction_coa_id := NULL;
56247 l_adr_accounting_coa_id := NULL;
56248 l_adr_flexfield_segment_code := NULL;
56249 l_adr_flex_value_set_id := NULL;
56250 l_adr_value_type_code := NULL;
56251 l_adr_value_combination_id := NULL;
56252 l_adr_value_segment_code := NULL;
56253
56254 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56255 l_bflow_class_code := ''; -- 4219869 Business Flow
56256 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56257 l_budgetary_control_flag := 'N';
56258
56259 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56260 l_bflow_applied_to_amt := NULL; -- 5132302
56261 l_entered_amt_idx := NULL; -- 4262811
56262 l_accted_amt_idx := NULL; -- 4262811
56263 l_acc_rev_flag := NULL; -- 4262811
56264 l_accrual_line_num := NULL; -- 4262811
56265 l_tmp_amt := NULL; -- 4262811
56266 --
56267
56268 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56269 l_balance_type_code <> 'B' THEN
56270 IF NVL(p_source_50,'
56271 ') <> 'CLEAR_CLEAR' AND
56272 (NVL(p_source_32,'
56273 ') = 'ITEM' OR
56274 NVL(p_source_32,'
56275 ') = 'RETROEXPENSE' OR
56276 NVL(p_source_32,'
56277 ') = 'ERV' AND
56278 NVL(p_source_111,'
56279 ') <> 'Y' OR
56280 NVL(p_source_32,'
56281 ') = 'IPV' AND
56282 NVL(p_source_111,'
56283 ') <> 'Y') AND
56284 NVL(p_source_112,'
56285 ') <> 'PREPAYMENT' AND
56286 NVL(p_source_112,'
56287 ') <> 'INTEREST' AND
56288 (NVL(p_source_51,'
56289 ') = 'CASH' OR
56290 NVL(p_source_51,'
56291 ') = 'AWT' OR
56292 NVL(p_source_51,'
56293 ') = 'DISCOUNT') AND
56294 NVL(p_source_71,'
56295 ') <> 'R'
56296 THEN
56297
56298 --
56299 XLA_AE_LINES_PKG.SetNewLine;
56300
56301 p_balance_type_code := l_balance_type_code;
56302 -- set the flag so later we will know whether the gain loss line needs to be created
56303
56304 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56305 p_actual_flag :='A';
56306 END IF;
56307
56308 --
56309 -- bulk performance
56310 --
56311 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56312 p_header_num => 0); -- 4262811
56313 --
56314 -- set accounting line options
56315 --
56316 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56317 p_natural_side_code => 'D'
56318 , p_gain_or_loss_flag => 'N'
56319 , p_gl_transfer_mode_code => 'S'
56320 , p_acct_entry_type_code => 'A'
56321 , p_switch_side_flag => 'Y'
56322 , p_merge_duplicate_code => 'A'
56323 );
56324 --
56325 l_acc_rev_natural_side_code := 'C'; -- 4262811
56326 --
56327 --
56328 -- set accounting line type info
56329 --
56330 xla_ae_lines_pkg.SetAcctLineType
56331 (p_component_type => l_component_type
56332 ,p_event_type_code => l_event_type_code
56333 ,p_line_definition_owner_code => l_line_definition_owner_code
56334 ,p_line_definition_code => l_line_definition_code
56335 ,p_accounting_line_code => l_component_code
56336 ,p_accounting_line_type_code => l_component_type_code
56337 ,p_accounting_line_appl_id => l_component_appl_id
56338 ,p_amb_context_code => l_amb_context_code
56339 ,p_entity_code => l_entity_code
56340 ,p_event_class_code => l_event_class_code);
56341 --
56342 -- set accounting class
56343 --
56344 xla_ae_lines_pkg.SetAcctClass(
56345 p_accounting_class_code => 'ITEM EXPENSE'
56346 , p_ae_header_id => l_ae_header_id
56347 );
56348
56349 --
56350 -- set rounding class
56351 --
56352 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56353 'ITEM EXPENSE';
56354
56355 --
56356 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56357 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56358 --
56359 -- bulk performance
56360 --
56364 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56361 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56362
56363 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56365
56366 -- 4955764
56367 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56368 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56369
56370 -- 4458381 Public Sector Enh
56371
56372 --
56373 -- set accounting attributes for the line type
56374 --
56375 l_entered_amt_idx := 10;
56376 l_accted_amt_idx := 15;
56377 l_bflow_applied_to_amt_idx := 2; -- 5132302
56378 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56379 l_rec_acct_attrs.array_char_value(1) := p_source_52;
56380 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56381 l_rec_acct_attrs.array_num_value(2) := p_source_72;
56382 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56383 l_rec_acct_attrs.array_num_value(3) := p_source_54;
56384 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56385 l_rec_acct_attrs.array_char_value(4) := p_source_73;
56386 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56387 l_rec_acct_attrs.array_char_value(5) := p_source_74;
56388 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56389 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
56390 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56391 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
56392 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56393 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
56394 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56395 l_rec_acct_attrs.array_char_value(9) := p_source_60;
56396 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56397 l_rec_acct_attrs.array_num_value(10) := p_source_53;
56398 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56399 l_rec_acct_attrs.array_char_value(11) := p_source_12;
56400 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56401 l_rec_acct_attrs.array_date_value(12) := p_source_121;
56402 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56403 l_rec_acct_attrs.array_num_value(13) := p_source_122;
56404 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56405 l_rec_acct_attrs.array_char_value(14) := p_source_123;
56406 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56407 l_rec_acct_attrs.array_num_value(15) := p_source_21;
56408 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56409 l_rec_acct_attrs.array_char_value(16) := p_source_64;
56410 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56411 l_rec_acct_attrs.array_num_value(17) := p_source_65;
56412 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56413 l_rec_acct_attrs.array_num_value(18) := p_source_66;
56414 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56415 l_rec_acct_attrs.array_char_value(19) := p_source_67;
56416 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56417 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
56418 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56419 l_rec_acct_attrs.array_char_value(21) := p_source_60;
56420 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56421 l_rec_acct_attrs.array_num_value(22) := p_source_69;
56422 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56423 l_rec_acct_attrs.array_num_value(23) := p_source_77;
56424 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56425 l_rec_acct_attrs.array_num_value(24) := p_source_70;
56426
56427 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56428 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56429
56430 ---------------------------------------------------------------------------------------------------------------
56431 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56432 ---------------------------------------------------------------------------------------------------------------
56433 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56434
56435 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56436 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56437
56438 IF xla_accounting_cache_pkg.GetValueChar
56439 (p_source_code => 'LEDGER_CATEGORY_CODE'
56440 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56441 AND l_bflow_method_code = 'PRIOR_ENTRY'
56442 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56443 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56444 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56445 )
56446 THEN
56447 xla_ae_lines_pkg.BflowUpgEntry
56448 (p_business_method_code => l_bflow_method_code
56449 ,p_business_class_code => l_bflow_class_code
56450 ,p_balance_type => l_balance_type_code);
56451 ELSE
56455
56452 NULL;
56453 -- No business flow processing for business flow method of NONE.
56454 END IF;
56456 --
56457 -- call analytical criteria
56458 --
56459
56460 --
56461 -- call description
56462 --
56463 -- No description or it is inherited.
56464 --
56465 -- call ADRs
56466 -- Bug 4922099
56467 --
56468 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56469 (NVL(l_actual_upg_option, 'N') = 'O') OR
56470 (NVL(l_enc_upg_option, 'N') = 'O')
56471 )
56472 THEN
56473 NULL;
56474 --
56475 --
56476
56477 l_ccid := AcctDerRule_28(
56478 p_application_id => p_application_id
56479 , p_ae_header_id => l_ae_header_id
56480 , p_source_29 => p_source_29
56481 , x_transaction_coa_id => l_adr_transaction_coa_id
56482 , x_accounting_coa_id => l_adr_accounting_coa_id
56483 , x_value_type_code => l_adr_value_type_code
56484 , p_side => 'NA'
56485 );
56486
56487 xla_ae_lines_pkg.set_ccid(
56488 p_code_combination_id => l_ccid
56489 , p_value_type_code => l_adr_value_type_code
56490 , p_transaction_coa_id => l_adr_transaction_coa_id
56491 , p_accounting_coa_id => l_adr_accounting_coa_id
56492 , p_adr_code => 'AP_INVOICE_DIST'
56493 , p_adr_type_code => 'S'
56494 , p_component_type => l_component_type
56495 , p_component_code => l_component_code
56496 , p_component_type_code => l_component_type_code
56497 , p_component_appl_id => l_component_appl_id
56498 , p_amb_context_code => l_amb_context_code
56499 , p_side => 'NA'
56500 );
56501
56502
56503 --
56504 --
56505 END IF;
56506 --
56507 -- Bug 4922099
56508 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56509 (NVL(l_enc_upg_option, 'N') = 'O')
56510 ) AND
56511 (l_bflow_method_code = 'PRIOR_ENTRY')
56512 )
56513 THEN
56514 IF
56515 --
56516 1 = 2
56517 --
56518 THEN
56519 xla_accounting_err_pkg.build_message
56520 (p_appli_s_name => 'XLA'
56521 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56522 ,p_token_1 => 'LINE_NUMBER'
56523 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56524 ,p_token_2 => 'LINE_TYPE_NAME'
56525 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56526 l_component_type
56527 ,l_component_code
56528 ,l_component_type_code
56529 ,l_component_appl_id
56530 ,l_amb_context_code
56531 ,l_entity_code
56532 ,l_event_class_code
56533 )
56534 ,p_token_3 => 'OWNER'
56535 ,p_value_3 => xla_lookups_pkg.get_meaning(
56536 p_lookup_type => 'XLA_OWNER_TYPE'
56537 ,p_lookup_code => l_component_type_code
56538 )
56539 ,p_token_4 => 'PRODUCT_NAME'
56540 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56541 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56542 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56543 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56544 ,p_ae_header_id => NULL
56545 );
56546
56547 IF (C_LEVEL_ERROR>= g_log_level) THEN
56548 trace
56549 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56550 ,p_level => C_LEVEL_ERROR
56551 ,p_module => l_log_module);
56552 END IF;
56553 END IF;
56554 END IF;
56555 --
56556 --
56557 ------------------------------------------------------------------------------------------------
56558 -- 4219869 Business Flow
56559 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56560 -- Prior Entry. Currently, the following code is always generated.
56561 ------------------------------------------------------------------------------------------------
56562 XLA_AE_LINES_PKG.ValidateCurrentLine;
56563
56567 ------------------------------------------------------------------------------------
56564 ------------------------------------------------------------------------------------
56565 -- 4219869 Business Flow
56566 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56568 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56569
56570 ----------------------------------------------------------------------------------
56571 -- 4219869 Business Flow
56572 -- Update journal entry status -- Need to generate this within IF <condition>
56573 ----------------------------------------------------------------------------------
56574 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56575 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56576 ,p_balance_type_code => l_balance_type_code
56577 );
56578
56579 -------------------------------------------------------------------------------------------
56580 -- 4262811 - Generate the Accrual Reversal lines
56581 -------------------------------------------------------------------------------------------
56582 BEGIN
56583 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56584 (g_array_event(p_event_id).array_value_num('header_index'));
56585 IF l_acc_rev_flag IS NULL THEN
56586 l_acc_rev_flag := 'N';
56587 END IF;
56588 EXCEPTION
56589 WHEN OTHERS THEN
56590 l_acc_rev_flag := 'N';
56591 END;
56592 --
56593 IF (l_acc_rev_flag = 'Y') THEN
56594
56595 -- 4645092 ------------------------------------------------------------------------------
56596 -- To allow MPA report to determine if it should generate report process
56597 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56598 ------------------------------------------------------------------------------------------
56599
56600 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56601 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56602 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56603 -- call ADRs
56604 -- Bug 4922099
56605 --
56606 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56607 (NVL(l_actual_upg_option, 'N') = 'O') OR
56608 (NVL(l_enc_upg_option, 'N') = 'O')
56609 )
56610 THEN
56611 NULL;
56612 --
56613 --
56614
56615 l_ccid := AcctDerRule_28(
56616 p_application_id => p_application_id
56617 , p_ae_header_id => l_ae_header_id
56618 , p_source_29 => p_source_29
56619 , x_transaction_coa_id => l_adr_transaction_coa_id
56620 , x_accounting_coa_id => l_adr_accounting_coa_id
56621 , x_value_type_code => l_adr_value_type_code
56622 , p_side => 'NA'
56623 );
56624
56625 xla_ae_lines_pkg.set_ccid(
56626 p_code_combination_id => l_ccid
56627 , p_value_type_code => l_adr_value_type_code
56628 , p_transaction_coa_id => l_adr_transaction_coa_id
56629 , p_accounting_coa_id => l_adr_accounting_coa_id
56630 , p_adr_code => 'AP_INVOICE_DIST'
56631 , p_adr_type_code => 'S'
56632 , p_component_type => l_component_type
56633 , p_component_code => l_component_code
56634 , p_component_type_code => l_component_type_code
56635 , p_component_appl_id => l_component_appl_id
56636 , p_amb_context_code => l_amb_context_code
56637 , p_side => 'NA'
56638 );
56639
56640
56641 --
56642 --
56643 END IF;
56644
56645 --
56646 -- Update the line information that should be overwritten
56647 --
56648 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56649 p_header_num => 1);
56650 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56651
56652 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56653
56654 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56655 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56656 END IF;
56657
56658 --
56659 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56660 --
56661 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56662 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56663 ELSE
56664 ---------------------------------------------------------------------------------------------------
56665 -- 4262811a Switch Sign
56666 ---------------------------------------------------------------------------------------------------
56667 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56668 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56669 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56670 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56674 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56671 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56672 -- 5132302
56673 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56675
56676 END IF;
56677
56678 -- 4955764
56679 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56680 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56681
56682
56683 XLA_AE_LINES_PKG.ValidateCurrentLine;
56684 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56685
56686 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56687 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56688 ,p_balance_type_code => l_balance_type_code);
56689
56690 END IF;
56691
56692 -----------------------------------------------------------------------------------------
56693 -- 4262811 Multiperiod Accounting
56694 -----------------------------------------------------------------------------------------
56695 -- No MPA option is assigned.
56696
56697
56698 END IF;
56699 END IF;
56700 --
56701
56702 --
56703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56704 trace
56705 (p_msg => 'END of AcctLineType_108'
56706 ,p_level => C_LEVEL_PROCEDURE
56707 ,p_module => l_log_module);
56708 END IF;
56709 --
56710 EXCEPTION
56711 WHEN xla_exceptions_pkg.application_exception THEN
56712 RAISE;
56713 WHEN OTHERS THEN
56714 xla_exceptions_pkg.raise_message
56715 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_108');
56716 END AcctLineType_108;
56717 --
56718
56719 ---------------------------------------
56720 --
56721 -- PRIVATE FUNCTION
56722 -- AcctLineType_109
56723 --
56724 ---------------------------------------
56725 PROCEDURE AcctLineType_109 (
56726 p_application_id IN NUMBER
56727 ,p_event_id IN NUMBER
56728 ,p_calculate_acctd_flag IN VARCHAR2
56729 ,p_calculate_g_l_flag IN VARCHAR2
56730 ,p_actual_flag IN OUT VARCHAR2
56731 ,p_balance_type_code OUT VARCHAR2
56732 ,p_gain_or_loss_ref OUT VARCHAR2
56733
56734 --Payment Currency Code
56735 , p_source_12 IN VARCHAR2
56736 --Payment Distribution (Payment Rate) Ledger Amount
56737 , p_source_21 IN NUMBER
56738 --Invoice Distribution Account
56739 , p_source_29 IN NUMBER
56740 --Invoice Distribution Type
56741 , p_source_32 IN VARCHAR2
56742 , p_source_32_meaning IN VARCHAR2
56743 --When to Account for Payment Option
56744 , p_source_50 IN VARCHAR2
56745 --Payment Distribution Type
56746 , p_source_51 IN VARCHAR2
56747 , p_source_51_meaning IN VARCHAR2
56748 --Accounting Reversal Indicator
56749 , p_source_52 IN VARCHAR2
56750 --Payment Distribution Amount
56751 , p_source_53 IN NUMBER
56752 --Business Flow Accounts Payable Application Identifier
56753 , p_source_54 IN NUMBER
56754 --Payment Distribution Identifier
56755 , p_source_59 IN NUMBER
56756 --Distribution Link Type
56757 , p_source_60 IN VARCHAR2
56758 --Override Accounted Amount Indicator
56759 , p_source_64 IN VARCHAR2
56760 , p_source_64_meaning IN VARCHAR2
56761 --Payment Supplier Identifier
56762 , p_source_65 IN NUMBER
56763 --Payment Supplier Site Identifier
56764 , p_source_66 IN NUMBER
56765 --Third Party Type
56766 , p_source_67 IN VARCHAR2
56767 --Payment Distribution Reversed Identifier
56768 , p_source_68 IN NUMBER
56769 --Invoice Distribution Tax Line Identifier
56770 , p_source_69 IN NUMBER
56771 --Invoice Distribution Summary Tax Line Identifier
56772 , p_source_70 IN NUMBER
56773 --Payment Type
56774 , p_source_71 IN VARCHAR2
56775 , p_source_71_meaning IN VARCHAR2
56776 --Business Flow Invoice Distribution Type
56777 , p_source_73 IN VARCHAR2
56778 --Business Flow Invoice Entity Code
56779 , p_source_74 IN VARCHAR2
56780 --Business Flow Invoice Distribution Identifier
56781 , p_source_75 IN NUMBER
56782 --Business Flow Invoice Identifier
56783 , p_source_76 IN NUMBER
56784 --Invoice Distribution Tax Distribution Identifier from Tax
56785 , p_source_77 IN NUMBER
56786 --Accrue on Receipt Option
56787 , p_source_111 IN VARCHAR2
56788 , p_source_111_meaning IN VARCHAR2
56789 --Payment Exchange Date
56790 , p_source_121 IN DATE
56791 --Payment Exchange Rate
56792 , p_source_122 IN NUMBER
56793 --Payment Exchange Rate Type
56794 , p_source_123 IN VARCHAR2
56795 )
56796 IS
56797
56798 l_component_type VARCHAR2(80);
56799 l_component_code VARCHAR2(30);
56800 l_component_type_code VARCHAR2(1);
56801 l_component_appl_id INTEGER;
56802 l_amb_context_code VARCHAR2(30);
56803 l_entity_code VARCHAR2(30);
56804 l_event_class_code VARCHAR2(30);
56805 l_ae_header_id NUMBER;
56809 --
56806 l_event_type_code VARCHAR2(30);
56807 l_line_definition_code VARCHAR2(30);
56808 l_line_definition_owner_code VARCHAR2(1);
56810 -- adr variables
56811 l_segment VARCHAR2(30);
56812 l_ccid NUMBER;
56813 l_adr_transaction_coa_id NUMBER;
56814 l_adr_accounting_coa_id NUMBER;
56815 l_adr_flexfield_segment_code VARCHAR2(30);
56816 l_adr_flex_value_set_id NUMBER;
56817 l_adr_value_type_code VARCHAR2(30);
56818 l_adr_value_combination_id NUMBER;
56819 l_adr_value_segment_code VARCHAR2(30);
56820
56821 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56822 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56823 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56824 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56825
56826 -- 4262811 Variables ------------------------------------------------------------------------------------------
56827 l_entered_amt_idx NUMBER;
56828 l_accted_amt_idx NUMBER;
56829 l_acc_rev_flag VARCHAR2(1);
56830 l_accrual_line_num NUMBER;
56831 l_tmp_amt NUMBER;
56832 l_acc_rev_natural_side_code VARCHAR2(1);
56833
56834 l_num_entries NUMBER;
56835 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56836 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56837 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56838 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56839 l_recog_line_1 NUMBER;
56840 l_recog_line_2 NUMBER;
56841
56842 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56843 l_bflow_applied_to_amt NUMBER; -- 5132302
56844 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56845
56846 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56847
56848 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56849 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56850
56851 ---------------------------------------------------------------------------------------------------------------
56852
56853
56854 --
56855 -- bulk performance
56856 --
56857 l_balance_type_code VARCHAR2(1);
56858 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56859 l_log_module VARCHAR2(240);
56860
56861 --
56862 -- Upgrade strategy
56863 --
56864 l_actual_upg_option VARCHAR2(1);
56865 l_enc_upg_option VARCHAR2(1);
56866
56867 --
56868 BEGIN
56869 --
56870 IF g_log_enabled THEN
56871 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
56872 END IF;
56873 --
56874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56875
56876 trace
56877 (p_msg => 'BEGIN of AcctLineType_109'
56878 ,p_level => C_LEVEL_PROCEDURE
56879 ,p_module => l_log_module);
56880
56881 END IF;
56882 --
56883 l_component_type := 'AMB_JLT';
56884 l_component_code := 'AP_ITEM_EXPENSE_REF';
56885 l_component_type_code := 'S';
56886 l_component_appl_id := 200;
56887 l_amb_context_code := 'DEFAULT';
56888 l_entity_code := 'AP_PAYMENTS';
56889 l_event_class_code := 'REFUNDS';
56890 l_event_type_code := 'REFUNDS_ALL';
56891 l_line_definition_owner_code := 'S';
56892 l_line_definition_code := 'CASH_REFUNDS_ALL';
56893 --
56894 l_balance_type_code := 'A';
56895 l_segment := NULL;
56896 l_ccid := NULL;
56897 l_adr_transaction_coa_id := NULL;
56898 l_adr_accounting_coa_id := NULL;
56899 l_adr_flexfield_segment_code := NULL;
56900 l_adr_flex_value_set_id := NULL;
56901 l_adr_value_type_code := NULL;
56902 l_adr_value_combination_id := NULL;
56903 l_adr_value_segment_code := NULL;
56904
56905 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56906 l_bflow_class_code := ''; -- 4219869 Business Flow
56907 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56908 l_budgetary_control_flag := 'N';
56909
56910 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56911 l_bflow_applied_to_amt := NULL; -- 5132302
56912 l_entered_amt_idx := NULL; -- 4262811
56913 l_accted_amt_idx := NULL; -- 4262811
56914 l_acc_rev_flag := NULL; -- 4262811
56915 l_accrual_line_num := NULL; -- 4262811
56916 l_tmp_amt := NULL; -- 4262811
56917 --
56918
56919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56920 l_balance_type_code <> 'B' THEN
56921 IF NVL(p_source_50,'
56922 ') <> 'CLEAR_CLEAR' AND
56923 (NVL(p_source_32,'
56924 ') = 'ITEM' OR
56925 NVL(p_source_32,'
56926 ') = 'RETROEXPENSE' OR
56927 NVL(p_source_32,'
56928 ') = 'ERV' AND
56929 NVL(p_source_111,'
56930 ') <> 'Y' OR
56931 NVL(p_source_32,'
56932 ') = 'IPV' AND
56933 NVL(p_source_111,'
56934 ') <> 'Y') AND
56935 (NVL(p_source_51,'
56936 ') = 'CASH' OR
56940 ') = 'R'
56937 NVL(p_source_51,'
56938 ') = 'DISCOUNT') AND
56939 NVL(p_source_71,'
56941 THEN
56942
56943 --
56944 XLA_AE_LINES_PKG.SetNewLine;
56945
56946 p_balance_type_code := l_balance_type_code;
56947 -- set the flag so later we will know whether the gain loss line needs to be created
56948
56949 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56950 p_actual_flag :='A';
56951 END IF;
56952
56953 --
56954 -- bulk performance
56955 --
56956 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56957 p_header_num => 0); -- 4262811
56958 --
56959 -- set accounting line options
56960 --
56961 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56962 p_natural_side_code => 'D'
56963 , p_gain_or_loss_flag => 'N'
56964 , p_gl_transfer_mode_code => 'S'
56965 , p_acct_entry_type_code => 'A'
56966 , p_switch_side_flag => 'Y'
56967 , p_merge_duplicate_code => 'A'
56968 );
56969 --
56970 l_acc_rev_natural_side_code := 'C'; -- 4262811
56971 --
56972 --
56973 -- set accounting line type info
56974 --
56975 xla_ae_lines_pkg.SetAcctLineType
56976 (p_component_type => l_component_type
56977 ,p_event_type_code => l_event_type_code
56978 ,p_line_definition_owner_code => l_line_definition_owner_code
56979 ,p_line_definition_code => l_line_definition_code
56980 ,p_accounting_line_code => l_component_code
56981 ,p_accounting_line_type_code => l_component_type_code
56982 ,p_accounting_line_appl_id => l_component_appl_id
56983 ,p_amb_context_code => l_amb_context_code
56984 ,p_entity_code => l_entity_code
56985 ,p_event_class_code => l_event_class_code);
56986 --
56987 -- set accounting class
56988 --
56989 xla_ae_lines_pkg.SetAcctClass(
56990 p_accounting_class_code => 'ITEM EXPENSE'
56991 , p_ae_header_id => l_ae_header_id
56992 );
56993
56994 --
56995 -- set rounding class
56996 --
56997 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56998 'ITEM EXPENSE';
56999
57000 --
57001 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57002 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57003 --
57004 -- bulk performance
57005 --
57006 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57007
57008 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57009 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57010
57011 -- 4955764
57012 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57013 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57014
57015 -- 4458381 Public Sector Enh
57016
57017 --
57018 -- set accounting attributes for the line type
57019 --
57020 l_entered_amt_idx := 9;
57021 l_accted_amt_idx := 14;
57022 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57023 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57024 l_rec_acct_attrs.array_char_value(1) := p_source_52;
57025 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
57026 l_rec_acct_attrs.array_num_value(2) := p_source_54;
57027 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57028 l_rec_acct_attrs.array_char_value(3) := p_source_73;
57029 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
57030 l_rec_acct_attrs.array_char_value(4) := p_source_74;
57031 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
57032 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
57033 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57034 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
57035 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
57036 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
57037 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
57038 l_rec_acct_attrs.array_char_value(8) := p_source_60;
57039 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
57040 l_rec_acct_attrs.array_num_value(9) := p_source_53;
57041 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
57042 l_rec_acct_attrs.array_char_value(10) := p_source_12;
57043 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
57044 l_rec_acct_attrs.array_date_value(11) := p_source_121;
57045 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
57046 l_rec_acct_attrs.array_num_value(12) := p_source_122;
57047 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
57048 l_rec_acct_attrs.array_char_value(13) := p_source_123;
57049 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
57050 l_rec_acct_attrs.array_num_value(14) := p_source_21;
57051 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
57052 l_rec_acct_attrs.array_char_value(15) := p_source_64;
57053 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
57057 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
57054 l_rec_acct_attrs.array_num_value(16) := p_source_65;
57055 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
57056 l_rec_acct_attrs.array_num_value(17) := p_source_66;
57058 l_rec_acct_attrs.array_char_value(18) := p_source_67;
57059 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
57060 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
57061 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
57062 l_rec_acct_attrs.array_char_value(20) := p_source_60;
57063 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
57064 l_rec_acct_attrs.array_num_value(21) := p_source_69;
57065 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
57066 l_rec_acct_attrs.array_num_value(22) := p_source_77;
57067 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
57068 l_rec_acct_attrs.array_num_value(23) := p_source_70;
57069
57070 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57071 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57072
57073 ---------------------------------------------------------------------------------------------------------------
57074 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57075 ---------------------------------------------------------------------------------------------------------------
57076 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57077
57078 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57079 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57080
57081 IF xla_accounting_cache_pkg.GetValueChar
57082 (p_source_code => 'LEDGER_CATEGORY_CODE'
57083 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57084 AND l_bflow_method_code = 'PRIOR_ENTRY'
57085 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57086 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57087 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57088 )
57089 THEN
57090 xla_ae_lines_pkg.BflowUpgEntry
57091 (p_business_method_code => l_bflow_method_code
57092 ,p_business_class_code => l_bflow_class_code
57093 ,p_balance_type => l_balance_type_code);
57094 ELSE
57095 NULL;
57096 -- No business flow processing for business flow method of NONE.
57097 END IF;
57098
57099 --
57100 -- call analytical criteria
57101 --
57102
57103 --
57104 -- call description
57105 --
57106 -- No description or it is inherited.
57107 --
57108 -- call ADRs
57109 -- Bug 4922099
57110 --
57111 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57112 (NVL(l_actual_upg_option, 'N') = 'O') OR
57113 (NVL(l_enc_upg_option, 'N') = 'O')
57114 )
57115 THEN
57116 NULL;
57117 --
57118 --
57119
57120 l_ccid := AcctDerRule_28(
57121 p_application_id => p_application_id
57122 , p_ae_header_id => l_ae_header_id
57123 , p_source_29 => p_source_29
57124 , x_transaction_coa_id => l_adr_transaction_coa_id
57125 , x_accounting_coa_id => l_adr_accounting_coa_id
57126 , x_value_type_code => l_adr_value_type_code
57127 , p_side => 'NA'
57128 );
57129
57130 xla_ae_lines_pkg.set_ccid(
57131 p_code_combination_id => l_ccid
57132 , p_value_type_code => l_adr_value_type_code
57133 , p_transaction_coa_id => l_adr_transaction_coa_id
57134 , p_accounting_coa_id => l_adr_accounting_coa_id
57135 , p_adr_code => 'AP_INVOICE_DIST'
57136 , p_adr_type_code => 'S'
57137 , p_component_type => l_component_type
57138 , p_component_code => l_component_code
57139 , p_component_type_code => l_component_type_code
57140 , p_component_appl_id => l_component_appl_id
57141 , p_amb_context_code => l_amb_context_code
57142 , p_side => 'NA'
57143 );
57144
57145
57146 --
57147 --
57148 END IF;
57149 --
57150 -- Bug 4922099
57151 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57152 (NVL(l_enc_upg_option, 'N') = 'O')
57153 ) AND
57154 (l_bflow_method_code = 'PRIOR_ENTRY')
57155 )
57156 THEN
57157 IF
57158 --
57159 1 = 2
57160 --
57161 THEN
57162 xla_accounting_err_pkg.build_message
57163 (p_appli_s_name => 'XLA'
57164 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57165 ,p_token_1 => 'LINE_NUMBER'
57166 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57167 ,p_token_2 => 'LINE_TYPE_NAME'
57168 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57172 ,l_component_appl_id
57169 l_component_type
57170 ,l_component_code
57171 ,l_component_type_code
57173 ,l_amb_context_code
57174 ,l_entity_code
57175 ,l_event_class_code
57176 )
57177 ,p_token_3 => 'OWNER'
57178 ,p_value_3 => xla_lookups_pkg.get_meaning(
57179 p_lookup_type => 'XLA_OWNER_TYPE'
57180 ,p_lookup_code => l_component_type_code
57181 )
57182 ,p_token_4 => 'PRODUCT_NAME'
57183 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57184 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57185 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57186 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57187 ,p_ae_header_id => NULL
57188 );
57189
57190 IF (C_LEVEL_ERROR>= g_log_level) THEN
57191 trace
57192 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57193 ,p_level => C_LEVEL_ERROR
57194 ,p_module => l_log_module);
57195 END IF;
57196 END IF;
57197 END IF;
57198 --
57199 --
57200 ------------------------------------------------------------------------------------------------
57201 -- 4219869 Business Flow
57202 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57203 -- Prior Entry. Currently, the following code is always generated.
57204 ------------------------------------------------------------------------------------------------
57205 XLA_AE_LINES_PKG.ValidateCurrentLine;
57206
57207 ------------------------------------------------------------------------------------
57208 -- 4219869 Business Flow
57209 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57210 ------------------------------------------------------------------------------------
57211 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57212
57213 ----------------------------------------------------------------------------------
57214 -- 4219869 Business Flow
57215 -- Update journal entry status -- Need to generate this within IF <condition>
57216 ----------------------------------------------------------------------------------
57217 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57218 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57219 ,p_balance_type_code => l_balance_type_code
57220 );
57221
57222 -------------------------------------------------------------------------------------------
57223 -- 4262811 - Generate the Accrual Reversal lines
57224 -------------------------------------------------------------------------------------------
57225 BEGIN
57226 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57227 (g_array_event(p_event_id).array_value_num('header_index'));
57228 IF l_acc_rev_flag IS NULL THEN
57229 l_acc_rev_flag := 'N';
57230 END IF;
57231 EXCEPTION
57232 WHEN OTHERS THEN
57233 l_acc_rev_flag := 'N';
57234 END;
57235 --
57236 IF (l_acc_rev_flag = 'Y') THEN
57237
57238 -- 4645092 ------------------------------------------------------------------------------
57239 -- To allow MPA report to determine if it should generate report process
57240 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57241 ------------------------------------------------------------------------------------------
57242
57243 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57244 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57245 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57246 -- call ADRs
57247 -- Bug 4922099
57248 --
57249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57250 (NVL(l_actual_upg_option, 'N') = 'O') OR
57251 (NVL(l_enc_upg_option, 'N') = 'O')
57252 )
57253 THEN
57254 NULL;
57255 --
57256 --
57257
57258 l_ccid := AcctDerRule_28(
57259 p_application_id => p_application_id
57260 , p_ae_header_id => l_ae_header_id
57261 , p_source_29 => p_source_29
57262 , x_transaction_coa_id => l_adr_transaction_coa_id
57263 , x_accounting_coa_id => l_adr_accounting_coa_id
57264 , x_value_type_code => l_adr_value_type_code
57265 , p_side => 'NA'
57266 );
57267
57271 , p_transaction_coa_id => l_adr_transaction_coa_id
57268 xla_ae_lines_pkg.set_ccid(
57269 p_code_combination_id => l_ccid
57270 , p_value_type_code => l_adr_value_type_code
57272 , p_accounting_coa_id => l_adr_accounting_coa_id
57273 , p_adr_code => 'AP_INVOICE_DIST'
57274 , p_adr_type_code => 'S'
57275 , p_component_type => l_component_type
57276 , p_component_code => l_component_code
57277 , p_component_type_code => l_component_type_code
57278 , p_component_appl_id => l_component_appl_id
57279 , p_amb_context_code => l_amb_context_code
57280 , p_side => 'NA'
57281 );
57282
57283
57284 --
57285 --
57286 END IF;
57287
57288 --
57289 -- Update the line information that should be overwritten
57290 --
57291 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57292 p_header_num => 1);
57293 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57294
57295 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57296
57297 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57298 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57299 END IF;
57300
57301 --
57302 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57303 --
57304 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57305 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57306 ELSE
57307 ---------------------------------------------------------------------------------------------------
57308 -- 4262811a Switch Sign
57309 ---------------------------------------------------------------------------------------------------
57310 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57311 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57312 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57313 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57314 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57315 -- 5132302
57316 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57317 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57318
57319 END IF;
57320
57321 -- 4955764
57322 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57323 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57324
57325
57326 XLA_AE_LINES_PKG.ValidateCurrentLine;
57327 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57328
57329 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57330 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57331 ,p_balance_type_code => l_balance_type_code);
57332
57333 END IF;
57334
57335 -----------------------------------------------------------------------------------------
57336 -- 4262811 Multiperiod Accounting
57337 -----------------------------------------------------------------------------------------
57338 -- No MPA option is assigned.
57339
57340
57341 END IF;
57342 END IF;
57343 --
57344
57345 --
57346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57347 trace
57348 (p_msg => 'END of AcctLineType_109'
57349 ,p_level => C_LEVEL_PROCEDURE
57350 ,p_module => l_log_module);
57351 END IF;
57352 --
57353 EXCEPTION
57354 WHEN xla_exceptions_pkg.application_exception THEN
57355 RAISE;
57356 WHEN OTHERS THEN
57357 xla_exceptions_pkg.raise_message
57358 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_109');
57359 END AcctLineType_109;
57360 --
57361
57362 ---------------------------------------
57363 --
57364 -- PRIVATE FUNCTION
57365 -- AcctLineType_110
57366 --
57367 ---------------------------------------
57368 PROCEDURE AcctLineType_110 (
57369 p_application_id IN NUMBER
57370 ,p_event_id IN NUMBER
57371 ,p_calculate_acctd_flag IN VARCHAR2
57372 ,p_calculate_g_l_flag IN VARCHAR2
57373 ,p_actual_flag IN OUT VARCHAR2
57374 ,p_balance_type_code OUT VARCHAR2
57375 ,p_gain_or_loss_ref OUT VARCHAR2
57376
57377 --Recipient Invoice Distribution Account
57378 , p_source_48 IN NUMBER
57379 --When to Account for Payment Option
57380 , p_source_50 IN VARCHAR2
57381 --Accounting Reversal Indicator
57382 , p_source_52 IN VARCHAR2
57383 --Business Flow Accounts Payable Application Identifier
57384 , p_source_54 IN NUMBER
57385 --Distribution Link Type
57386 , p_source_60 IN VARCHAR2
57387 --Override Accounted Amount Indicator
57391 , p_source_67 IN VARCHAR2
57388 , p_source_64 IN VARCHAR2
57389 , p_source_64_meaning IN VARCHAR2
57390 --Third Party Type
57392 --Invoice Distribution Tax Line Identifier
57393 , p_source_69 IN NUMBER
57394 --Invoice Distribution Summary Tax Line Identifier
57395 , p_source_70 IN NUMBER
57396 --Invoice Distribution Tax Distribution Identifier from Tax
57397 , p_source_77 IN NUMBER
57398 --Prepayment Distribution Type
57399 , p_source_78 IN VARCHAR2
57400 --Recipient Invoice Distribution Type
57401 , p_source_79 IN VARCHAR2
57402 , p_source_79_meaning IN VARCHAR2
57403 --Prepayment Application Distribution Identifier
57404 , p_source_82 IN NUMBER
57405 --Invoice Identifier
57406 , p_source_83 IN NUMBER
57407 --Business Flow Prepayment Invoice Distribution Type
57408 , p_source_84 IN VARCHAR2
57409 --Business Flow Prepayment Invoice Entity Code
57410 , p_source_85 IN VARCHAR2
57411 --Business Flow Prepayment Invoice Distribution Identifier
57412 , p_source_86 IN NUMBER
57413 --Business Flow Prepayment Invoice Identifier
57414 , p_source_87 IN NUMBER
57415 --Upgrade Encumbrance Credit Account Class
57416 , p_source_88 IN VARCHAR2
57417 --Payables Encumbrance Upgrade Credit Account
57418 , p_source_89 IN NUMBER
57419 --Payables Encumbrance Upgrade Credit Amount
57420 , p_source_90 IN NUMBER
57421 --Invoice Currency Code
57422 , p_source_91 IN VARCHAR2
57423 --Payables Encumbrance Upgrade Credit Base Amount
57424 , p_source_92 IN NUMBER
57425 --Upgrade Encumbrance Debit Account Class
57426 , p_source_93 IN VARCHAR2
57427 --Payables Encumbrance Upgrade Debit Account
57428 , p_source_94 IN NUMBER
57429 --Payables Encumbrance Upgrade Debit Amount
57430 , p_source_95 IN NUMBER
57431 --Payables Encumbrance Upgrade Debit Base Amount
57432 , p_source_96 IN NUMBER
57433 --Payables Encumbrance Upgrade Option
57434 , p_source_97 IN VARCHAR2
57435 --Prepayment Distribution Amount
57436 , p_source_98 IN NUMBER
57437 --Prepayment Clearing Currency Code
57438 , p_source_99 IN VARCHAR2
57439 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
57440 , p_source_100 IN NUMBER
57441 --Deferred Accounting End Date
57442 , p_source_101 IN DATE
57443 --Deferred Accounting Option
57444 , p_source_102 IN VARCHAR2
57445 --Deferred Accounting Start Date
57446 , p_source_103 IN DATE
57447 --Invoice Supplier Identifier
57448 , p_source_104 IN NUMBER
57449 --Invoice Supplier Site Identifier
57450 , p_source_105 IN NUMBER
57451 --Identifier of the Prepayment Application Reversed
57452 , p_source_106 IN NUMBER
57453 --Payables Upgrade Credit Encumbrance Type Identifier
57454 , p_source_107 IN NUMBER
57455 --Payables Upgrade Debit Encumbrance Type Identifier
57456 , p_source_108 IN NUMBER
57457 --Accrue on Receipt Option
57458 , p_source_111 IN VARCHAR2
57459 , p_source_111_meaning IN VARCHAR2
57460 --Prepayment Clearing Exchange Date
57461 , p_source_125 IN DATE
57462 --Prepayment Clearing Exchange Rate
57463 , p_source_126 IN NUMBER
57464 --Prepayment Clearing Exchange Rate Type
57465 , p_source_127 IN VARCHAR2
57466 )
57467 IS
57468
57469 l_component_type VARCHAR2(80);
57470 l_component_code VARCHAR2(30);
57471 l_component_type_code VARCHAR2(1);
57472 l_component_appl_id INTEGER;
57473 l_amb_context_code VARCHAR2(30);
57474 l_entity_code VARCHAR2(30);
57475 l_event_class_code VARCHAR2(30);
57476 l_ae_header_id NUMBER;
57477 l_event_type_code VARCHAR2(30);
57478 l_line_definition_code VARCHAR2(30);
57479 l_line_definition_owner_code VARCHAR2(1);
57480 --
57481 -- adr variables
57482 l_segment VARCHAR2(30);
57483 l_ccid NUMBER;
57484 l_adr_transaction_coa_id NUMBER;
57485 l_adr_accounting_coa_id NUMBER;
57486 l_adr_flexfield_segment_code VARCHAR2(30);
57487 l_adr_flex_value_set_id NUMBER;
57488 l_adr_value_type_code VARCHAR2(30);
57489 l_adr_value_combination_id NUMBER;
57490 l_adr_value_segment_code VARCHAR2(30);
57491
57492 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57493 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57494 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57495 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57496
57497 -- 4262811 Variables ------------------------------------------------------------------------------------------
57498 l_entered_amt_idx NUMBER;
57499 l_accted_amt_idx NUMBER;
57500 l_acc_rev_flag VARCHAR2(1);
57501 l_accrual_line_num NUMBER;
57502 l_tmp_amt NUMBER;
57503 l_acc_rev_natural_side_code VARCHAR2(1);
57504
57505 l_num_entries NUMBER;
57506 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57507 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57508 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57512
57509 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57510 l_recog_line_1 NUMBER;
57511 l_recog_line_2 NUMBER;
57513 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57514 l_bflow_applied_to_amt NUMBER; -- 5132302
57515 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57516
57517 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57518
57519 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57520 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57521
57522 ---------------------------------------------------------------------------------------------------------------
57523
57524
57525 --
57526 -- bulk performance
57527 --
57528 l_balance_type_code VARCHAR2(1);
57529 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57530 l_log_module VARCHAR2(240);
57531
57532 --
57533 -- Upgrade strategy
57534 --
57535 l_actual_upg_option VARCHAR2(1);
57536 l_enc_upg_option VARCHAR2(1);
57537
57538 --
57539 BEGIN
57540 --
57541 IF g_log_enabled THEN
57542 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
57543 END IF;
57544 --
57545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57546
57547 trace
57548 (p_msg => 'BEGIN of AcctLineType_110'
57549 ,p_level => C_LEVEL_PROCEDURE
57550 ,p_module => l_log_module);
57551
57552 END IF;
57553 --
57554 l_component_type := 'AMB_JLT';
57555 l_component_code := 'AP_ITEM_PREPAY_CLR_RATE_APP';
57556 l_component_type_code := 'S';
57557 l_component_appl_id := 200;
57558 l_amb_context_code := 'DEFAULT';
57559 l_entity_code := 'AP_INVOICES';
57560 l_event_class_code := 'PREPAYMENT APPLICATIONS';
57561 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
57562 l_line_definition_owner_code := 'S';
57563 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
57564 --
57565 l_balance_type_code := 'A';
57566 l_segment := NULL;
57567 l_ccid := NULL;
57568 l_adr_transaction_coa_id := NULL;
57569 l_adr_accounting_coa_id := NULL;
57570 l_adr_flexfield_segment_code := NULL;
57571 l_adr_flex_value_set_id := NULL;
57572 l_adr_value_type_code := NULL;
57573 l_adr_value_combination_id := NULL;
57574 l_adr_value_segment_code := NULL;
57575
57576 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
57577 l_bflow_class_code := ''; -- 4219869 Business Flow
57578 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57579 l_budgetary_control_flag := 'N';
57580
57581 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57582 l_bflow_applied_to_amt := NULL; -- 5132302
57583 l_entered_amt_idx := NULL; -- 4262811
57584 l_accted_amt_idx := NULL; -- 4262811
57585 l_acc_rev_flag := NULL; -- 4262811
57586 l_accrual_line_num := NULL; -- 4262811
57587 l_tmp_amt := NULL; -- 4262811
57588 --
57589
57590 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57591 l_balance_type_code <> 'B' THEN
57592 IF NVL(p_source_50,'
57593 ') = 'CLEAR_CLEAR' AND
57594 (NVL(p_source_78,'
57595 ') = 'PREPAY APPL' OR
57596 NVL(p_source_78,'
57597 ') = 'PREPAY APPL NONREC TAX' OR
57598 NVL(p_source_78,'
57599 ') = 'PREPAY APPL REC TAX') AND
57600 (NVL(p_source_79,'
57601 ') = 'ITEM' OR
57602 NVL(p_source_79,'
57603 ') = 'RETROEXPENSE' OR
57604 NVL(p_source_79,'
57605 ') = 'ERV' AND
57606 NVL(p_source_111,'
57607 ') <> 'Y' OR
57608 NVL(p_source_79,'
57609 ') = 'IPV' AND
57610 NVL(p_source_111,'
57611 ') <> 'Y')
57612 THEN
57613
57614 --
57615 XLA_AE_LINES_PKG.SetNewLine;
57616
57617 p_balance_type_code := l_balance_type_code;
57618 -- set the flag so later we will know whether the gain loss line needs to be created
57619
57620 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57621 p_actual_flag :='A';
57622 END IF;
57623
57624 --
57625 -- bulk performance
57626 --
57627 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57628 p_header_num => 0); -- 4262811
57629 --
57630 -- set accounting line options
57631 --
57632 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57633 p_natural_side_code => 'C'
57634 , p_gain_or_loss_flag => 'N'
57635 , p_gl_transfer_mode_code => 'S'
57636 , p_acct_entry_type_code => 'A'
57637 , p_switch_side_flag => 'Y'
57638 , p_merge_duplicate_code => 'A'
57639 );
57640 --
57641 l_acc_rev_natural_side_code := 'D'; -- 4262811
57642 --
57643 --
57644 -- set accounting line type info
57645 --
57646 xla_ae_lines_pkg.SetAcctLineType
57647 (p_component_type => l_component_type
57648 ,p_event_type_code => l_event_type_code
57652 ,p_accounting_line_type_code => l_component_type_code
57649 ,p_line_definition_owner_code => l_line_definition_owner_code
57650 ,p_line_definition_code => l_line_definition_code
57651 ,p_accounting_line_code => l_component_code
57653 ,p_accounting_line_appl_id => l_component_appl_id
57654 ,p_amb_context_code => l_amb_context_code
57655 ,p_entity_code => l_entity_code
57656 ,p_event_class_code => l_event_class_code);
57657 --
57658 -- set accounting class
57659 --
57660 xla_ae_lines_pkg.SetAcctClass(
57661 p_accounting_class_code => 'ITEM EXPENSE'
57662 , p_ae_header_id => l_ae_header_id
57663 );
57664
57665 --
57666 -- set rounding class
57667 --
57668 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57669 'ITEM EXPENSE';
57670
57671 --
57672 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57673 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57674 --
57675 -- bulk performance
57676 --
57677 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57678
57679 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57680 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57681
57682 -- 4955764
57683 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57684 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57685
57686 -- 4458381 Public Sector Enh
57687
57688 --
57689 -- set accounting attributes for the line type
57690 --
57691 l_entered_amt_idx := 25;
57692 l_accted_amt_idx := 30;
57693 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57694 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57695 l_rec_acct_attrs.array_char_value(1) := p_source_52;
57696 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57697 l_rec_acct_attrs.array_num_value(2) :=
57698 xla_ae_sources_pkg.GetSystemSourceNum(
57699 p_source_code => 'XLA_EVENT_APPL_ID'
57700 , p_source_type_code => 'Y'
57701 , p_source_application_id => 602
57702 );
57703 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57704 l_rec_acct_attrs.array_char_value(3) := p_source_60;
57705 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57706 l_rec_acct_attrs.array_char_value(4) :=
57707 xla_ae_sources_pkg.GetSystemSourceChar(
57708 p_source_code => 'XLA_ENTITY_CODE'
57709 , p_source_type_code => 'Y'
57710 , p_source_application_id => 602
57711 );
57712 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57713 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
57714 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57715 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
57716 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57717 l_rec_acct_attrs.array_num_value(7) := p_source_54;
57718 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57719 l_rec_acct_attrs.array_char_value(8) := p_source_84;
57720 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57721 l_rec_acct_attrs.array_char_value(9) := p_source_85;
57722 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57723 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
57724 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57725 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
57726 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57727 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
57728 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57729 l_rec_acct_attrs.array_char_value(13) := p_source_60;
57730 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
57731 l_rec_acct_attrs.array_char_value(14) := p_source_88;
57732 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
57733 l_rec_acct_attrs.array_num_value(15) := p_source_89;
57734 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
57735 l_rec_acct_attrs.array_num_value(16) := p_source_90;
57736 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
57737 l_rec_acct_attrs.array_char_value(17) := p_source_91;
57738 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
57739 l_rec_acct_attrs.array_num_value(18) := p_source_92;
57740 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
57741 l_rec_acct_attrs.array_char_value(19) := p_source_93;
57742 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
57743 l_rec_acct_attrs.array_num_value(20) := p_source_94;
57744 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
57745 l_rec_acct_attrs.array_num_value(21) := p_source_95;
57746 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
57747 l_rec_acct_attrs.array_char_value(22) := p_source_91;
57748 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
57749 l_rec_acct_attrs.array_num_value(23) := p_source_96;
57750 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
57754 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
57751 l_rec_acct_attrs.array_char_value(24) := p_source_97;
57752 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
57753 l_rec_acct_attrs.array_num_value(25) := p_source_98;
57755 l_rec_acct_attrs.array_char_value(26) := p_source_99;
57756 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
57757 l_rec_acct_attrs.array_date_value(27) := p_source_125;
57758 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
57759 l_rec_acct_attrs.array_num_value(28) := p_source_126;
57760 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
57761 l_rec_acct_attrs.array_char_value(29) := p_source_127;
57762 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
57763 l_rec_acct_attrs.array_num_value(30) := p_source_100;
57764 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
57765 l_rec_acct_attrs.array_date_value(31) := p_source_101;
57766 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
57767 l_rec_acct_attrs.array_char_value(32) := p_source_102;
57768 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
57769 l_rec_acct_attrs.array_date_value(33) := p_source_103;
57770 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
57771 l_rec_acct_attrs.array_char_value(34) := p_source_64;
57772 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
57773 l_rec_acct_attrs.array_num_value(35) := p_source_104;
57774 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
57775 l_rec_acct_attrs.array_num_value(36) := p_source_105;
57776 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
57777 l_rec_acct_attrs.array_char_value(37) := p_source_67;
57778 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
57779 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
57780 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
57781 l_rec_acct_attrs.array_char_value(39) := p_source_60;
57782 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
57783 l_rec_acct_attrs.array_num_value(40) := p_source_69;
57784 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
57785 l_rec_acct_attrs.array_num_value(41) := p_source_77;
57786 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
57787 l_rec_acct_attrs.array_num_value(42) := p_source_70;
57788 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
57789 l_rec_acct_attrs.array_num_value(43) := p_source_107;
57790 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
57791 l_rec_acct_attrs.array_num_value(44) := p_source_108;
57792
57793 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57794 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57795
57796 ---------------------------------------------------------------------------------------------------------------
57797 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57798 ---------------------------------------------------------------------------------------------------------------
57799 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57800
57801 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57802 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57803
57804 IF xla_accounting_cache_pkg.GetValueChar
57805 (p_source_code => 'LEDGER_CATEGORY_CODE'
57806 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57807 AND l_bflow_method_code = 'PRIOR_ENTRY'
57808 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57809 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57810 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57811 )
57812 THEN
57813 xla_ae_lines_pkg.BflowUpgEntry
57814 (p_business_method_code => l_bflow_method_code
57815 ,p_business_class_code => l_bflow_class_code
57816 ,p_balance_type => l_balance_type_code);
57817 ELSE
57818 NULL;
57819 -- No business flow processing for business flow method of NONE.
57820 END IF;
57821
57822 --
57823 -- call analytical criteria
57824 --
57825
57826 --
57827 -- call description
57828 --
57829 -- No description or it is inherited.
57830 --
57831 -- call ADRs
57832 -- Bug 4922099
57833 --
57834 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57835 (NVL(l_actual_upg_option, 'N') = 'O') OR
57836 (NVL(l_enc_upg_option, 'N') = 'O')
57837 )
57838 THEN
57839 NULL;
57840 --
57841 --
57842
57843 l_ccid := AcctDerRule_35(
57844 p_application_id => p_application_id
57845 , p_ae_header_id => l_ae_header_id
57846 , p_source_48 => p_source_48
57847 , x_transaction_coa_id => l_adr_transaction_coa_id
57848 , x_accounting_coa_id => l_adr_accounting_coa_id
57849 , x_value_type_code => l_adr_value_type_code
57850 , p_side => 'NA'
57851 );
57852
57853 xla_ae_lines_pkg.set_ccid(
57854 p_code_combination_id => l_ccid
57855 , p_value_type_code => l_adr_value_type_code
57859 , p_adr_type_code => 'S'
57856 , p_transaction_coa_id => l_adr_transaction_coa_id
57857 , p_accounting_coa_id => l_adr_accounting_coa_id
57858 , p_adr_code => 'AP_RECP_INV_DIST'
57860 , p_component_type => l_component_type
57861 , p_component_code => l_component_code
57862 , p_component_type_code => l_component_type_code
57863 , p_component_appl_id => l_component_appl_id
57864 , p_amb_context_code => l_amb_context_code
57865 , p_side => 'NA'
57866 );
57867
57868
57869 --
57870 --
57871 END IF;
57872 --
57873 -- Bug 4922099
57874 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57875 (NVL(l_enc_upg_option, 'N') = 'O')
57876 ) AND
57877 (l_bflow_method_code = 'PRIOR_ENTRY')
57878 )
57879 THEN
57880 IF
57881 --
57882 1 = 2
57883 --
57884 THEN
57885 xla_accounting_err_pkg.build_message
57886 (p_appli_s_name => 'XLA'
57887 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57888 ,p_token_1 => 'LINE_NUMBER'
57889 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57890 ,p_token_2 => 'LINE_TYPE_NAME'
57891 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57892 l_component_type
57893 ,l_component_code
57894 ,l_component_type_code
57895 ,l_component_appl_id
57896 ,l_amb_context_code
57897 ,l_entity_code
57898 ,l_event_class_code
57899 )
57900 ,p_token_3 => 'OWNER'
57901 ,p_value_3 => xla_lookups_pkg.get_meaning(
57902 p_lookup_type => 'XLA_OWNER_TYPE'
57903 ,p_lookup_code => l_component_type_code
57904 )
57905 ,p_token_4 => 'PRODUCT_NAME'
57906 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57907 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57908 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57909 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57910 ,p_ae_header_id => NULL
57911 );
57912
57913 IF (C_LEVEL_ERROR>= g_log_level) THEN
57914 trace
57915 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57916 ,p_level => C_LEVEL_ERROR
57917 ,p_module => l_log_module);
57918 END IF;
57919 END IF;
57920 END IF;
57921 --
57922 --
57923 ------------------------------------------------------------------------------------------------
57924 -- 4219869 Business Flow
57925 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57926 -- Prior Entry. Currently, the following code is always generated.
57927 ------------------------------------------------------------------------------------------------
57928 XLA_AE_LINES_PKG.ValidateCurrentLine;
57929
57930 ------------------------------------------------------------------------------------
57931 -- 4219869 Business Flow
57932 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57933 ------------------------------------------------------------------------------------
57934 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57935
57936 ----------------------------------------------------------------------------------
57937 -- 4219869 Business Flow
57938 -- Update journal entry status -- Need to generate this within IF <condition>
57939 ----------------------------------------------------------------------------------
57940 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57941 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57942 ,p_balance_type_code => l_balance_type_code
57943 );
57944
57945 -------------------------------------------------------------------------------------------
57946 -- 4262811 - Generate the Accrual Reversal lines
57947 -------------------------------------------------------------------------------------------
57948 BEGIN
57949 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57953 END IF;
57950 (g_array_event(p_event_id).array_value_num('header_index'));
57951 IF l_acc_rev_flag IS NULL THEN
57952 l_acc_rev_flag := 'N';
57954 EXCEPTION
57955 WHEN OTHERS THEN
57956 l_acc_rev_flag := 'N';
57957 END;
57958 --
57959 IF (l_acc_rev_flag = 'Y') THEN
57960
57961 -- 4645092 ------------------------------------------------------------------------------
57962 -- To allow MPA report to determine if it should generate report process
57963 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57964 ------------------------------------------------------------------------------------------
57965
57966 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57967 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57968 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57969 -- call ADRs
57970 -- Bug 4922099
57971 --
57972 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57973 (NVL(l_actual_upg_option, 'N') = 'O') OR
57974 (NVL(l_enc_upg_option, 'N') = 'O')
57975 )
57976 THEN
57977 NULL;
57978 --
57979 --
57980
57981 l_ccid := AcctDerRule_35(
57982 p_application_id => p_application_id
57983 , p_ae_header_id => l_ae_header_id
57984 , p_source_48 => p_source_48
57985 , x_transaction_coa_id => l_adr_transaction_coa_id
57986 , x_accounting_coa_id => l_adr_accounting_coa_id
57987 , x_value_type_code => l_adr_value_type_code
57988 , p_side => 'NA'
57989 );
57990
57991 xla_ae_lines_pkg.set_ccid(
57992 p_code_combination_id => l_ccid
57993 , p_value_type_code => l_adr_value_type_code
57994 , p_transaction_coa_id => l_adr_transaction_coa_id
57995 , p_accounting_coa_id => l_adr_accounting_coa_id
57996 , p_adr_code => 'AP_RECP_INV_DIST'
57997 , p_adr_type_code => 'S'
57998 , p_component_type => l_component_type
57999 , p_component_code => l_component_code
58000 , p_component_type_code => l_component_type_code
58001 , p_component_appl_id => l_component_appl_id
58002 , p_amb_context_code => l_amb_context_code
58003 , p_side => 'NA'
58004 );
58005
58006
58007 --
58008 --
58009 END IF;
58010
58011 --
58012 -- Update the line information that should be overwritten
58013 --
58014 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58015 p_header_num => 1);
58016 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58017
58018 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58019
58020 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58021 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58022 END IF;
58023
58024 --
58025 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58026 --
58027 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58028 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58029 ELSE
58030 ---------------------------------------------------------------------------------------------------
58031 -- 4262811a Switch Sign
58032 ---------------------------------------------------------------------------------------------------
58033 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58034 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58035 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58036 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58037 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58038 -- 5132302
58039 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58040 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58041
58042 END IF;
58043
58044 -- 4955764
58045 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58046 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58047
58048
58049 XLA_AE_LINES_PKG.ValidateCurrentLine;
58050 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58051
58052 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58053 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58054 ,p_balance_type_code => l_balance_type_code);
58055
58056 END IF;
58057
58058 -----------------------------------------------------------------------------------------
58059 -- 4262811 Multiperiod Accounting
58063
58060 -----------------------------------------------------------------------------------------
58061 -- No MPA option is assigned.
58062
58064 END IF;
58065 END IF;
58066 --
58067
58068 --
58069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58070 trace
58071 (p_msg => 'END of AcctLineType_110'
58072 ,p_level => C_LEVEL_PROCEDURE
58073 ,p_module => l_log_module);
58074 END IF;
58075 --
58076 EXCEPTION
58077 WHEN xla_exceptions_pkg.application_exception THEN
58078 RAISE;
58079 WHEN OTHERS THEN
58080 xla_exceptions_pkg.raise_message
58081 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_110');
58082 END AcctLineType_110;
58083 --
58084
58085 ---------------------------------------
58086 --
58087 -- PRIVATE FUNCTION
58088 -- AcctLineType_111
58089 --
58090 ---------------------------------------
58091 PROCEDURE AcctLineType_111 (
58092 p_application_id IN NUMBER
58093 ,p_event_id IN NUMBER
58094 ,p_calculate_acctd_flag IN VARCHAR2
58095 ,p_calculate_g_l_flag IN VARCHAR2
58096 ,p_actual_flag IN OUT VARCHAR2
58097 ,p_balance_type_code OUT VARCHAR2
58098 ,p_gain_or_loss_ref OUT VARCHAR2
58099
58100 --Recipient Invoice Distribution Account
58101 , p_source_48 IN NUMBER
58102 --When to Account for Payment Option
58103 , p_source_50 IN VARCHAR2
58104 --Accounting Reversal Indicator
58105 , p_source_52 IN VARCHAR2
58106 --Business Flow Accounts Payable Application Identifier
58107 , p_source_54 IN NUMBER
58108 --Distribution Link Type
58109 , p_source_60 IN VARCHAR2
58110 --Override Accounted Amount Indicator
58111 , p_source_64 IN VARCHAR2
58112 , p_source_64_meaning IN VARCHAR2
58113 --Third Party Type
58114 , p_source_67 IN VARCHAR2
58115 --Invoice Distribution Tax Line Identifier
58116 , p_source_69 IN NUMBER
58117 --Invoice Distribution Summary Tax Line Identifier
58118 , p_source_70 IN NUMBER
58119 --Invoice Distribution Tax Distribution Identifier from Tax
58120 , p_source_77 IN NUMBER
58121 --Prepayment Distribution Type
58122 , p_source_78 IN VARCHAR2
58123 --Recipient Invoice Distribution Type
58124 , p_source_79 IN VARCHAR2
58125 , p_source_79_meaning IN VARCHAR2
58126 --Prepayment Application Distribution Identifier
58127 , p_source_82 IN NUMBER
58128 --Invoice Identifier
58129 , p_source_83 IN NUMBER
58130 --Business Flow Prepayment Invoice Distribution Type
58131 , p_source_84 IN VARCHAR2
58132 --Business Flow Prepayment Invoice Entity Code
58133 , p_source_85 IN VARCHAR2
58134 --Business Flow Prepayment Invoice Distribution Identifier
58135 , p_source_86 IN NUMBER
58136 --Business Flow Prepayment Invoice Identifier
58137 , p_source_87 IN NUMBER
58138 --Upgrade Encumbrance Credit Account Class
58139 , p_source_88 IN VARCHAR2
58140 --Payables Encumbrance Upgrade Credit Account
58141 , p_source_89 IN NUMBER
58142 --Payables Encumbrance Upgrade Credit Amount
58143 , p_source_90 IN NUMBER
58144 --Invoice Currency Code
58145 , p_source_91 IN VARCHAR2
58146 --Payables Encumbrance Upgrade Credit Base Amount
58147 , p_source_92 IN NUMBER
58148 --Upgrade Encumbrance Debit Account Class
58149 , p_source_93 IN VARCHAR2
58150 --Payables Encumbrance Upgrade Debit Account
58151 , p_source_94 IN NUMBER
58152 --Payables Encumbrance Upgrade Debit Amount
58153 , p_source_95 IN NUMBER
58154 --Payables Encumbrance Upgrade Debit Base Amount
58155 , p_source_96 IN NUMBER
58156 --Payables Encumbrance Upgrade Option
58157 , p_source_97 IN VARCHAR2
58158 --Prepayment Distribution Amount
58159 , p_source_98 IN NUMBER
58160 --Deferred Accounting End Date
58161 , p_source_101 IN DATE
58162 --Deferred Accounting Option
58163 , p_source_102 IN VARCHAR2
58164 --Deferred Accounting Start Date
58165 , p_source_103 IN DATE
58166 --Invoice Supplier Identifier
58167 , p_source_104 IN NUMBER
58168 --Invoice Supplier Site Identifier
58169 , p_source_105 IN NUMBER
58170 --Identifier of the Prepayment Application Reversed
58171 , p_source_106 IN NUMBER
58172 --Payables Upgrade Credit Encumbrance Type Identifier
58173 , p_source_107 IN NUMBER
58174 --Payables Upgrade Debit Encumbrance Type Identifier
58175 , p_source_108 IN NUMBER
58176 --Prepayment Payment Currency Code
58177 , p_source_109 IN VARCHAR2
58178 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
58179 , p_source_110 IN NUMBER
58180 --Accrue on Receipt Option
58181 , p_source_111 IN VARCHAR2
58182 , p_source_111_meaning IN VARCHAR2
58183 --Prepayment Payment Exchange Date
58184 , p_source_128 IN DATE
58185 --Prepayment Payment Exchange Rate
58186 , p_source_129 IN NUMBER
58187 --Prepayment Payment Exchange Rate Type
58188 , p_source_130 IN VARCHAR2
58189 )
58190 IS
58191
58192 l_component_type VARCHAR2(80);
58193 l_component_code VARCHAR2(30);
58194 l_component_type_code VARCHAR2(1);
58195 l_component_appl_id INTEGER;
58199 l_ae_header_id NUMBER;
58196 l_amb_context_code VARCHAR2(30);
58197 l_entity_code VARCHAR2(30);
58198 l_event_class_code VARCHAR2(30);
58200 l_event_type_code VARCHAR2(30);
58201 l_line_definition_code VARCHAR2(30);
58202 l_line_definition_owner_code VARCHAR2(1);
58203 --
58204 -- adr variables
58205 l_segment VARCHAR2(30);
58206 l_ccid NUMBER;
58207 l_adr_transaction_coa_id NUMBER;
58208 l_adr_accounting_coa_id NUMBER;
58209 l_adr_flexfield_segment_code VARCHAR2(30);
58210 l_adr_flex_value_set_id NUMBER;
58211 l_adr_value_type_code VARCHAR2(30);
58212 l_adr_value_combination_id NUMBER;
58213 l_adr_value_segment_code VARCHAR2(30);
58214
58215 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58216 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58217 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58218 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58219
58220 -- 4262811 Variables ------------------------------------------------------------------------------------------
58221 l_entered_amt_idx NUMBER;
58222 l_accted_amt_idx NUMBER;
58223 l_acc_rev_flag VARCHAR2(1);
58224 l_accrual_line_num NUMBER;
58225 l_tmp_amt NUMBER;
58226 l_acc_rev_natural_side_code VARCHAR2(1);
58227
58228 l_num_entries NUMBER;
58229 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58230 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58231 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58232 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58233 l_recog_line_1 NUMBER;
58234 l_recog_line_2 NUMBER;
58235
58236 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58237 l_bflow_applied_to_amt NUMBER; -- 5132302
58238 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58239
58240 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58241
58242 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58243 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58244
58245 ---------------------------------------------------------------------------------------------------------------
58246
58247
58248 --
58249 -- bulk performance
58250 --
58251 l_balance_type_code VARCHAR2(1);
58252 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58253 l_log_module VARCHAR2(240);
58254
58255 --
58256 -- Upgrade strategy
58257 --
58258 l_actual_upg_option VARCHAR2(1);
58259 l_enc_upg_option VARCHAR2(1);
58260
58261 --
58262 BEGIN
58263 --
58264 IF g_log_enabled THEN
58265 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
58266 END IF;
58267 --
58268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58269
58270 trace
58271 (p_msg => 'BEGIN of AcctLineType_111'
58272 ,p_level => C_LEVEL_PROCEDURE
58273 ,p_module => l_log_module);
58274
58275 END IF;
58276 --
58277 l_component_type := 'AMB_JLT';
58278 l_component_code := 'AP_ITEM_PREPAY_PAY_RATE_APP';
58279 l_component_type_code := 'S';
58280 l_component_appl_id := 200;
58281 l_amb_context_code := 'DEFAULT';
58282 l_entity_code := 'AP_INVOICES';
58283 l_event_class_code := 'PREPAYMENT APPLICATIONS';
58284 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
58285 l_line_definition_owner_code := 'S';
58286 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
58287 --
58288 l_balance_type_code := 'A';
58289 l_segment := NULL;
58290 l_ccid := NULL;
58291 l_adr_transaction_coa_id := NULL;
58292 l_adr_accounting_coa_id := NULL;
58293 l_adr_flexfield_segment_code := NULL;
58294 l_adr_flex_value_set_id := NULL;
58295 l_adr_value_type_code := NULL;
58296 l_adr_value_combination_id := NULL;
58297 l_adr_value_segment_code := NULL;
58298
58299 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58300 l_bflow_class_code := ''; -- 4219869 Business Flow
58301 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58302 l_budgetary_control_flag := 'N';
58303
58304 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58305 l_bflow_applied_to_amt := NULL; -- 5132302
58306 l_entered_amt_idx := NULL; -- 4262811
58307 l_accted_amt_idx := NULL; -- 4262811
58308 l_acc_rev_flag := NULL; -- 4262811
58309 l_accrual_line_num := NULL; -- 4262811
58310 l_tmp_amt := NULL; -- 4262811
58311 --
58312
58313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58314 l_balance_type_code <> 'B' THEN
58315 IF NVL(p_source_50,'
58316 ') <> 'CLEAR_CLEAR' AND
58317 (NVL(p_source_78,'
58318 ') = 'PREPAY APPL' OR
58319 NVL(p_source_78,'
58320 ') = 'PREPAY APPL NONREC TAX' OR
58321 NVL(p_source_78,'
58322 ') = 'PREPAY APPL REC TAX') AND
58323 (NVL(p_source_79,'
58327 NVL(p_source_79,'
58324 ') = 'ITEM' OR
58325 NVL(p_source_79,'
58326 ') = 'RETROEXPENSE' OR
58328 ') = 'ERV' AND
58329 NVL(p_source_111,'
58330 ') <> 'Y' OR
58331 NVL(p_source_79,'
58332 ') = 'IPV' AND
58333 NVL(p_source_111,'
58334 ') <> 'Y')
58335 THEN
58336
58337 --
58338 XLA_AE_LINES_PKG.SetNewLine;
58339
58340 p_balance_type_code := l_balance_type_code;
58341 -- set the flag so later we will know whether the gain loss line needs to be created
58342
58343 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58344 p_actual_flag :='A';
58345 END IF;
58346
58347 --
58348 -- bulk performance
58349 --
58350 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58351 p_header_num => 0); -- 4262811
58352 --
58353 -- set accounting line options
58354 --
58355 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58356 p_natural_side_code => 'C'
58357 , p_gain_or_loss_flag => 'N'
58358 , p_gl_transfer_mode_code => 'S'
58359 , p_acct_entry_type_code => 'A'
58360 , p_switch_side_flag => 'Y'
58361 , p_merge_duplicate_code => 'A'
58362 );
58363 --
58364 l_acc_rev_natural_side_code := 'D'; -- 4262811
58365 --
58366 --
58367 -- set accounting line type info
58368 --
58369 xla_ae_lines_pkg.SetAcctLineType
58370 (p_component_type => l_component_type
58371 ,p_event_type_code => l_event_type_code
58372 ,p_line_definition_owner_code => l_line_definition_owner_code
58373 ,p_line_definition_code => l_line_definition_code
58374 ,p_accounting_line_code => l_component_code
58375 ,p_accounting_line_type_code => l_component_type_code
58376 ,p_accounting_line_appl_id => l_component_appl_id
58377 ,p_amb_context_code => l_amb_context_code
58378 ,p_entity_code => l_entity_code
58379 ,p_event_class_code => l_event_class_code);
58380 --
58381 -- set accounting class
58382 --
58383 xla_ae_lines_pkg.SetAcctClass(
58384 p_accounting_class_code => 'ITEM EXPENSE'
58385 , p_ae_header_id => l_ae_header_id
58386 );
58387
58388 --
58389 -- set rounding class
58390 --
58391 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58392 'ITEM EXPENSE';
58393
58394 --
58395 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58396 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58397 --
58398 -- bulk performance
58399 --
58400 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58401
58402 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58403 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58404
58405 -- 4955764
58406 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58407 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58408
58409 -- 4458381 Public Sector Enh
58410
58411 --
58412 -- set accounting attributes for the line type
58413 --
58414 l_entered_amt_idx := 25;
58415 l_accted_amt_idx := 30;
58416 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58417 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58418 l_rec_acct_attrs.array_char_value(1) := p_source_52;
58419 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58420 l_rec_acct_attrs.array_num_value(2) :=
58421 xla_ae_sources_pkg.GetSystemSourceNum(
58422 p_source_code => 'XLA_EVENT_APPL_ID'
58423 , p_source_type_code => 'Y'
58424 , p_source_application_id => 602
58425 );
58426 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58427 l_rec_acct_attrs.array_char_value(3) := p_source_60;
58428 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58429 l_rec_acct_attrs.array_char_value(4) :=
58430 xla_ae_sources_pkg.GetSystemSourceChar(
58431 p_source_code => 'XLA_ENTITY_CODE'
58432 , p_source_type_code => 'Y'
58433 , p_source_application_id => 602
58434 );
58435 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58436 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
58437 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58438 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
58439 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58440 l_rec_acct_attrs.array_num_value(7) := p_source_54;
58441 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58442 l_rec_acct_attrs.array_char_value(8) := p_source_84;
58443 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58444 l_rec_acct_attrs.array_char_value(9) := p_source_85;
58445 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58446 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
58447 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58451 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58448 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
58449 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58450 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
58452 l_rec_acct_attrs.array_char_value(13) := p_source_60;
58453 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
58454 l_rec_acct_attrs.array_char_value(14) := p_source_88;
58455 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
58456 l_rec_acct_attrs.array_num_value(15) := p_source_89;
58457 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
58458 l_rec_acct_attrs.array_num_value(16) := p_source_90;
58459 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
58460 l_rec_acct_attrs.array_char_value(17) := p_source_91;
58461 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
58462 l_rec_acct_attrs.array_num_value(18) := p_source_92;
58463 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
58464 l_rec_acct_attrs.array_char_value(19) := p_source_93;
58465 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
58466 l_rec_acct_attrs.array_num_value(20) := p_source_94;
58467 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
58468 l_rec_acct_attrs.array_num_value(21) := p_source_95;
58469 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
58470 l_rec_acct_attrs.array_char_value(22) := p_source_91;
58471 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
58472 l_rec_acct_attrs.array_num_value(23) := p_source_96;
58473 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
58474 l_rec_acct_attrs.array_char_value(24) := p_source_97;
58475 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
58476 l_rec_acct_attrs.array_num_value(25) := p_source_98;
58477 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
58478 l_rec_acct_attrs.array_char_value(26) := p_source_109;
58479 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
58480 l_rec_acct_attrs.array_date_value(27) := p_source_128;
58481 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
58482 l_rec_acct_attrs.array_num_value(28) := p_source_129;
58483 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
58484 l_rec_acct_attrs.array_char_value(29) := p_source_130;
58485 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
58486 l_rec_acct_attrs.array_num_value(30) := p_source_110;
58487 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
58488 l_rec_acct_attrs.array_date_value(31) := p_source_101;
58489 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
58490 l_rec_acct_attrs.array_char_value(32) := p_source_102;
58491 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
58492 l_rec_acct_attrs.array_date_value(33) := p_source_103;
58493 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
58494 l_rec_acct_attrs.array_char_value(34) := p_source_64;
58495 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
58496 l_rec_acct_attrs.array_num_value(35) := p_source_104;
58497 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
58498 l_rec_acct_attrs.array_num_value(36) := p_source_105;
58499 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
58500 l_rec_acct_attrs.array_char_value(37) := p_source_67;
58501 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
58502 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
58503 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
58504 l_rec_acct_attrs.array_char_value(39) := p_source_60;
58505 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
58506 l_rec_acct_attrs.array_num_value(40) := p_source_69;
58507 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
58508 l_rec_acct_attrs.array_num_value(41) := p_source_77;
58509 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
58510 l_rec_acct_attrs.array_num_value(42) := p_source_70;
58511 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
58512 l_rec_acct_attrs.array_num_value(43) := p_source_107;
58513 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
58514 l_rec_acct_attrs.array_num_value(44) := p_source_108;
58515
58516 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58517 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58518
58519 ---------------------------------------------------------------------------------------------------------------
58520 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58521 ---------------------------------------------------------------------------------------------------------------
58522 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58523
58524 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58525 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58526
58527 IF xla_accounting_cache_pkg.GetValueChar
58528 (p_source_code => 'LEDGER_CATEGORY_CODE'
58532 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58529 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58530 AND l_bflow_method_code = 'PRIOR_ENTRY'
58531 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58533 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58534 )
58535 THEN
58536 xla_ae_lines_pkg.BflowUpgEntry
58537 (p_business_method_code => l_bflow_method_code
58538 ,p_business_class_code => l_bflow_class_code
58539 ,p_balance_type => l_balance_type_code);
58540 ELSE
58541 NULL;
58542 -- No business flow processing for business flow method of NONE.
58543 END IF;
58544
58545 --
58546 -- call analytical criteria
58547 --
58548
58549 --
58550 -- call description
58551 --
58552 -- No description or it is inherited.
58553 --
58554 -- call ADRs
58555 -- Bug 4922099
58556 --
58557 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58558 (NVL(l_actual_upg_option, 'N') = 'O') OR
58559 (NVL(l_enc_upg_option, 'N') = 'O')
58560 )
58561 THEN
58562 NULL;
58563 --
58564 --
58565
58566 l_ccid := AcctDerRule_35(
58567 p_application_id => p_application_id
58568 , p_ae_header_id => l_ae_header_id
58569 , p_source_48 => p_source_48
58570 , x_transaction_coa_id => l_adr_transaction_coa_id
58571 , x_accounting_coa_id => l_adr_accounting_coa_id
58572 , x_value_type_code => l_adr_value_type_code
58573 , p_side => 'NA'
58574 );
58575
58576 xla_ae_lines_pkg.set_ccid(
58577 p_code_combination_id => l_ccid
58578 , p_value_type_code => l_adr_value_type_code
58579 , p_transaction_coa_id => l_adr_transaction_coa_id
58580 , p_accounting_coa_id => l_adr_accounting_coa_id
58581 , p_adr_code => 'AP_RECP_INV_DIST'
58582 , p_adr_type_code => 'S'
58583 , p_component_type => l_component_type
58584 , p_component_code => l_component_code
58585 , p_component_type_code => l_component_type_code
58586 , p_component_appl_id => l_component_appl_id
58587 , p_amb_context_code => l_amb_context_code
58588 , p_side => 'NA'
58589 );
58590
58591
58592 --
58593 --
58594 END IF;
58595 --
58596 -- Bug 4922099
58597 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58598 (NVL(l_enc_upg_option, 'N') = 'O')
58599 ) AND
58600 (l_bflow_method_code = 'PRIOR_ENTRY')
58601 )
58602 THEN
58603 IF
58604 --
58605 1 = 2
58606 --
58607 THEN
58608 xla_accounting_err_pkg.build_message
58609 (p_appli_s_name => 'XLA'
58610 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58611 ,p_token_1 => 'LINE_NUMBER'
58612 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58613 ,p_token_2 => 'LINE_TYPE_NAME'
58614 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58615 l_component_type
58616 ,l_component_code
58617 ,l_component_type_code
58618 ,l_component_appl_id
58619 ,l_amb_context_code
58620 ,l_entity_code
58621 ,l_event_class_code
58622 )
58623 ,p_token_3 => 'OWNER'
58624 ,p_value_3 => xla_lookups_pkg.get_meaning(
58625 p_lookup_type => 'XLA_OWNER_TYPE'
58626 ,p_lookup_code => l_component_type_code
58627 )
58628 ,p_token_4 => 'PRODUCT_NAME'
58629 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58630 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58631 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58632 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58633 ,p_ae_header_id => NULL
58634 );
58635
58636 IF (C_LEVEL_ERROR>= g_log_level) THEN
58637 trace
58641 END IF;
58638 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58639 ,p_level => C_LEVEL_ERROR
58640 ,p_module => l_log_module);
58642 END IF;
58643 END IF;
58644 --
58645 --
58646 ------------------------------------------------------------------------------------------------
58647 -- 4219869 Business Flow
58648 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58649 -- Prior Entry. Currently, the following code is always generated.
58650 ------------------------------------------------------------------------------------------------
58651 XLA_AE_LINES_PKG.ValidateCurrentLine;
58652
58653 ------------------------------------------------------------------------------------
58654 -- 4219869 Business Flow
58655 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58656 ------------------------------------------------------------------------------------
58657 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58658
58659 ----------------------------------------------------------------------------------
58660 -- 4219869 Business Flow
58661 -- Update journal entry status -- Need to generate this within IF <condition>
58662 ----------------------------------------------------------------------------------
58663 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58664 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58665 ,p_balance_type_code => l_balance_type_code
58666 );
58667
58668 -------------------------------------------------------------------------------------------
58669 -- 4262811 - Generate the Accrual Reversal lines
58670 -------------------------------------------------------------------------------------------
58671 BEGIN
58672 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58673 (g_array_event(p_event_id).array_value_num('header_index'));
58674 IF l_acc_rev_flag IS NULL THEN
58675 l_acc_rev_flag := 'N';
58676 END IF;
58677 EXCEPTION
58678 WHEN OTHERS THEN
58679 l_acc_rev_flag := 'N';
58680 END;
58681 --
58682 IF (l_acc_rev_flag = 'Y') THEN
58683
58684 -- 4645092 ------------------------------------------------------------------------------
58685 -- To allow MPA report to determine if it should generate report process
58686 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58687 ------------------------------------------------------------------------------------------
58688
58689 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58690 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58691 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
58692 -- call ADRs
58693 -- Bug 4922099
58694 --
58695 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58696 (NVL(l_actual_upg_option, 'N') = 'O') OR
58697 (NVL(l_enc_upg_option, 'N') = 'O')
58698 )
58699 THEN
58700 NULL;
58701 --
58702 --
58703
58704 l_ccid := AcctDerRule_35(
58705 p_application_id => p_application_id
58706 , p_ae_header_id => l_ae_header_id
58707 , p_source_48 => p_source_48
58708 , x_transaction_coa_id => l_adr_transaction_coa_id
58709 , x_accounting_coa_id => l_adr_accounting_coa_id
58710 , x_value_type_code => l_adr_value_type_code
58711 , p_side => 'NA'
58712 );
58713
58714 xla_ae_lines_pkg.set_ccid(
58715 p_code_combination_id => l_ccid
58716 , p_value_type_code => l_adr_value_type_code
58717 , p_transaction_coa_id => l_adr_transaction_coa_id
58718 , p_accounting_coa_id => l_adr_accounting_coa_id
58719 , p_adr_code => 'AP_RECP_INV_DIST'
58720 , p_adr_type_code => 'S'
58721 , p_component_type => l_component_type
58722 , p_component_code => l_component_code
58723 , p_component_type_code => l_component_type_code
58724 , p_component_appl_id => l_component_appl_id
58725 , p_amb_context_code => l_amb_context_code
58726 , p_side => 'NA'
58727 );
58728
58729
58730 --
58731 --
58732 END IF;
58733
58734 --
58735 -- Update the line information that should be overwritten
58736 --
58737 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58738 p_header_num => 1);
58739 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58740
58741 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58742
58743 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58744 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58745 END IF;
58746
58747 --
58748 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58749 --
58750 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58754 -- 4262811a Switch Sign
58751 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58752 ELSE
58753 ---------------------------------------------------------------------------------------------------
58755 ---------------------------------------------------------------------------------------------------
58756 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58757 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58758 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58759 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58760 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58761 -- 5132302
58762 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58763 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58764
58765 END IF;
58766
58767 -- 4955764
58768 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58769 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58770
58771
58772 XLA_AE_LINES_PKG.ValidateCurrentLine;
58773 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58774
58775 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58776 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58777 ,p_balance_type_code => l_balance_type_code);
58778
58779 END IF;
58780
58781 -----------------------------------------------------------------------------------------
58782 -- 4262811 Multiperiod Accounting
58783 -----------------------------------------------------------------------------------------
58784 -- No MPA option is assigned.
58785
58786
58787 END IF;
58788 END IF;
58789 --
58790
58791 --
58792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58793 trace
58794 (p_msg => 'END of AcctLineType_111'
58795 ,p_level => C_LEVEL_PROCEDURE
58796 ,p_module => l_log_module);
58797 END IF;
58798 --
58799 EXCEPTION
58800 WHEN xla_exceptions_pkg.application_exception THEN
58801 RAISE;
58802 WHEN OTHERS THEN
58803 xla_exceptions_pkg.raise_message
58804 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_111');
58805 END AcctLineType_111;
58806 --
58807
58808 ---------------------------------------
58809 --
58810 -- PRIVATE FUNCTION
58811 -- AcctLineType_112
58812 --
58813 ---------------------------------------
58814 PROCEDURE AcctLineType_112 (
58815 p_application_id IN NUMBER
58816 ,p_event_id IN NUMBER
58817 ,p_calculate_acctd_flag IN VARCHAR2
58818 ,p_calculate_g_l_flag IN VARCHAR2
58819 ,p_actual_flag IN OUT VARCHAR2
58820 ,p_balance_type_code OUT VARCHAR2
58821 ,p_gain_or_loss_ref OUT VARCHAR2
58822
58823 --Payment Currency Code
58824 , p_source_12 IN VARCHAR2
58825 --Automatic Offsets Value
58826 , p_source_16 IN VARCHAR2
58827 , p_source_16_meaning IN VARCHAR2
58828 --Invoice Distribution Account
58829 , p_source_29 IN NUMBER
58830 --Internal Realized Loss Account
58831 , p_source_46 IN NUMBER
58832 --Bank Loss Account
58833 , p_source_47 IN NUMBER
58834 --When to Account for Payment Option
58835 , p_source_50 IN VARCHAR2
58836 --Payment Distribution Type
58837 , p_source_51 IN VARCHAR2
58838 , p_source_51_meaning IN VARCHAR2
58839 --Accounting Reversal Indicator
58840 , p_source_52 IN VARCHAR2
58841 --Payment Distribution Amount
58842 , p_source_53 IN NUMBER
58843 --Business Flow Accounts Payable Application Identifier
58844 , p_source_54 IN NUMBER
58845 --Business Flow Payment Distribution Type
58846 , p_source_55 IN VARCHAR2
58847 --Business Flow Payment Entity Code
58848 , p_source_56 IN VARCHAR2
58849 --Business Flow Payment Distribution Identifier
58850 , p_source_57 IN NUMBER
58851 --Business Flow Payment Identifier
58852 , p_source_58 IN NUMBER
58853 --Payment Distribution Identifier
58854 , p_source_59 IN NUMBER
58855 --Distribution Link Type
58856 , p_source_60 IN VARCHAR2
58857 --Override Accounted Amount Indicator
58858 , p_source_64 IN VARCHAR2
58859 , p_source_64_meaning IN VARCHAR2
58860 --Payment Supplier Identifier
58861 , p_source_65 IN NUMBER
58862 --Payment Supplier Site Identifier
58863 , p_source_66 IN NUMBER
58864 --Third Party Type
58865 , p_source_67 IN VARCHAR2
58866 --Payment Distribution Reversed Identifier
58867 , p_source_68 IN NUMBER
58868 --Invoice Distribution Tax Line Identifier
58869 , p_source_69 IN NUMBER
58870 --Invoice Distribution Summary Tax Line Identifier
58871 , p_source_70 IN NUMBER
58872 --Cleared Exchange Date
58873 , p_source_114 IN DATE
58874 --Cleared Exchange Rate
58875 , p_source_115 IN NUMBER
58876 --Cleared Exchange Rate Type
58877 , p_source_116 IN VARCHAR2
58878 --Payment Maturity Date
58882 --Maturity/Clearing Ledger Amount Difference
58879 , p_source_118 IN DATE
58880 --Gain or Loss Indicator between Maturity and Clearing
58881 , p_source_136 IN VARCHAR2
58883 , p_source_137 IN NUMBER
58884 )
58885 IS
58886
58887 l_component_type VARCHAR2(80);
58888 l_component_code VARCHAR2(30);
58889 l_component_type_code VARCHAR2(1);
58890 l_component_appl_id INTEGER;
58891 l_amb_context_code VARCHAR2(30);
58892 l_entity_code VARCHAR2(30);
58893 l_event_class_code VARCHAR2(30);
58894 l_ae_header_id NUMBER;
58895 l_event_type_code VARCHAR2(30);
58896 l_line_definition_code VARCHAR2(30);
58897 l_line_definition_owner_code VARCHAR2(1);
58898 --
58899 -- adr variables
58900 l_segment VARCHAR2(30);
58901 l_ccid NUMBER;
58902 l_adr_transaction_coa_id NUMBER;
58903 l_adr_accounting_coa_id NUMBER;
58904 l_adr_flexfield_segment_code VARCHAR2(30);
58905 l_adr_flex_value_set_id NUMBER;
58906 l_adr_value_type_code VARCHAR2(30);
58907 l_adr_value_combination_id NUMBER;
58908 l_adr_value_segment_code VARCHAR2(30);
58909
58910 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58911 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58912 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58913 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58914
58915 -- 4262811 Variables ------------------------------------------------------------------------------------------
58916 l_entered_amt_idx NUMBER;
58917 l_accted_amt_idx NUMBER;
58918 l_acc_rev_flag VARCHAR2(1);
58919 l_accrual_line_num NUMBER;
58920 l_tmp_amt NUMBER;
58921 l_acc_rev_natural_side_code VARCHAR2(1);
58922
58923 l_num_entries NUMBER;
58924 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58925 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58926 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58927 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58928 l_recog_line_1 NUMBER;
58929 l_recog_line_2 NUMBER;
58930
58931 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58932 l_bflow_applied_to_amt NUMBER; -- 5132302
58933 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58934
58935 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58936
58937 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58938 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58939
58940 ---------------------------------------------------------------------------------------------------------------
58941
58942
58943 --
58944 -- bulk performance
58945 --
58946 l_balance_type_code VARCHAR2(1);
58947 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58948 l_log_module VARCHAR2(240);
58949
58950 --
58951 -- Upgrade strategy
58952 --
58953 l_actual_upg_option VARCHAR2(1);
58954 l_enc_upg_option VARCHAR2(1);
58955
58956 --
58957 BEGIN
58958 --
58959 IF g_log_enabled THEN
58960 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
58961 END IF;
58962 --
58963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58964
58965 trace
58966 (p_msg => 'BEGIN of AcctLineType_112'
58967 ,p_level => C_LEVEL_PROCEDURE
58968 ,p_module => l_log_module);
58969
58970 END IF;
58971 --
58972 l_component_type := 'AMB_JLT';
58973 l_component_code := 'AP_LOSS_MAT_CLEAR';
58974 l_component_type_code := 'S';
58975 l_component_appl_id := 200;
58976 l_amb_context_code := 'DEFAULT';
58977 l_entity_code := 'AP_PAYMENTS';
58978 l_event_class_code := 'RECONCILED PAYMENTS';
58979 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
58980 l_line_definition_owner_code := 'S';
58981 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
58982 --
58983 l_balance_type_code := 'A';
58984 l_segment := NULL;
58985 l_ccid := NULL;
58986 l_adr_transaction_coa_id := NULL;
58987 l_adr_accounting_coa_id := NULL;
58988 l_adr_flexfield_segment_code := NULL;
58989 l_adr_flex_value_set_id := NULL;
58990 l_adr_value_type_code := NULL;
58991 l_adr_value_combination_id := NULL;
58992 l_adr_value_segment_code := NULL;
58993
58994 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58995 l_bflow_class_code := ''; -- 4219869 Business Flow
58996 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58997 l_budgetary_control_flag := 'N';
58998
58999 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59000 l_bflow_applied_to_amt := NULL; -- 5132302
59001 l_entered_amt_idx := NULL; -- 4262811
59002 l_accted_amt_idx := NULL; -- 4262811
59003 l_acc_rev_flag := NULL; -- 4262811
59004 l_accrual_line_num := NULL; -- 4262811
59005 l_tmp_amt := NULL; -- 4262811
59009 return;
59006 --
59007 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59008 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
59010 END IF;
59011
59012 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59013 l_balance_type_code <> 'B' THEN
59014 IF NVL(p_source_50,'
59015 ') = 'ALWAYS_ALWAYS' AND
59016 p_source_118 IS NOT NULL AND
59017 NVL(p_source_136,'
59018 ') = 'LOSS' AND
59019 NVL(p_source_51,'
59020 ') <> 'EXCHANGE RATE VARIANCE' AND
59021 NVL(p_source_51,'
59022 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
59023 NVL(p_source_51,'
59024 ') <> 'BANK CHARGE' AND
59025 NVL(p_source_51,'
59026 ') <> 'BANK ERROR'
59027 THEN
59028
59029 --
59030 XLA_AE_LINES_PKG.SetNewLine;
59031
59032 p_balance_type_code := l_balance_type_code;
59033 -- set the flag so later we will know whether the gain loss line needs to be created
59034
59035 IF(l_balance_type_code = 'A' ) THEN
59036 p_actual_flag :='G';
59037 END IF;
59038
59039 --
59040 -- bulk performance
59041 --
59042 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59043 p_header_num => 0); -- 4262811
59044 --
59045 -- set accounting line options
59046 --
59047 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59048 p_natural_side_code => 'C'
59049 , p_gain_or_loss_flag => 'Y'
59050 , p_gl_transfer_mode_code => 'S'
59051 , p_acct_entry_type_code => 'A'
59052 , p_switch_side_flag => 'Y'
59053 , p_merge_duplicate_code => 'A'
59054 );
59055 --
59056 l_acc_rev_natural_side_code := 'D'; -- 4262811
59057 --
59058 --
59059 -- set accounting line type info
59060 --
59061 xla_ae_lines_pkg.SetAcctLineType
59062 (p_component_type => l_component_type
59063 ,p_event_type_code => l_event_type_code
59064 ,p_line_definition_owner_code => l_line_definition_owner_code
59065 ,p_line_definition_code => l_line_definition_code
59066 ,p_accounting_line_code => l_component_code
59067 ,p_accounting_line_type_code => l_component_type_code
59068 ,p_accounting_line_appl_id => l_component_appl_id
59069 ,p_amb_context_code => l_amb_context_code
59070 ,p_entity_code => l_entity_code
59071 ,p_event_class_code => l_event_class_code);
59072 --
59073 -- set accounting class
59074 --
59075 xla_ae_lines_pkg.SetAcctClass(
59076 p_accounting_class_code => 'LOSS'
59077 , p_ae_header_id => l_ae_header_id
59078 );
59079
59080 --
59081 -- set rounding class
59082 --
59083 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59084 'LOSS';
59085
59086 --
59087 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59088 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59089 --
59090 -- bulk performance
59091 --
59092 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59093
59094 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59095 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59096
59097 -- 4955764
59098 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59099 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59100
59101 -- 4458381 Public Sector Enh
59102
59103 --
59104 -- set accounting attributes for the line type
59105 --
59106 l_entered_amt_idx := 10;
59107 l_accted_amt_idx := 15;
59108 l_bflow_applied_to_amt_idx := 2; -- 5132302
59109 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59110 l_rec_acct_attrs.array_char_value(1) := p_source_52;
59111 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
59112 l_rec_acct_attrs.array_num_value(2) := p_source_53;
59113 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
59114 l_rec_acct_attrs.array_num_value(3) := p_source_54;
59115 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59116 l_rec_acct_attrs.array_char_value(4) := p_source_55;
59117 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
59118 l_rec_acct_attrs.array_char_value(5) := p_source_56;
59119 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
59120 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
59121 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59122 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
59123 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
59124 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
59125 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
59129 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
59126 l_rec_acct_attrs.array_char_value(9) := p_source_60;
59127 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
59128 l_rec_acct_attrs.array_num_value(10) := p_source_53;
59130 l_rec_acct_attrs.array_char_value(11) := p_source_12;
59131 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
59132 l_rec_acct_attrs.array_date_value(12) := p_source_114;
59133 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
59134 l_rec_acct_attrs.array_num_value(13) := p_source_115;
59135 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
59136 l_rec_acct_attrs.array_char_value(14) := p_source_116;
59137 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
59138 l_rec_acct_attrs.array_num_value(15) := p_source_137;
59139 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
59140 l_rec_acct_attrs.array_char_value(16) := p_source_64;
59141 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
59142 l_rec_acct_attrs.array_num_value(17) := p_source_65;
59143 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
59144 l_rec_acct_attrs.array_num_value(18) := p_source_66;
59145 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
59146 l_rec_acct_attrs.array_char_value(19) := p_source_67;
59147 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
59148 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
59149 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
59150 l_rec_acct_attrs.array_char_value(21) := p_source_60;
59151 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
59152 l_rec_acct_attrs.array_num_value(22) := p_source_69;
59153 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
59154 l_rec_acct_attrs.array_num_value(23) := p_source_69;
59155 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
59156 l_rec_acct_attrs.array_num_value(24) := p_source_70;
59157
59158 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59159 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59160
59161 ---------------------------------------------------------------------------------------------------------------
59162 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59163 ---------------------------------------------------------------------------------------------------------------
59164 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59165
59166 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59167 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59168
59169 IF xla_accounting_cache_pkg.GetValueChar
59170 (p_source_code => 'LEDGER_CATEGORY_CODE'
59171 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59172 AND l_bflow_method_code = 'PRIOR_ENTRY'
59173 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59174 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59175 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59176 )
59177 THEN
59178 xla_ae_lines_pkg.BflowUpgEntry
59179 (p_business_method_code => l_bflow_method_code
59180 ,p_business_class_code => l_bflow_class_code
59181 ,p_balance_type => l_balance_type_code);
59182 ELSE
59183 NULL;
59184 -- No business flow processing for business flow method of NONE.
59185 END IF;
59186
59187 --
59188 -- call analytical criteria
59189 --
59190
59191 --
59192 -- call description
59193 --
59194 -- No description or it is inherited.
59195 --
59196 -- call ADRs
59197 -- Bug 4922099
59198 --
59199 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59200 (NVL(l_actual_upg_option, 'N') = 'O') OR
59201 (NVL(l_enc_upg_option, 'N') = 'O')
59202 )
59203 THEN
59204 NULL;
59205 --
59206 --
59207
59208 l_ccid := AcctDerRule_34(
59209 p_application_id => p_application_id
59210 , p_ae_header_id => l_ae_header_id
59211 , p_source_16 => p_source_16
59212 , p_source_16_meaning => p_source_16_meaning
59213 , p_source_29 => p_source_29
59214 , p_source_46 => p_source_46
59215 , p_source_47 => p_source_47
59216 , x_transaction_coa_id => l_adr_transaction_coa_id
59217 , x_accounting_coa_id => l_adr_accounting_coa_id
59218 , x_value_type_code => l_adr_value_type_code
59219 , p_side => 'NA'
59220 );
59221
59222 xla_ae_lines_pkg.set_ccid(
59223 p_code_combination_id => l_ccid
59224 , p_value_type_code => l_adr_value_type_code
59225 , p_transaction_coa_id => l_adr_transaction_coa_id
59226 , p_accounting_coa_id => l_adr_accounting_coa_id
59227 , p_adr_code => 'AP_REAL_LOSS'
59228 , p_adr_type_code => 'S'
59229 , p_component_type => l_component_type
59230 , p_component_code => l_component_code
59231 , p_component_type_code => l_component_type_code
59235 );
59232 , p_component_appl_id => l_component_appl_id
59233 , p_amb_context_code => l_amb_context_code
59234 , p_side => 'NA'
59236
59237
59238 --
59239 --
59240 END IF;
59241 --
59242 -- Bug 4922099
59243 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59244 (NVL(l_enc_upg_option, 'N') = 'O')
59245 ) AND
59246 (l_bflow_method_code = 'PRIOR_ENTRY')
59247 )
59248 THEN
59249 IF
59250 --
59251 1 = 2
59252 --
59253 THEN
59254 xla_accounting_err_pkg.build_message
59255 (p_appli_s_name => 'XLA'
59256 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59257 ,p_token_1 => 'LINE_NUMBER'
59258 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59259 ,p_token_2 => 'LINE_TYPE_NAME'
59260 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59261 l_component_type
59262 ,l_component_code
59263 ,l_component_type_code
59264 ,l_component_appl_id
59265 ,l_amb_context_code
59266 ,l_entity_code
59267 ,l_event_class_code
59268 )
59269 ,p_token_3 => 'OWNER'
59270 ,p_value_3 => xla_lookups_pkg.get_meaning(
59271 p_lookup_type => 'XLA_OWNER_TYPE'
59272 ,p_lookup_code => l_component_type_code
59273 )
59274 ,p_token_4 => 'PRODUCT_NAME'
59275 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59276 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59277 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59278 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59279 ,p_ae_header_id => NULL
59280 );
59281
59282 IF (C_LEVEL_ERROR>= g_log_level) THEN
59283 trace
59284 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59285 ,p_level => C_LEVEL_ERROR
59286 ,p_module => l_log_module);
59287 END IF;
59288 END IF;
59289 END IF;
59290 --
59291 --
59292 ------------------------------------------------------------------------------------------------
59293 -- 4219869 Business Flow
59294 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59295 -- Prior Entry. Currently, the following code is always generated.
59296 ------------------------------------------------------------------------------------------------
59297 XLA_AE_LINES_PKG.ValidateCurrentLine;
59298
59299 ------------------------------------------------------------------------------------
59300 -- 4219869 Business Flow
59301 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59302 ------------------------------------------------------------------------------------
59303 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59304
59305 ----------------------------------------------------------------------------------
59306 -- 4219869 Business Flow
59307 -- Update journal entry status -- Need to generate this within IF <condition>
59308 ----------------------------------------------------------------------------------
59309 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59310 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59311 ,p_balance_type_code => l_balance_type_code
59312 );
59313
59314 -------------------------------------------------------------------------------------------
59315 -- 4262811 - Generate the Accrual Reversal lines
59316 -------------------------------------------------------------------------------------------
59317 BEGIN
59318 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59319 (g_array_event(p_event_id).array_value_num('header_index'));
59320 IF l_acc_rev_flag IS NULL THEN
59321 l_acc_rev_flag := 'N';
59322 END IF;
59323 EXCEPTION
59324 WHEN OTHERS THEN
59325 l_acc_rev_flag := 'N';
59326 END;
59327 --
59328 IF (l_acc_rev_flag = 'Y') THEN
59329
59333 ------------------------------------------------------------------------------------------
59330 -- 4645092 ------------------------------------------------------------------------------
59331 -- To allow MPA report to determine if it should generate report process
59332 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59334
59335 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59336 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59337 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59338 -- call ADRs
59339 -- Bug 4922099
59340 --
59341 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59342 (NVL(l_actual_upg_option, 'N') = 'O') OR
59343 (NVL(l_enc_upg_option, 'N') = 'O')
59344 )
59345 THEN
59346 NULL;
59347 --
59348 --
59349
59350 l_ccid := AcctDerRule_34(
59351 p_application_id => p_application_id
59352 , p_ae_header_id => l_ae_header_id
59353 , p_source_16 => p_source_16
59354 , p_source_16_meaning => p_source_16_meaning
59355 , p_source_29 => p_source_29
59356 , p_source_46 => p_source_46
59357 , p_source_47 => p_source_47
59358 , x_transaction_coa_id => l_adr_transaction_coa_id
59359 , x_accounting_coa_id => l_adr_accounting_coa_id
59360 , x_value_type_code => l_adr_value_type_code
59361 , p_side => 'NA'
59362 );
59363
59364 xla_ae_lines_pkg.set_ccid(
59365 p_code_combination_id => l_ccid
59366 , p_value_type_code => l_adr_value_type_code
59367 , p_transaction_coa_id => l_adr_transaction_coa_id
59368 , p_accounting_coa_id => l_adr_accounting_coa_id
59369 , p_adr_code => 'AP_REAL_LOSS'
59370 , p_adr_type_code => 'S'
59371 , p_component_type => l_component_type
59372 , p_component_code => l_component_code
59373 , p_component_type_code => l_component_type_code
59374 , p_component_appl_id => l_component_appl_id
59375 , p_amb_context_code => l_amb_context_code
59376 , p_side => 'NA'
59377 );
59378
59379
59380 --
59381 --
59382 END IF;
59383
59384 --
59385 -- Update the line information that should be overwritten
59386 --
59387 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59388 p_header_num => 1);
59389 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59390
59391 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59392
59393 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59394 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59395 END IF;
59396
59397 --
59398 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59399 --
59400 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59401 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59402 ELSE
59403 ---------------------------------------------------------------------------------------------------
59404 -- 4262811a Switch Sign
59405 ---------------------------------------------------------------------------------------------------
59406 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59407 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59408 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59409 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59410 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59411 -- 5132302
59412 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59413 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59414
59415 END IF;
59416
59417 -- 4955764
59418 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59419 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59420
59421
59422 XLA_AE_LINES_PKG.ValidateCurrentLine;
59423 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59424
59425 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59426 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59427 ,p_balance_type_code => l_balance_type_code);
59428
59429 END IF;
59430
59431 -----------------------------------------------------------------------------------------
59432 -- 4262811 Multiperiod Accounting
59433 -----------------------------------------------------------------------------------------
59434 -- No MPA option is assigned.
59435
59436
59437 END IF;
59438 END IF;
59439 --
59440
59441 --
59442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59443 trace
59444 (p_msg => 'END of AcctLineType_112'
59445 ,p_level => C_LEVEL_PROCEDURE
59446 ,p_module => l_log_module);
59450 WHEN xla_exceptions_pkg.application_exception THEN
59447 END IF;
59448 --
59449 EXCEPTION
59451 RAISE;
59452 WHEN OTHERS THEN
59453 xla_exceptions_pkg.raise_message
59454 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_112');
59455 END AcctLineType_112;
59456 --
59457
59458 ---------------------------------------
59459 --
59460 -- PRIVATE FUNCTION
59461 -- AcctLineType_113
59462 --
59463 ---------------------------------------
59464 PROCEDURE AcctLineType_113 (
59465 p_application_id IN NUMBER
59466 ,p_event_id IN NUMBER
59467 ,p_calculate_acctd_flag IN VARCHAR2
59468 ,p_calculate_g_l_flag IN VARCHAR2
59469 ,p_actual_flag IN OUT VARCHAR2
59470 ,p_balance_type_code OUT VARCHAR2
59471 ,p_gain_or_loss_ref OUT VARCHAR2
59472
59473 --Payment Currency Code
59474 , p_source_12 IN VARCHAR2
59475 --Automatic Offsets Value
59476 , p_source_16 IN VARCHAR2
59477 , p_source_16_meaning IN VARCHAR2
59478 --Invoice Distribution Account
59479 , p_source_29 IN NUMBER
59480 --Internal Realized Loss Account
59481 , p_source_46 IN NUMBER
59482 --Bank Loss Account
59483 , p_source_47 IN NUMBER
59484 --When to Account for Payment Option
59485 , p_source_50 IN VARCHAR2
59486 --Payment Distribution Type
59487 , p_source_51 IN VARCHAR2
59488 , p_source_51_meaning IN VARCHAR2
59489 --Accounting Reversal Indicator
59490 , p_source_52 IN VARCHAR2
59491 --Payment Distribution Amount
59492 , p_source_53 IN NUMBER
59493 --Business Flow Accounts Payable Application Identifier
59494 , p_source_54 IN NUMBER
59495 --Business Flow Payment Distribution Type
59496 , p_source_55 IN VARCHAR2
59497 --Business Flow Payment Entity Code
59498 , p_source_56 IN VARCHAR2
59499 --Business Flow Payment Distribution Identifier
59500 , p_source_57 IN NUMBER
59501 --Business Flow Payment Identifier
59502 , p_source_58 IN NUMBER
59503 --Payment Distribution Identifier
59504 , p_source_59 IN NUMBER
59505 --Distribution Link Type
59506 , p_source_60 IN VARCHAR2
59507 --Override Accounted Amount Indicator
59508 , p_source_64 IN VARCHAR2
59509 , p_source_64_meaning IN VARCHAR2
59510 --Payment Supplier Identifier
59511 , p_source_65 IN NUMBER
59512 --Payment Supplier Site Identifier
59513 , p_source_66 IN NUMBER
59514 --Third Party Type
59515 , p_source_67 IN VARCHAR2
59516 --Payment Distribution Reversed Identifier
59517 , p_source_68 IN NUMBER
59518 --Invoice Distribution Tax Line Identifier
59519 , p_source_69 IN NUMBER
59520 --Invoice Distribution Summary Tax Line Identifier
59521 , p_source_70 IN NUMBER
59522 --Cleared Exchange Date
59523 , p_source_114 IN DATE
59524 --Cleared Exchange Rate
59525 , p_source_115 IN NUMBER
59526 --Cleared Exchange Rate Type
59527 , p_source_116 IN VARCHAR2
59528 --Payment Maturity Date
59529 , p_source_118 IN DATE
59530 --Gain or Loss Indicator between Payment and Clearing
59531 , p_source_138 IN VARCHAR2
59532 --Payment/Clearing Ledger Amount Difference
59533 , p_source_139 IN NUMBER
59534 )
59535 IS
59536
59537 l_component_type VARCHAR2(80);
59538 l_component_code VARCHAR2(30);
59539 l_component_type_code VARCHAR2(1);
59540 l_component_appl_id INTEGER;
59541 l_amb_context_code VARCHAR2(30);
59542 l_entity_code VARCHAR2(30);
59543 l_event_class_code VARCHAR2(30);
59544 l_ae_header_id NUMBER;
59545 l_event_type_code VARCHAR2(30);
59546 l_line_definition_code VARCHAR2(30);
59547 l_line_definition_owner_code VARCHAR2(1);
59548 --
59549 -- adr variables
59550 l_segment VARCHAR2(30);
59551 l_ccid NUMBER;
59552 l_adr_transaction_coa_id NUMBER;
59553 l_adr_accounting_coa_id NUMBER;
59554 l_adr_flexfield_segment_code VARCHAR2(30);
59555 l_adr_flex_value_set_id NUMBER;
59556 l_adr_value_type_code VARCHAR2(30);
59557 l_adr_value_combination_id NUMBER;
59558 l_adr_value_segment_code VARCHAR2(30);
59559
59560 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59561 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59562 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59563 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59564
59565 -- 4262811 Variables ------------------------------------------------------------------------------------------
59566 l_entered_amt_idx NUMBER;
59567 l_accted_amt_idx NUMBER;
59568 l_acc_rev_flag VARCHAR2(1);
59569 l_accrual_line_num NUMBER;
59570 l_tmp_amt NUMBER;
59571 l_acc_rev_natural_side_code VARCHAR2(1);
59572
59573 l_num_entries NUMBER;
59574 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59575 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59576 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59577 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59581 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59578 l_recog_line_1 NUMBER;
59579 l_recog_line_2 NUMBER;
59580
59582 l_bflow_applied_to_amt NUMBER; -- 5132302
59583 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59584
59585 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59586
59587 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59588 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59589
59590 ---------------------------------------------------------------------------------------------------------------
59591
59592
59593 --
59594 -- bulk performance
59595 --
59596 l_balance_type_code VARCHAR2(1);
59597 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59598 l_log_module VARCHAR2(240);
59599
59600 --
59601 -- Upgrade strategy
59602 --
59603 l_actual_upg_option VARCHAR2(1);
59604 l_enc_upg_option VARCHAR2(1);
59605
59606 --
59607 BEGIN
59608 --
59609 IF g_log_enabled THEN
59610 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
59611 END IF;
59612 --
59613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59614
59615 trace
59616 (p_msg => 'BEGIN of AcctLineType_113'
59617 ,p_level => C_LEVEL_PROCEDURE
59618 ,p_module => l_log_module);
59619
59620 END IF;
59621 --
59622 l_component_type := 'AMB_JLT';
59623 l_component_code := 'AP_LOSS_PMT_CLEAR';
59624 l_component_type_code := 'S';
59625 l_component_appl_id := 200;
59626 l_amb_context_code := 'DEFAULT';
59627 l_entity_code := 'AP_PAYMENTS';
59628 l_event_class_code := 'RECONCILED PAYMENTS';
59629 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
59630 l_line_definition_owner_code := 'S';
59631 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
59632 --
59633 l_balance_type_code := 'A';
59634 l_segment := NULL;
59635 l_ccid := NULL;
59636 l_adr_transaction_coa_id := NULL;
59637 l_adr_accounting_coa_id := NULL;
59638 l_adr_flexfield_segment_code := NULL;
59639 l_adr_flex_value_set_id := NULL;
59640 l_adr_value_type_code := NULL;
59641 l_adr_value_combination_id := NULL;
59642 l_adr_value_segment_code := NULL;
59643
59644 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59645 l_bflow_class_code := ''; -- 4219869 Business Flow
59646 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59647 l_budgetary_control_flag := 'N';
59648
59649 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59650 l_bflow_applied_to_amt := NULL; -- 5132302
59651 l_entered_amt_idx := NULL; -- 4262811
59652 l_accted_amt_idx := NULL; -- 4262811
59653 l_acc_rev_flag := NULL; -- 4262811
59654 l_accrual_line_num := NULL; -- 4262811
59655 l_tmp_amt := NULL; -- 4262811
59656 --
59657 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59658 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
59659 return;
59660 END IF;
59661
59662 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59663 l_balance_type_code <> 'B' THEN
59664 IF NVL(p_source_50,'
59665 ') = 'ALWAYS_ALWAYS' AND
59666 p_source_118 IS NULL AND
59667 NVL(p_source_138,'
59668 ') = 'LOSS' AND
59669 NVL(p_source_51,'
59670 ') <> 'EXCHANGE RATE VARIANCE' AND
59671 NVL(p_source_51,'
59672 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
59673 NVL(p_source_51,'
59674 ') <> 'BANK CHARGE' AND
59675 NVL(p_source_51,'
59676 ') <> 'BANK ERROR' AND
59677 NVL(p_source_51,'
59678 ') <> 'AWT'
59679 THEN
59680
59681 --
59682 XLA_AE_LINES_PKG.SetNewLine;
59683
59684 p_balance_type_code := l_balance_type_code;
59685 -- set the flag so later we will know whether the gain loss line needs to be created
59686
59687 IF(l_balance_type_code = 'A' ) THEN
59688 p_actual_flag :='G';
59689 END IF;
59690
59691 --
59692 -- bulk performance
59693 --
59694 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59695 p_header_num => 0); -- 4262811
59696 --
59697 -- set accounting line options
59698 --
59699 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59700 p_natural_side_code => 'C'
59701 , p_gain_or_loss_flag => 'Y'
59702 , p_gl_transfer_mode_code => 'S'
59703 , p_acct_entry_type_code => 'A'
59704 , p_switch_side_flag => 'Y'
59705 , p_merge_duplicate_code => 'A'
59706 );
59707 --
59708 l_acc_rev_natural_side_code := 'D'; -- 4262811
59709 --
59710 --
59711 -- set accounting line type info
59712 --
59713 xla_ae_lines_pkg.SetAcctLineType
59717 ,p_line_definition_code => l_line_definition_code
59714 (p_component_type => l_component_type
59715 ,p_event_type_code => l_event_type_code
59716 ,p_line_definition_owner_code => l_line_definition_owner_code
59718 ,p_accounting_line_code => l_component_code
59719 ,p_accounting_line_type_code => l_component_type_code
59720 ,p_accounting_line_appl_id => l_component_appl_id
59721 ,p_amb_context_code => l_amb_context_code
59722 ,p_entity_code => l_entity_code
59723 ,p_event_class_code => l_event_class_code);
59724 --
59725 -- set accounting class
59726 --
59727 xla_ae_lines_pkg.SetAcctClass(
59728 p_accounting_class_code => 'LOSS'
59729 , p_ae_header_id => l_ae_header_id
59730 );
59731
59732 --
59733 -- set rounding class
59734 --
59735 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59736 'LOSS';
59737
59738 --
59739 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59740 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59741 --
59742 -- bulk performance
59743 --
59744 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59745
59746 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59747 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59748
59749 -- 4955764
59750 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59751 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59752
59753 -- 4458381 Public Sector Enh
59754
59755 --
59756 -- set accounting attributes for the line type
59757 --
59758 l_entered_amt_idx := 10;
59759 l_accted_amt_idx := 15;
59760 l_bflow_applied_to_amt_idx := 2; -- 5132302
59761 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59762 l_rec_acct_attrs.array_char_value(1) := p_source_52;
59763 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
59764 l_rec_acct_attrs.array_num_value(2) := p_source_53;
59765 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
59766 l_rec_acct_attrs.array_num_value(3) := p_source_54;
59767 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59768 l_rec_acct_attrs.array_char_value(4) := p_source_55;
59769 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
59770 l_rec_acct_attrs.array_char_value(5) := p_source_56;
59771 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
59772 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
59773 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59774 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
59775 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
59776 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
59777 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
59778 l_rec_acct_attrs.array_char_value(9) := p_source_60;
59779 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
59780 l_rec_acct_attrs.array_num_value(10) := p_source_53;
59781 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
59782 l_rec_acct_attrs.array_char_value(11) := p_source_12;
59783 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
59784 l_rec_acct_attrs.array_date_value(12) := p_source_114;
59785 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
59786 l_rec_acct_attrs.array_num_value(13) := p_source_115;
59787 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
59788 l_rec_acct_attrs.array_char_value(14) := p_source_116;
59789 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
59790 l_rec_acct_attrs.array_num_value(15) := p_source_139;
59791 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
59792 l_rec_acct_attrs.array_char_value(16) := p_source_64;
59793 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
59794 l_rec_acct_attrs.array_num_value(17) := p_source_65;
59795 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
59796 l_rec_acct_attrs.array_num_value(18) := p_source_66;
59797 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
59798 l_rec_acct_attrs.array_char_value(19) := p_source_67;
59799 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
59800 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
59801 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
59802 l_rec_acct_attrs.array_char_value(21) := p_source_60;
59803 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
59804 l_rec_acct_attrs.array_num_value(22) := p_source_69;
59805 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
59806 l_rec_acct_attrs.array_num_value(23) := p_source_69;
59807 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
59808 l_rec_acct_attrs.array_num_value(24) := p_source_70;
59809
59810 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59814 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59811 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59812
59813 ---------------------------------------------------------------------------------------------------------------
59815 ---------------------------------------------------------------------------------------------------------------
59816 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59817
59818 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59819 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59820
59821 IF xla_accounting_cache_pkg.GetValueChar
59822 (p_source_code => 'LEDGER_CATEGORY_CODE'
59823 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59824 AND l_bflow_method_code = 'PRIOR_ENTRY'
59825 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59826 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59827 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59828 )
59829 THEN
59830 xla_ae_lines_pkg.BflowUpgEntry
59831 (p_business_method_code => l_bflow_method_code
59832 ,p_business_class_code => l_bflow_class_code
59833 ,p_balance_type => l_balance_type_code);
59834 ELSE
59835 NULL;
59836 -- No business flow processing for business flow method of NONE.
59837 END IF;
59838
59839 --
59840 -- call analytical criteria
59841 --
59842
59843 --
59844 -- call description
59845 --
59846 -- No description or it is inherited.
59847 --
59848 -- call ADRs
59849 -- Bug 4922099
59850 --
59851 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59852 (NVL(l_actual_upg_option, 'N') = 'O') OR
59853 (NVL(l_enc_upg_option, 'N') = 'O')
59854 )
59855 THEN
59856 NULL;
59857 --
59858 --
59859
59860 l_ccid := AcctDerRule_34(
59861 p_application_id => p_application_id
59862 , p_ae_header_id => l_ae_header_id
59863 , p_source_16 => p_source_16
59864 , p_source_16_meaning => p_source_16_meaning
59865 , p_source_29 => p_source_29
59866 , p_source_46 => p_source_46
59867 , p_source_47 => p_source_47
59868 , x_transaction_coa_id => l_adr_transaction_coa_id
59869 , x_accounting_coa_id => l_adr_accounting_coa_id
59870 , x_value_type_code => l_adr_value_type_code
59871 , p_side => 'NA'
59872 );
59873
59874 xla_ae_lines_pkg.set_ccid(
59875 p_code_combination_id => l_ccid
59876 , p_value_type_code => l_adr_value_type_code
59877 , p_transaction_coa_id => l_adr_transaction_coa_id
59878 , p_accounting_coa_id => l_adr_accounting_coa_id
59879 , p_adr_code => 'AP_REAL_LOSS'
59880 , p_adr_type_code => 'S'
59881 , p_component_type => l_component_type
59882 , p_component_code => l_component_code
59883 , p_component_type_code => l_component_type_code
59884 , p_component_appl_id => l_component_appl_id
59885 , p_amb_context_code => l_amb_context_code
59886 , p_side => 'NA'
59887 );
59888
59889
59890 --
59891 --
59892 END IF;
59893 --
59894 -- Bug 4922099
59895 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59896 (NVL(l_enc_upg_option, 'N') = 'O')
59897 ) AND
59898 (l_bflow_method_code = 'PRIOR_ENTRY')
59899 )
59900 THEN
59901 IF
59902 --
59903 1 = 2
59904 --
59905 THEN
59906 xla_accounting_err_pkg.build_message
59907 (p_appli_s_name => 'XLA'
59908 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59909 ,p_token_1 => 'LINE_NUMBER'
59910 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59911 ,p_token_2 => 'LINE_TYPE_NAME'
59912 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59913 l_component_type
59914 ,l_component_code
59915 ,l_component_type_code
59916 ,l_component_appl_id
59917 ,l_amb_context_code
59918 ,l_entity_code
59919 ,l_event_class_code
59920 )
59921 ,p_token_3 => 'OWNER'
59922 ,p_value_3 => xla_lookups_pkg.get_meaning(
59926 ,p_token_4 => 'PRODUCT_NAME'
59923 p_lookup_type => 'XLA_OWNER_TYPE'
59924 ,p_lookup_code => l_component_type_code
59925 )
59927 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59928 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59929 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59930 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59931 ,p_ae_header_id => NULL
59932 );
59933
59934 IF (C_LEVEL_ERROR>= g_log_level) THEN
59935 trace
59936 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59937 ,p_level => C_LEVEL_ERROR
59938 ,p_module => l_log_module);
59939 END IF;
59940 END IF;
59941 END IF;
59942 --
59943 --
59944 ------------------------------------------------------------------------------------------------
59945 -- 4219869 Business Flow
59946 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59947 -- Prior Entry. Currently, the following code is always generated.
59948 ------------------------------------------------------------------------------------------------
59949 XLA_AE_LINES_PKG.ValidateCurrentLine;
59950
59951 ------------------------------------------------------------------------------------
59952 -- 4219869 Business Flow
59953 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59954 ------------------------------------------------------------------------------------
59955 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59956
59957 ----------------------------------------------------------------------------------
59958 -- 4219869 Business Flow
59959 -- Update journal entry status -- Need to generate this within IF <condition>
59960 ----------------------------------------------------------------------------------
59961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59963 ,p_balance_type_code => l_balance_type_code
59964 );
59965
59966 -------------------------------------------------------------------------------------------
59967 -- 4262811 - Generate the Accrual Reversal lines
59968 -------------------------------------------------------------------------------------------
59969 BEGIN
59970 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59971 (g_array_event(p_event_id).array_value_num('header_index'));
59972 IF l_acc_rev_flag IS NULL THEN
59973 l_acc_rev_flag := 'N';
59974 END IF;
59975 EXCEPTION
59976 WHEN OTHERS THEN
59977 l_acc_rev_flag := 'N';
59978 END;
59979 --
59980 IF (l_acc_rev_flag = 'Y') THEN
59981
59982 -- 4645092 ------------------------------------------------------------------------------
59983 -- To allow MPA report to determine if it should generate report process
59984 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59985 ------------------------------------------------------------------------------------------
59986
59987 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59988 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59989 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59990 -- call ADRs
59991 -- Bug 4922099
59992 --
59993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59994 (NVL(l_actual_upg_option, 'N') = 'O') OR
59995 (NVL(l_enc_upg_option, 'N') = 'O')
59996 )
59997 THEN
59998 NULL;
59999 --
60000 --
60001
60002 l_ccid := AcctDerRule_34(
60003 p_application_id => p_application_id
60004 , p_ae_header_id => l_ae_header_id
60005 , p_source_16 => p_source_16
60006 , p_source_16_meaning => p_source_16_meaning
60007 , p_source_29 => p_source_29
60008 , p_source_46 => p_source_46
60009 , p_source_47 => p_source_47
60010 , x_transaction_coa_id => l_adr_transaction_coa_id
60011 , x_accounting_coa_id => l_adr_accounting_coa_id
60012 , x_value_type_code => l_adr_value_type_code
60013 , p_side => 'NA'
60014 );
60015
60016 xla_ae_lines_pkg.set_ccid(
60017 p_code_combination_id => l_ccid
60018 , p_value_type_code => l_adr_value_type_code
60019 , p_transaction_coa_id => l_adr_transaction_coa_id
60020 , p_accounting_coa_id => l_adr_accounting_coa_id
60021 , p_adr_code => 'AP_REAL_LOSS'
60022 , p_adr_type_code => 'S'
60023 , p_component_type => l_component_type
60024 , p_component_code => l_component_code
60025 , p_component_type_code => l_component_type_code
60026 , p_component_appl_id => l_component_appl_id
60027 , p_amb_context_code => l_amb_context_code
60028 , p_side => 'NA'
60029 );
60030
60034 END IF;
60031
60032 --
60033 --
60035
60036 --
60037 -- Update the line information that should be overwritten
60038 --
60039 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60040 p_header_num => 1);
60041 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60042
60043 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60044
60045 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60046 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60047 END IF;
60048
60049 --
60050 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60051 --
60052 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60053 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60054 ELSE
60055 ---------------------------------------------------------------------------------------------------
60056 -- 4262811a Switch Sign
60057 ---------------------------------------------------------------------------------------------------
60058 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60059 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60060 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60061 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60062 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60063 -- 5132302
60064 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60065 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60066
60067 END IF;
60068
60069 -- 4955764
60070 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60071 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60072
60073
60074 XLA_AE_LINES_PKG.ValidateCurrentLine;
60075 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60076
60077 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60078 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60079 ,p_balance_type_code => l_balance_type_code);
60080
60081 END IF;
60082
60083 -----------------------------------------------------------------------------------------
60084 -- 4262811 Multiperiod Accounting
60085 -----------------------------------------------------------------------------------------
60086 -- No MPA option is assigned.
60087
60088
60089 END IF;
60090 END IF;
60091 --
60092
60093 --
60094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60095 trace
60096 (p_msg => 'END of AcctLineType_113'
60097 ,p_level => C_LEVEL_PROCEDURE
60098 ,p_module => l_log_module);
60099 END IF;
60100 --
60101 EXCEPTION
60102 WHEN xla_exceptions_pkg.application_exception THEN
60103 RAISE;
60104 WHEN OTHERS THEN
60105 xla_exceptions_pkg.raise_message
60106 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_113');
60107 END AcctLineType_113;
60108 --
60109
60110 ---------------------------------------
60111 --
60112 -- PRIVATE FUNCTION
60113 -- AcctLineType_114
60114 --
60115 ---------------------------------------
60116 PROCEDURE AcctLineType_114 (
60117 p_application_id IN NUMBER
60118 ,p_event_id IN NUMBER
60119 ,p_calculate_acctd_flag IN VARCHAR2
60120 ,p_calculate_g_l_flag IN VARCHAR2
60121 ,p_actual_flag IN OUT VARCHAR2
60122 ,p_balance_type_code OUT VARCHAR2
60123 ,p_gain_or_loss_ref OUT VARCHAR2
60124
60125 --Payment Currency Code
60126 , p_source_12 IN VARCHAR2
60127 --Automatic Offsets Value
60128 , p_source_16 IN VARCHAR2
60129 , p_source_16_meaning IN VARCHAR2
60130 --Invoice Distribution Account
60131 , p_source_29 IN NUMBER
60132 --Internal Realized Loss Account
60133 , p_source_46 IN NUMBER
60134 --Bank Loss Account
60135 , p_source_47 IN NUMBER
60136 --When to Account for Payment Option
60137 , p_source_50 IN VARCHAR2
60138 --Payment Distribution Type
60139 , p_source_51 IN VARCHAR2
60140 , p_source_51_meaning IN VARCHAR2
60141 --Accounting Reversal Indicator
60142 , p_source_52 IN VARCHAR2
60143 --Payment Distribution Amount
60144 , p_source_53 IN NUMBER
60145 --Business Flow Accounts Payable Application Identifier
60146 , p_source_54 IN NUMBER
60147 --Business Flow Payment Distribution Type
60148 , p_source_55 IN VARCHAR2
60149 --Business Flow Payment Entity Code
60150 , p_source_56 IN VARCHAR2
60151 --Business Flow Payment Distribution Identifier
60152 , p_source_57 IN NUMBER
60153 --Business Flow Payment Identifier
60154 , p_source_58 IN NUMBER
60158 , p_source_60 IN VARCHAR2
60155 --Payment Distribution Identifier
60156 , p_source_59 IN NUMBER
60157 --Distribution Link Type
60159 --Override Accounted Amount Indicator
60160 , p_source_64 IN VARCHAR2
60161 , p_source_64_meaning IN VARCHAR2
60162 --Payment Supplier Identifier
60163 , p_source_65 IN NUMBER
60164 --Payment Supplier Site Identifier
60165 , p_source_66 IN NUMBER
60166 --Third Party Type
60167 , p_source_67 IN VARCHAR2
60168 --Payment Distribution Reversed Identifier
60169 , p_source_68 IN NUMBER
60170 --Payment Maturity Date
60171 , p_source_118 IN DATE
60172 --Payment Exchange Date
60173 , p_source_121 IN DATE
60174 --Payment Exchange Rate
60175 , p_source_122 IN NUMBER
60176 --Payment Exchange Rate Type
60177 , p_source_123 IN VARCHAR2
60178 --Payment/Maturity Ledger Amount Difference
60179 , p_source_135 IN NUMBER
60180 --Gain or Loss Indicator between Payment and Maturity
60181 , p_source_140 IN VARCHAR2
60182 )
60183 IS
60184
60185 l_component_type VARCHAR2(80);
60186 l_component_code VARCHAR2(30);
60187 l_component_type_code VARCHAR2(1);
60188 l_component_appl_id INTEGER;
60189 l_amb_context_code VARCHAR2(30);
60190 l_entity_code VARCHAR2(30);
60191 l_event_class_code VARCHAR2(30);
60192 l_ae_header_id NUMBER;
60193 l_event_type_code VARCHAR2(30);
60194 l_line_definition_code VARCHAR2(30);
60195 l_line_definition_owner_code VARCHAR2(1);
60196 --
60197 -- adr variables
60198 l_segment VARCHAR2(30);
60199 l_ccid NUMBER;
60200 l_adr_transaction_coa_id NUMBER;
60201 l_adr_accounting_coa_id NUMBER;
60202 l_adr_flexfield_segment_code VARCHAR2(30);
60203 l_adr_flex_value_set_id NUMBER;
60204 l_adr_value_type_code VARCHAR2(30);
60205 l_adr_value_combination_id NUMBER;
60206 l_adr_value_segment_code VARCHAR2(30);
60207
60208 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60209 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60210 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60211 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60212
60213 -- 4262811 Variables ------------------------------------------------------------------------------------------
60214 l_entered_amt_idx NUMBER;
60215 l_accted_amt_idx NUMBER;
60216 l_acc_rev_flag VARCHAR2(1);
60217 l_accrual_line_num NUMBER;
60218 l_tmp_amt NUMBER;
60219 l_acc_rev_natural_side_code VARCHAR2(1);
60220
60221 l_num_entries NUMBER;
60222 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60223 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60224 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60225 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60226 l_recog_line_1 NUMBER;
60227 l_recog_line_2 NUMBER;
60228
60229 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60230 l_bflow_applied_to_amt NUMBER; -- 5132302
60231 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60232
60233 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60234
60235 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60236 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60237
60238 ---------------------------------------------------------------------------------------------------------------
60239
60240
60241 --
60242 -- bulk performance
60243 --
60244 l_balance_type_code VARCHAR2(1);
60245 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60246 l_log_module VARCHAR2(240);
60247
60248 --
60249 -- Upgrade strategy
60250 --
60251 l_actual_upg_option VARCHAR2(1);
60252 l_enc_upg_option VARCHAR2(1);
60253
60254 --
60255 BEGIN
60256 --
60257 IF g_log_enabled THEN
60258 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
60259 END IF;
60260 --
60261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60262
60263 trace
60264 (p_msg => 'BEGIN of AcctLineType_114'
60265 ,p_level => C_LEVEL_PROCEDURE
60266 ,p_module => l_log_module);
60267
60268 END IF;
60269 --
60270 l_component_type := 'AMB_JLT';
60271 l_component_code := 'AP_LOSS_PMT_MAT';
60272 l_component_type_code := 'S';
60273 l_component_appl_id := 200;
60274 l_amb_context_code := 'DEFAULT';
60275 l_entity_code := 'AP_PAYMENTS';
60276 l_event_class_code := 'FUTURE DATED PAYMENTS';
60277 l_event_type_code := 'FUTURE DATED PAYMENTS_ALL';
60278 l_line_definition_owner_code := 'S';
60279 l_line_definition_code := 'CASH_FUTURE DATED PAYMENTS_ALL';
60280 --
60281 l_balance_type_code := 'A';
60282 l_segment := NULL;
60283 l_ccid := NULL;
60284 l_adr_transaction_coa_id := NULL;
60285 l_adr_accounting_coa_id := NULL;
60286 l_adr_flexfield_segment_code := NULL;
60290 l_adr_value_segment_code := NULL;
60287 l_adr_flex_value_set_id := NULL;
60288 l_adr_value_type_code := NULL;
60289 l_adr_value_combination_id := NULL;
60291
60292 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60293 l_bflow_class_code := ''; -- 4219869 Business Flow
60294 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60295 l_budgetary_control_flag := 'N';
60296
60297 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60298 l_bflow_applied_to_amt := NULL; -- 5132302
60299 l_entered_amt_idx := NULL; -- 4262811
60300 l_accted_amt_idx := NULL; -- 4262811
60301 l_acc_rev_flag := NULL; -- 4262811
60302 l_accrual_line_num := NULL; -- 4262811
60303 l_tmp_amt := NULL; -- 4262811
60304 --
60305 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
60306 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
60307 return;
60308 END IF;
60309
60310 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60311 l_balance_type_code <> 'B' THEN
60312 IF (NVL(p_source_50,'
60313 ') = 'ALWAYS_ALWAYS' OR
60314 NVL(p_source_50,'
60315 ') = 'ISSUE_ISSUE') AND
60316 p_source_118 IS NOT NULL AND
60317 NVL(p_source_140,'
60318 ') = 'LOSS' AND
60319 NVL(p_source_51,'
60320 ') <> 'EXCHANGE RATE VARIANCE' AND
60321 NVL(p_source_51,'
60322 ') <> 'TAX EXCHANGE RATE VARIANCE' AND
60323 NVL(p_source_51,'
60324 ') <> 'BANK CHARGE' AND
60325 NVL(p_source_51,'
60326 ') <> 'BANK ERROR' AND
60327 NVL(p_source_51,'
60328 ') <> 'AWT'
60329 THEN
60330
60331 --
60332 XLA_AE_LINES_PKG.SetNewLine;
60333
60334 p_balance_type_code := l_balance_type_code;
60335 -- set the flag so later we will know whether the gain loss line needs to be created
60336
60337 IF(l_balance_type_code = 'A' ) THEN
60338 p_actual_flag :='G';
60339 END IF;
60340
60341 --
60342 -- bulk performance
60343 --
60344 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60345 p_header_num => 0); -- 4262811
60346 --
60347 -- set accounting line options
60348 --
60349 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60350 p_natural_side_code => 'C'
60351 , p_gain_or_loss_flag => 'Y'
60352 , p_gl_transfer_mode_code => 'S'
60353 , p_acct_entry_type_code => 'A'
60354 , p_switch_side_flag => 'Y'
60355 , p_merge_duplicate_code => 'A'
60356 );
60357 --
60358 l_acc_rev_natural_side_code := 'D'; -- 4262811
60359 --
60360 --
60361 -- set accounting line type info
60362 --
60363 xla_ae_lines_pkg.SetAcctLineType
60364 (p_component_type => l_component_type
60365 ,p_event_type_code => l_event_type_code
60366 ,p_line_definition_owner_code => l_line_definition_owner_code
60367 ,p_line_definition_code => l_line_definition_code
60368 ,p_accounting_line_code => l_component_code
60369 ,p_accounting_line_type_code => l_component_type_code
60370 ,p_accounting_line_appl_id => l_component_appl_id
60371 ,p_amb_context_code => l_amb_context_code
60372 ,p_entity_code => l_entity_code
60373 ,p_event_class_code => l_event_class_code);
60374 --
60375 -- set accounting class
60376 --
60377 xla_ae_lines_pkg.SetAcctClass(
60378 p_accounting_class_code => 'LOSS'
60379 , p_ae_header_id => l_ae_header_id
60380 );
60381
60382 --
60383 -- set rounding class
60384 --
60385 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60386 'LOSS';
60387
60388 --
60389 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60390 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60391 --
60392 -- bulk performance
60393 --
60394 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60395
60396 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60397 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60398
60399 -- 4955764
60400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60402
60403 -- 4458381 Public Sector Enh
60404
60405 --
60406 -- set accounting attributes for the line type
60407 --
60408 l_entered_amt_idx := 9;
60409 l_accted_amt_idx := 14;
60410 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60411 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60412 l_rec_acct_attrs.array_char_value(1) := p_source_52;
60416 l_rec_acct_attrs.array_char_value(3) := p_source_55;
60413 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
60414 l_rec_acct_attrs.array_num_value(2) := p_source_54;
60415 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60417 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
60418 l_rec_acct_attrs.array_char_value(4) := p_source_56;
60419 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
60420 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_57);
60421 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60422 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_58);
60423 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
60424 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
60425 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
60426 l_rec_acct_attrs.array_char_value(8) := p_source_60;
60427 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
60428 l_rec_acct_attrs.array_num_value(9) := p_source_53;
60429 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
60430 l_rec_acct_attrs.array_char_value(10) := p_source_12;
60431 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
60432 l_rec_acct_attrs.array_date_value(11) := p_source_121;
60433 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
60434 l_rec_acct_attrs.array_num_value(12) := p_source_122;
60435 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
60436 l_rec_acct_attrs.array_char_value(13) := p_source_123;
60437 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
60438 l_rec_acct_attrs.array_num_value(14) := p_source_135;
60439 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
60440 l_rec_acct_attrs.array_char_value(15) := p_source_64;
60441 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
60442 l_rec_acct_attrs.array_num_value(16) := p_source_65;
60443 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
60444 l_rec_acct_attrs.array_num_value(17) := p_source_66;
60445 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
60446 l_rec_acct_attrs.array_char_value(18) := p_source_67;
60447 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
60448 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
60449 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
60450 l_rec_acct_attrs.array_char_value(20) := p_source_60;
60451
60452 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60453 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60454
60455 ---------------------------------------------------------------------------------------------------------------
60456 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60457 ---------------------------------------------------------------------------------------------------------------
60458 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60459
60460 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60461 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60462
60463 IF xla_accounting_cache_pkg.GetValueChar
60464 (p_source_code => 'LEDGER_CATEGORY_CODE'
60465 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60466 AND l_bflow_method_code = 'PRIOR_ENTRY'
60467 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60468 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60469 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60470 )
60471 THEN
60472 xla_ae_lines_pkg.BflowUpgEntry
60473 (p_business_method_code => l_bflow_method_code
60474 ,p_business_class_code => l_bflow_class_code
60475 ,p_balance_type => l_balance_type_code);
60476 ELSE
60477 NULL;
60478 -- No business flow processing for business flow method of NONE.
60479 END IF;
60480
60481 --
60482 -- call analytical criteria
60483 --
60484
60485 --
60486 -- call description
60487 --
60488 -- No description or it is inherited.
60489 --
60490 -- call ADRs
60491 -- Bug 4922099
60492 --
60493 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60494 (NVL(l_actual_upg_option, 'N') = 'O') OR
60495 (NVL(l_enc_upg_option, 'N') = 'O')
60496 )
60497 THEN
60498 NULL;
60499 --
60500 --
60501
60502 l_ccid := AcctDerRule_34(
60503 p_application_id => p_application_id
60504 , p_ae_header_id => l_ae_header_id
60505 , p_source_16 => p_source_16
60506 , p_source_16_meaning => p_source_16_meaning
60507 , p_source_29 => p_source_29
60508 , p_source_46 => p_source_46
60509 , p_source_47 => p_source_47
60510 , x_transaction_coa_id => l_adr_transaction_coa_id
60511 , x_accounting_coa_id => l_adr_accounting_coa_id
60512 , x_value_type_code => l_adr_value_type_code
60513 , p_side => 'NA'
60514 );
60515
60516 xla_ae_lines_pkg.set_ccid(
60517 p_code_combination_id => l_ccid
60521 , p_adr_code => 'AP_REAL_LOSS'
60518 , p_value_type_code => l_adr_value_type_code
60519 , p_transaction_coa_id => l_adr_transaction_coa_id
60520 , p_accounting_coa_id => l_adr_accounting_coa_id
60522 , p_adr_type_code => 'S'
60523 , p_component_type => l_component_type
60524 , p_component_code => l_component_code
60525 , p_component_type_code => l_component_type_code
60526 , p_component_appl_id => l_component_appl_id
60527 , p_amb_context_code => l_amb_context_code
60528 , p_side => 'NA'
60529 );
60530
60531
60532 --
60533 --
60534 END IF;
60535 --
60536 -- Bug 4922099
60537 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60538 (NVL(l_enc_upg_option, 'N') = 'O')
60539 ) AND
60540 (l_bflow_method_code = 'PRIOR_ENTRY')
60541 )
60542 THEN
60543 IF
60544 --
60545 1 = 2
60546 --
60547 THEN
60548 xla_accounting_err_pkg.build_message
60549 (p_appli_s_name => 'XLA'
60550 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60551 ,p_token_1 => 'LINE_NUMBER'
60552 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60553 ,p_token_2 => 'LINE_TYPE_NAME'
60554 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60555 l_component_type
60556 ,l_component_code
60557 ,l_component_type_code
60558 ,l_component_appl_id
60559 ,l_amb_context_code
60560 ,l_entity_code
60561 ,l_event_class_code
60562 )
60563 ,p_token_3 => 'OWNER'
60564 ,p_value_3 => xla_lookups_pkg.get_meaning(
60565 p_lookup_type => 'XLA_OWNER_TYPE'
60566 ,p_lookup_code => l_component_type_code
60567 )
60568 ,p_token_4 => 'PRODUCT_NAME'
60569 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60570 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60571 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60572 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60573 ,p_ae_header_id => NULL
60574 );
60575
60576 IF (C_LEVEL_ERROR>= g_log_level) THEN
60577 trace
60578 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60579 ,p_level => C_LEVEL_ERROR
60580 ,p_module => l_log_module);
60581 END IF;
60582 END IF;
60583 END IF;
60584 --
60585 --
60586 ------------------------------------------------------------------------------------------------
60587 -- 4219869 Business Flow
60588 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60589 -- Prior Entry. Currently, the following code is always generated.
60590 ------------------------------------------------------------------------------------------------
60591 XLA_AE_LINES_PKG.ValidateCurrentLine;
60592
60593 ------------------------------------------------------------------------------------
60594 -- 4219869 Business Flow
60595 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60596 ------------------------------------------------------------------------------------
60597 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60598
60599 ----------------------------------------------------------------------------------
60600 -- 4219869 Business Flow
60601 -- Update journal entry status -- Need to generate this within IF <condition>
60602 ----------------------------------------------------------------------------------
60603 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60604 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60605 ,p_balance_type_code => l_balance_type_code
60606 );
60607
60608 -------------------------------------------------------------------------------------------
60609 -- 4262811 - Generate the Accrual Reversal lines
60610 -------------------------------------------------------------------------------------------
60611 BEGIN
60612 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60616 END IF;
60613 (g_array_event(p_event_id).array_value_num('header_index'));
60614 IF l_acc_rev_flag IS NULL THEN
60615 l_acc_rev_flag := 'N';
60617 EXCEPTION
60618 WHEN OTHERS THEN
60619 l_acc_rev_flag := 'N';
60620 END;
60621 --
60622 IF (l_acc_rev_flag = 'Y') THEN
60623
60624 -- 4645092 ------------------------------------------------------------------------------
60625 -- To allow MPA report to determine if it should generate report process
60626 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60627 ------------------------------------------------------------------------------------------
60628
60629 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60630 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60631 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60632 -- call ADRs
60633 -- Bug 4922099
60634 --
60635 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60636 (NVL(l_actual_upg_option, 'N') = 'O') OR
60637 (NVL(l_enc_upg_option, 'N') = 'O')
60638 )
60639 THEN
60640 NULL;
60641 --
60642 --
60643
60644 l_ccid := AcctDerRule_34(
60645 p_application_id => p_application_id
60646 , p_ae_header_id => l_ae_header_id
60647 , p_source_16 => p_source_16
60648 , p_source_16_meaning => p_source_16_meaning
60649 , p_source_29 => p_source_29
60650 , p_source_46 => p_source_46
60651 , p_source_47 => p_source_47
60652 , x_transaction_coa_id => l_adr_transaction_coa_id
60653 , x_accounting_coa_id => l_adr_accounting_coa_id
60654 , x_value_type_code => l_adr_value_type_code
60655 , p_side => 'NA'
60656 );
60657
60658 xla_ae_lines_pkg.set_ccid(
60659 p_code_combination_id => l_ccid
60660 , p_value_type_code => l_adr_value_type_code
60661 , p_transaction_coa_id => l_adr_transaction_coa_id
60662 , p_accounting_coa_id => l_adr_accounting_coa_id
60663 , p_adr_code => 'AP_REAL_LOSS'
60664 , p_adr_type_code => 'S'
60665 , p_component_type => l_component_type
60666 , p_component_code => l_component_code
60667 , p_component_type_code => l_component_type_code
60668 , p_component_appl_id => l_component_appl_id
60669 , p_amb_context_code => l_amb_context_code
60670 , p_side => 'NA'
60671 );
60672
60673
60674 --
60675 --
60676 END IF;
60677
60678 --
60679 -- Update the line information that should be overwritten
60680 --
60681 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60682 p_header_num => 1);
60683 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60684
60685 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60686
60687 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60688 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60689 END IF;
60690
60691 --
60692 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60693 --
60694 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60695 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60696 ELSE
60697 ---------------------------------------------------------------------------------------------------
60698 -- 4262811a Switch Sign
60699 ---------------------------------------------------------------------------------------------------
60700 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60701 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60702 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60703 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60704 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60705 -- 5132302
60706 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60707 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60708
60709 END IF;
60710
60711 -- 4955764
60712 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60713 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60714
60715
60716 XLA_AE_LINES_PKG.ValidateCurrentLine;
60717 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60718
60719 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60720 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60721 ,p_balance_type_code => l_balance_type_code);
60722
60723 END IF;
60724
60725 -----------------------------------------------------------------------------------------
60729
60726 -- 4262811 Multiperiod Accounting
60727 -----------------------------------------------------------------------------------------
60728 -- No MPA option is assigned.
60730
60731 END IF;
60732 END IF;
60733 --
60734
60735 --
60736 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60737 trace
60738 (p_msg => 'END of AcctLineType_114'
60739 ,p_level => C_LEVEL_PROCEDURE
60740 ,p_module => l_log_module);
60741 END IF;
60742 --
60743 EXCEPTION
60744 WHEN xla_exceptions_pkg.application_exception THEN
60745 RAISE;
60746 WHEN OTHERS THEN
60747 xla_exceptions_pkg.raise_message
60748 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_114');
60749 END AcctLineType_114;
60750 --
60751
60752 ---------------------------------------
60753 --
60754 -- PRIVATE FUNCTION
60755 -- AcctLineType_115
60756 --
60757 ---------------------------------------
60758 PROCEDURE AcctLineType_115 (
60759 p_application_id IN NUMBER
60760 ,p_event_id IN NUMBER
60761 ,p_calculate_acctd_flag IN VARCHAR2
60762 ,p_calculate_g_l_flag IN VARCHAR2
60763 ,p_actual_flag IN OUT VARCHAR2
60764 ,p_balance_type_code OUT VARCHAR2
60765 ,p_gain_or_loss_ref OUT VARCHAR2
60766
60767 --Payment Currency Code
60768 , p_source_12 IN VARCHAR2
60769 --Payment Distribution (Cleared Rate) Ledger Amount
60770 , p_source_22 IN NUMBER
60771 --Invoice Distribution Account
60772 , p_source_29 IN NUMBER
60773 --Invoice Distribution Type
60774 , p_source_32 IN VARCHAR2
60775 , p_source_32_meaning IN VARCHAR2
60776 --When to Account for Payment Option
60777 , p_source_50 IN VARCHAR2
60778 --Payment Distribution Type
60779 , p_source_51 IN VARCHAR2
60780 , p_source_51_meaning IN VARCHAR2
60781 --Accounting Reversal Indicator
60782 , p_source_52 IN VARCHAR2
60783 --Payment Distribution Amount
60784 , p_source_53 IN NUMBER
60785 --Business Flow Accounts Payable Application Identifier
60786 , p_source_54 IN NUMBER
60787 --Business Flow Payment Distribution Type
60788 , p_source_55 IN VARCHAR2
60789 --Business Flow Payment Entity Code
60790 , p_source_56 IN VARCHAR2
60791 --Business Flow Payment Distribution Identifier
60792 , p_source_57 IN NUMBER
60793 --Business Flow Payment Identifier
60794 , p_source_58 IN NUMBER
60795 --Payment Distribution Identifier
60796 , p_source_59 IN NUMBER
60797 --Distribution Link Type
60798 , p_source_60 IN VARCHAR2
60799 --Override Accounted Amount Indicator
60800 , p_source_64 IN VARCHAR2
60801 , p_source_64_meaning IN VARCHAR2
60802 --Payment Supplier Identifier
60803 , p_source_65 IN NUMBER
60804 --Payment Supplier Site Identifier
60805 , p_source_66 IN NUMBER
60806 --Third Party Type
60807 , p_source_67 IN VARCHAR2
60808 --Payment Distribution Reversed Identifier
60809 , p_source_68 IN NUMBER
60810 --Invoice Distribution Tax Line Identifier
60811 , p_source_69 IN NUMBER
60812 --Invoice Distribution Summary Tax Line Identifier
60813 , p_source_70 IN NUMBER
60814 --Cleared Exchange Date
60815 , p_source_114 IN DATE
60816 --Cleared Exchange Rate
60817 , p_source_115 IN NUMBER
60818 --Cleared Exchange Rate Type
60819 , p_source_116 IN VARCHAR2
60820 )
60821 IS
60822
60823 l_component_type VARCHAR2(80);
60824 l_component_code VARCHAR2(30);
60825 l_component_type_code VARCHAR2(1);
60826 l_component_appl_id INTEGER;
60827 l_amb_context_code VARCHAR2(30);
60828 l_entity_code VARCHAR2(30);
60829 l_event_class_code VARCHAR2(30);
60830 l_ae_header_id NUMBER;
60831 l_event_type_code VARCHAR2(30);
60832 l_line_definition_code VARCHAR2(30);
60833 l_line_definition_owner_code VARCHAR2(1);
60834 --
60835 -- adr variables
60836 l_segment VARCHAR2(30);
60837 l_ccid NUMBER;
60838 l_adr_transaction_coa_id NUMBER;
60839 l_adr_accounting_coa_id NUMBER;
60840 l_adr_flexfield_segment_code VARCHAR2(30);
60841 l_adr_flex_value_set_id NUMBER;
60842 l_adr_value_type_code VARCHAR2(30);
60843 l_adr_value_combination_id NUMBER;
60844 l_adr_value_segment_code VARCHAR2(30);
60845
60846 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60847 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60848 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60849 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60850
60851 -- 4262811 Variables ------------------------------------------------------------------------------------------
60852 l_entered_amt_idx NUMBER;
60853 l_accted_amt_idx NUMBER;
60854 l_acc_rev_flag VARCHAR2(1);
60855 l_accrual_line_num NUMBER;
60856 l_tmp_amt NUMBER;
60857 l_acc_rev_natural_side_code VARCHAR2(1);
60858
60859 l_num_entries NUMBER;
60860 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60861 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60862 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60866
60863 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60864 l_recog_line_1 NUMBER;
60865 l_recog_line_2 NUMBER;
60867 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60868 l_bflow_applied_to_amt NUMBER; -- 5132302
60869 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60870
60871 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60872
60873 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60874 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60875
60876 ---------------------------------------------------------------------------------------------------------------
60877
60878
60879 --
60880 -- bulk performance
60881 --
60882 l_balance_type_code VARCHAR2(1);
60883 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60884 l_log_module VARCHAR2(240);
60885
60886 --
60887 -- Upgrade strategy
60888 --
60889 l_actual_upg_option VARCHAR2(1);
60890 l_enc_upg_option VARCHAR2(1);
60891
60892 --
60893 BEGIN
60894 --
60895 IF g_log_enabled THEN
60896 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
60897 END IF;
60898 --
60899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60900
60901 trace
60902 (p_msg => 'BEGIN of AcctLineType_115'
60903 ,p_level => C_LEVEL_PROCEDURE
60904 ,p_module => l_log_module);
60905
60906 END IF;
60907 --
60908 l_component_type := 'AMB_JLT';
60909 l_component_code := 'AP_MISC_EXPENSE_CLEAR';
60910 l_component_type_code := 'S';
60911 l_component_appl_id := 200;
60912 l_amb_context_code := 'DEFAULT';
60913 l_entity_code := 'AP_PAYMENTS';
60914 l_event_class_code := 'RECONCILED PAYMENTS';
60915 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
60916 l_line_definition_owner_code := 'S';
60917 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
60918 --
60919 l_balance_type_code := 'A';
60920 l_segment := NULL;
60921 l_ccid := NULL;
60922 l_adr_transaction_coa_id := NULL;
60923 l_adr_accounting_coa_id := NULL;
60924 l_adr_flexfield_segment_code := NULL;
60925 l_adr_flex_value_set_id := NULL;
60926 l_adr_value_type_code := NULL;
60927 l_adr_value_combination_id := NULL;
60928 l_adr_value_segment_code := NULL;
60929
60930 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60931 l_bflow_class_code := ''; -- 4219869 Business Flow
60932 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60933 l_budgetary_control_flag := 'N';
60934
60935 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60936 l_bflow_applied_to_amt := NULL; -- 5132302
60937 l_entered_amt_idx := NULL; -- 4262811
60938 l_accted_amt_idx := NULL; -- 4262811
60939 l_acc_rev_flag := NULL; -- 4262811
60940 l_accrual_line_num := NULL; -- 4262811
60941 l_tmp_amt := NULL; -- 4262811
60942 --
60943
60944 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60945 l_balance_type_code <> 'B' THEN
60946 IF NVL(p_source_50,'
60947 ') = 'CLEAR_CLEAR' AND
60948 NVL(p_source_32,'
60949 ') = 'MISCELLANEOUS' AND
60950 (NVL(p_source_51,'
60951 ') = 'CASH' OR
60952 NVL(p_source_51,'
60953 ') = 'AWT' OR
60954 NVL(p_source_51,'
60955 ') = 'DISCOUNT')
60956 THEN
60957
60958 --
60959 XLA_AE_LINES_PKG.SetNewLine;
60960
60961 p_balance_type_code := l_balance_type_code;
60962 -- set the flag so later we will know whether the gain loss line needs to be created
60963
60964 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60965 p_actual_flag :='A';
60966 END IF;
60967
60968 --
60969 -- bulk performance
60970 --
60971 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60972 p_header_num => 0); -- 4262811
60973 --
60974 -- set accounting line options
60975 --
60976 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60977 p_natural_side_code => 'D'
60978 , p_gain_or_loss_flag => 'N'
60979 , p_gl_transfer_mode_code => 'S'
60980 , p_acct_entry_type_code => 'A'
60981 , p_switch_side_flag => 'Y'
60982 , p_merge_duplicate_code => 'A'
60983 );
60984 --
60985 l_acc_rev_natural_side_code := 'C'; -- 4262811
60986 --
60987 --
60988 -- set accounting line type info
60989 --
60990 xla_ae_lines_pkg.SetAcctLineType
60991 (p_component_type => l_component_type
60992 ,p_event_type_code => l_event_type_code
60993 ,p_line_definition_owner_code => l_line_definition_owner_code
60994 ,p_line_definition_code => l_line_definition_code
60995 ,p_accounting_line_code => l_component_code
60996 ,p_accounting_line_type_code => l_component_type_code
61000 ,p_event_class_code => l_event_class_code);
60997 ,p_accounting_line_appl_id => l_component_appl_id
60998 ,p_amb_context_code => l_amb_context_code
60999 ,p_entity_code => l_entity_code
61001 --
61002 -- set accounting class
61003 --
61004 xla_ae_lines_pkg.SetAcctClass(
61005 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
61006 , p_ae_header_id => l_ae_header_id
61007 );
61008
61009 --
61010 -- set rounding class
61011 --
61012 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61013 'MISCELLANEOUS EXPENSE';
61014
61015 --
61016 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61017 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61018 --
61019 -- bulk performance
61020 --
61021 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61022
61023 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61024 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61025
61026 -- 4955764
61027 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61028 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61029
61030 -- 4458381 Public Sector Enh
61031
61032 --
61033 -- set accounting attributes for the line type
61034 --
61035 l_entered_amt_idx := 10;
61036 l_accted_amt_idx := 15;
61037 l_bflow_applied_to_amt_idx := 2; -- 5132302
61038 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61039 l_rec_acct_attrs.array_char_value(1) := p_source_52;
61040 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61041 l_rec_acct_attrs.array_num_value(2) := p_source_53;
61042 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61043 l_rec_acct_attrs.array_num_value(3) := p_source_54;
61044 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61045 l_rec_acct_attrs.array_char_value(4) := p_source_55;
61046 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61047 l_rec_acct_attrs.array_char_value(5) := p_source_56;
61048 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61049 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
61050 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61051 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
61052 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61053 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
61054 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61055 l_rec_acct_attrs.array_char_value(9) := p_source_60;
61056 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61057 l_rec_acct_attrs.array_num_value(10) := p_source_53;
61058 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61059 l_rec_acct_attrs.array_char_value(11) := p_source_12;
61060 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61061 l_rec_acct_attrs.array_date_value(12) := p_source_114;
61062 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61063 l_rec_acct_attrs.array_num_value(13) := p_source_115;
61064 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61065 l_rec_acct_attrs.array_char_value(14) := p_source_116;
61066 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61067 l_rec_acct_attrs.array_num_value(15) := p_source_22;
61068 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61069 l_rec_acct_attrs.array_char_value(16) := p_source_64;
61070 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61071 l_rec_acct_attrs.array_num_value(17) := p_source_65;
61072 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61073 l_rec_acct_attrs.array_num_value(18) := p_source_66;
61074 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61075 l_rec_acct_attrs.array_char_value(19) := p_source_67;
61076 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61077 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
61078 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61079 l_rec_acct_attrs.array_char_value(21) := p_source_60;
61080 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61081 l_rec_acct_attrs.array_num_value(22) := p_source_69;
61082 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61083 l_rec_acct_attrs.array_num_value(23) := p_source_69;
61084 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61085 l_rec_acct_attrs.array_num_value(24) := p_source_70;
61086
61087 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61088 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61089
61090 ---------------------------------------------------------------------------------------------------------------
61091 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61092 ---------------------------------------------------------------------------------------------------------------
61096 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61093 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61094
61095 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61097
61098 IF xla_accounting_cache_pkg.GetValueChar
61099 (p_source_code => 'LEDGER_CATEGORY_CODE'
61100 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61101 AND l_bflow_method_code = 'PRIOR_ENTRY'
61102 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61103 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61104 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61105 )
61106 THEN
61107 xla_ae_lines_pkg.BflowUpgEntry
61108 (p_business_method_code => l_bflow_method_code
61109 ,p_business_class_code => l_bflow_class_code
61110 ,p_balance_type => l_balance_type_code);
61111 ELSE
61112 NULL;
61113 -- No business flow processing for business flow method of NONE.
61114 END IF;
61115
61116 --
61117 -- call analytical criteria
61118 --
61119
61120 --
61121 -- call description
61122 --
61123 -- No description or it is inherited.
61124 --
61125 -- call ADRs
61126 -- Bug 4922099
61127 --
61128 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61129 (NVL(l_actual_upg_option, 'N') = 'O') OR
61130 (NVL(l_enc_upg_option, 'N') = 'O')
61131 )
61132 THEN
61133 NULL;
61134 --
61135 --
61136
61137 l_ccid := AcctDerRule_28(
61138 p_application_id => p_application_id
61139 , p_ae_header_id => l_ae_header_id
61140 , p_source_29 => p_source_29
61141 , x_transaction_coa_id => l_adr_transaction_coa_id
61142 , x_accounting_coa_id => l_adr_accounting_coa_id
61143 , x_value_type_code => l_adr_value_type_code
61144 , p_side => 'NA'
61145 );
61146
61147 xla_ae_lines_pkg.set_ccid(
61148 p_code_combination_id => l_ccid
61149 , p_value_type_code => l_adr_value_type_code
61150 , p_transaction_coa_id => l_adr_transaction_coa_id
61151 , p_accounting_coa_id => l_adr_accounting_coa_id
61152 , p_adr_code => 'AP_INVOICE_DIST'
61153 , p_adr_type_code => 'S'
61154 , p_component_type => l_component_type
61155 , p_component_code => l_component_code
61156 , p_component_type_code => l_component_type_code
61157 , p_component_appl_id => l_component_appl_id
61158 , p_amb_context_code => l_amb_context_code
61159 , p_side => 'NA'
61160 );
61161
61162
61163 --
61164 --
61165 END IF;
61166 --
61167 -- Bug 4922099
61168 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61169 (NVL(l_enc_upg_option, 'N') = 'O')
61170 ) AND
61171 (l_bflow_method_code = 'PRIOR_ENTRY')
61172 )
61173 THEN
61174 IF
61175 --
61176 1 = 2
61177 --
61178 THEN
61179 xla_accounting_err_pkg.build_message
61180 (p_appli_s_name => 'XLA'
61181 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61182 ,p_token_1 => 'LINE_NUMBER'
61183 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61184 ,p_token_2 => 'LINE_TYPE_NAME'
61185 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61186 l_component_type
61187 ,l_component_code
61188 ,l_component_type_code
61189 ,l_component_appl_id
61190 ,l_amb_context_code
61191 ,l_entity_code
61192 ,l_event_class_code
61193 )
61194 ,p_token_3 => 'OWNER'
61195 ,p_value_3 => xla_lookups_pkg.get_meaning(
61196 p_lookup_type => 'XLA_OWNER_TYPE'
61197 ,p_lookup_code => l_component_type_code
61198 )
61199 ,p_token_4 => 'PRODUCT_NAME'
61200 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61201 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61202 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61206
61203 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61204 ,p_ae_header_id => NULL
61205 );
61207 IF (C_LEVEL_ERROR>= g_log_level) THEN
61208 trace
61209 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61210 ,p_level => C_LEVEL_ERROR
61211 ,p_module => l_log_module);
61212 END IF;
61213 END IF;
61214 END IF;
61215 --
61216 --
61217 ------------------------------------------------------------------------------------------------
61218 -- 4219869 Business Flow
61219 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61220 -- Prior Entry. Currently, the following code is always generated.
61221 ------------------------------------------------------------------------------------------------
61222 XLA_AE_LINES_PKG.ValidateCurrentLine;
61223
61224 ------------------------------------------------------------------------------------
61225 -- 4219869 Business Flow
61226 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61227 ------------------------------------------------------------------------------------
61228 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61229
61230 ----------------------------------------------------------------------------------
61231 -- 4219869 Business Flow
61232 -- Update journal entry status -- Need to generate this within IF <condition>
61233 ----------------------------------------------------------------------------------
61234 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61235 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61236 ,p_balance_type_code => l_balance_type_code
61237 );
61238
61239 -------------------------------------------------------------------------------------------
61240 -- 4262811 - Generate the Accrual Reversal lines
61241 -------------------------------------------------------------------------------------------
61242 BEGIN
61243 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61244 (g_array_event(p_event_id).array_value_num('header_index'));
61245 IF l_acc_rev_flag IS NULL THEN
61246 l_acc_rev_flag := 'N';
61247 END IF;
61248 EXCEPTION
61249 WHEN OTHERS THEN
61250 l_acc_rev_flag := 'N';
61251 END;
61252 --
61253 IF (l_acc_rev_flag = 'Y') THEN
61254
61255 -- 4645092 ------------------------------------------------------------------------------
61256 -- To allow MPA report to determine if it should generate report process
61257 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61258 ------------------------------------------------------------------------------------------
61259
61260 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61261 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61262 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61263 -- call ADRs
61264 -- Bug 4922099
61265 --
61266 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61267 (NVL(l_actual_upg_option, 'N') = 'O') OR
61268 (NVL(l_enc_upg_option, 'N') = 'O')
61269 )
61270 THEN
61271 NULL;
61272 --
61273 --
61274
61275 l_ccid := AcctDerRule_28(
61276 p_application_id => p_application_id
61277 , p_ae_header_id => l_ae_header_id
61278 , p_source_29 => p_source_29
61279 , x_transaction_coa_id => l_adr_transaction_coa_id
61280 , x_accounting_coa_id => l_adr_accounting_coa_id
61281 , x_value_type_code => l_adr_value_type_code
61282 , p_side => 'NA'
61283 );
61284
61285 xla_ae_lines_pkg.set_ccid(
61286 p_code_combination_id => l_ccid
61287 , p_value_type_code => l_adr_value_type_code
61288 , p_transaction_coa_id => l_adr_transaction_coa_id
61289 , p_accounting_coa_id => l_adr_accounting_coa_id
61290 , p_adr_code => 'AP_INVOICE_DIST'
61291 , p_adr_type_code => 'S'
61292 , p_component_type => l_component_type
61293 , p_component_code => l_component_code
61294 , p_component_type_code => l_component_type_code
61295 , p_component_appl_id => l_component_appl_id
61296 , p_amb_context_code => l_amb_context_code
61297 , p_side => 'NA'
61298 );
61299
61300
61301 --
61302 --
61303 END IF;
61304
61305 --
61306 -- Update the line information that should be overwritten
61307 --
61308 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61309 p_header_num => 1);
61310 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61311
61312 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61313
61314 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61315 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61316 END IF;
61317
61318 --
61322 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61319 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61320 --
61321 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61323 ELSE
61324 ---------------------------------------------------------------------------------------------------
61325 -- 4262811a Switch Sign
61326 ---------------------------------------------------------------------------------------------------
61327 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61328 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61329 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61330 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61331 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61332 -- 5132302
61333 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61334 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61335
61336 END IF;
61337
61338 -- 4955764
61339 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61340 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61341
61342
61343 XLA_AE_LINES_PKG.ValidateCurrentLine;
61344 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61345
61346 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61347 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61348 ,p_balance_type_code => l_balance_type_code);
61349
61350 END IF;
61351
61352 -----------------------------------------------------------------------------------------
61353 -- 4262811 Multiperiod Accounting
61354 -----------------------------------------------------------------------------------------
61355 -- No MPA option is assigned.
61356
61357
61358 END IF;
61359 END IF;
61360 --
61361
61362 --
61363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61364 trace
61365 (p_msg => 'END of AcctLineType_115'
61366 ,p_level => C_LEVEL_PROCEDURE
61367 ,p_module => l_log_module);
61368 END IF;
61369 --
61370 EXCEPTION
61371 WHEN xla_exceptions_pkg.application_exception THEN
61372 RAISE;
61373 WHEN OTHERS THEN
61374 xla_exceptions_pkg.raise_message
61375 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_115');
61376 END AcctLineType_115;
61377 --
61378
61379 ---------------------------------------
61380 --
61381 -- PRIVATE FUNCTION
61382 -- AcctLineType_116
61383 --
61384 ---------------------------------------
61385 PROCEDURE AcctLineType_116 (
61386 p_application_id IN NUMBER
61387 ,p_event_id IN NUMBER
61388 ,p_calculate_acctd_flag IN VARCHAR2
61389 ,p_calculate_g_l_flag IN VARCHAR2
61390 ,p_actual_flag IN OUT VARCHAR2
61391 ,p_balance_type_code OUT VARCHAR2
61392 ,p_gain_or_loss_ref OUT VARCHAR2
61393
61394 --Payment Currency Code
61395 , p_source_12 IN VARCHAR2
61396 --Payment Distribution (Payment Rate) Ledger Amount
61397 , p_source_21 IN NUMBER
61398 --Invoice Distribution Account
61399 , p_source_29 IN NUMBER
61400 --Invoice Distribution Type
61401 , p_source_32 IN VARCHAR2
61402 , p_source_32_meaning IN VARCHAR2
61403 --When to Account for Payment Option
61404 , p_source_50 IN VARCHAR2
61405 --Payment Distribution Type
61406 , p_source_51 IN VARCHAR2
61407 , p_source_51_meaning IN VARCHAR2
61408 --Accounting Reversal Indicator
61409 , p_source_52 IN VARCHAR2
61410 --Payment Distribution Amount
61411 , p_source_53 IN NUMBER
61412 --Business Flow Accounts Payable Application Identifier
61413 , p_source_54 IN NUMBER
61414 --Payment Distribution Identifier
61415 , p_source_59 IN NUMBER
61416 --Distribution Link Type
61417 , p_source_60 IN VARCHAR2
61418 --Override Accounted Amount Indicator
61419 , p_source_64 IN VARCHAR2
61420 , p_source_64_meaning IN VARCHAR2
61421 --Payment Supplier Identifier
61422 , p_source_65 IN NUMBER
61423 --Payment Supplier Site Identifier
61424 , p_source_66 IN NUMBER
61425 --Third Party Type
61426 , p_source_67 IN VARCHAR2
61427 --Payment Distribution Reversed Identifier
61428 , p_source_68 IN NUMBER
61429 --Invoice Distribution Tax Line Identifier
61430 , p_source_69 IN NUMBER
61431 --Invoice Distribution Summary Tax Line Identifier
61432 , p_source_70 IN NUMBER
61433 --Payment Type
61434 , p_source_71 IN VARCHAR2
61435 , p_source_71_meaning IN VARCHAR2
61436 --Invoice Distribution Amount of the Payment Distribution
61437 , p_source_72 IN NUMBER
61438 --Business Flow Invoice Distribution Type
61439 , p_source_73 IN VARCHAR2
61440 --Business Flow Invoice Entity Code
61441 , p_source_74 IN VARCHAR2
61442 --Business Flow Invoice Distribution Identifier
61446 --Invoice Distribution Tax Distribution Identifier from Tax
61443 , p_source_75 IN NUMBER
61444 --Business Flow Invoice Identifier
61445 , p_source_76 IN NUMBER
61447 , p_source_77 IN NUMBER
61448 --Payment Exchange Date
61449 , p_source_121 IN DATE
61450 --Payment Exchange Rate
61451 , p_source_122 IN NUMBER
61452 --Payment Exchange Rate Type
61453 , p_source_123 IN VARCHAR2
61454 )
61455 IS
61456
61457 l_component_type VARCHAR2(80);
61458 l_component_code VARCHAR2(30);
61459 l_component_type_code VARCHAR2(1);
61460 l_component_appl_id INTEGER;
61461 l_amb_context_code VARCHAR2(30);
61462 l_entity_code VARCHAR2(30);
61463 l_event_class_code VARCHAR2(30);
61464 l_ae_header_id NUMBER;
61465 l_event_type_code VARCHAR2(30);
61466 l_line_definition_code VARCHAR2(30);
61467 l_line_definition_owner_code VARCHAR2(1);
61468 --
61469 -- adr variables
61470 l_segment VARCHAR2(30);
61471 l_ccid NUMBER;
61472 l_adr_transaction_coa_id NUMBER;
61473 l_adr_accounting_coa_id NUMBER;
61474 l_adr_flexfield_segment_code VARCHAR2(30);
61475 l_adr_flex_value_set_id NUMBER;
61476 l_adr_value_type_code VARCHAR2(30);
61477 l_adr_value_combination_id NUMBER;
61478 l_adr_value_segment_code VARCHAR2(30);
61479
61480 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61481 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61482 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61483 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61484
61485 -- 4262811 Variables ------------------------------------------------------------------------------------------
61486 l_entered_amt_idx NUMBER;
61487 l_accted_amt_idx NUMBER;
61488 l_acc_rev_flag VARCHAR2(1);
61489 l_accrual_line_num NUMBER;
61490 l_tmp_amt NUMBER;
61491 l_acc_rev_natural_side_code VARCHAR2(1);
61492
61493 l_num_entries NUMBER;
61494 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61495 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61496 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61497 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61498 l_recog_line_1 NUMBER;
61499 l_recog_line_2 NUMBER;
61500
61501 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61502 l_bflow_applied_to_amt NUMBER; -- 5132302
61503 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61504
61505 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61506
61507 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61508 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61509
61510 ---------------------------------------------------------------------------------------------------------------
61511
61512
61513 --
61514 -- bulk performance
61515 --
61516 l_balance_type_code VARCHAR2(1);
61517 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61518 l_log_module VARCHAR2(240);
61519
61520 --
61521 -- Upgrade strategy
61522 --
61523 l_actual_upg_option VARCHAR2(1);
61524 l_enc_upg_option VARCHAR2(1);
61525
61526 --
61527 BEGIN
61528 --
61529 IF g_log_enabled THEN
61530 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
61531 END IF;
61532 --
61533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61534
61535 trace
61536 (p_msg => 'BEGIN of AcctLineType_116'
61537 ,p_level => C_LEVEL_PROCEDURE
61538 ,p_module => l_log_module);
61539
61540 END IF;
61541 --
61542 l_component_type := 'AMB_JLT';
61543 l_component_code := 'AP_MISC_EXPENSE_PMT';
61544 l_component_type_code := 'S';
61545 l_component_appl_id := 200;
61546 l_amb_context_code := 'DEFAULT';
61547 l_entity_code := 'AP_PAYMENTS';
61548 l_event_class_code := 'PAYMENTS';
61549 l_event_type_code := 'PAYMENTS_ALL';
61550 l_line_definition_owner_code := 'S';
61551 l_line_definition_code := 'CASH_PAYMENTS_ALL';
61552 --
61553 l_balance_type_code := 'A';
61554 l_segment := NULL;
61555 l_ccid := NULL;
61556 l_adr_transaction_coa_id := NULL;
61557 l_adr_accounting_coa_id := NULL;
61558 l_adr_flexfield_segment_code := NULL;
61559 l_adr_flex_value_set_id := NULL;
61560 l_adr_value_type_code := NULL;
61561 l_adr_value_combination_id := NULL;
61562 l_adr_value_segment_code := NULL;
61563
61564 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61565 l_bflow_class_code := ''; -- 4219869 Business Flow
61566 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61567 l_budgetary_control_flag := 'N';
61568
61569 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61570 l_bflow_applied_to_amt := NULL; -- 5132302
61574 l_accrual_line_num := NULL; -- 4262811
61571 l_entered_amt_idx := NULL; -- 4262811
61572 l_accted_amt_idx := NULL; -- 4262811
61573 l_acc_rev_flag := NULL; -- 4262811
61575 l_tmp_amt := NULL; -- 4262811
61576 --
61577
61578 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61579 l_balance_type_code <> 'B' THEN
61580 IF NVL(p_source_50,'
61581 ') <> 'CLEAR_CLEAR' AND
61582 NVL(p_source_32,'
61583 ') = 'MISCELLANEOUS' AND
61584 (NVL(p_source_51,'
61585 ') = 'CASH' OR
61586 NVL(p_source_51,'
61587 ') = 'AWT' OR
61588 NVL(p_source_51,'
61589 ') = 'DISCOUNT') AND
61590 NVL(p_source_71,'
61591 ') <> 'R'
61592 THEN
61593
61594 --
61595 XLA_AE_LINES_PKG.SetNewLine;
61596
61597 p_balance_type_code := l_balance_type_code;
61598 -- set the flag so later we will know whether the gain loss line needs to be created
61599
61600 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61601 p_actual_flag :='A';
61602 END IF;
61603
61604 --
61605 -- bulk performance
61606 --
61607 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61608 p_header_num => 0); -- 4262811
61609 --
61610 -- set accounting line options
61611 --
61612 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61613 p_natural_side_code => 'D'
61614 , p_gain_or_loss_flag => 'N'
61615 , p_gl_transfer_mode_code => 'S'
61616 , p_acct_entry_type_code => 'A'
61617 , p_switch_side_flag => 'Y'
61618 , p_merge_duplicate_code => 'A'
61619 );
61620 --
61621 l_acc_rev_natural_side_code := 'C'; -- 4262811
61622 --
61623 --
61624 -- set accounting line type info
61625 --
61626 xla_ae_lines_pkg.SetAcctLineType
61627 (p_component_type => l_component_type
61628 ,p_event_type_code => l_event_type_code
61629 ,p_line_definition_owner_code => l_line_definition_owner_code
61630 ,p_line_definition_code => l_line_definition_code
61631 ,p_accounting_line_code => l_component_code
61632 ,p_accounting_line_type_code => l_component_type_code
61633 ,p_accounting_line_appl_id => l_component_appl_id
61634 ,p_amb_context_code => l_amb_context_code
61635 ,p_entity_code => l_entity_code
61636 ,p_event_class_code => l_event_class_code);
61637 --
61638 -- set accounting class
61639 --
61640 xla_ae_lines_pkg.SetAcctClass(
61641 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
61642 , p_ae_header_id => l_ae_header_id
61643 );
61644
61645 --
61646 -- set rounding class
61647 --
61648 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61649 'MISCELLANEOUS EXPENSE';
61650
61651 --
61652 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61653 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61654 --
61655 -- bulk performance
61656 --
61657 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61658
61659 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61660 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61661
61662 -- 4955764
61663 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61664 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61665
61666 -- 4458381 Public Sector Enh
61667
61668 --
61669 -- set accounting attributes for the line type
61670 --
61671 l_entered_amt_idx := 10;
61672 l_accted_amt_idx := 15;
61673 l_bflow_applied_to_amt_idx := 2; -- 5132302
61674 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61675 l_rec_acct_attrs.array_char_value(1) := p_source_52;
61676 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61677 l_rec_acct_attrs.array_num_value(2) := p_source_72;
61678 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61679 l_rec_acct_attrs.array_num_value(3) := p_source_54;
61680 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61681 l_rec_acct_attrs.array_char_value(4) := p_source_73;
61682 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61683 l_rec_acct_attrs.array_char_value(5) := p_source_74;
61684 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61685 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
61686 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61687 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
61688 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61689 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
61690 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61691 l_rec_acct_attrs.array_char_value(9) := p_source_60;
61695 l_rec_acct_attrs.array_char_value(11) := p_source_12;
61692 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61693 l_rec_acct_attrs.array_num_value(10) := p_source_53;
61694 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61696 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61697 l_rec_acct_attrs.array_date_value(12) := p_source_121;
61698 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61699 l_rec_acct_attrs.array_num_value(13) := p_source_122;
61700 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61701 l_rec_acct_attrs.array_char_value(14) := p_source_123;
61702 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61703 l_rec_acct_attrs.array_num_value(15) := p_source_21;
61704 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61705 l_rec_acct_attrs.array_char_value(16) := p_source_64;
61706 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61707 l_rec_acct_attrs.array_num_value(17) := p_source_65;
61708 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61709 l_rec_acct_attrs.array_num_value(18) := p_source_66;
61710 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61711 l_rec_acct_attrs.array_char_value(19) := p_source_67;
61712 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61713 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
61714 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61715 l_rec_acct_attrs.array_char_value(21) := p_source_60;
61716 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61717 l_rec_acct_attrs.array_num_value(22) := p_source_69;
61718 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61719 l_rec_acct_attrs.array_num_value(23) := p_source_77;
61720 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61721 l_rec_acct_attrs.array_num_value(24) := p_source_70;
61722
61723 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61724 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61725
61726 ---------------------------------------------------------------------------------------------------------------
61727 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61728 ---------------------------------------------------------------------------------------------------------------
61729 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61730
61731 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61732 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61733
61734 IF xla_accounting_cache_pkg.GetValueChar
61735 (p_source_code => 'LEDGER_CATEGORY_CODE'
61736 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61737 AND l_bflow_method_code = 'PRIOR_ENTRY'
61738 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61739 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61740 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61741 )
61742 THEN
61743 xla_ae_lines_pkg.BflowUpgEntry
61744 (p_business_method_code => l_bflow_method_code
61745 ,p_business_class_code => l_bflow_class_code
61746 ,p_balance_type => l_balance_type_code);
61747 ELSE
61748 NULL;
61749 -- No business flow processing for business flow method of NONE.
61750 END IF;
61751
61752 --
61753 -- call analytical criteria
61754 --
61755
61756 --
61757 -- call description
61758 --
61759 -- No description or it is inherited.
61760 --
61761 -- call ADRs
61762 -- Bug 4922099
61763 --
61764 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61765 (NVL(l_actual_upg_option, 'N') = 'O') OR
61766 (NVL(l_enc_upg_option, 'N') = 'O')
61767 )
61768 THEN
61769 NULL;
61770 --
61771 --
61772
61773 l_ccid := AcctDerRule_28(
61774 p_application_id => p_application_id
61775 , p_ae_header_id => l_ae_header_id
61776 , p_source_29 => p_source_29
61777 , x_transaction_coa_id => l_adr_transaction_coa_id
61778 , x_accounting_coa_id => l_adr_accounting_coa_id
61779 , x_value_type_code => l_adr_value_type_code
61780 , p_side => 'NA'
61781 );
61782
61783 xla_ae_lines_pkg.set_ccid(
61784 p_code_combination_id => l_ccid
61785 , p_value_type_code => l_adr_value_type_code
61786 , p_transaction_coa_id => l_adr_transaction_coa_id
61787 , p_accounting_coa_id => l_adr_accounting_coa_id
61788 , p_adr_code => 'AP_INVOICE_DIST'
61789 , p_adr_type_code => 'S'
61790 , p_component_type => l_component_type
61791 , p_component_code => l_component_code
61792 , p_component_type_code => l_component_type_code
61793 , p_component_appl_id => l_component_appl_id
61794 , p_amb_context_code => l_amb_context_code
61795 , p_side => 'NA'
61796 );
61797
61798
61799 --
61800 --
61801 END IF;
61802 --
61803 -- Bug 4922099
61804 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61808 )
61805 (NVL(l_enc_upg_option, 'N') = 'O')
61806 ) AND
61807 (l_bflow_method_code = 'PRIOR_ENTRY')
61809 THEN
61810 IF
61811 --
61812 1 = 2
61813 --
61814 THEN
61815 xla_accounting_err_pkg.build_message
61816 (p_appli_s_name => 'XLA'
61817 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61818 ,p_token_1 => 'LINE_NUMBER'
61819 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61820 ,p_token_2 => 'LINE_TYPE_NAME'
61821 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61822 l_component_type
61823 ,l_component_code
61824 ,l_component_type_code
61825 ,l_component_appl_id
61826 ,l_amb_context_code
61827 ,l_entity_code
61828 ,l_event_class_code
61829 )
61830 ,p_token_3 => 'OWNER'
61831 ,p_value_3 => xla_lookups_pkg.get_meaning(
61832 p_lookup_type => 'XLA_OWNER_TYPE'
61833 ,p_lookup_code => l_component_type_code
61834 )
61835 ,p_token_4 => 'PRODUCT_NAME'
61836 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61837 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61838 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61839 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61840 ,p_ae_header_id => NULL
61841 );
61842
61843 IF (C_LEVEL_ERROR>= g_log_level) THEN
61844 trace
61845 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61846 ,p_level => C_LEVEL_ERROR
61847 ,p_module => l_log_module);
61848 END IF;
61849 END IF;
61850 END IF;
61851 --
61852 --
61853 ------------------------------------------------------------------------------------------------
61854 -- 4219869 Business Flow
61855 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61856 -- Prior Entry. Currently, the following code is always generated.
61857 ------------------------------------------------------------------------------------------------
61858 XLA_AE_LINES_PKG.ValidateCurrentLine;
61859
61860 ------------------------------------------------------------------------------------
61861 -- 4219869 Business Flow
61862 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61863 ------------------------------------------------------------------------------------
61864 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61865
61866 ----------------------------------------------------------------------------------
61867 -- 4219869 Business Flow
61868 -- Update journal entry status -- Need to generate this within IF <condition>
61869 ----------------------------------------------------------------------------------
61870 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61871 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61872 ,p_balance_type_code => l_balance_type_code
61873 );
61874
61875 -------------------------------------------------------------------------------------------
61876 -- 4262811 - Generate the Accrual Reversal lines
61877 -------------------------------------------------------------------------------------------
61878 BEGIN
61879 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61880 (g_array_event(p_event_id).array_value_num('header_index'));
61881 IF l_acc_rev_flag IS NULL THEN
61882 l_acc_rev_flag := 'N';
61883 END IF;
61884 EXCEPTION
61885 WHEN OTHERS THEN
61886 l_acc_rev_flag := 'N';
61887 END;
61888 --
61889 IF (l_acc_rev_flag = 'Y') THEN
61890
61891 -- 4645092 ------------------------------------------------------------------------------
61892 -- To allow MPA report to determine if it should generate report process
61893 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61894 ------------------------------------------------------------------------------------------
61895
61896 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61897 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61901 --
61898 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61899 -- call ADRs
61900 -- Bug 4922099
61902 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61903 (NVL(l_actual_upg_option, 'N') = 'O') OR
61904 (NVL(l_enc_upg_option, 'N') = 'O')
61905 )
61906 THEN
61907 NULL;
61908 --
61909 --
61910
61911 l_ccid := AcctDerRule_28(
61912 p_application_id => p_application_id
61913 , p_ae_header_id => l_ae_header_id
61914 , p_source_29 => p_source_29
61915 , x_transaction_coa_id => l_adr_transaction_coa_id
61916 , x_accounting_coa_id => l_adr_accounting_coa_id
61917 , x_value_type_code => l_adr_value_type_code
61918 , p_side => 'NA'
61919 );
61920
61921 xla_ae_lines_pkg.set_ccid(
61922 p_code_combination_id => l_ccid
61923 , p_value_type_code => l_adr_value_type_code
61924 , p_transaction_coa_id => l_adr_transaction_coa_id
61925 , p_accounting_coa_id => l_adr_accounting_coa_id
61926 , p_adr_code => 'AP_INVOICE_DIST'
61927 , p_adr_type_code => 'S'
61928 , p_component_type => l_component_type
61929 , p_component_code => l_component_code
61930 , p_component_type_code => l_component_type_code
61931 , p_component_appl_id => l_component_appl_id
61932 , p_amb_context_code => l_amb_context_code
61933 , p_side => 'NA'
61934 );
61935
61936
61937 --
61938 --
61939 END IF;
61940
61941 --
61942 -- Update the line information that should be overwritten
61943 --
61944 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61945 p_header_num => 1);
61946 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61947
61948 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61949
61950 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61951 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61952 END IF;
61953
61954 --
61955 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61956 --
61957 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61958 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61959 ELSE
61960 ---------------------------------------------------------------------------------------------------
61961 -- 4262811a Switch Sign
61962 ---------------------------------------------------------------------------------------------------
61963 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61964 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61965 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61966 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61967 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61968 -- 5132302
61969 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61970 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61971
61972 END IF;
61973
61974 -- 4955764
61975 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61976 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61977
61978
61979 XLA_AE_LINES_PKG.ValidateCurrentLine;
61980 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61981
61982 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61983 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61984 ,p_balance_type_code => l_balance_type_code);
61985
61986 END IF;
61987
61988 -----------------------------------------------------------------------------------------
61989 -- 4262811 Multiperiod Accounting
61990 -----------------------------------------------------------------------------------------
61991 -- No MPA option is assigned.
61992
61993
61994 END IF;
61995 END IF;
61996 --
61997
61998 --
61999 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62000 trace
62001 (p_msg => 'END of AcctLineType_116'
62002 ,p_level => C_LEVEL_PROCEDURE
62003 ,p_module => l_log_module);
62004 END IF;
62005 --
62006 EXCEPTION
62007 WHEN xla_exceptions_pkg.application_exception THEN
62008 RAISE;
62009 WHEN OTHERS THEN
62010 xla_exceptions_pkg.raise_message
62011 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_116');
62012 END AcctLineType_116;
62013 --
62014
62015 ---------------------------------------
62016 --
62017 -- PRIVATE FUNCTION
62018 -- AcctLineType_117
62019 --
62020 ---------------------------------------
62024 ,p_calculate_acctd_flag IN VARCHAR2
62021 PROCEDURE AcctLineType_117 (
62022 p_application_id IN NUMBER
62023 ,p_event_id IN NUMBER
62025 ,p_calculate_g_l_flag IN VARCHAR2
62026 ,p_actual_flag IN OUT VARCHAR2
62027 ,p_balance_type_code OUT VARCHAR2
62028 ,p_gain_or_loss_ref OUT VARCHAR2
62029
62030 --Payment Currency Code
62031 , p_source_12 IN VARCHAR2
62032 --Payment Distribution (Payment Rate) Ledger Amount
62033 , p_source_21 IN NUMBER
62034 --Invoice Distribution Account
62035 , p_source_29 IN NUMBER
62036 --Invoice Distribution Type
62037 , p_source_32 IN VARCHAR2
62038 , p_source_32_meaning IN VARCHAR2
62039 --When to Account for Payment Option
62040 , p_source_50 IN VARCHAR2
62041 --Payment Distribution Type
62042 , p_source_51 IN VARCHAR2
62043 , p_source_51_meaning IN VARCHAR2
62044 --Accounting Reversal Indicator
62045 , p_source_52 IN VARCHAR2
62046 --Payment Distribution Amount
62047 , p_source_53 IN NUMBER
62048 --Business Flow Accounts Payable Application Identifier
62049 , p_source_54 IN NUMBER
62050 --Payment Distribution Identifier
62051 , p_source_59 IN NUMBER
62052 --Distribution Link Type
62053 , p_source_60 IN VARCHAR2
62054 --Override Accounted Amount Indicator
62055 , p_source_64 IN VARCHAR2
62056 , p_source_64_meaning IN VARCHAR2
62057 --Payment Supplier Identifier
62058 , p_source_65 IN NUMBER
62059 --Payment Supplier Site Identifier
62060 , p_source_66 IN NUMBER
62061 --Third Party Type
62062 , p_source_67 IN VARCHAR2
62063 --Payment Distribution Reversed Identifier
62064 , p_source_68 IN NUMBER
62065 --Invoice Distribution Tax Line Identifier
62066 , p_source_69 IN NUMBER
62067 --Invoice Distribution Summary Tax Line Identifier
62068 , p_source_70 IN NUMBER
62069 --Payment Type
62070 , p_source_71 IN VARCHAR2
62071 , p_source_71_meaning IN VARCHAR2
62072 --Business Flow Invoice Distribution Type
62073 , p_source_73 IN VARCHAR2
62074 --Business Flow Invoice Entity Code
62075 , p_source_74 IN VARCHAR2
62076 --Business Flow Invoice Distribution Identifier
62077 , p_source_75 IN NUMBER
62078 --Business Flow Invoice Identifier
62079 , p_source_76 IN NUMBER
62080 --Invoice Distribution Tax Distribution Identifier from Tax
62081 , p_source_77 IN NUMBER
62082 --Payment Exchange Date
62083 , p_source_121 IN DATE
62084 --Payment Exchange Rate
62085 , p_source_122 IN NUMBER
62086 --Payment Exchange Rate Type
62087 , p_source_123 IN VARCHAR2
62088 )
62089 IS
62090
62091 l_component_type VARCHAR2(80);
62092 l_component_code VARCHAR2(30);
62093 l_component_type_code VARCHAR2(1);
62094 l_component_appl_id INTEGER;
62095 l_amb_context_code VARCHAR2(30);
62096 l_entity_code VARCHAR2(30);
62097 l_event_class_code VARCHAR2(30);
62098 l_ae_header_id NUMBER;
62099 l_event_type_code VARCHAR2(30);
62100 l_line_definition_code VARCHAR2(30);
62101 l_line_definition_owner_code VARCHAR2(1);
62102 --
62103 -- adr variables
62104 l_segment VARCHAR2(30);
62105 l_ccid NUMBER;
62106 l_adr_transaction_coa_id NUMBER;
62107 l_adr_accounting_coa_id NUMBER;
62108 l_adr_flexfield_segment_code VARCHAR2(30);
62109 l_adr_flex_value_set_id NUMBER;
62110 l_adr_value_type_code VARCHAR2(30);
62111 l_adr_value_combination_id NUMBER;
62112 l_adr_value_segment_code VARCHAR2(30);
62113
62114 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62115 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62116 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62117 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62118
62119 -- 4262811 Variables ------------------------------------------------------------------------------------------
62120 l_entered_amt_idx NUMBER;
62121 l_accted_amt_idx NUMBER;
62122 l_acc_rev_flag VARCHAR2(1);
62123 l_accrual_line_num NUMBER;
62124 l_tmp_amt NUMBER;
62125 l_acc_rev_natural_side_code VARCHAR2(1);
62126
62127 l_num_entries NUMBER;
62128 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62129 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62130 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62131 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62132 l_recog_line_1 NUMBER;
62133 l_recog_line_2 NUMBER;
62134
62135 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62136 l_bflow_applied_to_amt NUMBER; -- 5132302
62137 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62138
62139 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62140
62141 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62142 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62143
62147 --
62144 ---------------------------------------------------------------------------------------------------------------
62145
62146
62148 -- bulk performance
62149 --
62150 l_balance_type_code VARCHAR2(1);
62151 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62152 l_log_module VARCHAR2(240);
62153
62154 --
62155 -- Upgrade strategy
62156 --
62157 l_actual_upg_option VARCHAR2(1);
62158 l_enc_upg_option VARCHAR2(1);
62159
62160 --
62161 BEGIN
62162 --
62163 IF g_log_enabled THEN
62164 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
62165 END IF;
62166 --
62167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62168
62169 trace
62170 (p_msg => 'BEGIN of AcctLineType_117'
62171 ,p_level => C_LEVEL_PROCEDURE
62172 ,p_module => l_log_module);
62173
62174 END IF;
62175 --
62176 l_component_type := 'AMB_JLT';
62177 l_component_code := 'AP_MISC_EXPENSE_REF';
62178 l_component_type_code := 'S';
62179 l_component_appl_id := 200;
62180 l_amb_context_code := 'DEFAULT';
62181 l_entity_code := 'AP_PAYMENTS';
62182 l_event_class_code := 'REFUNDS';
62183 l_event_type_code := 'REFUNDS_ALL';
62184 l_line_definition_owner_code := 'S';
62185 l_line_definition_code := 'CASH_REFUNDS_ALL';
62186 --
62187 l_balance_type_code := 'A';
62188 l_segment := NULL;
62189 l_ccid := NULL;
62190 l_adr_transaction_coa_id := NULL;
62191 l_adr_accounting_coa_id := NULL;
62192 l_adr_flexfield_segment_code := NULL;
62193 l_adr_flex_value_set_id := NULL;
62194 l_adr_value_type_code := NULL;
62195 l_adr_value_combination_id := NULL;
62196 l_adr_value_segment_code := NULL;
62197
62198 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62199 l_bflow_class_code := ''; -- 4219869 Business Flow
62200 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62201 l_budgetary_control_flag := 'N';
62202
62203 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62204 l_bflow_applied_to_amt := NULL; -- 5132302
62205 l_entered_amt_idx := NULL; -- 4262811
62206 l_accted_amt_idx := NULL; -- 4262811
62207 l_acc_rev_flag := NULL; -- 4262811
62208 l_accrual_line_num := NULL; -- 4262811
62209 l_tmp_amt := NULL; -- 4262811
62210 --
62211
62212 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62213 l_balance_type_code <> 'B' THEN
62214 IF NVL(p_source_50,'
62215 ') <> 'CLEAR_CLEAR' AND
62216 NVL(p_source_32,'
62217 ') = 'MISCELLANEOUS' AND
62218 (NVL(p_source_51,'
62219 ') = 'CASH' OR
62220 NVL(p_source_51,'
62221 ') = 'DISCOUNT') AND
62222 NVL(p_source_71,'
62223 ') = 'R'
62224 THEN
62225
62226 --
62227 XLA_AE_LINES_PKG.SetNewLine;
62228
62229 p_balance_type_code := l_balance_type_code;
62230 -- set the flag so later we will know whether the gain loss line needs to be created
62231
62232 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62233 p_actual_flag :='A';
62234 END IF;
62235
62236 --
62237 -- bulk performance
62238 --
62239 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62240 p_header_num => 0); -- 4262811
62241 --
62242 -- set accounting line options
62243 --
62244 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62245 p_natural_side_code => 'D'
62246 , p_gain_or_loss_flag => 'N'
62247 , p_gl_transfer_mode_code => 'S'
62248 , p_acct_entry_type_code => 'A'
62249 , p_switch_side_flag => 'Y'
62250 , p_merge_duplicate_code => 'A'
62251 );
62252 --
62253 l_acc_rev_natural_side_code := 'C'; -- 4262811
62254 --
62255 --
62256 -- set accounting line type info
62257 --
62258 xla_ae_lines_pkg.SetAcctLineType
62259 (p_component_type => l_component_type
62260 ,p_event_type_code => l_event_type_code
62261 ,p_line_definition_owner_code => l_line_definition_owner_code
62262 ,p_line_definition_code => l_line_definition_code
62263 ,p_accounting_line_code => l_component_code
62264 ,p_accounting_line_type_code => l_component_type_code
62265 ,p_accounting_line_appl_id => l_component_appl_id
62266 ,p_amb_context_code => l_amb_context_code
62267 ,p_entity_code => l_entity_code
62268 ,p_event_class_code => l_event_class_code);
62269 --
62270 -- set accounting class
62271 --
62272 xla_ae_lines_pkg.SetAcctClass(
62273 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
62274 , p_ae_header_id => l_ae_header_id
62275 );
62276
62277 --
62278 -- set rounding class
62279 --
62280 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62281 'MISCELLANEOUS EXPENSE';
62282
62283 --
62287 -- bulk performance
62284 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62285 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62286 --
62288 --
62289 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62290
62291 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62292 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62293
62294 -- 4955764
62295 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62296 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62297
62298 -- 4458381 Public Sector Enh
62299
62300 --
62301 -- set accounting attributes for the line type
62302 --
62303 l_entered_amt_idx := 9;
62304 l_accted_amt_idx := 14;
62305 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62306 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62307 l_rec_acct_attrs.array_char_value(1) := p_source_52;
62308 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
62309 l_rec_acct_attrs.array_num_value(2) := p_source_54;
62310 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62311 l_rec_acct_attrs.array_char_value(3) := p_source_73;
62312 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
62313 l_rec_acct_attrs.array_char_value(4) := p_source_74;
62314 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
62315 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
62316 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62317 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
62318 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
62319 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
62320 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
62321 l_rec_acct_attrs.array_char_value(8) := p_source_60;
62322 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
62323 l_rec_acct_attrs.array_num_value(9) := p_source_53;
62324 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
62325 l_rec_acct_attrs.array_char_value(10) := p_source_12;
62326 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
62327 l_rec_acct_attrs.array_date_value(11) := p_source_121;
62328 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
62329 l_rec_acct_attrs.array_num_value(12) := p_source_122;
62330 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
62331 l_rec_acct_attrs.array_char_value(13) := p_source_123;
62332 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
62333 l_rec_acct_attrs.array_num_value(14) := p_source_21;
62334 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
62335 l_rec_acct_attrs.array_char_value(15) := p_source_64;
62336 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
62337 l_rec_acct_attrs.array_num_value(16) := p_source_65;
62338 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
62339 l_rec_acct_attrs.array_num_value(17) := p_source_66;
62340 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
62341 l_rec_acct_attrs.array_char_value(18) := p_source_67;
62342 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
62343 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
62344 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
62345 l_rec_acct_attrs.array_char_value(20) := p_source_60;
62346 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
62347 l_rec_acct_attrs.array_num_value(21) := p_source_69;
62348 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
62349 l_rec_acct_attrs.array_num_value(22) := p_source_77;
62350 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
62351 l_rec_acct_attrs.array_num_value(23) := p_source_70;
62352
62353 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62354 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62355
62356 ---------------------------------------------------------------------------------------------------------------
62357 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62358 ---------------------------------------------------------------------------------------------------------------
62359 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62360
62361 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62362 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62363
62364 IF xla_accounting_cache_pkg.GetValueChar
62365 (p_source_code => 'LEDGER_CATEGORY_CODE'
62366 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62367 AND l_bflow_method_code = 'PRIOR_ENTRY'
62368 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62369 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62370 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62371 )
62372 THEN
62373 xla_ae_lines_pkg.BflowUpgEntry
62377 ELSE
62374 (p_business_method_code => l_bflow_method_code
62375 ,p_business_class_code => l_bflow_class_code
62376 ,p_balance_type => l_balance_type_code);
62378 NULL;
62379 -- No business flow processing for business flow method of NONE.
62380 END IF;
62381
62382 --
62383 -- call analytical criteria
62384 --
62385
62386 --
62387 -- call description
62388 --
62389 -- No description or it is inherited.
62390 --
62391 -- call ADRs
62392 -- Bug 4922099
62393 --
62394 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62395 (NVL(l_actual_upg_option, 'N') = 'O') OR
62396 (NVL(l_enc_upg_option, 'N') = 'O')
62397 )
62398 THEN
62399 NULL;
62400 --
62401 --
62402
62403 l_ccid := AcctDerRule_28(
62404 p_application_id => p_application_id
62405 , p_ae_header_id => l_ae_header_id
62406 , p_source_29 => p_source_29
62407 , x_transaction_coa_id => l_adr_transaction_coa_id
62408 , x_accounting_coa_id => l_adr_accounting_coa_id
62409 , x_value_type_code => l_adr_value_type_code
62410 , p_side => 'NA'
62411 );
62412
62413 xla_ae_lines_pkg.set_ccid(
62414 p_code_combination_id => l_ccid
62415 , p_value_type_code => l_adr_value_type_code
62416 , p_transaction_coa_id => l_adr_transaction_coa_id
62417 , p_accounting_coa_id => l_adr_accounting_coa_id
62418 , p_adr_code => 'AP_INVOICE_DIST'
62419 , p_adr_type_code => 'S'
62420 , p_component_type => l_component_type
62421 , p_component_code => l_component_code
62422 , p_component_type_code => l_component_type_code
62423 , p_component_appl_id => l_component_appl_id
62424 , p_amb_context_code => l_amb_context_code
62425 , p_side => 'NA'
62426 );
62427
62428
62429 --
62430 --
62431 END IF;
62432 --
62433 -- Bug 4922099
62434 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62435 (NVL(l_enc_upg_option, 'N') = 'O')
62436 ) AND
62437 (l_bflow_method_code = 'PRIOR_ENTRY')
62438 )
62439 THEN
62440 IF
62441 --
62442 1 = 2
62443 --
62444 THEN
62445 xla_accounting_err_pkg.build_message
62446 (p_appli_s_name => 'XLA'
62447 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62448 ,p_token_1 => 'LINE_NUMBER'
62449 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62450 ,p_token_2 => 'LINE_TYPE_NAME'
62451 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62452 l_component_type
62453 ,l_component_code
62454 ,l_component_type_code
62455 ,l_component_appl_id
62456 ,l_amb_context_code
62457 ,l_entity_code
62458 ,l_event_class_code
62459 )
62460 ,p_token_3 => 'OWNER'
62461 ,p_value_3 => xla_lookups_pkg.get_meaning(
62462 p_lookup_type => 'XLA_OWNER_TYPE'
62463 ,p_lookup_code => l_component_type_code
62464 )
62465 ,p_token_4 => 'PRODUCT_NAME'
62466 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62467 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62468 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62469 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62470 ,p_ae_header_id => NULL
62471 );
62472
62473 IF (C_LEVEL_ERROR>= g_log_level) THEN
62474 trace
62475 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62476 ,p_level => C_LEVEL_ERROR
62477 ,p_module => l_log_module);
62478 END IF;
62479 END IF;
62480 END IF;
62481 --
62482 --
62483 ------------------------------------------------------------------------------------------------
62484 -- 4219869 Business Flow
62485 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62489
62486 -- Prior Entry. Currently, the following code is always generated.
62487 ------------------------------------------------------------------------------------------------
62488 XLA_AE_LINES_PKG.ValidateCurrentLine;
62490 ------------------------------------------------------------------------------------
62491 -- 4219869 Business Flow
62492 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62493 ------------------------------------------------------------------------------------
62494 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62495
62496 ----------------------------------------------------------------------------------
62497 -- 4219869 Business Flow
62498 -- Update journal entry status -- Need to generate this within IF <condition>
62499 ----------------------------------------------------------------------------------
62500 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62501 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62502 ,p_balance_type_code => l_balance_type_code
62503 );
62504
62505 -------------------------------------------------------------------------------------------
62506 -- 4262811 - Generate the Accrual Reversal lines
62507 -------------------------------------------------------------------------------------------
62508 BEGIN
62509 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62510 (g_array_event(p_event_id).array_value_num('header_index'));
62511 IF l_acc_rev_flag IS NULL THEN
62512 l_acc_rev_flag := 'N';
62513 END IF;
62514 EXCEPTION
62515 WHEN OTHERS THEN
62516 l_acc_rev_flag := 'N';
62517 END;
62518 --
62519 IF (l_acc_rev_flag = 'Y') THEN
62520
62521 -- 4645092 ------------------------------------------------------------------------------
62522 -- To allow MPA report to determine if it should generate report process
62523 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62524 ------------------------------------------------------------------------------------------
62525
62526 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62527 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62528 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62529 -- call ADRs
62530 -- Bug 4922099
62531 --
62532 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62533 (NVL(l_actual_upg_option, 'N') = 'O') OR
62534 (NVL(l_enc_upg_option, 'N') = 'O')
62535 )
62536 THEN
62537 NULL;
62538 --
62539 --
62540
62541 l_ccid := AcctDerRule_28(
62542 p_application_id => p_application_id
62543 , p_ae_header_id => l_ae_header_id
62544 , p_source_29 => p_source_29
62545 , x_transaction_coa_id => l_adr_transaction_coa_id
62546 , x_accounting_coa_id => l_adr_accounting_coa_id
62547 , x_value_type_code => l_adr_value_type_code
62548 , p_side => 'NA'
62549 );
62550
62551 xla_ae_lines_pkg.set_ccid(
62552 p_code_combination_id => l_ccid
62553 , p_value_type_code => l_adr_value_type_code
62554 , p_transaction_coa_id => l_adr_transaction_coa_id
62555 , p_accounting_coa_id => l_adr_accounting_coa_id
62556 , p_adr_code => 'AP_INVOICE_DIST'
62557 , p_adr_type_code => 'S'
62558 , p_component_type => l_component_type
62559 , p_component_code => l_component_code
62560 , p_component_type_code => l_component_type_code
62561 , p_component_appl_id => l_component_appl_id
62562 , p_amb_context_code => l_amb_context_code
62563 , p_side => 'NA'
62564 );
62565
62566
62567 --
62568 --
62569 END IF;
62570
62571 --
62572 -- Update the line information that should be overwritten
62573 --
62574 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62575 p_header_num => 1);
62576 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62577
62578 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62579
62580 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62581 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62582 END IF;
62583
62584 --
62585 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62586 --
62587 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62588 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62589 ELSE
62590 ---------------------------------------------------------------------------------------------------
62591 -- 4262811a Switch Sign
62592 ---------------------------------------------------------------------------------------------------
62593 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62594 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62598 -- 5132302
62595 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62596 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62597 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62599 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62600 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62601
62602 END IF;
62603
62604 -- 4955764
62605 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62606 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62607
62608
62609 XLA_AE_LINES_PKG.ValidateCurrentLine;
62610 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62611
62612 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62613 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62614 ,p_balance_type_code => l_balance_type_code);
62615
62616 END IF;
62617
62618 -----------------------------------------------------------------------------------------
62619 -- 4262811 Multiperiod Accounting
62620 -----------------------------------------------------------------------------------------
62621 -- No MPA option is assigned.
62622
62623
62624 END IF;
62625 END IF;
62626 --
62627
62628 --
62629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62630 trace
62631 (p_msg => 'END of AcctLineType_117'
62632 ,p_level => C_LEVEL_PROCEDURE
62633 ,p_module => l_log_module);
62634 END IF;
62635 --
62636 EXCEPTION
62637 WHEN xla_exceptions_pkg.application_exception THEN
62638 RAISE;
62639 WHEN OTHERS THEN
62640 xla_exceptions_pkg.raise_message
62641 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_117');
62642 END AcctLineType_117;
62643 --
62644
62645 ---------------------------------------
62646 --
62647 -- PRIVATE FUNCTION
62648 -- AcctLineType_118
62649 --
62650 ---------------------------------------
62651 PROCEDURE AcctLineType_118 (
62652 p_application_id IN NUMBER
62653 ,p_event_id IN NUMBER
62654 ,p_calculate_acctd_flag IN VARCHAR2
62655 ,p_calculate_g_l_flag IN VARCHAR2
62656 ,p_actual_flag IN OUT VARCHAR2
62657 ,p_balance_type_code OUT VARCHAR2
62658 ,p_gain_or_loss_ref OUT VARCHAR2
62659
62660 --Recipient Invoice Distribution Account
62661 , p_source_48 IN NUMBER
62662 --When to Account for Payment Option
62663 , p_source_50 IN VARCHAR2
62664 --Accounting Reversal Indicator
62665 , p_source_52 IN VARCHAR2
62666 --Business Flow Accounts Payable Application Identifier
62667 , p_source_54 IN NUMBER
62668 --Distribution Link Type
62669 , p_source_60 IN VARCHAR2
62670 --Override Accounted Amount Indicator
62671 , p_source_64 IN VARCHAR2
62672 , p_source_64_meaning IN VARCHAR2
62673 --Third Party Type
62674 , p_source_67 IN VARCHAR2
62675 --Invoice Distribution Tax Line Identifier
62676 , p_source_69 IN NUMBER
62677 --Invoice Distribution Summary Tax Line Identifier
62678 , p_source_70 IN NUMBER
62679 --Invoice Distribution Tax Distribution Identifier from Tax
62680 , p_source_77 IN NUMBER
62681 --Prepayment Distribution Type
62682 , p_source_78 IN VARCHAR2
62683 --Recipient Invoice Distribution Type
62684 , p_source_79 IN VARCHAR2
62685 , p_source_79_meaning IN VARCHAR2
62686 --Prepayment Application Distribution Identifier
62687 , p_source_82 IN NUMBER
62688 --Invoice Identifier
62689 , p_source_83 IN NUMBER
62690 --Business Flow Prepayment Invoice Distribution Type
62691 , p_source_84 IN VARCHAR2
62692 --Business Flow Prepayment Invoice Entity Code
62693 , p_source_85 IN VARCHAR2
62694 --Business Flow Prepayment Invoice Distribution Identifier
62695 , p_source_86 IN NUMBER
62696 --Business Flow Prepayment Invoice Identifier
62697 , p_source_87 IN NUMBER
62698 --Upgrade Encumbrance Credit Account Class
62699 , p_source_88 IN VARCHAR2
62700 --Payables Encumbrance Upgrade Credit Account
62701 , p_source_89 IN NUMBER
62702 --Payables Encumbrance Upgrade Credit Amount
62703 , p_source_90 IN NUMBER
62704 --Invoice Currency Code
62705 , p_source_91 IN VARCHAR2
62706 --Payables Encumbrance Upgrade Credit Base Amount
62707 , p_source_92 IN NUMBER
62708 --Upgrade Encumbrance Debit Account Class
62709 , p_source_93 IN VARCHAR2
62710 --Payables Encumbrance Upgrade Debit Account
62711 , p_source_94 IN NUMBER
62712 --Payables Encumbrance Upgrade Debit Amount
62713 , p_source_95 IN NUMBER
62714 --Payables Encumbrance Upgrade Debit Base Amount
62715 , p_source_96 IN NUMBER
62716 --Payables Encumbrance Upgrade Option
62717 , p_source_97 IN VARCHAR2
62718 --Prepayment Distribution Amount
62719 , p_source_98 IN NUMBER
62720 --Prepayment Clearing Currency Code
62721 , p_source_99 IN VARCHAR2
62722 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
62723 , p_source_100 IN NUMBER
62724 --Deferred Accounting End Date
62725 , p_source_101 IN DATE
62729 , p_source_103 IN DATE
62726 --Deferred Accounting Option
62727 , p_source_102 IN VARCHAR2
62728 --Deferred Accounting Start Date
62730 --Invoice Supplier Identifier
62731 , p_source_104 IN NUMBER
62732 --Invoice Supplier Site Identifier
62733 , p_source_105 IN NUMBER
62734 --Identifier of the Prepayment Application Reversed
62735 , p_source_106 IN NUMBER
62736 --Payables Upgrade Credit Encumbrance Type Identifier
62737 , p_source_107 IN NUMBER
62738 --Payables Upgrade Debit Encumbrance Type Identifier
62739 , p_source_108 IN NUMBER
62740 --Prepayment Clearing Exchange Date
62741 , p_source_125 IN DATE
62742 --Prepayment Clearing Exchange Rate
62743 , p_source_126 IN NUMBER
62744 --Prepayment Clearing Exchange Rate Type
62745 , p_source_127 IN VARCHAR2
62746 )
62747 IS
62748
62749 l_component_type VARCHAR2(80);
62750 l_component_code VARCHAR2(30);
62751 l_component_type_code VARCHAR2(1);
62752 l_component_appl_id INTEGER;
62753 l_amb_context_code VARCHAR2(30);
62754 l_entity_code VARCHAR2(30);
62755 l_event_class_code VARCHAR2(30);
62756 l_ae_header_id NUMBER;
62757 l_event_type_code VARCHAR2(30);
62758 l_line_definition_code VARCHAR2(30);
62759 l_line_definition_owner_code VARCHAR2(1);
62760 --
62761 -- adr variables
62762 l_segment VARCHAR2(30);
62763 l_ccid NUMBER;
62764 l_adr_transaction_coa_id NUMBER;
62765 l_adr_accounting_coa_id NUMBER;
62766 l_adr_flexfield_segment_code VARCHAR2(30);
62767 l_adr_flex_value_set_id NUMBER;
62768 l_adr_value_type_code VARCHAR2(30);
62769 l_adr_value_combination_id NUMBER;
62770 l_adr_value_segment_code VARCHAR2(30);
62771
62772 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62773 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62774 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62775 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62776
62777 -- 4262811 Variables ------------------------------------------------------------------------------------------
62778 l_entered_amt_idx NUMBER;
62779 l_accted_amt_idx NUMBER;
62780 l_acc_rev_flag VARCHAR2(1);
62781 l_accrual_line_num NUMBER;
62782 l_tmp_amt NUMBER;
62783 l_acc_rev_natural_side_code VARCHAR2(1);
62784
62785 l_num_entries NUMBER;
62786 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62787 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62788 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62789 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62790 l_recog_line_1 NUMBER;
62791 l_recog_line_2 NUMBER;
62792
62793 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62794 l_bflow_applied_to_amt NUMBER; -- 5132302
62795 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62796
62797 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62798
62799 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62800 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62801
62802 ---------------------------------------------------------------------------------------------------------------
62803
62804
62805 --
62806 -- bulk performance
62807 --
62808 l_balance_type_code VARCHAR2(1);
62809 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62810 l_log_module VARCHAR2(240);
62811
62812 --
62813 -- Upgrade strategy
62814 --
62815 l_actual_upg_option VARCHAR2(1);
62816 l_enc_upg_option VARCHAR2(1);
62817
62818 --
62819 BEGIN
62820 --
62821 IF g_log_enabled THEN
62822 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
62823 END IF;
62824 --
62825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62826
62827 trace
62828 (p_msg => 'BEGIN of AcctLineType_118'
62829 ,p_level => C_LEVEL_PROCEDURE
62830 ,p_module => l_log_module);
62831
62832 END IF;
62833 --
62834 l_component_type := 'AMB_JLT';
62835 l_component_code := 'AP_MISC_PREPAY_CLR_RATE_APP';
62836 l_component_type_code := 'S';
62837 l_component_appl_id := 200;
62838 l_amb_context_code := 'DEFAULT';
62839 l_entity_code := 'AP_INVOICES';
62840 l_event_class_code := 'PREPAYMENT APPLICATIONS';
62841 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
62842 l_line_definition_owner_code := 'S';
62843 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
62844 --
62845 l_balance_type_code := 'A';
62846 l_segment := NULL;
62847 l_ccid := NULL;
62848 l_adr_transaction_coa_id := NULL;
62849 l_adr_accounting_coa_id := NULL;
62850 l_adr_flexfield_segment_code := NULL;
62851 l_adr_flex_value_set_id := NULL;
62852 l_adr_value_type_code := NULL;
62856 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62853 l_adr_value_combination_id := NULL;
62854 l_adr_value_segment_code := NULL;
62855
62857 l_bflow_class_code := ''; -- 4219869 Business Flow
62858 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62859 l_budgetary_control_flag := 'N';
62860
62861 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62862 l_bflow_applied_to_amt := NULL; -- 5132302
62863 l_entered_amt_idx := NULL; -- 4262811
62864 l_accted_amt_idx := NULL; -- 4262811
62865 l_acc_rev_flag := NULL; -- 4262811
62866 l_accrual_line_num := NULL; -- 4262811
62867 l_tmp_amt := NULL; -- 4262811
62868 --
62869
62870 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62871 l_balance_type_code <> 'B' THEN
62872 IF NVL(p_source_50,'
62873 ') = 'CLEAR_CLEAR' AND
62874 (NVL(p_source_78,'
62875 ') = 'PREPAY APPL' OR
62876 NVL(p_source_78,'
62877 ') = 'PREPAY APPL NONREC TAX' OR
62878 NVL(p_source_78,'
62879 ') = 'PREPAY APPL REC TAX') AND
62880 NVL(p_source_79,'
62881 ') = 'MISCELLANEOUS'
62882 THEN
62883
62884 --
62885 XLA_AE_LINES_PKG.SetNewLine;
62886
62887 p_balance_type_code := l_balance_type_code;
62888 -- set the flag so later we will know whether the gain loss line needs to be created
62889
62890 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62891 p_actual_flag :='A';
62892 END IF;
62893
62894 --
62895 -- bulk performance
62896 --
62897 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62898 p_header_num => 0); -- 4262811
62899 --
62900 -- set accounting line options
62901 --
62902 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62903 p_natural_side_code => 'C'
62904 , p_gain_or_loss_flag => 'N'
62905 , p_gl_transfer_mode_code => 'S'
62906 , p_acct_entry_type_code => 'A'
62907 , p_switch_side_flag => 'Y'
62908 , p_merge_duplicate_code => 'A'
62909 );
62910 --
62911 l_acc_rev_natural_side_code := 'D'; -- 4262811
62912 --
62913 --
62914 -- set accounting line type info
62915 --
62916 xla_ae_lines_pkg.SetAcctLineType
62917 (p_component_type => l_component_type
62918 ,p_event_type_code => l_event_type_code
62919 ,p_line_definition_owner_code => l_line_definition_owner_code
62920 ,p_line_definition_code => l_line_definition_code
62921 ,p_accounting_line_code => l_component_code
62922 ,p_accounting_line_type_code => l_component_type_code
62923 ,p_accounting_line_appl_id => l_component_appl_id
62924 ,p_amb_context_code => l_amb_context_code
62925 ,p_entity_code => l_entity_code
62926 ,p_event_class_code => l_event_class_code);
62927 --
62928 -- set accounting class
62929 --
62930 xla_ae_lines_pkg.SetAcctClass(
62931 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
62932 , p_ae_header_id => l_ae_header_id
62933 );
62934
62935 --
62936 -- set rounding class
62937 --
62938 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62939 'MISCELLANEOUS EXPENSE';
62940
62941 --
62942 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62943 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62944 --
62945 -- bulk performance
62946 --
62947 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62948
62949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62950 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62951
62952 -- 4955764
62953 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62954 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62955
62956 -- 4458381 Public Sector Enh
62957
62958 --
62959 -- set accounting attributes for the line type
62960 --
62961 l_entered_amt_idx := 25;
62962 l_accted_amt_idx := 30;
62963 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62964 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62965 l_rec_acct_attrs.array_char_value(1) := p_source_52;
62966 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
62967 l_rec_acct_attrs.array_num_value(2) :=
62968 xla_ae_sources_pkg.GetSystemSourceNum(
62969 p_source_code => 'XLA_EVENT_APPL_ID'
62970 , p_source_type_code => 'Y'
62971 , p_source_application_id => 602
62972 );
62973 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
62974 l_rec_acct_attrs.array_char_value(3) := p_source_60;
62975 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
62976 l_rec_acct_attrs.array_char_value(4) :=
62977 xla_ae_sources_pkg.GetSystemSourceChar(
62981 );
62978 p_source_code => 'XLA_ENTITY_CODE'
62979 , p_source_type_code => 'Y'
62980 , p_source_application_id => 602
62982 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
62983 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
62984 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
62985 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
62986 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
62987 l_rec_acct_attrs.array_num_value(7) := p_source_54;
62988 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62989 l_rec_acct_attrs.array_char_value(8) := p_source_84;
62990 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
62991 l_rec_acct_attrs.array_char_value(9) := p_source_85;
62992 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
62993 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
62994 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62995 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
62996 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
62997 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
62998 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
62999 l_rec_acct_attrs.array_char_value(13) := p_source_60;
63000 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
63001 l_rec_acct_attrs.array_char_value(14) := p_source_88;
63002 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
63003 l_rec_acct_attrs.array_num_value(15) := p_source_89;
63004 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
63005 l_rec_acct_attrs.array_num_value(16) := p_source_90;
63006 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
63007 l_rec_acct_attrs.array_char_value(17) := p_source_91;
63008 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
63009 l_rec_acct_attrs.array_num_value(18) := p_source_92;
63010 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
63011 l_rec_acct_attrs.array_char_value(19) := p_source_93;
63012 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
63013 l_rec_acct_attrs.array_num_value(20) := p_source_94;
63014 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
63015 l_rec_acct_attrs.array_num_value(21) := p_source_95;
63016 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
63017 l_rec_acct_attrs.array_char_value(22) := p_source_91;
63018 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
63019 l_rec_acct_attrs.array_num_value(23) := p_source_96;
63020 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
63021 l_rec_acct_attrs.array_char_value(24) := p_source_97;
63022 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
63023 l_rec_acct_attrs.array_num_value(25) := p_source_98;
63024 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
63025 l_rec_acct_attrs.array_char_value(26) := p_source_99;
63026 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
63027 l_rec_acct_attrs.array_date_value(27) := p_source_125;
63028 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
63029 l_rec_acct_attrs.array_num_value(28) := p_source_126;
63030 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
63031 l_rec_acct_attrs.array_char_value(29) := p_source_127;
63032 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
63033 l_rec_acct_attrs.array_num_value(30) := p_source_100;
63034 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
63035 l_rec_acct_attrs.array_date_value(31) := p_source_101;
63036 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
63037 l_rec_acct_attrs.array_char_value(32) := p_source_102;
63038 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
63039 l_rec_acct_attrs.array_date_value(33) := p_source_103;
63040 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
63041 l_rec_acct_attrs.array_char_value(34) := p_source_64;
63042 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
63043 l_rec_acct_attrs.array_num_value(35) := p_source_104;
63044 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
63045 l_rec_acct_attrs.array_num_value(36) := p_source_105;
63046 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
63047 l_rec_acct_attrs.array_char_value(37) := p_source_67;
63048 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
63049 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
63050 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
63051 l_rec_acct_attrs.array_char_value(39) := p_source_60;
63052 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
63053 l_rec_acct_attrs.array_num_value(40) := p_source_69;
63054 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
63055 l_rec_acct_attrs.array_num_value(41) := p_source_77;
63056 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
63057 l_rec_acct_attrs.array_num_value(42) := p_source_70;
63058 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
63059 l_rec_acct_attrs.array_num_value(43) := p_source_107;
63060 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
63064 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63061 l_rec_acct_attrs.array_num_value(44) := p_source_108;
63062
63063 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63065
63066 ---------------------------------------------------------------------------------------------------------------
63067 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63068 ---------------------------------------------------------------------------------------------------------------
63069 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63070
63071 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63072 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63073
63074 IF xla_accounting_cache_pkg.GetValueChar
63075 (p_source_code => 'LEDGER_CATEGORY_CODE'
63076 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63077 AND l_bflow_method_code = 'PRIOR_ENTRY'
63078 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63079 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63080 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63081 )
63082 THEN
63083 xla_ae_lines_pkg.BflowUpgEntry
63084 (p_business_method_code => l_bflow_method_code
63085 ,p_business_class_code => l_bflow_class_code
63086 ,p_balance_type => l_balance_type_code);
63087 ELSE
63088 NULL;
63089 -- No business flow processing for business flow method of NONE.
63090 END IF;
63091
63092 --
63093 -- call analytical criteria
63094 --
63095
63096 --
63097 -- call description
63098 --
63099 -- No description or it is inherited.
63100 --
63101 -- call ADRs
63102 -- Bug 4922099
63103 --
63104 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63105 (NVL(l_actual_upg_option, 'N') = 'O') OR
63106 (NVL(l_enc_upg_option, 'N') = 'O')
63107 )
63108 THEN
63109 NULL;
63110 --
63111 --
63112
63113 l_ccid := AcctDerRule_35(
63114 p_application_id => p_application_id
63115 , p_ae_header_id => l_ae_header_id
63116 , p_source_48 => p_source_48
63117 , x_transaction_coa_id => l_adr_transaction_coa_id
63118 , x_accounting_coa_id => l_adr_accounting_coa_id
63119 , x_value_type_code => l_adr_value_type_code
63120 , p_side => 'NA'
63121 );
63122
63123 xla_ae_lines_pkg.set_ccid(
63124 p_code_combination_id => l_ccid
63125 , p_value_type_code => l_adr_value_type_code
63126 , p_transaction_coa_id => l_adr_transaction_coa_id
63127 , p_accounting_coa_id => l_adr_accounting_coa_id
63128 , p_adr_code => 'AP_RECP_INV_DIST'
63129 , p_adr_type_code => 'S'
63130 , p_component_type => l_component_type
63131 , p_component_code => l_component_code
63132 , p_component_type_code => l_component_type_code
63133 , p_component_appl_id => l_component_appl_id
63134 , p_amb_context_code => l_amb_context_code
63135 , p_side => 'NA'
63136 );
63137
63138
63139 --
63140 --
63141 END IF;
63142 --
63143 -- Bug 4922099
63144 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63145 (NVL(l_enc_upg_option, 'N') = 'O')
63146 ) AND
63147 (l_bflow_method_code = 'PRIOR_ENTRY')
63148 )
63149 THEN
63150 IF
63151 --
63152 1 = 2
63153 --
63154 THEN
63155 xla_accounting_err_pkg.build_message
63156 (p_appli_s_name => 'XLA'
63157 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63158 ,p_token_1 => 'LINE_NUMBER'
63159 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63160 ,p_token_2 => 'LINE_TYPE_NAME'
63161 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63162 l_component_type
63163 ,l_component_code
63164 ,l_component_type_code
63165 ,l_component_appl_id
63166 ,l_amb_context_code
63167 ,l_entity_code
63168 ,l_event_class_code
63169 )
63170 ,p_token_3 => 'OWNER'
63171 ,p_value_3 => xla_lookups_pkg.get_meaning(
63172 p_lookup_type => 'XLA_OWNER_TYPE'
63176 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63173 ,p_lookup_code => l_component_type_code
63174 )
63175 ,p_token_4 => 'PRODUCT_NAME'
63177 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63178 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63179 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63180 ,p_ae_header_id => NULL
63181 );
63182
63183 IF (C_LEVEL_ERROR>= g_log_level) THEN
63184 trace
63185 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63186 ,p_level => C_LEVEL_ERROR
63187 ,p_module => l_log_module);
63188 END IF;
63189 END IF;
63190 END IF;
63191 --
63192 --
63193 ------------------------------------------------------------------------------------------------
63194 -- 4219869 Business Flow
63195 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63196 -- Prior Entry. Currently, the following code is always generated.
63197 ------------------------------------------------------------------------------------------------
63198 XLA_AE_LINES_PKG.ValidateCurrentLine;
63199
63200 ------------------------------------------------------------------------------------
63201 -- 4219869 Business Flow
63202 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63203 ------------------------------------------------------------------------------------
63204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63205
63206 ----------------------------------------------------------------------------------
63207 -- 4219869 Business Flow
63208 -- Update journal entry status -- Need to generate this within IF <condition>
63209 ----------------------------------------------------------------------------------
63210 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63211 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63212 ,p_balance_type_code => l_balance_type_code
63213 );
63214
63215 -------------------------------------------------------------------------------------------
63216 -- 4262811 - Generate the Accrual Reversal lines
63217 -------------------------------------------------------------------------------------------
63218 BEGIN
63219 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63220 (g_array_event(p_event_id).array_value_num('header_index'));
63221 IF l_acc_rev_flag IS NULL THEN
63222 l_acc_rev_flag := 'N';
63223 END IF;
63224 EXCEPTION
63225 WHEN OTHERS THEN
63226 l_acc_rev_flag := 'N';
63227 END;
63228 --
63229 IF (l_acc_rev_flag = 'Y') THEN
63230
63231 -- 4645092 ------------------------------------------------------------------------------
63232 -- To allow MPA report to determine if it should generate report process
63233 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63234 ------------------------------------------------------------------------------------------
63235
63236 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63237 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63238 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
63239 -- call ADRs
63240 -- Bug 4922099
63241 --
63242 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63243 (NVL(l_actual_upg_option, 'N') = 'O') OR
63244 (NVL(l_enc_upg_option, 'N') = 'O')
63245 )
63246 THEN
63247 NULL;
63248 --
63249 --
63250
63251 l_ccid := AcctDerRule_35(
63252 p_application_id => p_application_id
63253 , p_ae_header_id => l_ae_header_id
63254 , p_source_48 => p_source_48
63255 , x_transaction_coa_id => l_adr_transaction_coa_id
63256 , x_accounting_coa_id => l_adr_accounting_coa_id
63257 , x_value_type_code => l_adr_value_type_code
63258 , p_side => 'NA'
63259 );
63260
63261 xla_ae_lines_pkg.set_ccid(
63262 p_code_combination_id => l_ccid
63263 , p_value_type_code => l_adr_value_type_code
63264 , p_transaction_coa_id => l_adr_transaction_coa_id
63265 , p_accounting_coa_id => l_adr_accounting_coa_id
63266 , p_adr_code => 'AP_RECP_INV_DIST'
63267 , p_adr_type_code => 'S'
63268 , p_component_type => l_component_type
63269 , p_component_code => l_component_code
63270 , p_component_type_code => l_component_type_code
63271 , p_component_appl_id => l_component_appl_id
63272 , p_amb_context_code => l_amb_context_code
63273 , p_side => 'NA'
63274 );
63275
63276
63277 --
63278 --
63279 END IF;
63280
63281 --
63282 -- Update the line information that should be overwritten
63283 --
63287
63284 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63285 p_header_num => 1);
63286 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63288 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63289
63290 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63291 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63292 END IF;
63293
63294 --
63295 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63296 --
63297 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63298 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63299 ELSE
63300 ---------------------------------------------------------------------------------------------------
63301 -- 4262811a Switch Sign
63302 ---------------------------------------------------------------------------------------------------
63303 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63306 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63307 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63308 -- 5132302
63309 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63310 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63311
63312 END IF;
63313
63314 -- 4955764
63315 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63316 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63317
63318
63319 XLA_AE_LINES_PKG.ValidateCurrentLine;
63320 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63321
63322 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63323 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63324 ,p_balance_type_code => l_balance_type_code);
63325
63326 END IF;
63327
63328 -----------------------------------------------------------------------------------------
63329 -- 4262811 Multiperiod Accounting
63330 -----------------------------------------------------------------------------------------
63331 -- No MPA option is assigned.
63332
63333
63334 END IF;
63335 END IF;
63336 --
63337
63338 --
63339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63340 trace
63341 (p_msg => 'END of AcctLineType_118'
63342 ,p_level => C_LEVEL_PROCEDURE
63343 ,p_module => l_log_module);
63344 END IF;
63345 --
63346 EXCEPTION
63347 WHEN xla_exceptions_pkg.application_exception THEN
63348 RAISE;
63349 WHEN OTHERS THEN
63350 xla_exceptions_pkg.raise_message
63351 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_118');
63352 END AcctLineType_118;
63353 --
63354
63355 ---------------------------------------
63356 --
63357 -- PRIVATE FUNCTION
63358 -- AcctLineType_119
63359 --
63360 ---------------------------------------
63361 PROCEDURE AcctLineType_119 (
63362 p_application_id IN NUMBER
63363 ,p_event_id IN NUMBER
63364 ,p_calculate_acctd_flag IN VARCHAR2
63365 ,p_calculate_g_l_flag IN VARCHAR2
63366 ,p_actual_flag IN OUT VARCHAR2
63367 ,p_balance_type_code OUT VARCHAR2
63368 ,p_gain_or_loss_ref OUT VARCHAR2
63369
63370 --Recipient Invoice Distribution Account
63371 , p_source_48 IN NUMBER
63372 --When to Account for Payment Option
63373 , p_source_50 IN VARCHAR2
63374 --Accounting Reversal Indicator
63375 , p_source_52 IN VARCHAR2
63376 --Business Flow Accounts Payable Application Identifier
63377 , p_source_54 IN NUMBER
63378 --Distribution Link Type
63379 , p_source_60 IN VARCHAR2
63380 --Override Accounted Amount Indicator
63381 , p_source_64 IN VARCHAR2
63382 , p_source_64_meaning IN VARCHAR2
63383 --Third Party Type
63384 , p_source_67 IN VARCHAR2
63385 --Invoice Distribution Tax Line Identifier
63386 , p_source_69 IN NUMBER
63387 --Invoice Distribution Summary Tax Line Identifier
63388 , p_source_70 IN NUMBER
63389 --Invoice Distribution Tax Distribution Identifier from Tax
63390 , p_source_77 IN NUMBER
63391 --Prepayment Distribution Type
63392 , p_source_78 IN VARCHAR2
63393 --Recipient Invoice Distribution Type
63394 , p_source_79 IN VARCHAR2
63395 , p_source_79_meaning IN VARCHAR2
63396 --Prepayment Application Distribution Identifier
63397 , p_source_82 IN NUMBER
63398 --Invoice Identifier
63399 , p_source_83 IN NUMBER
63400 --Business Flow Prepayment Invoice Distribution Type
63401 , p_source_84 IN VARCHAR2
63402 --Business Flow Prepayment Invoice Entity Code
63403 , p_source_85 IN VARCHAR2
63404 --Business Flow Prepayment Invoice Distribution Identifier
63408 --Upgrade Encumbrance Credit Account Class
63405 , p_source_86 IN NUMBER
63406 --Business Flow Prepayment Invoice Identifier
63407 , p_source_87 IN NUMBER
63409 , p_source_88 IN VARCHAR2
63410 --Payables Encumbrance Upgrade Credit Account
63411 , p_source_89 IN NUMBER
63412 --Payables Encumbrance Upgrade Credit Amount
63413 , p_source_90 IN NUMBER
63414 --Invoice Currency Code
63415 , p_source_91 IN VARCHAR2
63416 --Payables Encumbrance Upgrade Credit Base Amount
63417 , p_source_92 IN NUMBER
63418 --Upgrade Encumbrance Debit Account Class
63419 , p_source_93 IN VARCHAR2
63420 --Payables Encumbrance Upgrade Debit Account
63421 , p_source_94 IN NUMBER
63422 --Payables Encumbrance Upgrade Debit Amount
63423 , p_source_95 IN NUMBER
63424 --Payables Encumbrance Upgrade Debit Base Amount
63425 , p_source_96 IN NUMBER
63426 --Payables Encumbrance Upgrade Option
63427 , p_source_97 IN VARCHAR2
63428 --Prepayment Distribution Amount
63429 , p_source_98 IN NUMBER
63430 --Deferred Accounting End Date
63431 , p_source_101 IN DATE
63432 --Deferred Accounting Option
63433 , p_source_102 IN VARCHAR2
63434 --Deferred Accounting Start Date
63435 , p_source_103 IN DATE
63436 --Invoice Supplier Identifier
63437 , p_source_104 IN NUMBER
63438 --Invoice Supplier Site Identifier
63439 , p_source_105 IN NUMBER
63440 --Identifier of the Prepayment Application Reversed
63441 , p_source_106 IN NUMBER
63442 --Payables Upgrade Credit Encumbrance Type Identifier
63443 , p_source_107 IN NUMBER
63444 --Payables Upgrade Debit Encumbrance Type Identifier
63445 , p_source_108 IN NUMBER
63446 --Prepayment Payment Currency Code
63447 , p_source_109 IN VARCHAR2
63448 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
63449 , p_source_110 IN NUMBER
63450 --Prepayment Payment Exchange Date
63451 , p_source_128 IN DATE
63452 --Prepayment Payment Exchange Rate
63453 , p_source_129 IN NUMBER
63454 --Prepayment Payment Exchange Rate Type
63455 , p_source_130 IN VARCHAR2
63456 )
63457 IS
63458
63459 l_component_type VARCHAR2(80);
63460 l_component_code VARCHAR2(30);
63461 l_component_type_code VARCHAR2(1);
63462 l_component_appl_id INTEGER;
63463 l_amb_context_code VARCHAR2(30);
63464 l_entity_code VARCHAR2(30);
63465 l_event_class_code VARCHAR2(30);
63466 l_ae_header_id NUMBER;
63467 l_event_type_code VARCHAR2(30);
63468 l_line_definition_code VARCHAR2(30);
63469 l_line_definition_owner_code VARCHAR2(1);
63470 --
63471 -- adr variables
63472 l_segment VARCHAR2(30);
63473 l_ccid NUMBER;
63474 l_adr_transaction_coa_id NUMBER;
63475 l_adr_accounting_coa_id NUMBER;
63476 l_adr_flexfield_segment_code VARCHAR2(30);
63477 l_adr_flex_value_set_id NUMBER;
63478 l_adr_value_type_code VARCHAR2(30);
63479 l_adr_value_combination_id NUMBER;
63480 l_adr_value_segment_code VARCHAR2(30);
63481
63482 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
63483 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
63484 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
63485 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
63486
63487 -- 4262811 Variables ------------------------------------------------------------------------------------------
63488 l_entered_amt_idx NUMBER;
63489 l_accted_amt_idx NUMBER;
63490 l_acc_rev_flag VARCHAR2(1);
63491 l_accrual_line_num NUMBER;
63492 l_tmp_amt NUMBER;
63493 l_acc_rev_natural_side_code VARCHAR2(1);
63494
63495 l_num_entries NUMBER;
63496 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
63497 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
63498 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
63499 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
63500 l_recog_line_1 NUMBER;
63501 l_recog_line_2 NUMBER;
63502
63503 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
63504 l_bflow_applied_to_amt NUMBER; -- 5132302
63505 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
63506
63507 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63508
63509 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
63510 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
63511
63512 ---------------------------------------------------------------------------------------------------------------
63513
63514
63515 --
63516 -- bulk performance
63517 --
63518 l_balance_type_code VARCHAR2(1);
63519 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63520 l_log_module VARCHAR2(240);
63521
63522 --
63523 -- Upgrade strategy
63524 --
63525 l_actual_upg_option VARCHAR2(1);
63529 BEGIN
63526 l_enc_upg_option VARCHAR2(1);
63527
63528 --
63530 --
63531 IF g_log_enabled THEN
63532 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
63533 END IF;
63534 --
63535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63536
63537 trace
63538 (p_msg => 'BEGIN of AcctLineType_119'
63539 ,p_level => C_LEVEL_PROCEDURE
63540 ,p_module => l_log_module);
63541
63542 END IF;
63543 --
63544 l_component_type := 'AMB_JLT';
63545 l_component_code := 'AP_MISC_PREPAY_PAY_RATE_APP';
63546 l_component_type_code := 'S';
63547 l_component_appl_id := 200;
63548 l_amb_context_code := 'DEFAULT';
63549 l_entity_code := 'AP_INVOICES';
63550 l_event_class_code := 'PREPAYMENT APPLICATIONS';
63551 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
63552 l_line_definition_owner_code := 'S';
63553 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
63554 --
63555 l_balance_type_code := 'A';
63556 l_segment := NULL;
63557 l_ccid := NULL;
63558 l_adr_transaction_coa_id := NULL;
63559 l_adr_accounting_coa_id := NULL;
63560 l_adr_flexfield_segment_code := NULL;
63561 l_adr_flex_value_set_id := NULL;
63562 l_adr_value_type_code := NULL;
63563 l_adr_value_combination_id := NULL;
63564 l_adr_value_segment_code := NULL;
63565
63566 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
63567 l_bflow_class_code := ''; -- 4219869 Business Flow
63568 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
63569 l_budgetary_control_flag := 'N';
63570
63571 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63572 l_bflow_applied_to_amt := NULL; -- 5132302
63573 l_entered_amt_idx := NULL; -- 4262811
63574 l_accted_amt_idx := NULL; -- 4262811
63575 l_acc_rev_flag := NULL; -- 4262811
63576 l_accrual_line_num := NULL; -- 4262811
63577 l_tmp_amt := NULL; -- 4262811
63578 --
63579
63580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63581 l_balance_type_code <> 'B' THEN
63582 IF NVL(p_source_50,'
63583 ') <> 'CLEAR_CLEAR' AND
63584 (NVL(p_source_78,'
63585 ') = 'PREPAY APPL' OR
63586 NVL(p_source_78,'
63587 ') = 'PREPAY APPL NONREC TAX' OR
63588 NVL(p_source_78,'
63589 ') = 'PREPAY APPL REC TAX') AND
63590 NVL(p_source_79,'
63591 ') = 'MISCELLANEOUS'
63592 THEN
63593
63594 --
63595 XLA_AE_LINES_PKG.SetNewLine;
63596
63597 p_balance_type_code := l_balance_type_code;
63598 -- set the flag so later we will know whether the gain loss line needs to be created
63599
63600 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63601 p_actual_flag :='A';
63602 END IF;
63603
63604 --
63605 -- bulk performance
63606 --
63607 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63608 p_header_num => 0); -- 4262811
63609 --
63610 -- set accounting line options
63611 --
63612 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63613 p_natural_side_code => 'C'
63614 , p_gain_or_loss_flag => 'N'
63615 , p_gl_transfer_mode_code => 'S'
63616 , p_acct_entry_type_code => 'A'
63617 , p_switch_side_flag => 'Y'
63618 , p_merge_duplicate_code => 'A'
63619 );
63620 --
63621 l_acc_rev_natural_side_code := 'D'; -- 4262811
63622 --
63623 --
63624 -- set accounting line type info
63625 --
63626 xla_ae_lines_pkg.SetAcctLineType
63627 (p_component_type => l_component_type
63628 ,p_event_type_code => l_event_type_code
63629 ,p_line_definition_owner_code => l_line_definition_owner_code
63630 ,p_line_definition_code => l_line_definition_code
63631 ,p_accounting_line_code => l_component_code
63632 ,p_accounting_line_type_code => l_component_type_code
63633 ,p_accounting_line_appl_id => l_component_appl_id
63634 ,p_amb_context_code => l_amb_context_code
63635 ,p_entity_code => l_entity_code
63636 ,p_event_class_code => l_event_class_code);
63637 --
63638 -- set accounting class
63639 --
63640 xla_ae_lines_pkg.SetAcctClass(
63641 p_accounting_class_code => 'MISCELLANEOUS EXPENSE'
63642 , p_ae_header_id => l_ae_header_id
63643 );
63644
63645 --
63646 -- set rounding class
63647 --
63648 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63649 'MISCELLANEOUS EXPENSE';
63650
63651 --
63652 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63653 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63654 --
63655 -- bulk performance
63656 --
63657 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63658
63662 -- 4955764
63659 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63660 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63661
63663 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63664 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63665
63666 -- 4458381 Public Sector Enh
63667
63668 --
63669 -- set accounting attributes for the line type
63670 --
63671 l_entered_amt_idx := 25;
63672 l_accted_amt_idx := 30;
63673 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63674 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63675 l_rec_acct_attrs.array_char_value(1) := p_source_52;
63676 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
63677 l_rec_acct_attrs.array_num_value(2) :=
63678 xla_ae_sources_pkg.GetSystemSourceNum(
63679 p_source_code => 'XLA_EVENT_APPL_ID'
63680 , p_source_type_code => 'Y'
63681 , p_source_application_id => 602
63682 );
63683 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
63684 l_rec_acct_attrs.array_char_value(3) := p_source_60;
63685 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
63686 l_rec_acct_attrs.array_char_value(4) :=
63687 xla_ae_sources_pkg.GetSystemSourceChar(
63688 p_source_code => 'XLA_ENTITY_CODE'
63689 , p_source_type_code => 'Y'
63690 , p_source_application_id => 602
63691 );
63692 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
63693 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
63694 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
63695 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
63696 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
63697 l_rec_acct_attrs.array_num_value(7) := p_source_54;
63698 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63699 l_rec_acct_attrs.array_char_value(8) := p_source_84;
63700 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
63701 l_rec_acct_attrs.array_char_value(9) := p_source_85;
63702 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
63703 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
63704 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63705 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
63706 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
63707 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
63708 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
63709 l_rec_acct_attrs.array_char_value(13) := p_source_60;
63710 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
63711 l_rec_acct_attrs.array_char_value(14) := p_source_88;
63712 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
63713 l_rec_acct_attrs.array_num_value(15) := p_source_89;
63714 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
63715 l_rec_acct_attrs.array_num_value(16) := p_source_90;
63716 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
63717 l_rec_acct_attrs.array_char_value(17) := p_source_91;
63718 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
63719 l_rec_acct_attrs.array_num_value(18) := p_source_92;
63720 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
63721 l_rec_acct_attrs.array_char_value(19) := p_source_93;
63722 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
63723 l_rec_acct_attrs.array_num_value(20) := p_source_94;
63724 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
63725 l_rec_acct_attrs.array_num_value(21) := p_source_95;
63726 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
63727 l_rec_acct_attrs.array_char_value(22) := p_source_91;
63728 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
63729 l_rec_acct_attrs.array_num_value(23) := p_source_96;
63730 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
63731 l_rec_acct_attrs.array_char_value(24) := p_source_97;
63732 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
63733 l_rec_acct_attrs.array_num_value(25) := p_source_98;
63734 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
63735 l_rec_acct_attrs.array_char_value(26) := p_source_109;
63736 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
63737 l_rec_acct_attrs.array_date_value(27) := p_source_128;
63738 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
63739 l_rec_acct_attrs.array_num_value(28) := p_source_129;
63740 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
63741 l_rec_acct_attrs.array_char_value(29) := p_source_130;
63742 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
63743 l_rec_acct_attrs.array_num_value(30) := p_source_110;
63744 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
63745 l_rec_acct_attrs.array_date_value(31) := p_source_101;
63746 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
63747 l_rec_acct_attrs.array_char_value(32) := p_source_102;
63748 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
63749 l_rec_acct_attrs.array_date_value(33) := p_source_103;
63753 l_rec_acct_attrs.array_num_value(35) := p_source_104;
63750 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
63751 l_rec_acct_attrs.array_char_value(34) := p_source_64;
63752 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
63754 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
63755 l_rec_acct_attrs.array_num_value(36) := p_source_105;
63756 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
63757 l_rec_acct_attrs.array_char_value(37) := p_source_67;
63758 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
63759 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
63760 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
63761 l_rec_acct_attrs.array_char_value(39) := p_source_60;
63762 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
63763 l_rec_acct_attrs.array_num_value(40) := p_source_69;
63764 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
63765 l_rec_acct_attrs.array_num_value(41) := p_source_77;
63766 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
63767 l_rec_acct_attrs.array_num_value(42) := p_source_70;
63768 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
63769 l_rec_acct_attrs.array_num_value(43) := p_source_107;
63770 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
63771 l_rec_acct_attrs.array_num_value(44) := p_source_108;
63772
63773 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63774 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63775
63776 ---------------------------------------------------------------------------------------------------------------
63777 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63778 ---------------------------------------------------------------------------------------------------------------
63779 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63780
63781 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63782 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63783
63784 IF xla_accounting_cache_pkg.GetValueChar
63785 (p_source_code => 'LEDGER_CATEGORY_CODE'
63786 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63787 AND l_bflow_method_code = 'PRIOR_ENTRY'
63788 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63789 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63790 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63791 )
63792 THEN
63793 xla_ae_lines_pkg.BflowUpgEntry
63794 (p_business_method_code => l_bflow_method_code
63795 ,p_business_class_code => l_bflow_class_code
63796 ,p_balance_type => l_balance_type_code);
63797 ELSE
63798 NULL;
63799 -- No business flow processing for business flow method of NONE.
63800 END IF;
63801
63802 --
63803 -- call analytical criteria
63804 --
63805
63806 --
63807 -- call description
63808 --
63809 -- No description or it is inherited.
63810 --
63811 -- call ADRs
63812 -- Bug 4922099
63813 --
63814 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63815 (NVL(l_actual_upg_option, 'N') = 'O') OR
63816 (NVL(l_enc_upg_option, 'N') = 'O')
63817 )
63818 THEN
63819 NULL;
63820 --
63821 --
63822
63823 l_ccid := AcctDerRule_35(
63824 p_application_id => p_application_id
63825 , p_ae_header_id => l_ae_header_id
63826 , p_source_48 => p_source_48
63827 , x_transaction_coa_id => l_adr_transaction_coa_id
63828 , x_accounting_coa_id => l_adr_accounting_coa_id
63829 , x_value_type_code => l_adr_value_type_code
63830 , p_side => 'NA'
63831 );
63832
63833 xla_ae_lines_pkg.set_ccid(
63834 p_code_combination_id => l_ccid
63835 , p_value_type_code => l_adr_value_type_code
63836 , p_transaction_coa_id => l_adr_transaction_coa_id
63837 , p_accounting_coa_id => l_adr_accounting_coa_id
63838 , p_adr_code => 'AP_RECP_INV_DIST'
63839 , p_adr_type_code => 'S'
63840 , p_component_type => l_component_type
63841 , p_component_code => l_component_code
63842 , p_component_type_code => l_component_type_code
63843 , p_component_appl_id => l_component_appl_id
63844 , p_amb_context_code => l_amb_context_code
63845 , p_side => 'NA'
63846 );
63847
63848
63849 --
63850 --
63851 END IF;
63852 --
63853 -- Bug 4922099
63854 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63855 (NVL(l_enc_upg_option, 'N') = 'O')
63856 ) AND
63857 (l_bflow_method_code = 'PRIOR_ENTRY')
63858 )
63859 THEN
63860 IF
63861 --
63862 1 = 2
63863 --
63864 THEN
63865 xla_accounting_err_pkg.build_message
63866 (p_appli_s_name => 'XLA'
63867 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63871 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63868 ,p_token_1 => 'LINE_NUMBER'
63869 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63870 ,p_token_2 => 'LINE_TYPE_NAME'
63872 l_component_type
63873 ,l_component_code
63874 ,l_component_type_code
63875 ,l_component_appl_id
63876 ,l_amb_context_code
63877 ,l_entity_code
63878 ,l_event_class_code
63879 )
63880 ,p_token_3 => 'OWNER'
63881 ,p_value_3 => xla_lookups_pkg.get_meaning(
63882 p_lookup_type => 'XLA_OWNER_TYPE'
63883 ,p_lookup_code => l_component_type_code
63884 )
63885 ,p_token_4 => 'PRODUCT_NAME'
63886 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63887 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63888 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63889 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63890 ,p_ae_header_id => NULL
63891 );
63892
63893 IF (C_LEVEL_ERROR>= g_log_level) THEN
63894 trace
63895 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63896 ,p_level => C_LEVEL_ERROR
63897 ,p_module => l_log_module);
63898 END IF;
63899 END IF;
63900 END IF;
63901 --
63902 --
63903 ------------------------------------------------------------------------------------------------
63904 -- 4219869 Business Flow
63905 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63906 -- Prior Entry. Currently, the following code is always generated.
63907 ------------------------------------------------------------------------------------------------
63908 XLA_AE_LINES_PKG.ValidateCurrentLine;
63909
63910 ------------------------------------------------------------------------------------
63911 -- 4219869 Business Flow
63912 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63913 ------------------------------------------------------------------------------------
63914 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63915
63916 ----------------------------------------------------------------------------------
63917 -- 4219869 Business Flow
63918 -- Update journal entry status -- Need to generate this within IF <condition>
63919 ----------------------------------------------------------------------------------
63920 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63921 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63922 ,p_balance_type_code => l_balance_type_code
63923 );
63924
63925 -------------------------------------------------------------------------------------------
63926 -- 4262811 - Generate the Accrual Reversal lines
63927 -------------------------------------------------------------------------------------------
63928 BEGIN
63929 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63930 (g_array_event(p_event_id).array_value_num('header_index'));
63931 IF l_acc_rev_flag IS NULL THEN
63932 l_acc_rev_flag := 'N';
63933 END IF;
63934 EXCEPTION
63935 WHEN OTHERS THEN
63936 l_acc_rev_flag := 'N';
63937 END;
63938 --
63939 IF (l_acc_rev_flag = 'Y') THEN
63940
63941 -- 4645092 ------------------------------------------------------------------------------
63942 -- To allow MPA report to determine if it should generate report process
63943 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63944 ------------------------------------------------------------------------------------------
63945
63946 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63947 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63948 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
63949 -- call ADRs
63950 -- Bug 4922099
63951 --
63952 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63953 (NVL(l_actual_upg_option, 'N') = 'O') OR
63954 (NVL(l_enc_upg_option, 'N') = 'O')
63955 )
63956 THEN
63957 NULL;
63958 --
63959 --
63960
63961 l_ccid := AcctDerRule_35(
63962 p_application_id => p_application_id
63966 , x_accounting_coa_id => l_adr_accounting_coa_id
63963 , p_ae_header_id => l_ae_header_id
63964 , p_source_48 => p_source_48
63965 , x_transaction_coa_id => l_adr_transaction_coa_id
63967 , x_value_type_code => l_adr_value_type_code
63968 , p_side => 'NA'
63969 );
63970
63971 xla_ae_lines_pkg.set_ccid(
63972 p_code_combination_id => l_ccid
63973 , p_value_type_code => l_adr_value_type_code
63974 , p_transaction_coa_id => l_adr_transaction_coa_id
63975 , p_accounting_coa_id => l_adr_accounting_coa_id
63976 , p_adr_code => 'AP_RECP_INV_DIST'
63977 , p_adr_type_code => 'S'
63978 , p_component_type => l_component_type
63979 , p_component_code => l_component_code
63980 , p_component_type_code => l_component_type_code
63981 , p_component_appl_id => l_component_appl_id
63982 , p_amb_context_code => l_amb_context_code
63983 , p_side => 'NA'
63984 );
63985
63986
63987 --
63988 --
63989 END IF;
63990
63991 --
63992 -- Update the line information that should be overwritten
63993 --
63994 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63995 p_header_num => 1);
63996 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63997
63998 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63999
64000 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64001 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64002 END IF;
64003
64004 --
64005 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64006 --
64007 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64008 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64009 ELSE
64010 ---------------------------------------------------------------------------------------------------
64011 -- 4262811a Switch Sign
64012 ---------------------------------------------------------------------------------------------------
64013 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64016 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64017 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64018 -- 5132302
64019 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64020 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64021
64022 END IF;
64023
64024 -- 4955764
64025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64027
64028
64029 XLA_AE_LINES_PKG.ValidateCurrentLine;
64030 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64031
64032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64034 ,p_balance_type_code => l_balance_type_code);
64035
64036 END IF;
64037
64038 -----------------------------------------------------------------------------------------
64039 -- 4262811 Multiperiod Accounting
64040 -----------------------------------------------------------------------------------------
64041 -- No MPA option is assigned.
64042
64043
64044 END IF;
64045 END IF;
64046 --
64047
64048 --
64049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64050 trace
64051 (p_msg => 'END of AcctLineType_119'
64052 ,p_level => C_LEVEL_PROCEDURE
64053 ,p_module => l_log_module);
64054 END IF;
64055 --
64056 EXCEPTION
64057 WHEN xla_exceptions_pkg.application_exception THEN
64058 RAISE;
64059 WHEN OTHERS THEN
64060 xla_exceptions_pkg.raise_message
64061 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_119');
64062 END AcctLineType_119;
64063 --
64064
64065 ---------------------------------------
64066 --
64067 -- PRIVATE FUNCTION
64068 -- AcctLineType_120
64069 --
64070 ---------------------------------------
64071 PROCEDURE AcctLineType_120 (
64072 p_application_id IN NUMBER
64073 ,p_event_id IN NUMBER
64074 ,p_calculate_acctd_flag IN VARCHAR2
64075 ,p_calculate_g_l_flag IN VARCHAR2
64076 ,p_actual_flag IN OUT VARCHAR2
64077 ,p_balance_type_code OUT VARCHAR2
64078 ,p_gain_or_loss_ref OUT VARCHAR2
64079
64080 --Payment Currency Code
64081 , p_source_12 IN VARCHAR2
64082 --Payment Distribution (Cleared Rate) Ledger Amount
64086 --Invoice Distribution Type
64083 , p_source_22 IN NUMBER
64084 --Invoice Distribution Account
64085 , p_source_29 IN NUMBER
64087 , p_source_32 IN VARCHAR2
64088 , p_source_32_meaning IN VARCHAR2
64089 --When to Account for Payment Option
64090 , p_source_50 IN VARCHAR2
64091 --Payment Distribution Type
64092 , p_source_51 IN VARCHAR2
64093 , p_source_51_meaning IN VARCHAR2
64094 --Accounting Reversal Indicator
64095 , p_source_52 IN VARCHAR2
64096 --Payment Distribution Amount
64097 , p_source_53 IN NUMBER
64098 --Business Flow Accounts Payable Application Identifier
64099 , p_source_54 IN NUMBER
64100 --Business Flow Payment Distribution Type
64101 , p_source_55 IN VARCHAR2
64102 --Business Flow Payment Entity Code
64103 , p_source_56 IN VARCHAR2
64104 --Business Flow Payment Distribution Identifier
64105 , p_source_57 IN NUMBER
64106 --Business Flow Payment Identifier
64107 , p_source_58 IN NUMBER
64108 --Payment Distribution Identifier
64109 , p_source_59 IN NUMBER
64110 --Distribution Link Type
64111 , p_source_60 IN VARCHAR2
64112 --Purchase Order Exchange Rate Date
64113 , p_source_61 IN DATE
64114 --Purchase Order Exchange Rate
64115 , p_source_62 IN NUMBER
64116 --Purchase Order Exchange Rate Type
64117 , p_source_63 IN VARCHAR2
64118 --Override Accounted Amount Indicator
64119 , p_source_64 IN VARCHAR2
64120 , p_source_64_meaning IN VARCHAR2
64121 --Payment Supplier Identifier
64122 , p_source_65 IN NUMBER
64123 --Payment Supplier Site Identifier
64124 , p_source_66 IN NUMBER
64125 --Third Party Type
64126 , p_source_67 IN VARCHAR2
64127 --Payment Distribution Reversed Identifier
64128 , p_source_68 IN NUMBER
64129 --Invoice Distribution Tax Line Identifier
64130 , p_source_69 IN NUMBER
64131 --Invoice Distribution Summary Tax Line Identifier
64132 , p_source_70 IN NUMBER
64133 --Accrue on Receipt Option
64134 , p_source_111 IN VARCHAR2
64135 , p_source_111_meaning IN VARCHAR2
64136 )
64137 IS
64138
64139 l_component_type VARCHAR2(80);
64140 l_component_code VARCHAR2(30);
64141 l_component_type_code VARCHAR2(1);
64142 l_component_appl_id INTEGER;
64143 l_amb_context_code VARCHAR2(30);
64144 l_entity_code VARCHAR2(30);
64145 l_event_class_code VARCHAR2(30);
64146 l_ae_header_id NUMBER;
64147 l_event_type_code VARCHAR2(30);
64148 l_line_definition_code VARCHAR2(30);
64149 l_line_definition_owner_code VARCHAR2(1);
64150 --
64151 -- adr variables
64152 l_segment VARCHAR2(30);
64153 l_ccid NUMBER;
64154 l_adr_transaction_coa_id NUMBER;
64155 l_adr_accounting_coa_id NUMBER;
64156 l_adr_flexfield_segment_code VARCHAR2(30);
64157 l_adr_flex_value_set_id NUMBER;
64158 l_adr_value_type_code VARCHAR2(30);
64159 l_adr_value_combination_id NUMBER;
64160 l_adr_value_segment_code VARCHAR2(30);
64161
64162 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64163 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64164 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64165 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64166
64167 -- 4262811 Variables ------------------------------------------------------------------------------------------
64168 l_entered_amt_idx NUMBER;
64169 l_accted_amt_idx NUMBER;
64170 l_acc_rev_flag VARCHAR2(1);
64171 l_accrual_line_num NUMBER;
64172 l_tmp_amt NUMBER;
64173 l_acc_rev_natural_side_code VARCHAR2(1);
64174
64175 l_num_entries NUMBER;
64176 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64177 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64178 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64179 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64180 l_recog_line_1 NUMBER;
64181 l_recog_line_2 NUMBER;
64182
64183 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64184 l_bflow_applied_to_amt NUMBER; -- 5132302
64185 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64186
64187 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64188
64189 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64190 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64191
64192 ---------------------------------------------------------------------------------------------------------------
64193
64194
64195 --
64196 -- bulk performance
64197 --
64198 l_balance_type_code VARCHAR2(1);
64199 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64200 l_log_module VARCHAR2(240);
64201
64202 --
64203 -- Upgrade strategy
64204 --
64205 l_actual_upg_option VARCHAR2(1);
64206 l_enc_upg_option VARCHAR2(1);
64207
64208 --
64212 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
64209 BEGIN
64210 --
64211 IF g_log_enabled THEN
64213 END IF;
64214 --
64215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64216
64217 trace
64218 (p_msg => 'BEGIN of AcctLineType_120'
64219 ,p_level => C_LEVEL_PROCEDURE
64220 ,p_module => l_log_module);
64221
64222 END IF;
64223 --
64224 l_component_type := 'AMB_JLT';
64225 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_CLEAR';
64226 l_component_type_code := 'S';
64227 l_component_appl_id := 200;
64228 l_amb_context_code := 'DEFAULT';
64229 l_entity_code := 'AP_PAYMENTS';
64230 l_event_class_code := 'RECONCILED PAYMENTS';
64231 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
64232 l_line_definition_owner_code := 'S';
64233 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
64234 --
64235 l_balance_type_code := 'A';
64236 l_segment := NULL;
64237 l_ccid := NULL;
64238 l_adr_transaction_coa_id := NULL;
64239 l_adr_accounting_coa_id := NULL;
64240 l_adr_flexfield_segment_code := NULL;
64241 l_adr_flex_value_set_id := NULL;
64242 l_adr_value_type_code := NULL;
64243 l_adr_value_combination_id := NULL;
64244 l_adr_value_segment_code := NULL;
64245
64246 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64247 l_bflow_class_code := ''; -- 4219869 Business Flow
64248 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64249 l_budgetary_control_flag := 'N';
64250
64251 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64252 l_bflow_applied_to_amt := NULL; -- 5132302
64253 l_entered_amt_idx := NULL; -- 4262811
64254 l_accted_amt_idx := NULL; -- 4262811
64255 l_acc_rev_flag := NULL; -- 4262811
64256 l_accrual_line_num := NULL; -- 4262811
64257 l_tmp_amt := NULL; -- 4262811
64258 --
64259
64260 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64261 l_balance_type_code <> 'B' THEN
64262 IF NVL(p_source_50,'
64263 ') = 'CLEAR_CLEAR' AND
64264 NVL(p_source_32,'
64265 ') = 'NONREC_TAX' AND
64266 NVL(p_source_111,'
64267 ') = 'Y' AND
64268 (NVL(p_source_51,'
64269 ') = 'CASH' OR
64270 NVL(p_source_51,'
64271 ') = 'AWT' OR
64272 NVL(p_source_51,'
64273 ') = 'DISCOUNT')
64274 THEN
64275
64276 --
64277 XLA_AE_LINES_PKG.SetNewLine;
64278
64279 p_balance_type_code := l_balance_type_code;
64280 -- set the flag so later we will know whether the gain loss line needs to be created
64281
64282 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64283 p_actual_flag :='A';
64284 END IF;
64285
64286 --
64287 -- bulk performance
64288 --
64289 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64290 p_header_num => 0); -- 4262811
64291 --
64292 -- set accounting line options
64293 --
64294 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64295 p_natural_side_code => 'D'
64296 , p_gain_or_loss_flag => 'N'
64297 , p_gl_transfer_mode_code => 'S'
64298 , p_acct_entry_type_code => 'A'
64299 , p_switch_side_flag => 'Y'
64300 , p_merge_duplicate_code => 'A'
64301 );
64302 --
64303 l_acc_rev_natural_side_code := 'C'; -- 4262811
64304 --
64305 --
64306 -- set accounting line type info
64307 --
64308 xla_ae_lines_pkg.SetAcctLineType
64309 (p_component_type => l_component_type
64310 ,p_event_type_code => l_event_type_code
64311 ,p_line_definition_owner_code => l_line_definition_owner_code
64312 ,p_line_definition_code => l_line_definition_code
64313 ,p_accounting_line_code => l_component_code
64314 ,p_accounting_line_type_code => l_component_type_code
64315 ,p_accounting_line_appl_id => l_component_appl_id
64316 ,p_amb_context_code => l_amb_context_code
64317 ,p_entity_code => l_entity_code
64318 ,p_event_class_code => l_event_class_code);
64319 --
64320 -- set accounting class
64321 --
64322 xla_ae_lines_pkg.SetAcctClass(
64323 p_accounting_class_code => 'NRTAX'
64324 , p_ae_header_id => l_ae_header_id
64325 );
64326
64327 --
64328 -- set rounding class
64329 --
64330 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64331 'NRTAX';
64332
64333 --
64334 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64335 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64336 --
64337 -- bulk performance
64338 --
64339 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64340
64341 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64345 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64342 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64343
64344 -- 4955764
64346 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64347
64348 -- 4458381 Public Sector Enh
64349
64350 --
64351 -- set accounting attributes for the line type
64352 --
64353 l_entered_amt_idx := 10;
64354 l_accted_amt_idx := 15;
64355 l_bflow_applied_to_amt_idx := 2; -- 5132302
64356 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64357 l_rec_acct_attrs.array_char_value(1) := p_source_52;
64358 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
64359 l_rec_acct_attrs.array_num_value(2) := p_source_53;
64360 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
64361 l_rec_acct_attrs.array_num_value(3) := p_source_54;
64362 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64363 l_rec_acct_attrs.array_char_value(4) := p_source_55;
64364 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
64365 l_rec_acct_attrs.array_char_value(5) := p_source_56;
64366 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
64367 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
64368 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64369 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
64370 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
64371 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
64372 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
64373 l_rec_acct_attrs.array_char_value(9) := p_source_60;
64374 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
64375 l_rec_acct_attrs.array_num_value(10) := p_source_53;
64376 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
64377 l_rec_acct_attrs.array_char_value(11) := p_source_12;
64378 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
64379 l_rec_acct_attrs.array_date_value(12) := p_source_61;
64380 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
64381 l_rec_acct_attrs.array_num_value(13) := p_source_62;
64382 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
64383 l_rec_acct_attrs.array_char_value(14) := p_source_63;
64384 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
64385 l_rec_acct_attrs.array_num_value(15) := p_source_22;
64386 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
64387 l_rec_acct_attrs.array_char_value(16) := p_source_64;
64388 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
64389 l_rec_acct_attrs.array_num_value(17) := p_source_65;
64390 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
64391 l_rec_acct_attrs.array_num_value(18) := p_source_66;
64392 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
64393 l_rec_acct_attrs.array_char_value(19) := p_source_67;
64394 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
64395 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
64396 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
64397 l_rec_acct_attrs.array_char_value(21) := p_source_60;
64398 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
64399 l_rec_acct_attrs.array_num_value(22) := p_source_69;
64400 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
64401 l_rec_acct_attrs.array_num_value(23) := p_source_69;
64402 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
64403 l_rec_acct_attrs.array_num_value(24) := p_source_70;
64404
64405 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64406 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64407
64408 ---------------------------------------------------------------------------------------------------------------
64409 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64410 ---------------------------------------------------------------------------------------------------------------
64411 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64412
64413 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64414 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64415
64416 IF xla_accounting_cache_pkg.GetValueChar
64417 (p_source_code => 'LEDGER_CATEGORY_CODE'
64418 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64419 AND l_bflow_method_code = 'PRIOR_ENTRY'
64420 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64421 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64422 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64423 )
64424 THEN
64425 xla_ae_lines_pkg.BflowUpgEntry
64426 (p_business_method_code => l_bflow_method_code
64427 ,p_business_class_code => l_bflow_class_code
64428 ,p_balance_type => l_balance_type_code);
64429 ELSE
64430 NULL;
64431 -- No business flow processing for business flow method of NONE.
64432 END IF;
64433
64434 --
64435 -- call analytical criteria
64436 --
64437
64438 --
64439 -- call description
64440 --
64444 -- Bug 4922099
64441 -- No description or it is inherited.
64442 --
64443 -- call ADRs
64445 --
64446 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64447 (NVL(l_actual_upg_option, 'N') = 'O') OR
64448 (NVL(l_enc_upg_option, 'N') = 'O')
64449 )
64450 THEN
64451 NULL;
64452 --
64453 --
64454
64455 l_ccid := AcctDerRule_28(
64456 p_application_id => p_application_id
64457 , p_ae_header_id => l_ae_header_id
64458 , p_source_29 => p_source_29
64459 , x_transaction_coa_id => l_adr_transaction_coa_id
64460 , x_accounting_coa_id => l_adr_accounting_coa_id
64461 , x_value_type_code => l_adr_value_type_code
64462 , p_side => 'NA'
64463 );
64464
64465 xla_ae_lines_pkg.set_ccid(
64466 p_code_combination_id => l_ccid
64467 , p_value_type_code => l_adr_value_type_code
64468 , p_transaction_coa_id => l_adr_transaction_coa_id
64469 , p_accounting_coa_id => l_adr_accounting_coa_id
64470 , p_adr_code => 'AP_INVOICE_DIST'
64471 , p_adr_type_code => 'S'
64472 , p_component_type => l_component_type
64473 , p_component_code => l_component_code
64474 , p_component_type_code => l_component_type_code
64475 , p_component_appl_id => l_component_appl_id
64476 , p_amb_context_code => l_amb_context_code
64477 , p_side => 'NA'
64478 );
64479
64480
64481 --
64482 --
64483 END IF;
64484 --
64485 -- Bug 4922099
64486 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64487 (NVL(l_enc_upg_option, 'N') = 'O')
64488 ) AND
64489 (l_bflow_method_code = 'PRIOR_ENTRY')
64490 )
64491 THEN
64492 IF
64493 --
64494 1 = 2
64495 --
64496 THEN
64497 xla_accounting_err_pkg.build_message
64498 (p_appli_s_name => 'XLA'
64499 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64500 ,p_token_1 => 'LINE_NUMBER'
64501 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
64502 ,p_token_2 => 'LINE_TYPE_NAME'
64503 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
64504 l_component_type
64505 ,l_component_code
64506 ,l_component_type_code
64507 ,l_component_appl_id
64508 ,l_amb_context_code
64509 ,l_entity_code
64510 ,l_event_class_code
64511 )
64512 ,p_token_3 => 'OWNER'
64513 ,p_value_3 => xla_lookups_pkg.get_meaning(
64514 p_lookup_type => 'XLA_OWNER_TYPE'
64515 ,p_lookup_code => l_component_type_code
64516 )
64517 ,p_token_4 => 'PRODUCT_NAME'
64518 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64519 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64520 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64521 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64522 ,p_ae_header_id => NULL
64523 );
64524
64525 IF (C_LEVEL_ERROR>= g_log_level) THEN
64526 trace
64527 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64528 ,p_level => C_LEVEL_ERROR
64529 ,p_module => l_log_module);
64530 END IF;
64531 END IF;
64532 END IF;
64533 --
64534 --
64535 ------------------------------------------------------------------------------------------------
64536 -- 4219869 Business Flow
64537 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64538 -- Prior Entry. Currently, the following code is always generated.
64539 ------------------------------------------------------------------------------------------------
64540 XLA_AE_LINES_PKG.ValidateCurrentLine;
64541
64542 ------------------------------------------------------------------------------------
64543 -- 4219869 Business Flow
64544 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64548 ----------------------------------------------------------------------------------
64545 ------------------------------------------------------------------------------------
64546 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64547
64549 -- 4219869 Business Flow
64550 -- Update journal entry status -- Need to generate this within IF <condition>
64551 ----------------------------------------------------------------------------------
64552 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64553 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64554 ,p_balance_type_code => l_balance_type_code
64555 );
64556
64557 -------------------------------------------------------------------------------------------
64558 -- 4262811 - Generate the Accrual Reversal lines
64559 -------------------------------------------------------------------------------------------
64560 BEGIN
64561 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64562 (g_array_event(p_event_id).array_value_num('header_index'));
64563 IF l_acc_rev_flag IS NULL THEN
64564 l_acc_rev_flag := 'N';
64565 END IF;
64566 EXCEPTION
64567 WHEN OTHERS THEN
64568 l_acc_rev_flag := 'N';
64569 END;
64570 --
64571 IF (l_acc_rev_flag = 'Y') THEN
64572
64573 -- 4645092 ------------------------------------------------------------------------------
64574 -- To allow MPA report to determine if it should generate report process
64575 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64576 ------------------------------------------------------------------------------------------
64577
64578 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64579 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64580 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
64581 -- call ADRs
64582 -- Bug 4922099
64583 --
64584 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64585 (NVL(l_actual_upg_option, 'N') = 'O') OR
64586 (NVL(l_enc_upg_option, 'N') = 'O')
64587 )
64588 THEN
64589 NULL;
64590 --
64591 --
64592
64593 l_ccid := AcctDerRule_28(
64594 p_application_id => p_application_id
64595 , p_ae_header_id => l_ae_header_id
64596 , p_source_29 => p_source_29
64597 , x_transaction_coa_id => l_adr_transaction_coa_id
64598 , x_accounting_coa_id => l_adr_accounting_coa_id
64599 , x_value_type_code => l_adr_value_type_code
64600 , p_side => 'NA'
64601 );
64602
64603 xla_ae_lines_pkg.set_ccid(
64604 p_code_combination_id => l_ccid
64605 , p_value_type_code => l_adr_value_type_code
64606 , p_transaction_coa_id => l_adr_transaction_coa_id
64607 , p_accounting_coa_id => l_adr_accounting_coa_id
64608 , p_adr_code => 'AP_INVOICE_DIST'
64609 , p_adr_type_code => 'S'
64610 , p_component_type => l_component_type
64611 , p_component_code => l_component_code
64612 , p_component_type_code => l_component_type_code
64613 , p_component_appl_id => l_component_appl_id
64614 , p_amb_context_code => l_amb_context_code
64615 , p_side => 'NA'
64616 );
64617
64618
64619 --
64620 --
64621 END IF;
64622
64623 --
64624 -- Update the line information that should be overwritten
64625 --
64626 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64627 p_header_num => 1);
64628 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
64629
64630 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64631
64632 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64633 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64634 END IF;
64635
64636 --
64637 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64638 --
64639 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64640 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64641 ELSE
64642 ---------------------------------------------------------------------------------------------------
64643 -- 4262811a Switch Sign
64644 ---------------------------------------------------------------------------------------------------
64645 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64646 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64647 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64648 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64649 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64650 -- 5132302
64651 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64655
64652 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64653
64654 END IF;
64656 -- 4955764
64657 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64658 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64659
64660
64661 XLA_AE_LINES_PKG.ValidateCurrentLine;
64662 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64663
64664 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64665 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64666 ,p_balance_type_code => l_balance_type_code);
64667
64668 END IF;
64669
64670 -----------------------------------------------------------------------------------------
64671 -- 4262811 Multiperiod Accounting
64672 -----------------------------------------------------------------------------------------
64673 -- No MPA option is assigned.
64674
64675
64676 END IF;
64677 END IF;
64678 --
64679
64680 --
64681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64682 trace
64683 (p_msg => 'END of AcctLineType_120'
64684 ,p_level => C_LEVEL_PROCEDURE
64685 ,p_module => l_log_module);
64686 END IF;
64687 --
64688 EXCEPTION
64689 WHEN xla_exceptions_pkg.application_exception THEN
64690 RAISE;
64691 WHEN OTHERS THEN
64692 xla_exceptions_pkg.raise_message
64693 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_120');
64694 END AcctLineType_120;
64695 --
64696
64697 ---------------------------------------
64698 --
64699 -- PRIVATE FUNCTION
64700 -- AcctLineType_121
64701 --
64702 ---------------------------------------
64703 PROCEDURE AcctLineType_121 (
64704 p_application_id IN NUMBER
64705 ,p_event_id IN NUMBER
64706 ,p_calculate_acctd_flag IN VARCHAR2
64707 ,p_calculate_g_l_flag IN VARCHAR2
64708 ,p_actual_flag IN OUT VARCHAR2
64709 ,p_balance_type_code OUT VARCHAR2
64710 ,p_gain_or_loss_ref OUT VARCHAR2
64711
64712 --Payment Currency Code
64713 , p_source_12 IN VARCHAR2
64714 --Payment Distribution (Payment Rate) Ledger Amount
64715 , p_source_21 IN NUMBER
64716 --Invoice Distribution Account
64717 , p_source_29 IN NUMBER
64718 --Invoice Distribution Type
64719 , p_source_32 IN VARCHAR2
64720 , p_source_32_meaning IN VARCHAR2
64721 --When to Account for Payment Option
64722 , p_source_50 IN VARCHAR2
64723 --Payment Distribution Type
64724 , p_source_51 IN VARCHAR2
64725 , p_source_51_meaning IN VARCHAR2
64726 --Accounting Reversal Indicator
64727 , p_source_52 IN VARCHAR2
64728 --Payment Distribution Amount
64729 , p_source_53 IN NUMBER
64730 --Business Flow Accounts Payable Application Identifier
64731 , p_source_54 IN NUMBER
64732 --Payment Distribution Identifier
64733 , p_source_59 IN NUMBER
64734 --Distribution Link Type
64735 , p_source_60 IN VARCHAR2
64736 --Purchase Order Exchange Rate Date
64737 , p_source_61 IN DATE
64738 --Purchase Order Exchange Rate
64739 , p_source_62 IN NUMBER
64740 --Purchase Order Exchange Rate Type
64741 , p_source_63 IN VARCHAR2
64742 --Override Accounted Amount Indicator
64743 , p_source_64 IN VARCHAR2
64744 , p_source_64_meaning IN VARCHAR2
64745 --Payment Supplier Identifier
64746 , p_source_65 IN NUMBER
64747 --Payment Supplier Site Identifier
64748 , p_source_66 IN NUMBER
64749 --Third Party Type
64750 , p_source_67 IN VARCHAR2
64751 --Payment Distribution Reversed Identifier
64752 , p_source_68 IN NUMBER
64753 --Invoice Distribution Tax Line Identifier
64754 , p_source_69 IN NUMBER
64755 --Invoice Distribution Summary Tax Line Identifier
64756 , p_source_70 IN NUMBER
64757 --Payment Type
64758 , p_source_71 IN VARCHAR2
64759 , p_source_71_meaning IN VARCHAR2
64760 --Invoice Distribution Amount of the Payment Distribution
64761 , p_source_72 IN NUMBER
64762 --Business Flow Invoice Distribution Type
64763 , p_source_73 IN VARCHAR2
64764 --Business Flow Invoice Entity Code
64765 , p_source_74 IN VARCHAR2
64766 --Business Flow Invoice Distribution Identifier
64767 , p_source_75 IN NUMBER
64768 --Business Flow Invoice Identifier
64769 , p_source_76 IN NUMBER
64770 --Invoice Distribution Tax Distribution Identifier from Tax
64771 , p_source_77 IN NUMBER
64772 --Accrue on Receipt Option
64773 , p_source_111 IN VARCHAR2
64774 , p_source_111_meaning IN VARCHAR2
64775 --Invoice Type Paid
64776 , p_source_112 IN VARCHAR2
64777 , p_source_112_meaning IN VARCHAR2
64778 )
64779 IS
64780
64781 l_component_type VARCHAR2(80);
64782 l_component_code VARCHAR2(30);
64783 l_component_type_code VARCHAR2(1);
64784 l_component_appl_id INTEGER;
64785 l_amb_context_code VARCHAR2(30);
64786 l_entity_code VARCHAR2(30);
64787 l_event_class_code VARCHAR2(30);
64788 l_ae_header_id NUMBER;
64792 --
64789 l_event_type_code VARCHAR2(30);
64790 l_line_definition_code VARCHAR2(30);
64791 l_line_definition_owner_code VARCHAR2(1);
64793 -- adr variables
64794 l_segment VARCHAR2(30);
64795 l_ccid NUMBER;
64796 l_adr_transaction_coa_id NUMBER;
64797 l_adr_accounting_coa_id NUMBER;
64798 l_adr_flexfield_segment_code VARCHAR2(30);
64799 l_adr_flex_value_set_id NUMBER;
64800 l_adr_value_type_code VARCHAR2(30);
64801 l_adr_value_combination_id NUMBER;
64802 l_adr_value_segment_code VARCHAR2(30);
64803
64804 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64805 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64806 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64807 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64808
64809 -- 4262811 Variables ------------------------------------------------------------------------------------------
64810 l_entered_amt_idx NUMBER;
64811 l_accted_amt_idx NUMBER;
64812 l_acc_rev_flag VARCHAR2(1);
64813 l_accrual_line_num NUMBER;
64814 l_tmp_amt NUMBER;
64815 l_acc_rev_natural_side_code VARCHAR2(1);
64816
64817 l_num_entries NUMBER;
64818 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64819 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64820 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64821 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64822 l_recog_line_1 NUMBER;
64823 l_recog_line_2 NUMBER;
64824
64825 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64826 l_bflow_applied_to_amt NUMBER; -- 5132302
64827 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64828
64829 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64830
64831 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64832 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64833
64834 ---------------------------------------------------------------------------------------------------------------
64835
64836
64837 --
64838 -- bulk performance
64839 --
64840 l_balance_type_code VARCHAR2(1);
64841 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64842 l_log_module VARCHAR2(240);
64843
64844 --
64845 -- Upgrade strategy
64846 --
64847 l_actual_upg_option VARCHAR2(1);
64848 l_enc_upg_option VARCHAR2(1);
64849
64850 --
64851 BEGIN
64852 --
64853 IF g_log_enabled THEN
64854 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
64855 END IF;
64856 --
64857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64858
64859 trace
64860 (p_msg => 'BEGIN of AcctLineType_121'
64861 ,p_level => C_LEVEL_PROCEDURE
64862 ,p_module => l_log_module);
64863
64864 END IF;
64865 --
64866 l_component_type := 'AMB_JLT';
64867 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_PMT';
64868 l_component_type_code := 'S';
64869 l_component_appl_id := 200;
64870 l_amb_context_code := 'DEFAULT';
64871 l_entity_code := 'AP_PAYMENTS';
64872 l_event_class_code := 'PAYMENTS';
64873 l_event_type_code := 'PAYMENTS_ALL';
64874 l_line_definition_owner_code := 'S';
64875 l_line_definition_code := 'CASH_PAYMENTS_ALL';
64876 --
64877 l_balance_type_code := 'A';
64878 l_segment := NULL;
64879 l_ccid := NULL;
64880 l_adr_transaction_coa_id := NULL;
64881 l_adr_accounting_coa_id := NULL;
64882 l_adr_flexfield_segment_code := NULL;
64883 l_adr_flex_value_set_id := NULL;
64884 l_adr_value_type_code := NULL;
64885 l_adr_value_combination_id := NULL;
64886 l_adr_value_segment_code := NULL;
64887
64888 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64889 l_bflow_class_code := ''; -- 4219869 Business Flow
64890 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64891 l_budgetary_control_flag := 'N';
64892
64893 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64894 l_bflow_applied_to_amt := NULL; -- 5132302
64895 l_entered_amt_idx := NULL; -- 4262811
64896 l_accted_amt_idx := NULL; -- 4262811
64897 l_acc_rev_flag := NULL; -- 4262811
64898 l_accrual_line_num := NULL; -- 4262811
64899 l_tmp_amt := NULL; -- 4262811
64900 --
64901
64902 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64903 l_balance_type_code <> 'B' THEN
64904 IF NVL(p_source_50,'
64905 ') <> 'CLEAR_CLEAR' AND
64906 NVL(p_source_32,'
64907 ') = 'NONREC_TAX' AND
64908 NVL(p_source_111,'
64909 ') = 'Y' AND
64910 NVL(p_source_112,'
64911 ') <> 'INTEREST' AND
64912 (NVL(p_source_51,'
64913 ') = 'CASH' OR
64914 NVL(p_source_51,'
64915 ') = 'AWT' OR
64916 NVL(p_source_51,'
64917 ') = 'DISCOUNT') AND
64918 NVL(p_source_71,'
64922 --
64919 ') <> 'R'
64920 THEN
64921
64923 XLA_AE_LINES_PKG.SetNewLine;
64924
64925 p_balance_type_code := l_balance_type_code;
64926 -- set the flag so later we will know whether the gain loss line needs to be created
64927
64928 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64929 p_actual_flag :='A';
64930 END IF;
64931
64932 --
64933 -- bulk performance
64934 --
64935 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64936 p_header_num => 0); -- 4262811
64937 --
64938 -- set accounting line options
64939 --
64940 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64941 p_natural_side_code => 'D'
64942 , p_gain_or_loss_flag => 'N'
64943 , p_gl_transfer_mode_code => 'S'
64944 , p_acct_entry_type_code => 'A'
64945 , p_switch_side_flag => 'Y'
64946 , p_merge_duplicate_code => 'A'
64947 );
64948 --
64949 l_acc_rev_natural_side_code := 'C'; -- 4262811
64950 --
64951 --
64952 -- set accounting line type info
64953 --
64954 xla_ae_lines_pkg.SetAcctLineType
64955 (p_component_type => l_component_type
64956 ,p_event_type_code => l_event_type_code
64957 ,p_line_definition_owner_code => l_line_definition_owner_code
64958 ,p_line_definition_code => l_line_definition_code
64959 ,p_accounting_line_code => l_component_code
64960 ,p_accounting_line_type_code => l_component_type_code
64961 ,p_accounting_line_appl_id => l_component_appl_id
64962 ,p_amb_context_code => l_amb_context_code
64963 ,p_entity_code => l_entity_code
64964 ,p_event_class_code => l_event_class_code);
64965 --
64966 -- set accounting class
64967 --
64968 xla_ae_lines_pkg.SetAcctClass(
64969 p_accounting_class_code => 'NRTAX'
64970 , p_ae_header_id => l_ae_header_id
64971 );
64972
64973 --
64974 -- set rounding class
64975 --
64976 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64977 'NRTAX';
64978
64979 --
64980 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64981 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64982 --
64983 -- bulk performance
64984 --
64985 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64986
64987 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64988 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64989
64990 -- 4955764
64991 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64992 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64993
64994 -- 4458381 Public Sector Enh
64995
64996 --
64997 -- set accounting attributes for the line type
64998 --
64999 l_entered_amt_idx := 10;
65000 l_accted_amt_idx := 15;
65001 l_bflow_applied_to_amt_idx := 2; -- 5132302
65002 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65003 l_rec_acct_attrs.array_char_value(1) := p_source_52;
65004 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
65005 l_rec_acct_attrs.array_num_value(2) := p_source_72;
65006 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
65007 l_rec_acct_attrs.array_num_value(3) := p_source_54;
65008 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65009 l_rec_acct_attrs.array_char_value(4) := p_source_73;
65010 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
65011 l_rec_acct_attrs.array_char_value(5) := p_source_74;
65012 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
65013 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
65014 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65015 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
65016 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
65017 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
65018 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
65019 l_rec_acct_attrs.array_char_value(9) := p_source_60;
65020 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
65021 l_rec_acct_attrs.array_num_value(10) := p_source_53;
65022 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
65023 l_rec_acct_attrs.array_char_value(11) := p_source_12;
65024 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
65025 l_rec_acct_attrs.array_date_value(12) := p_source_61;
65026 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
65027 l_rec_acct_attrs.array_num_value(13) := p_source_62;
65028 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
65029 l_rec_acct_attrs.array_char_value(14) := p_source_63;
65030 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
65031 l_rec_acct_attrs.array_num_value(15) := p_source_21;
65032 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
65033 l_rec_acct_attrs.array_char_value(16) := p_source_64;
65037 l_rec_acct_attrs.array_num_value(18) := p_source_66;
65034 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
65035 l_rec_acct_attrs.array_num_value(17) := p_source_65;
65036 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
65038 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
65039 l_rec_acct_attrs.array_char_value(19) := p_source_67;
65040 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
65041 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
65042 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
65043 l_rec_acct_attrs.array_char_value(21) := p_source_60;
65044 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
65045 l_rec_acct_attrs.array_num_value(22) := p_source_69;
65046 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
65047 l_rec_acct_attrs.array_num_value(23) := p_source_77;
65048 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
65049 l_rec_acct_attrs.array_num_value(24) := p_source_70;
65050
65051 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65052 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65053
65054 ---------------------------------------------------------------------------------------------------------------
65055 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65056 ---------------------------------------------------------------------------------------------------------------
65057 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65058
65059 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65060 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65061
65062 IF xla_accounting_cache_pkg.GetValueChar
65063 (p_source_code => 'LEDGER_CATEGORY_CODE'
65064 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65065 AND l_bflow_method_code = 'PRIOR_ENTRY'
65066 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65067 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65068 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65069 )
65070 THEN
65071 xla_ae_lines_pkg.BflowUpgEntry
65072 (p_business_method_code => l_bflow_method_code
65073 ,p_business_class_code => l_bflow_class_code
65074 ,p_balance_type => l_balance_type_code);
65075 ELSE
65076 NULL;
65077 -- No business flow processing for business flow method of NONE.
65078 END IF;
65079
65080 --
65081 -- call analytical criteria
65082 --
65083
65084 --
65085 -- call description
65086 --
65087 -- No description or it is inherited.
65088 --
65089 -- call ADRs
65090 -- Bug 4922099
65091 --
65092 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65093 (NVL(l_actual_upg_option, 'N') = 'O') OR
65094 (NVL(l_enc_upg_option, 'N') = 'O')
65095 )
65096 THEN
65097 NULL;
65098 --
65099 --
65100
65101 l_ccid := AcctDerRule_28(
65102 p_application_id => p_application_id
65103 , p_ae_header_id => l_ae_header_id
65104 , p_source_29 => p_source_29
65105 , x_transaction_coa_id => l_adr_transaction_coa_id
65106 , x_accounting_coa_id => l_adr_accounting_coa_id
65107 , x_value_type_code => l_adr_value_type_code
65108 , p_side => 'NA'
65109 );
65110
65111 xla_ae_lines_pkg.set_ccid(
65112 p_code_combination_id => l_ccid
65113 , p_value_type_code => l_adr_value_type_code
65114 , p_transaction_coa_id => l_adr_transaction_coa_id
65115 , p_accounting_coa_id => l_adr_accounting_coa_id
65116 , p_adr_code => 'AP_INVOICE_DIST'
65117 , p_adr_type_code => 'S'
65118 , p_component_type => l_component_type
65119 , p_component_code => l_component_code
65120 , p_component_type_code => l_component_type_code
65121 , p_component_appl_id => l_component_appl_id
65122 , p_amb_context_code => l_amb_context_code
65123 , p_side => 'NA'
65124 );
65125
65126
65127 --
65128 --
65129 END IF;
65130 --
65131 -- Bug 4922099
65132 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65133 (NVL(l_enc_upg_option, 'N') = 'O')
65134 ) AND
65135 (l_bflow_method_code = 'PRIOR_ENTRY')
65136 )
65137 THEN
65138 IF
65139 --
65140 1 = 2
65141 --
65142 THEN
65143 xla_accounting_err_pkg.build_message
65144 (p_appli_s_name => 'XLA'
65145 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65146 ,p_token_1 => 'LINE_NUMBER'
65147 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65148 ,p_token_2 => 'LINE_TYPE_NAME'
65149 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65153 ,l_component_appl_id
65150 l_component_type
65151 ,l_component_code
65152 ,l_component_type_code
65154 ,l_amb_context_code
65155 ,l_entity_code
65156 ,l_event_class_code
65157 )
65158 ,p_token_3 => 'OWNER'
65159 ,p_value_3 => xla_lookups_pkg.get_meaning(
65160 p_lookup_type => 'XLA_OWNER_TYPE'
65161 ,p_lookup_code => l_component_type_code
65162 )
65163 ,p_token_4 => 'PRODUCT_NAME'
65164 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65165 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65166 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65167 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65168 ,p_ae_header_id => NULL
65169 );
65170
65171 IF (C_LEVEL_ERROR>= g_log_level) THEN
65172 trace
65173 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65174 ,p_level => C_LEVEL_ERROR
65175 ,p_module => l_log_module);
65176 END IF;
65177 END IF;
65178 END IF;
65179 --
65180 --
65181 ------------------------------------------------------------------------------------------------
65182 -- 4219869 Business Flow
65183 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65184 -- Prior Entry. Currently, the following code is always generated.
65185 ------------------------------------------------------------------------------------------------
65186 XLA_AE_LINES_PKG.ValidateCurrentLine;
65187
65188 ------------------------------------------------------------------------------------
65189 -- 4219869 Business Flow
65190 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65191 ------------------------------------------------------------------------------------
65192 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65193
65194 ----------------------------------------------------------------------------------
65195 -- 4219869 Business Flow
65196 -- Update journal entry status -- Need to generate this within IF <condition>
65197 ----------------------------------------------------------------------------------
65198 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65199 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65200 ,p_balance_type_code => l_balance_type_code
65201 );
65202
65203 -------------------------------------------------------------------------------------------
65204 -- 4262811 - Generate the Accrual Reversal lines
65205 -------------------------------------------------------------------------------------------
65206 BEGIN
65207 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65208 (g_array_event(p_event_id).array_value_num('header_index'));
65209 IF l_acc_rev_flag IS NULL THEN
65210 l_acc_rev_flag := 'N';
65211 END IF;
65212 EXCEPTION
65213 WHEN OTHERS THEN
65214 l_acc_rev_flag := 'N';
65215 END;
65216 --
65217 IF (l_acc_rev_flag = 'Y') THEN
65218
65219 -- 4645092 ------------------------------------------------------------------------------
65220 -- To allow MPA report to determine if it should generate report process
65221 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65222 ------------------------------------------------------------------------------------------
65223
65224 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65225 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65226 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
65227 -- call ADRs
65228 -- Bug 4922099
65229 --
65230 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65231 (NVL(l_actual_upg_option, 'N') = 'O') OR
65232 (NVL(l_enc_upg_option, 'N') = 'O')
65233 )
65234 THEN
65235 NULL;
65236 --
65237 --
65238
65239 l_ccid := AcctDerRule_28(
65240 p_application_id => p_application_id
65241 , p_ae_header_id => l_ae_header_id
65242 , p_source_29 => p_source_29
65243 , x_transaction_coa_id => l_adr_transaction_coa_id
65244 , x_accounting_coa_id => l_adr_accounting_coa_id
65245 , x_value_type_code => l_adr_value_type_code
65249 xla_ae_lines_pkg.set_ccid(
65246 , p_side => 'NA'
65247 );
65248
65250 p_code_combination_id => l_ccid
65251 , p_value_type_code => l_adr_value_type_code
65252 , p_transaction_coa_id => l_adr_transaction_coa_id
65253 , p_accounting_coa_id => l_adr_accounting_coa_id
65254 , p_adr_code => 'AP_INVOICE_DIST'
65255 , p_adr_type_code => 'S'
65256 , p_component_type => l_component_type
65257 , p_component_code => l_component_code
65258 , p_component_type_code => l_component_type_code
65259 , p_component_appl_id => l_component_appl_id
65260 , p_amb_context_code => l_amb_context_code
65261 , p_side => 'NA'
65262 );
65263
65264
65265 --
65266 --
65267 END IF;
65268
65269 --
65270 -- Update the line information that should be overwritten
65271 --
65272 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65273 p_header_num => 1);
65274 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65275
65276 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65277
65278 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65279 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65280 END IF;
65281
65282 --
65283 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65284 --
65285 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65286 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65287 ELSE
65288 ---------------------------------------------------------------------------------------------------
65289 -- 4262811a Switch Sign
65290 ---------------------------------------------------------------------------------------------------
65291 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65292 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65293 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65294 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65295 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65296 -- 5132302
65297 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65298 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65299
65300 END IF;
65301
65302 -- 4955764
65303 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65304 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65305
65306
65307 XLA_AE_LINES_PKG.ValidateCurrentLine;
65308 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65309
65310 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65311 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65312 ,p_balance_type_code => l_balance_type_code);
65313
65314 END IF;
65315
65316 -----------------------------------------------------------------------------------------
65317 -- 4262811 Multiperiod Accounting
65318 -----------------------------------------------------------------------------------------
65319 -- No MPA option is assigned.
65320
65321
65322 END IF;
65323 END IF;
65324 --
65325
65326 --
65327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65328 trace
65329 (p_msg => 'END of AcctLineType_121'
65330 ,p_level => C_LEVEL_PROCEDURE
65331 ,p_module => l_log_module);
65332 END IF;
65333 --
65334 EXCEPTION
65335 WHEN xla_exceptions_pkg.application_exception THEN
65336 RAISE;
65337 WHEN OTHERS THEN
65338 xla_exceptions_pkg.raise_message
65339 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_121');
65340 END AcctLineType_121;
65341 --
65342
65343 ---------------------------------------
65344 --
65345 -- PRIVATE FUNCTION
65346 -- AcctLineType_122
65347 --
65348 ---------------------------------------
65349 PROCEDURE AcctLineType_122 (
65350 p_application_id IN NUMBER
65351 ,p_event_id IN NUMBER
65352 ,p_calculate_acctd_flag IN VARCHAR2
65353 ,p_calculate_g_l_flag IN VARCHAR2
65354 ,p_actual_flag IN OUT VARCHAR2
65355 ,p_balance_type_code OUT VARCHAR2
65356 ,p_gain_or_loss_ref OUT VARCHAR2
65357
65358 --Payment Currency Code
65359 , p_source_12 IN VARCHAR2
65360 --Payment Distribution (Payment Rate) Ledger Amount
65361 , p_source_21 IN NUMBER
65362 --Invoice Distribution Account
65363 , p_source_29 IN NUMBER
65364 --Invoice Distribution Type
65365 , p_source_32 IN VARCHAR2
65366 , p_source_32_meaning IN VARCHAR2
65370 , p_source_51 IN VARCHAR2
65367 --When to Account for Payment Option
65368 , p_source_50 IN VARCHAR2
65369 --Payment Distribution Type
65371 , p_source_51_meaning IN VARCHAR2
65372 --Accounting Reversal Indicator
65373 , p_source_52 IN VARCHAR2
65374 --Payment Distribution Amount
65375 , p_source_53 IN NUMBER
65376 --Business Flow Accounts Payable Application Identifier
65377 , p_source_54 IN NUMBER
65378 --Payment Distribution Identifier
65379 , p_source_59 IN NUMBER
65380 --Distribution Link Type
65381 , p_source_60 IN VARCHAR2
65382 --Purchase Order Exchange Rate Date
65383 , p_source_61 IN DATE
65384 --Purchase Order Exchange Rate
65385 , p_source_62 IN NUMBER
65386 --Purchase Order Exchange Rate Type
65387 , p_source_63 IN VARCHAR2
65388 --Override Accounted Amount Indicator
65389 , p_source_64 IN VARCHAR2
65390 , p_source_64_meaning IN VARCHAR2
65391 --Payment Supplier Identifier
65392 , p_source_65 IN NUMBER
65393 --Payment Supplier Site Identifier
65394 , p_source_66 IN NUMBER
65395 --Third Party Type
65396 , p_source_67 IN VARCHAR2
65397 --Payment Distribution Reversed Identifier
65398 , p_source_68 IN NUMBER
65399 --Invoice Distribution Tax Line Identifier
65400 , p_source_69 IN NUMBER
65401 --Invoice Distribution Summary Tax Line Identifier
65402 , p_source_70 IN NUMBER
65403 --Payment Type
65404 , p_source_71 IN VARCHAR2
65405 , p_source_71_meaning IN VARCHAR2
65406 --Business Flow Invoice Distribution Type
65407 , p_source_73 IN VARCHAR2
65408 --Business Flow Invoice Entity Code
65409 , p_source_74 IN VARCHAR2
65410 --Business Flow Invoice Distribution Identifier
65411 , p_source_75 IN NUMBER
65412 --Business Flow Invoice Identifier
65413 , p_source_76 IN NUMBER
65414 --Invoice Distribution Tax Distribution Identifier from Tax
65415 , p_source_77 IN NUMBER
65416 --Accrue on Receipt Option
65417 , p_source_111 IN VARCHAR2
65418 , p_source_111_meaning IN VARCHAR2
65419 )
65420 IS
65421
65422 l_component_type VARCHAR2(80);
65423 l_component_code VARCHAR2(30);
65424 l_component_type_code VARCHAR2(1);
65425 l_component_appl_id INTEGER;
65426 l_amb_context_code VARCHAR2(30);
65427 l_entity_code VARCHAR2(30);
65428 l_event_class_code VARCHAR2(30);
65429 l_ae_header_id NUMBER;
65430 l_event_type_code VARCHAR2(30);
65431 l_line_definition_code VARCHAR2(30);
65432 l_line_definition_owner_code VARCHAR2(1);
65433 --
65434 -- adr variables
65435 l_segment VARCHAR2(30);
65436 l_ccid NUMBER;
65437 l_adr_transaction_coa_id NUMBER;
65438 l_adr_accounting_coa_id NUMBER;
65439 l_adr_flexfield_segment_code VARCHAR2(30);
65440 l_adr_flex_value_set_id NUMBER;
65441 l_adr_value_type_code VARCHAR2(30);
65442 l_adr_value_combination_id NUMBER;
65443 l_adr_value_segment_code VARCHAR2(30);
65444
65445 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65446 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65447 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65448 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65449
65450 -- 4262811 Variables ------------------------------------------------------------------------------------------
65451 l_entered_amt_idx NUMBER;
65452 l_accted_amt_idx NUMBER;
65453 l_acc_rev_flag VARCHAR2(1);
65454 l_accrual_line_num NUMBER;
65455 l_tmp_amt NUMBER;
65456 l_acc_rev_natural_side_code VARCHAR2(1);
65457
65458 l_num_entries NUMBER;
65459 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65460 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65461 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65462 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65463 l_recog_line_1 NUMBER;
65464 l_recog_line_2 NUMBER;
65465
65466 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65467 l_bflow_applied_to_amt NUMBER; -- 5132302
65468 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65469
65470 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65471
65472 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65473 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65474
65475 ---------------------------------------------------------------------------------------------------------------
65476
65477
65478 --
65479 -- bulk performance
65480 --
65481 l_balance_type_code VARCHAR2(1);
65482 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65483 l_log_module VARCHAR2(240);
65484
65485 --
65486 -- Upgrade strategy
65487 --
65488 l_actual_upg_option VARCHAR2(1);
65489 l_enc_upg_option VARCHAR2(1);
65490
65491 --
65492 BEGIN
65496 END IF;
65493 --
65494 IF g_log_enabled THEN
65495 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
65497 --
65498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65499
65500 trace
65501 (p_msg => 'BEGIN of AcctLineType_122'
65502 ,p_level => C_LEVEL_PROCEDURE
65503 ,p_module => l_log_module);
65504
65505 END IF;
65506 --
65507 l_component_type := 'AMB_JLT';
65508 l_component_code := 'AP_NON_RECOV_TAX_ACCRUAL_REF';
65509 l_component_type_code := 'S';
65510 l_component_appl_id := 200;
65511 l_amb_context_code := 'DEFAULT';
65512 l_entity_code := 'AP_PAYMENTS';
65513 l_event_class_code := 'REFUNDS';
65514 l_event_type_code := 'REFUNDS_ALL';
65515 l_line_definition_owner_code := 'S';
65516 l_line_definition_code := 'CASH_REFUNDS_ALL';
65517 --
65518 l_balance_type_code := 'A';
65519 l_segment := NULL;
65520 l_ccid := NULL;
65521 l_adr_transaction_coa_id := NULL;
65522 l_adr_accounting_coa_id := NULL;
65523 l_adr_flexfield_segment_code := NULL;
65524 l_adr_flex_value_set_id := NULL;
65525 l_adr_value_type_code := NULL;
65526 l_adr_value_combination_id := NULL;
65527 l_adr_value_segment_code := NULL;
65528
65529 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
65530 l_bflow_class_code := ''; -- 4219869 Business Flow
65531 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
65532 l_budgetary_control_flag := 'N';
65533
65534 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65535 l_bflow_applied_to_amt := NULL; -- 5132302
65536 l_entered_amt_idx := NULL; -- 4262811
65537 l_accted_amt_idx := NULL; -- 4262811
65538 l_acc_rev_flag := NULL; -- 4262811
65539 l_accrual_line_num := NULL; -- 4262811
65540 l_tmp_amt := NULL; -- 4262811
65541 --
65542
65543 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65544 l_balance_type_code <> 'B' THEN
65545 IF NVL(p_source_50,'
65546 ') <> 'CLEAR_CLEAR' AND
65547 NVL(p_source_32,'
65548 ') = 'NONREC_TAX' AND
65549 NVL(p_source_111,'
65550 ') = 'Y' AND
65551 (NVL(p_source_51,'
65552 ') = 'CASH' OR
65553 NVL(p_source_51,'
65554 ') = 'DISCOUNT') AND
65555 NVL(p_source_71,'
65556 ') = 'R'
65557 THEN
65558
65559 --
65560 XLA_AE_LINES_PKG.SetNewLine;
65561
65562 p_balance_type_code := l_balance_type_code;
65563 -- set the flag so later we will know whether the gain loss line needs to be created
65564
65565 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65566 p_actual_flag :='A';
65567 END IF;
65568
65569 --
65570 -- bulk performance
65571 --
65572 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65573 p_header_num => 0); -- 4262811
65574 --
65575 -- set accounting line options
65576 --
65577 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65578 p_natural_side_code => 'D'
65579 , p_gain_or_loss_flag => 'N'
65580 , p_gl_transfer_mode_code => 'S'
65581 , p_acct_entry_type_code => 'A'
65582 , p_switch_side_flag => 'Y'
65583 , p_merge_duplicate_code => 'A'
65584 );
65585 --
65586 l_acc_rev_natural_side_code := 'C'; -- 4262811
65587 --
65588 --
65589 -- set accounting line type info
65590 --
65591 xla_ae_lines_pkg.SetAcctLineType
65592 (p_component_type => l_component_type
65593 ,p_event_type_code => l_event_type_code
65594 ,p_line_definition_owner_code => l_line_definition_owner_code
65595 ,p_line_definition_code => l_line_definition_code
65596 ,p_accounting_line_code => l_component_code
65597 ,p_accounting_line_type_code => l_component_type_code
65598 ,p_accounting_line_appl_id => l_component_appl_id
65599 ,p_amb_context_code => l_amb_context_code
65600 ,p_entity_code => l_entity_code
65601 ,p_event_class_code => l_event_class_code);
65602 --
65603 -- set accounting class
65604 --
65605 xla_ae_lines_pkg.SetAcctClass(
65606 p_accounting_class_code => 'NRTAX'
65607 , p_ae_header_id => l_ae_header_id
65608 );
65609
65610 --
65611 -- set rounding class
65612 --
65613 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65614 'NRTAX';
65615
65616 --
65617 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65618 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65619 --
65620 -- bulk performance
65621 --
65622 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65623
65624 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65625 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65626
65627 -- 4955764
65628 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65632
65629 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65630
65631 -- 4458381 Public Sector Enh
65633 --
65634 -- set accounting attributes for the line type
65635 --
65636 l_entered_amt_idx := 9;
65637 l_accted_amt_idx := 14;
65638 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65639 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65640 l_rec_acct_attrs.array_char_value(1) := p_source_52;
65641 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
65642 l_rec_acct_attrs.array_num_value(2) := p_source_54;
65643 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65644 l_rec_acct_attrs.array_char_value(3) := p_source_73;
65645 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
65646 l_rec_acct_attrs.array_char_value(4) := p_source_74;
65647 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
65648 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
65649 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65650 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
65651 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
65652 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
65653 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
65654 l_rec_acct_attrs.array_char_value(8) := p_source_60;
65655 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
65656 l_rec_acct_attrs.array_num_value(9) := p_source_53;
65657 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
65658 l_rec_acct_attrs.array_char_value(10) := p_source_12;
65659 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
65660 l_rec_acct_attrs.array_date_value(11) := p_source_61;
65661 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
65662 l_rec_acct_attrs.array_num_value(12) := p_source_62;
65663 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
65664 l_rec_acct_attrs.array_char_value(13) := p_source_63;
65665 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
65666 l_rec_acct_attrs.array_num_value(14) := p_source_21;
65667 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
65668 l_rec_acct_attrs.array_char_value(15) := p_source_64;
65669 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
65670 l_rec_acct_attrs.array_num_value(16) := p_source_65;
65671 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
65672 l_rec_acct_attrs.array_num_value(17) := p_source_66;
65673 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
65674 l_rec_acct_attrs.array_char_value(18) := p_source_67;
65675 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
65676 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
65677 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
65678 l_rec_acct_attrs.array_char_value(20) := p_source_60;
65679 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
65680 l_rec_acct_attrs.array_num_value(21) := p_source_69;
65681 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
65682 l_rec_acct_attrs.array_num_value(22) := p_source_77;
65683 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
65684 l_rec_acct_attrs.array_num_value(23) := p_source_70;
65685
65686 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65687 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65688
65689 ---------------------------------------------------------------------------------------------------------------
65690 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65691 ---------------------------------------------------------------------------------------------------------------
65692 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65693
65694 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65695 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65696
65697 IF xla_accounting_cache_pkg.GetValueChar
65698 (p_source_code => 'LEDGER_CATEGORY_CODE'
65699 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65700 AND l_bflow_method_code = 'PRIOR_ENTRY'
65701 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65702 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65703 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65704 )
65705 THEN
65706 xla_ae_lines_pkg.BflowUpgEntry
65707 (p_business_method_code => l_bflow_method_code
65708 ,p_business_class_code => l_bflow_class_code
65709 ,p_balance_type => l_balance_type_code);
65710 ELSE
65711 NULL;
65712 -- No business flow processing for business flow method of NONE.
65713 END IF;
65714
65715 --
65716 -- call analytical criteria
65717 --
65718
65719 --
65720 -- call description
65721 --
65722 -- No description or it is inherited.
65723 --
65724 -- call ADRs
65725 -- Bug 4922099
65726 --
65727 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65731 THEN
65728 (NVL(l_actual_upg_option, 'N') = 'O') OR
65729 (NVL(l_enc_upg_option, 'N') = 'O')
65730 )
65732 NULL;
65733 --
65734 --
65735
65736 l_ccid := AcctDerRule_28(
65737 p_application_id => p_application_id
65738 , p_ae_header_id => l_ae_header_id
65739 , p_source_29 => p_source_29
65740 , x_transaction_coa_id => l_adr_transaction_coa_id
65741 , x_accounting_coa_id => l_adr_accounting_coa_id
65742 , x_value_type_code => l_adr_value_type_code
65743 , p_side => 'NA'
65744 );
65745
65746 xla_ae_lines_pkg.set_ccid(
65747 p_code_combination_id => l_ccid
65748 , p_value_type_code => l_adr_value_type_code
65749 , p_transaction_coa_id => l_adr_transaction_coa_id
65750 , p_accounting_coa_id => l_adr_accounting_coa_id
65751 , p_adr_code => 'AP_INVOICE_DIST'
65752 , p_adr_type_code => 'S'
65753 , p_component_type => l_component_type
65754 , p_component_code => l_component_code
65755 , p_component_type_code => l_component_type_code
65756 , p_component_appl_id => l_component_appl_id
65757 , p_amb_context_code => l_amb_context_code
65758 , p_side => 'NA'
65759 );
65760
65761
65762 --
65763 --
65764 END IF;
65765 --
65766 -- Bug 4922099
65767 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65768 (NVL(l_enc_upg_option, 'N') = 'O')
65769 ) AND
65770 (l_bflow_method_code = 'PRIOR_ENTRY')
65771 )
65772 THEN
65773 IF
65774 --
65775 1 = 2
65776 --
65777 THEN
65778 xla_accounting_err_pkg.build_message
65779 (p_appli_s_name => 'XLA'
65780 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65781 ,p_token_1 => 'LINE_NUMBER'
65782 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65783 ,p_token_2 => 'LINE_TYPE_NAME'
65784 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65785 l_component_type
65786 ,l_component_code
65787 ,l_component_type_code
65788 ,l_component_appl_id
65789 ,l_amb_context_code
65790 ,l_entity_code
65791 ,l_event_class_code
65792 )
65793 ,p_token_3 => 'OWNER'
65794 ,p_value_3 => xla_lookups_pkg.get_meaning(
65795 p_lookup_type => 'XLA_OWNER_TYPE'
65796 ,p_lookup_code => l_component_type_code
65797 )
65798 ,p_token_4 => 'PRODUCT_NAME'
65799 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65800 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65801 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65802 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65803 ,p_ae_header_id => NULL
65804 );
65805
65806 IF (C_LEVEL_ERROR>= g_log_level) THEN
65807 trace
65808 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65809 ,p_level => C_LEVEL_ERROR
65810 ,p_module => l_log_module);
65811 END IF;
65812 END IF;
65813 END IF;
65814 --
65815 --
65816 ------------------------------------------------------------------------------------------------
65817 -- 4219869 Business Flow
65818 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65819 -- Prior Entry. Currently, the following code is always generated.
65820 ------------------------------------------------------------------------------------------------
65821 XLA_AE_LINES_PKG.ValidateCurrentLine;
65822
65823 ------------------------------------------------------------------------------------
65824 -- 4219869 Business Flow
65825 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65826 ------------------------------------------------------------------------------------
65827 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65828
65829 ----------------------------------------------------------------------------------
65830 -- 4219869 Business Flow
65834 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65831 -- Update journal entry status -- Need to generate this within IF <condition>
65832 ----------------------------------------------------------------------------------
65833 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65835 ,p_balance_type_code => l_balance_type_code
65836 );
65837
65838 -------------------------------------------------------------------------------------------
65839 -- 4262811 - Generate the Accrual Reversal lines
65840 -------------------------------------------------------------------------------------------
65841 BEGIN
65842 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65843 (g_array_event(p_event_id).array_value_num('header_index'));
65844 IF l_acc_rev_flag IS NULL THEN
65845 l_acc_rev_flag := 'N';
65846 END IF;
65847 EXCEPTION
65848 WHEN OTHERS THEN
65849 l_acc_rev_flag := 'N';
65850 END;
65851 --
65852 IF (l_acc_rev_flag = 'Y') THEN
65853
65854 -- 4645092 ------------------------------------------------------------------------------
65855 -- To allow MPA report to determine if it should generate report process
65856 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65857 ------------------------------------------------------------------------------------------
65858
65859 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65860 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65861 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
65862 -- call ADRs
65863 -- Bug 4922099
65864 --
65865 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65866 (NVL(l_actual_upg_option, 'N') = 'O') OR
65867 (NVL(l_enc_upg_option, 'N') = 'O')
65868 )
65869 THEN
65870 NULL;
65871 --
65872 --
65873
65874 l_ccid := AcctDerRule_28(
65875 p_application_id => p_application_id
65876 , p_ae_header_id => l_ae_header_id
65877 , p_source_29 => p_source_29
65878 , x_transaction_coa_id => l_adr_transaction_coa_id
65879 , x_accounting_coa_id => l_adr_accounting_coa_id
65880 , x_value_type_code => l_adr_value_type_code
65881 , p_side => 'NA'
65882 );
65883
65884 xla_ae_lines_pkg.set_ccid(
65885 p_code_combination_id => l_ccid
65886 , p_value_type_code => l_adr_value_type_code
65887 , p_transaction_coa_id => l_adr_transaction_coa_id
65888 , p_accounting_coa_id => l_adr_accounting_coa_id
65889 , p_adr_code => 'AP_INVOICE_DIST'
65890 , p_adr_type_code => 'S'
65891 , p_component_type => l_component_type
65892 , p_component_code => l_component_code
65893 , p_component_type_code => l_component_type_code
65894 , p_component_appl_id => l_component_appl_id
65895 , p_amb_context_code => l_amb_context_code
65896 , p_side => 'NA'
65897 );
65898
65899
65900 --
65901 --
65902 END IF;
65903
65904 --
65905 -- Update the line information that should be overwritten
65906 --
65907 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65908 p_header_num => 1);
65909 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65910
65911 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65912
65913 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65914 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65915 END IF;
65916
65917 --
65918 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65919 --
65920 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65921 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65922 ELSE
65923 ---------------------------------------------------------------------------------------------------
65924 -- 4262811a Switch Sign
65925 ---------------------------------------------------------------------------------------------------
65926 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65927 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65928 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65929 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65930 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65931 -- 5132302
65932 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65933 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65934
65935 END IF;
65936
65937 -- 4955764
65941
65938 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65939 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65940
65942 XLA_AE_LINES_PKG.ValidateCurrentLine;
65943 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65944
65945 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65946 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65947 ,p_balance_type_code => l_balance_type_code);
65948
65949 END IF;
65950
65951 -----------------------------------------------------------------------------------------
65952 -- 4262811 Multiperiod Accounting
65953 -----------------------------------------------------------------------------------------
65954 -- No MPA option is assigned.
65955
65956
65957 END IF;
65958 END IF;
65959 --
65960
65961 --
65962 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65963 trace
65964 (p_msg => 'END of AcctLineType_122'
65965 ,p_level => C_LEVEL_PROCEDURE
65966 ,p_module => l_log_module);
65967 END IF;
65968 --
65969 EXCEPTION
65970 WHEN xla_exceptions_pkg.application_exception THEN
65971 RAISE;
65972 WHEN OTHERS THEN
65973 xla_exceptions_pkg.raise_message
65974 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_122');
65975 END AcctLineType_122;
65976 --
65977
65978 ---------------------------------------
65979 --
65980 -- PRIVATE FUNCTION
65981 -- AcctLineType_123
65982 --
65983 ---------------------------------------
65984 PROCEDURE AcctLineType_123 (
65985 p_application_id IN NUMBER
65986 ,p_event_id IN NUMBER
65987 ,p_calculate_acctd_flag IN VARCHAR2
65988 ,p_calculate_g_l_flag IN VARCHAR2
65989 ,p_actual_flag IN OUT VARCHAR2
65990 ,p_balance_type_code OUT VARCHAR2
65991 ,p_gain_or_loss_ref OUT VARCHAR2
65992
65993 --Payment Currency Code
65994 , p_source_12 IN VARCHAR2
65995 --Payment Distribution (Cleared Rate) Ledger Amount
65996 , p_source_22 IN NUMBER
65997 --Invoice Distribution Account
65998 , p_source_29 IN NUMBER
65999 --Invoice Distribution Type
66000 , p_source_32 IN VARCHAR2
66001 , p_source_32_meaning IN VARCHAR2
66002 --When to Account for Payment Option
66003 , p_source_50 IN VARCHAR2
66004 --Payment Distribution Type
66005 , p_source_51 IN VARCHAR2
66006 , p_source_51_meaning IN VARCHAR2
66007 --Accounting Reversal Indicator
66008 , p_source_52 IN VARCHAR2
66009 --Payment Distribution Amount
66010 , p_source_53 IN NUMBER
66011 --Business Flow Accounts Payable Application Identifier
66012 , p_source_54 IN NUMBER
66013 --Business Flow Payment Distribution Type
66014 , p_source_55 IN VARCHAR2
66015 --Business Flow Payment Entity Code
66016 , p_source_56 IN VARCHAR2
66017 --Business Flow Payment Distribution Identifier
66018 , p_source_57 IN NUMBER
66019 --Business Flow Payment Identifier
66020 , p_source_58 IN NUMBER
66021 --Payment Distribution Identifier
66022 , p_source_59 IN NUMBER
66023 --Distribution Link Type
66024 , p_source_60 IN VARCHAR2
66025 --Override Accounted Amount Indicator
66026 , p_source_64 IN VARCHAR2
66027 , p_source_64_meaning IN VARCHAR2
66028 --Payment Supplier Identifier
66029 , p_source_65 IN NUMBER
66030 --Payment Supplier Site Identifier
66031 , p_source_66 IN NUMBER
66032 --Third Party Type
66033 , p_source_67 IN VARCHAR2
66034 --Payment Distribution Reversed Identifier
66035 , p_source_68 IN NUMBER
66036 --Invoice Distribution Tax Line Identifier
66037 , p_source_69 IN NUMBER
66038 --Invoice Distribution Summary Tax Line Identifier
66039 , p_source_70 IN NUMBER
66040 --Accrue on Receipt Option
66041 , p_source_111 IN VARCHAR2
66042 , p_source_111_meaning IN VARCHAR2
66043 --Cleared Exchange Date
66044 , p_source_114 IN DATE
66045 --Cleared Exchange Rate
66046 , p_source_115 IN NUMBER
66047 --Cleared Exchange Rate Type
66048 , p_source_116 IN VARCHAR2
66049 )
66050 IS
66051
66052 l_component_type VARCHAR2(80);
66053 l_component_code VARCHAR2(30);
66054 l_component_type_code VARCHAR2(1);
66055 l_component_appl_id INTEGER;
66056 l_amb_context_code VARCHAR2(30);
66057 l_entity_code VARCHAR2(30);
66058 l_event_class_code VARCHAR2(30);
66059 l_ae_header_id NUMBER;
66060 l_event_type_code VARCHAR2(30);
66061 l_line_definition_code VARCHAR2(30);
66062 l_line_definition_owner_code VARCHAR2(1);
66063 --
66064 -- adr variables
66065 l_segment VARCHAR2(30);
66066 l_ccid NUMBER;
66067 l_adr_transaction_coa_id NUMBER;
66068 l_adr_accounting_coa_id NUMBER;
66069 l_adr_flexfield_segment_code VARCHAR2(30);
66070 l_adr_flex_value_set_id NUMBER;
66071 l_adr_value_type_code VARCHAR2(30);
66072 l_adr_value_combination_id NUMBER;
66073 l_adr_value_segment_code VARCHAR2(30);
66074
66078 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
66075 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
66076 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
66077 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
66079
66080 -- 4262811 Variables ------------------------------------------------------------------------------------------
66081 l_entered_amt_idx NUMBER;
66082 l_accted_amt_idx NUMBER;
66083 l_acc_rev_flag VARCHAR2(1);
66084 l_accrual_line_num NUMBER;
66085 l_tmp_amt NUMBER;
66086 l_acc_rev_natural_side_code VARCHAR2(1);
66087
66088 l_num_entries NUMBER;
66089 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
66090 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
66091 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
66092 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
66093 l_recog_line_1 NUMBER;
66094 l_recog_line_2 NUMBER;
66095
66096 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
66097 l_bflow_applied_to_amt NUMBER; -- 5132302
66098 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
66099
66100 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66101
66102 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
66103 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
66104
66105 ---------------------------------------------------------------------------------------------------------------
66106
66107
66108 --
66109 -- bulk performance
66110 --
66111 l_balance_type_code VARCHAR2(1);
66112 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66113 l_log_module VARCHAR2(240);
66114
66115 --
66116 -- Upgrade strategy
66117 --
66118 l_actual_upg_option VARCHAR2(1);
66119 l_enc_upg_option VARCHAR2(1);
66120
66121 --
66122 BEGIN
66123 --
66124 IF g_log_enabled THEN
66125 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
66126 END IF;
66127 --
66128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66129
66130 trace
66131 (p_msg => 'BEGIN of AcctLineType_123'
66132 ,p_level => C_LEVEL_PROCEDURE
66133 ,p_module => l_log_module);
66134
66135 END IF;
66136 --
66137 l_component_type := 'AMB_JLT';
66138 l_component_code := 'AP_NON_RECOV_TAX_CLEAR';
66139 l_component_type_code := 'S';
66140 l_component_appl_id := 200;
66141 l_amb_context_code := 'DEFAULT';
66142 l_entity_code := 'AP_PAYMENTS';
66143 l_event_class_code := 'RECONCILED PAYMENTS';
66144 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
66145 l_line_definition_owner_code := 'S';
66146 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
66147 --
66148 l_balance_type_code := 'A';
66149 l_segment := NULL;
66150 l_ccid := NULL;
66151 l_adr_transaction_coa_id := NULL;
66152 l_adr_accounting_coa_id := NULL;
66153 l_adr_flexfield_segment_code := NULL;
66154 l_adr_flex_value_set_id := NULL;
66155 l_adr_value_type_code := NULL;
66156 l_adr_value_combination_id := NULL;
66157 l_adr_value_segment_code := NULL;
66158
66159 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66160 l_bflow_class_code := ''; -- 4219869 Business Flow
66161 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66162 l_budgetary_control_flag := 'N';
66163
66164 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66165 l_bflow_applied_to_amt := NULL; -- 5132302
66166 l_entered_amt_idx := NULL; -- 4262811
66167 l_accted_amt_idx := NULL; -- 4262811
66168 l_acc_rev_flag := NULL; -- 4262811
66169 l_accrual_line_num := NULL; -- 4262811
66170 l_tmp_amt := NULL; -- 4262811
66171 --
66172
66173 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66174 l_balance_type_code <> 'B' THEN
66175 IF NVL(p_source_50,'
66176 ') = 'CLEAR_CLEAR' AND
66177 (NVL(p_source_32,'
66178 ') = 'NONREC_TAX' OR
66179 NVL(p_source_32,'
66180 ') = 'TERV' OR
66181 NVL(p_source_32,'
66182 ') = 'TIPV' OR
66183 NVL(p_source_32,'
66184 ') = 'TRV') AND
66185 NVL(p_source_111,'
66186 ') <> 'Y' AND
66187 (NVL(p_source_51,'
66188 ') = 'CASH' OR
66189 NVL(p_source_51,'
66190 ') = 'AWT' OR
66191 NVL(p_source_51,'
66192 ') = 'DISCOUNT')
66193 THEN
66194
66195 --
66196 XLA_AE_LINES_PKG.SetNewLine;
66197
66198 p_balance_type_code := l_balance_type_code;
66199 -- set the flag so later we will know whether the gain loss line needs to be created
66200
66201 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66202 p_actual_flag :='A';
66203 END IF;
66204
66205 --
66206 -- bulk performance
66207 --
66208 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66212 --
66209 p_header_num => 0); -- 4262811
66210 --
66211 -- set accounting line options
66213 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66214 p_natural_side_code => 'D'
66215 , p_gain_or_loss_flag => 'N'
66216 , p_gl_transfer_mode_code => 'S'
66217 , p_acct_entry_type_code => 'A'
66218 , p_switch_side_flag => 'Y'
66219 , p_merge_duplicate_code => 'A'
66220 );
66221 --
66222 l_acc_rev_natural_side_code := 'C'; -- 4262811
66223 --
66224 --
66225 -- set accounting line type info
66226 --
66227 xla_ae_lines_pkg.SetAcctLineType
66228 (p_component_type => l_component_type
66229 ,p_event_type_code => l_event_type_code
66230 ,p_line_definition_owner_code => l_line_definition_owner_code
66231 ,p_line_definition_code => l_line_definition_code
66232 ,p_accounting_line_code => l_component_code
66233 ,p_accounting_line_type_code => l_component_type_code
66234 ,p_accounting_line_appl_id => l_component_appl_id
66235 ,p_amb_context_code => l_amb_context_code
66236 ,p_entity_code => l_entity_code
66237 ,p_event_class_code => l_event_class_code);
66238 --
66239 -- set accounting class
66240 --
66241 xla_ae_lines_pkg.SetAcctClass(
66242 p_accounting_class_code => 'NRTAX'
66243 , p_ae_header_id => l_ae_header_id
66244 );
66245
66246 --
66247 -- set rounding class
66248 --
66249 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66250 'NRTAX';
66251
66252 --
66253 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66254 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66255 --
66256 -- bulk performance
66257 --
66258 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66259
66260 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66261 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66262
66263 -- 4955764
66264 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66265 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66266
66267 -- 4458381 Public Sector Enh
66268
66269 --
66270 -- set accounting attributes for the line type
66271 --
66272 l_entered_amt_idx := 10;
66273 l_accted_amt_idx := 15;
66274 l_bflow_applied_to_amt_idx := 2; -- 5132302
66275 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66276 l_rec_acct_attrs.array_char_value(1) := p_source_52;
66277 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66278 l_rec_acct_attrs.array_num_value(2) := p_source_53;
66279 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66280 l_rec_acct_attrs.array_num_value(3) := p_source_54;
66281 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66282 l_rec_acct_attrs.array_char_value(4) := p_source_55;
66283 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66284 l_rec_acct_attrs.array_char_value(5) := p_source_56;
66285 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66286 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
66287 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66288 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
66289 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66290 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
66291 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66292 l_rec_acct_attrs.array_char_value(9) := p_source_60;
66293 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66294 l_rec_acct_attrs.array_num_value(10) := p_source_53;
66295 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66296 l_rec_acct_attrs.array_char_value(11) := p_source_12;
66297 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66298 l_rec_acct_attrs.array_date_value(12) := p_source_114;
66299 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66300 l_rec_acct_attrs.array_num_value(13) := p_source_115;
66301 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66302 l_rec_acct_attrs.array_char_value(14) := p_source_116;
66303 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66304 l_rec_acct_attrs.array_num_value(15) := p_source_22;
66305 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66306 l_rec_acct_attrs.array_char_value(16) := p_source_64;
66307 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66308 l_rec_acct_attrs.array_num_value(17) := p_source_65;
66309 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66310 l_rec_acct_attrs.array_num_value(18) := p_source_66;
66311 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66312 l_rec_acct_attrs.array_char_value(19) := p_source_67;
66313 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66314 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
66315 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66319 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66316 l_rec_acct_attrs.array_char_value(21) := p_source_60;
66317 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66318 l_rec_acct_attrs.array_num_value(22) := p_source_69;
66320 l_rec_acct_attrs.array_num_value(23) := p_source_69;
66321 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66322 l_rec_acct_attrs.array_num_value(24) := p_source_70;
66323
66324 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66325 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66326
66327 ---------------------------------------------------------------------------------------------------------------
66328 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66329 ---------------------------------------------------------------------------------------------------------------
66330 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66331
66332 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66333 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66334
66335 IF xla_accounting_cache_pkg.GetValueChar
66336 (p_source_code => 'LEDGER_CATEGORY_CODE'
66337 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66338 AND l_bflow_method_code = 'PRIOR_ENTRY'
66339 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66340 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66341 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66342 )
66343 THEN
66344 xla_ae_lines_pkg.BflowUpgEntry
66345 (p_business_method_code => l_bflow_method_code
66346 ,p_business_class_code => l_bflow_class_code
66347 ,p_balance_type => l_balance_type_code);
66348 ELSE
66349 NULL;
66350 -- No business flow processing for business flow method of NONE.
66351 END IF;
66352
66353 --
66354 -- call analytical criteria
66355 --
66356
66357 --
66358 -- call description
66359 --
66360 -- No description or it is inherited.
66361 --
66362 -- call ADRs
66363 -- Bug 4922099
66364 --
66365 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66366 (NVL(l_actual_upg_option, 'N') = 'O') OR
66367 (NVL(l_enc_upg_option, 'N') = 'O')
66368 )
66369 THEN
66370 NULL;
66371 --
66372 --
66373
66374 l_ccid := AcctDerRule_28(
66375 p_application_id => p_application_id
66376 , p_ae_header_id => l_ae_header_id
66377 , p_source_29 => p_source_29
66378 , x_transaction_coa_id => l_adr_transaction_coa_id
66379 , x_accounting_coa_id => l_adr_accounting_coa_id
66380 , x_value_type_code => l_adr_value_type_code
66381 , p_side => 'NA'
66382 );
66383
66384 xla_ae_lines_pkg.set_ccid(
66385 p_code_combination_id => l_ccid
66386 , p_value_type_code => l_adr_value_type_code
66387 , p_transaction_coa_id => l_adr_transaction_coa_id
66388 , p_accounting_coa_id => l_adr_accounting_coa_id
66389 , p_adr_code => 'AP_INVOICE_DIST'
66390 , p_adr_type_code => 'S'
66391 , p_component_type => l_component_type
66392 , p_component_code => l_component_code
66393 , p_component_type_code => l_component_type_code
66394 , p_component_appl_id => l_component_appl_id
66395 , p_amb_context_code => l_amb_context_code
66396 , p_side => 'NA'
66397 );
66398
66399
66400 --
66401 --
66402 END IF;
66403 --
66404 -- Bug 4922099
66405 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66406 (NVL(l_enc_upg_option, 'N') = 'O')
66407 ) AND
66408 (l_bflow_method_code = 'PRIOR_ENTRY')
66409 )
66410 THEN
66411 IF
66412 --
66413 1 = 2
66414 --
66415 THEN
66416 xla_accounting_err_pkg.build_message
66417 (p_appli_s_name => 'XLA'
66418 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66419 ,p_token_1 => 'LINE_NUMBER'
66420 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
66421 ,p_token_2 => 'LINE_TYPE_NAME'
66422 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
66423 l_component_type
66424 ,l_component_code
66425 ,l_component_type_code
66426 ,l_component_appl_id
66427 ,l_amb_context_code
66428 ,l_entity_code
66432 ,p_value_3 => xla_lookups_pkg.get_meaning(
66429 ,l_event_class_code
66430 )
66431 ,p_token_3 => 'OWNER'
66433 p_lookup_type => 'XLA_OWNER_TYPE'
66434 ,p_lookup_code => l_component_type_code
66435 )
66436 ,p_token_4 => 'PRODUCT_NAME'
66437 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66438 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66439 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66440 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66441 ,p_ae_header_id => NULL
66442 );
66443
66444 IF (C_LEVEL_ERROR>= g_log_level) THEN
66445 trace
66446 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66447 ,p_level => C_LEVEL_ERROR
66448 ,p_module => l_log_module);
66449 END IF;
66450 END IF;
66451 END IF;
66452 --
66453 --
66454 ------------------------------------------------------------------------------------------------
66455 -- 4219869 Business Flow
66456 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66457 -- Prior Entry. Currently, the following code is always generated.
66458 ------------------------------------------------------------------------------------------------
66459 XLA_AE_LINES_PKG.ValidateCurrentLine;
66460
66461 ------------------------------------------------------------------------------------
66462 -- 4219869 Business Flow
66463 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66464 ------------------------------------------------------------------------------------
66465 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66466
66467 ----------------------------------------------------------------------------------
66468 -- 4219869 Business Flow
66469 -- Update journal entry status -- Need to generate this within IF <condition>
66470 ----------------------------------------------------------------------------------
66471 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66472 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66473 ,p_balance_type_code => l_balance_type_code
66474 );
66475
66476 -------------------------------------------------------------------------------------------
66477 -- 4262811 - Generate the Accrual Reversal lines
66478 -------------------------------------------------------------------------------------------
66479 BEGIN
66480 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66481 (g_array_event(p_event_id).array_value_num('header_index'));
66482 IF l_acc_rev_flag IS NULL THEN
66483 l_acc_rev_flag := 'N';
66484 END IF;
66485 EXCEPTION
66486 WHEN OTHERS THEN
66487 l_acc_rev_flag := 'N';
66488 END;
66489 --
66490 IF (l_acc_rev_flag = 'Y') THEN
66491
66492 -- 4645092 ------------------------------------------------------------------------------
66493 -- To allow MPA report to determine if it should generate report process
66494 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66495 ------------------------------------------------------------------------------------------
66496
66497 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66498 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66499 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
66500 -- call ADRs
66501 -- Bug 4922099
66502 --
66503 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66504 (NVL(l_actual_upg_option, 'N') = 'O') OR
66505 (NVL(l_enc_upg_option, 'N') = 'O')
66506 )
66507 THEN
66508 NULL;
66509 --
66510 --
66511
66512 l_ccid := AcctDerRule_28(
66513 p_application_id => p_application_id
66514 , p_ae_header_id => l_ae_header_id
66515 , p_source_29 => p_source_29
66516 , x_transaction_coa_id => l_adr_transaction_coa_id
66517 , x_accounting_coa_id => l_adr_accounting_coa_id
66518 , x_value_type_code => l_adr_value_type_code
66519 , p_side => 'NA'
66520 );
66521
66522 xla_ae_lines_pkg.set_ccid(
66523 p_code_combination_id => l_ccid
66524 , p_value_type_code => l_adr_value_type_code
66525 , p_transaction_coa_id => l_adr_transaction_coa_id
66526 , p_accounting_coa_id => l_adr_accounting_coa_id
66527 , p_adr_code => 'AP_INVOICE_DIST'
66528 , p_adr_type_code => 'S'
66529 , p_component_type => l_component_type
66530 , p_component_code => l_component_code
66534 , p_side => 'NA'
66531 , p_component_type_code => l_component_type_code
66532 , p_component_appl_id => l_component_appl_id
66533 , p_amb_context_code => l_amb_context_code
66535 );
66536
66537
66538 --
66539 --
66540 END IF;
66541
66542 --
66543 -- Update the line information that should be overwritten
66544 --
66545 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66546 p_header_num => 1);
66547 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
66548
66549 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66550
66551 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
66552 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66553 END IF;
66554
66555 --
66556 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66557 --
66558 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66559 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
66560 ELSE
66561 ---------------------------------------------------------------------------------------------------
66562 -- 4262811a Switch Sign
66563 ---------------------------------------------------------------------------------------------------
66564 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
66565 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66566 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66567 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66568 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66569 -- 5132302
66570 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66571 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66572
66573 END IF;
66574
66575 -- 4955764
66576 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66577 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66578
66579
66580 XLA_AE_LINES_PKG.ValidateCurrentLine;
66581 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66582
66583 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66584 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66585 ,p_balance_type_code => l_balance_type_code);
66586
66587 END IF;
66588
66589 -----------------------------------------------------------------------------------------
66590 -- 4262811 Multiperiod Accounting
66591 -----------------------------------------------------------------------------------------
66592 -- No MPA option is assigned.
66593
66594
66595 END IF;
66596 END IF;
66597 --
66598
66599 --
66600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66601 trace
66602 (p_msg => 'END of AcctLineType_123'
66603 ,p_level => C_LEVEL_PROCEDURE
66604 ,p_module => l_log_module);
66605 END IF;
66606 --
66607 EXCEPTION
66608 WHEN xla_exceptions_pkg.application_exception THEN
66609 RAISE;
66610 WHEN OTHERS THEN
66611 xla_exceptions_pkg.raise_message
66612 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_123');
66613 END AcctLineType_123;
66614 --
66615
66616 ---------------------------------------
66617 --
66618 -- PRIVATE FUNCTION
66619 -- AcctLineType_124
66620 --
66621 ---------------------------------------
66622 PROCEDURE AcctLineType_124 (
66623 p_application_id IN NUMBER
66624 ,p_event_id IN NUMBER
66625 ,p_calculate_acctd_flag IN VARCHAR2
66626 ,p_calculate_g_l_flag IN VARCHAR2
66627 ,p_actual_flag IN OUT VARCHAR2
66628 ,p_balance_type_code OUT VARCHAR2
66629 ,p_gain_or_loss_ref OUT VARCHAR2
66630
66631 --Payment Currency Code
66632 , p_source_12 IN VARCHAR2
66633 --Payment Distribution (Payment Rate) Ledger Amount
66634 , p_source_21 IN NUMBER
66635 --Invoice Distribution Account
66636 , p_source_29 IN NUMBER
66637 --Invoice Distribution Type
66638 , p_source_32 IN VARCHAR2
66639 , p_source_32_meaning IN VARCHAR2
66640 --When to Account for Payment Option
66641 , p_source_50 IN VARCHAR2
66642 --Payment Distribution Type
66643 , p_source_51 IN VARCHAR2
66644 , p_source_51_meaning IN VARCHAR2
66645 --Accounting Reversal Indicator
66646 , p_source_52 IN VARCHAR2
66647 --Payment Distribution Amount
66648 , p_source_53 IN NUMBER
66649 --Business Flow Accounts Payable Application Identifier
66650 , p_source_54 IN NUMBER
66651 --Payment Distribution Identifier
66652 , p_source_59 IN NUMBER
66653 --Distribution Link Type
66657 , p_source_64_meaning IN VARCHAR2
66654 , p_source_60 IN VARCHAR2
66655 --Override Accounted Amount Indicator
66656 , p_source_64 IN VARCHAR2
66658 --Payment Supplier Identifier
66659 , p_source_65 IN NUMBER
66660 --Payment Supplier Site Identifier
66661 , p_source_66 IN NUMBER
66662 --Third Party Type
66663 , p_source_67 IN VARCHAR2
66664 --Payment Distribution Reversed Identifier
66665 , p_source_68 IN NUMBER
66666 --Invoice Distribution Tax Line Identifier
66667 , p_source_69 IN NUMBER
66668 --Invoice Distribution Summary Tax Line Identifier
66669 , p_source_70 IN NUMBER
66670 --Payment Type
66671 , p_source_71 IN VARCHAR2
66672 , p_source_71_meaning IN VARCHAR2
66673 --Invoice Distribution Amount of the Payment Distribution
66674 , p_source_72 IN NUMBER
66675 --Business Flow Invoice Distribution Type
66676 , p_source_73 IN VARCHAR2
66677 --Business Flow Invoice Entity Code
66678 , p_source_74 IN VARCHAR2
66679 --Business Flow Invoice Distribution Identifier
66680 , p_source_75 IN NUMBER
66681 --Business Flow Invoice Identifier
66682 , p_source_76 IN NUMBER
66683 --Invoice Distribution Tax Distribution Identifier from Tax
66684 , p_source_77 IN NUMBER
66685 --Accrue on Receipt Option
66686 , p_source_111 IN VARCHAR2
66687 , p_source_111_meaning IN VARCHAR2
66688 --Invoice Type Paid
66689 , p_source_112 IN VARCHAR2
66690 , p_source_112_meaning IN VARCHAR2
66691 --Payment Exchange Date
66692 , p_source_121 IN DATE
66693 --Payment Exchange Rate
66694 , p_source_122 IN NUMBER
66695 --Payment Exchange Rate Type
66696 , p_source_123 IN VARCHAR2
66697 )
66698 IS
66699
66700 l_component_type VARCHAR2(80);
66701 l_component_code VARCHAR2(30);
66702 l_component_type_code VARCHAR2(1);
66703 l_component_appl_id INTEGER;
66704 l_amb_context_code VARCHAR2(30);
66705 l_entity_code VARCHAR2(30);
66706 l_event_class_code VARCHAR2(30);
66707 l_ae_header_id NUMBER;
66708 l_event_type_code VARCHAR2(30);
66709 l_line_definition_code VARCHAR2(30);
66710 l_line_definition_owner_code VARCHAR2(1);
66711 --
66712 -- adr variables
66713 l_segment VARCHAR2(30);
66714 l_ccid NUMBER;
66715 l_adr_transaction_coa_id NUMBER;
66716 l_adr_accounting_coa_id NUMBER;
66717 l_adr_flexfield_segment_code VARCHAR2(30);
66718 l_adr_flex_value_set_id NUMBER;
66719 l_adr_value_type_code VARCHAR2(30);
66720 l_adr_value_combination_id NUMBER;
66721 l_adr_value_segment_code VARCHAR2(30);
66722
66723 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
66724 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
66725 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
66726 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
66727
66728 -- 4262811 Variables ------------------------------------------------------------------------------------------
66729 l_entered_amt_idx NUMBER;
66730 l_accted_amt_idx NUMBER;
66731 l_acc_rev_flag VARCHAR2(1);
66732 l_accrual_line_num NUMBER;
66733 l_tmp_amt NUMBER;
66734 l_acc_rev_natural_side_code VARCHAR2(1);
66735
66736 l_num_entries NUMBER;
66737 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
66738 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
66739 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
66740 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
66741 l_recog_line_1 NUMBER;
66742 l_recog_line_2 NUMBER;
66743
66744 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
66745 l_bflow_applied_to_amt NUMBER; -- 5132302
66746 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
66747
66748 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66749
66750 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
66751 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
66752
66753 ---------------------------------------------------------------------------------------------------------------
66754
66755
66756 --
66757 -- bulk performance
66758 --
66759 l_balance_type_code VARCHAR2(1);
66760 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66761 l_log_module VARCHAR2(240);
66762
66763 --
66764 -- Upgrade strategy
66765 --
66766 l_actual_upg_option VARCHAR2(1);
66767 l_enc_upg_option VARCHAR2(1);
66768
66769 --
66770 BEGIN
66771 --
66772 IF g_log_enabled THEN
66773 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
66774 END IF;
66775 --
66776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66777
66778 trace
66779 (p_msg => 'BEGIN of AcctLineType_124'
66780 ,p_level => C_LEVEL_PROCEDURE
66781 ,p_module => l_log_module);
66782
66783 END IF;
66784 --
66788 l_component_appl_id := 200;
66785 l_component_type := 'AMB_JLT';
66786 l_component_code := 'AP_NON_RECOV_TAX_PMT';
66787 l_component_type_code := 'S';
66789 l_amb_context_code := 'DEFAULT';
66790 l_entity_code := 'AP_PAYMENTS';
66791 l_event_class_code := 'PAYMENTS';
66792 l_event_type_code := 'PAYMENTS_ALL';
66793 l_line_definition_owner_code := 'S';
66794 l_line_definition_code := 'CASH_PAYMENTS_ALL';
66795 --
66796 l_balance_type_code := 'A';
66797 l_segment := NULL;
66798 l_ccid := NULL;
66799 l_adr_transaction_coa_id := NULL;
66800 l_adr_accounting_coa_id := NULL;
66801 l_adr_flexfield_segment_code := NULL;
66802 l_adr_flex_value_set_id := NULL;
66803 l_adr_value_type_code := NULL;
66804 l_adr_value_combination_id := NULL;
66805 l_adr_value_segment_code := NULL;
66806
66807 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66808 l_bflow_class_code := ''; -- 4219869 Business Flow
66809 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66810 l_budgetary_control_flag := 'N';
66811
66812 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66813 l_bflow_applied_to_amt := NULL; -- 5132302
66814 l_entered_amt_idx := NULL; -- 4262811
66815 l_accted_amt_idx := NULL; -- 4262811
66816 l_acc_rev_flag := NULL; -- 4262811
66817 l_accrual_line_num := NULL; -- 4262811
66818 l_tmp_amt := NULL; -- 4262811
66819 --
66820
66821 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66822 l_balance_type_code <> 'B' THEN
66823 IF NVL(p_source_50,'
66824 ') <> 'CLEAR_CLEAR' AND
66825 (NVL(p_source_32,'
66826 ') = 'NONREC_TAX' OR
66827 NVL(p_source_32,'
66828 ') = 'TERV' OR
66829 NVL(p_source_32,'
66830 ') = 'TIPV' OR
66831 NVL(p_source_32,'
66832 ') = 'TRV') AND
66833 NVL(p_source_111,'
66834 ') <> 'Y' AND
66835 NVL(p_source_112,'
66836 ') <> 'INTEREST' AND
66837 (NVL(p_source_51,'
66838 ') = 'CASH' OR
66839 NVL(p_source_51,'
66840 ') = 'AWT' OR
66841 NVL(p_source_51,'
66842 ') = 'DISCOUNT') AND
66843 NVL(p_source_71,'
66844 ') <> 'R'
66845 THEN
66846
66847 --
66848 XLA_AE_LINES_PKG.SetNewLine;
66849
66850 p_balance_type_code := l_balance_type_code;
66851 -- set the flag so later we will know whether the gain loss line needs to be created
66852
66853 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66854 p_actual_flag :='A';
66855 END IF;
66856
66857 --
66858 -- bulk performance
66859 --
66860 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66861 p_header_num => 0); -- 4262811
66862 --
66863 -- set accounting line options
66864 --
66865 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66866 p_natural_side_code => 'D'
66867 , p_gain_or_loss_flag => 'N'
66868 , p_gl_transfer_mode_code => 'S'
66869 , p_acct_entry_type_code => 'A'
66870 , p_switch_side_flag => 'Y'
66871 , p_merge_duplicate_code => 'A'
66872 );
66873 --
66874 l_acc_rev_natural_side_code := 'C'; -- 4262811
66875 --
66876 --
66877 -- set accounting line type info
66878 --
66879 xla_ae_lines_pkg.SetAcctLineType
66880 (p_component_type => l_component_type
66881 ,p_event_type_code => l_event_type_code
66882 ,p_line_definition_owner_code => l_line_definition_owner_code
66883 ,p_line_definition_code => l_line_definition_code
66884 ,p_accounting_line_code => l_component_code
66885 ,p_accounting_line_type_code => l_component_type_code
66886 ,p_accounting_line_appl_id => l_component_appl_id
66887 ,p_amb_context_code => l_amb_context_code
66888 ,p_entity_code => l_entity_code
66889 ,p_event_class_code => l_event_class_code);
66890 --
66891 -- set accounting class
66892 --
66893 xla_ae_lines_pkg.SetAcctClass(
66894 p_accounting_class_code => 'NRTAX'
66895 , p_ae_header_id => l_ae_header_id
66896 );
66897
66898 --
66899 -- set rounding class
66900 --
66901 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66902 'NRTAX';
66903
66904 --
66905 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66906 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66907 --
66908 -- bulk performance
66909 --
66910 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66911
66912 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66913 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66914
66915 -- 4955764
66916 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66920
66917 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66918
66919 -- 4458381 Public Sector Enh
66921 --
66922 -- set accounting attributes for the line type
66923 --
66924 l_entered_amt_idx := 10;
66925 l_accted_amt_idx := 15;
66926 l_bflow_applied_to_amt_idx := 2; -- 5132302
66927 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66928 l_rec_acct_attrs.array_char_value(1) := p_source_52;
66929 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66930 l_rec_acct_attrs.array_num_value(2) := p_source_72;
66931 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66932 l_rec_acct_attrs.array_num_value(3) := p_source_54;
66933 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66934 l_rec_acct_attrs.array_char_value(4) := p_source_73;
66935 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66936 l_rec_acct_attrs.array_char_value(5) := p_source_74;
66937 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66938 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
66939 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66940 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
66941 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66942 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
66943 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66944 l_rec_acct_attrs.array_char_value(9) := p_source_60;
66945 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66946 l_rec_acct_attrs.array_num_value(10) := p_source_53;
66947 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66948 l_rec_acct_attrs.array_char_value(11) := p_source_12;
66949 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66950 l_rec_acct_attrs.array_date_value(12) := p_source_121;
66951 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66952 l_rec_acct_attrs.array_num_value(13) := p_source_122;
66953 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66954 l_rec_acct_attrs.array_char_value(14) := p_source_123;
66955 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66956 l_rec_acct_attrs.array_num_value(15) := p_source_21;
66957 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66958 l_rec_acct_attrs.array_char_value(16) := p_source_64;
66959 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66960 l_rec_acct_attrs.array_num_value(17) := p_source_65;
66961 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66962 l_rec_acct_attrs.array_num_value(18) := p_source_66;
66963 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66964 l_rec_acct_attrs.array_char_value(19) := p_source_67;
66965 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66966 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
66967 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66968 l_rec_acct_attrs.array_char_value(21) := p_source_60;
66969 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66970 l_rec_acct_attrs.array_num_value(22) := p_source_69;
66971 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66972 l_rec_acct_attrs.array_num_value(23) := p_source_77;
66973 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66974 l_rec_acct_attrs.array_num_value(24) := p_source_70;
66975
66976 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66977 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66978
66979 ---------------------------------------------------------------------------------------------------------------
66980 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66981 ---------------------------------------------------------------------------------------------------------------
66982 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66983
66984 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66985 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66986
66987 IF xla_accounting_cache_pkg.GetValueChar
66988 (p_source_code => 'LEDGER_CATEGORY_CODE'
66989 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66990 AND l_bflow_method_code = 'PRIOR_ENTRY'
66991 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66992 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66993 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66994 )
66995 THEN
66996 xla_ae_lines_pkg.BflowUpgEntry
66997 (p_business_method_code => l_bflow_method_code
66998 ,p_business_class_code => l_bflow_class_code
66999 ,p_balance_type => l_balance_type_code);
67000 ELSE
67001 NULL;
67002 -- No business flow processing for business flow method of NONE.
67003 END IF;
67004
67005 --
67006 -- call analytical criteria
67007 --
67008
67009 --
67010 -- call description
67011 --
67012 -- No description or it is inherited.
67013 --
67014 -- call ADRs
67015 -- Bug 4922099
67016 --
67020 )
67017 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67018 (NVL(l_actual_upg_option, 'N') = 'O') OR
67019 (NVL(l_enc_upg_option, 'N') = 'O')
67021 THEN
67022 NULL;
67023 --
67024 --
67025
67026 l_ccid := AcctDerRule_28(
67027 p_application_id => p_application_id
67028 , p_ae_header_id => l_ae_header_id
67029 , p_source_29 => p_source_29
67030 , x_transaction_coa_id => l_adr_transaction_coa_id
67031 , x_accounting_coa_id => l_adr_accounting_coa_id
67032 , x_value_type_code => l_adr_value_type_code
67033 , p_side => 'NA'
67034 );
67035
67036 xla_ae_lines_pkg.set_ccid(
67037 p_code_combination_id => l_ccid
67038 , p_value_type_code => l_adr_value_type_code
67039 , p_transaction_coa_id => l_adr_transaction_coa_id
67040 , p_accounting_coa_id => l_adr_accounting_coa_id
67041 , p_adr_code => 'AP_INVOICE_DIST'
67042 , p_adr_type_code => 'S'
67043 , p_component_type => l_component_type
67044 , p_component_code => l_component_code
67045 , p_component_type_code => l_component_type_code
67046 , p_component_appl_id => l_component_appl_id
67047 , p_amb_context_code => l_amb_context_code
67048 , p_side => 'NA'
67049 );
67050
67051
67052 --
67053 --
67054 END IF;
67055 --
67056 -- Bug 4922099
67057 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67058 (NVL(l_enc_upg_option, 'N') = 'O')
67059 ) AND
67060 (l_bflow_method_code = 'PRIOR_ENTRY')
67061 )
67062 THEN
67063 IF
67064 --
67065 1 = 2
67066 --
67067 THEN
67068 xla_accounting_err_pkg.build_message
67069 (p_appli_s_name => 'XLA'
67070 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67071 ,p_token_1 => 'LINE_NUMBER'
67072 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
67073 ,p_token_2 => 'LINE_TYPE_NAME'
67074 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
67075 l_component_type
67076 ,l_component_code
67077 ,l_component_type_code
67078 ,l_component_appl_id
67079 ,l_amb_context_code
67080 ,l_entity_code
67081 ,l_event_class_code
67082 )
67083 ,p_token_3 => 'OWNER'
67084 ,p_value_3 => xla_lookups_pkg.get_meaning(
67085 p_lookup_type => 'XLA_OWNER_TYPE'
67086 ,p_lookup_code => l_component_type_code
67087 )
67088 ,p_token_4 => 'PRODUCT_NAME'
67089 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67090 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67091 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67092 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67093 ,p_ae_header_id => NULL
67094 );
67095
67096 IF (C_LEVEL_ERROR>= g_log_level) THEN
67097 trace
67098 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67099 ,p_level => C_LEVEL_ERROR
67100 ,p_module => l_log_module);
67101 END IF;
67102 END IF;
67103 END IF;
67104 --
67105 --
67106 ------------------------------------------------------------------------------------------------
67107 -- 4219869 Business Flow
67108 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67109 -- Prior Entry. Currently, the following code is always generated.
67110 ------------------------------------------------------------------------------------------------
67111 XLA_AE_LINES_PKG.ValidateCurrentLine;
67112
67113 ------------------------------------------------------------------------------------
67114 -- 4219869 Business Flow
67115 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67116 ------------------------------------------------------------------------------------
67117 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67118
67122 ----------------------------------------------------------------------------------
67119 ----------------------------------------------------------------------------------
67120 -- 4219869 Business Flow
67121 -- Update journal entry status -- Need to generate this within IF <condition>
67123 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67124 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67125 ,p_balance_type_code => l_balance_type_code
67126 );
67127
67128 -------------------------------------------------------------------------------------------
67129 -- 4262811 - Generate the Accrual Reversal lines
67130 -------------------------------------------------------------------------------------------
67131 BEGIN
67132 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67133 (g_array_event(p_event_id).array_value_num('header_index'));
67134 IF l_acc_rev_flag IS NULL THEN
67135 l_acc_rev_flag := 'N';
67136 END IF;
67137 EXCEPTION
67138 WHEN OTHERS THEN
67139 l_acc_rev_flag := 'N';
67140 END;
67141 --
67142 IF (l_acc_rev_flag = 'Y') THEN
67143
67144 -- 4645092 ------------------------------------------------------------------------------
67145 -- To allow MPA report to determine if it should generate report process
67146 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67147 ------------------------------------------------------------------------------------------
67148
67149 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67150 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67151 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
67152 -- call ADRs
67153 -- Bug 4922099
67154 --
67155 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67156 (NVL(l_actual_upg_option, 'N') = 'O') OR
67157 (NVL(l_enc_upg_option, 'N') = 'O')
67158 )
67159 THEN
67160 NULL;
67161 --
67162 --
67163
67164 l_ccid := AcctDerRule_28(
67165 p_application_id => p_application_id
67166 , p_ae_header_id => l_ae_header_id
67167 , p_source_29 => p_source_29
67168 , x_transaction_coa_id => l_adr_transaction_coa_id
67169 , x_accounting_coa_id => l_adr_accounting_coa_id
67170 , x_value_type_code => l_adr_value_type_code
67171 , p_side => 'NA'
67172 );
67173
67174 xla_ae_lines_pkg.set_ccid(
67175 p_code_combination_id => l_ccid
67176 , p_value_type_code => l_adr_value_type_code
67177 , p_transaction_coa_id => l_adr_transaction_coa_id
67178 , p_accounting_coa_id => l_adr_accounting_coa_id
67179 , p_adr_code => 'AP_INVOICE_DIST'
67180 , p_adr_type_code => 'S'
67181 , p_component_type => l_component_type
67182 , p_component_code => l_component_code
67183 , p_component_type_code => l_component_type_code
67184 , p_component_appl_id => l_component_appl_id
67185 , p_amb_context_code => l_amb_context_code
67186 , p_side => 'NA'
67187 );
67188
67189
67190 --
67191 --
67192 END IF;
67193
67194 --
67195 -- Update the line information that should be overwritten
67196 --
67197 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67198 p_header_num => 1);
67199 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
67200
67201 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67202
67203 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
67204 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67205 END IF;
67206
67207 --
67208 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67209 --
67210 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67211 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
67212 ELSE
67213 ---------------------------------------------------------------------------------------------------
67214 -- 4262811a Switch Sign
67215 ---------------------------------------------------------------------------------------------------
67216 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
67217 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67219 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67220 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67221 -- 5132302
67222 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67223 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67224
67225 END IF;
67226
67227 -- 4955764
67231
67228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67230
67232 XLA_AE_LINES_PKG.ValidateCurrentLine;
67233 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67234
67235 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67236 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67237 ,p_balance_type_code => l_balance_type_code);
67238
67239 END IF;
67240
67241 -----------------------------------------------------------------------------------------
67242 -- 4262811 Multiperiod Accounting
67243 -----------------------------------------------------------------------------------------
67244 -- No MPA option is assigned.
67245
67246
67247 END IF;
67248 END IF;
67249 --
67250
67251 --
67252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67253 trace
67254 (p_msg => 'END of AcctLineType_124'
67255 ,p_level => C_LEVEL_PROCEDURE
67256 ,p_module => l_log_module);
67257 END IF;
67258 --
67259 EXCEPTION
67260 WHEN xla_exceptions_pkg.application_exception THEN
67261 RAISE;
67262 WHEN OTHERS THEN
67263 xla_exceptions_pkg.raise_message
67264 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_124');
67265 END AcctLineType_124;
67266 --
67267
67268 ---------------------------------------
67269 --
67270 -- PRIVATE FUNCTION
67271 -- AcctLineType_125
67272 --
67273 ---------------------------------------
67274 PROCEDURE AcctLineType_125 (
67275 p_application_id IN NUMBER
67276 ,p_event_id IN NUMBER
67277 ,p_calculate_acctd_flag IN VARCHAR2
67278 ,p_calculate_g_l_flag IN VARCHAR2
67279 ,p_actual_flag IN OUT VARCHAR2
67280 ,p_balance_type_code OUT VARCHAR2
67281 ,p_gain_or_loss_ref OUT VARCHAR2
67282
67283 --Payment Currency Code
67284 , p_source_12 IN VARCHAR2
67285 --Payment Distribution (Payment Rate) Ledger Amount
67286 , p_source_21 IN NUMBER
67287 --Invoice Distribution Account
67288 , p_source_29 IN NUMBER
67289 --Invoice Distribution Type
67290 , p_source_32 IN VARCHAR2
67291 , p_source_32_meaning IN VARCHAR2
67292 --When to Account for Payment Option
67293 , p_source_50 IN VARCHAR2
67294 --Payment Distribution Type
67295 , p_source_51 IN VARCHAR2
67296 , p_source_51_meaning IN VARCHAR2
67297 --Accounting Reversal Indicator
67298 , p_source_52 IN VARCHAR2
67299 --Payment Distribution Amount
67300 , p_source_53 IN NUMBER
67301 --Business Flow Accounts Payable Application Identifier
67302 , p_source_54 IN NUMBER
67303 --Payment Distribution Identifier
67304 , p_source_59 IN NUMBER
67305 --Distribution Link Type
67306 , p_source_60 IN VARCHAR2
67307 --Override Accounted Amount Indicator
67308 , p_source_64 IN VARCHAR2
67309 , p_source_64_meaning IN VARCHAR2
67310 --Payment Supplier Identifier
67311 , p_source_65 IN NUMBER
67312 --Payment Supplier Site Identifier
67313 , p_source_66 IN NUMBER
67314 --Third Party Type
67315 , p_source_67 IN VARCHAR2
67316 --Payment Distribution Reversed Identifier
67317 , p_source_68 IN NUMBER
67318 --Invoice Distribution Tax Line Identifier
67319 , p_source_69 IN NUMBER
67320 --Invoice Distribution Summary Tax Line Identifier
67321 , p_source_70 IN NUMBER
67322 --Payment Type
67323 , p_source_71 IN VARCHAR2
67324 , p_source_71_meaning IN VARCHAR2
67325 --Business Flow Invoice Distribution Type
67326 , p_source_73 IN VARCHAR2
67327 --Business Flow Invoice Entity Code
67328 , p_source_74 IN VARCHAR2
67329 --Business Flow Invoice Distribution Identifier
67330 , p_source_75 IN NUMBER
67331 --Business Flow Invoice Identifier
67332 , p_source_76 IN NUMBER
67333 --Invoice Distribution Tax Distribution Identifier from Tax
67334 , p_source_77 IN NUMBER
67335 --Accrue on Receipt Option
67336 , p_source_111 IN VARCHAR2
67337 , p_source_111_meaning IN VARCHAR2
67338 --Payment Exchange Date
67339 , p_source_121 IN DATE
67340 --Payment Exchange Rate
67341 , p_source_122 IN NUMBER
67342 --Payment Exchange Rate Type
67343 , p_source_123 IN VARCHAR2
67344 )
67345 IS
67346
67347 l_component_type VARCHAR2(80);
67348 l_component_code VARCHAR2(30);
67349 l_component_type_code VARCHAR2(1);
67350 l_component_appl_id INTEGER;
67351 l_amb_context_code VARCHAR2(30);
67352 l_entity_code VARCHAR2(30);
67353 l_event_class_code VARCHAR2(30);
67354 l_ae_header_id NUMBER;
67355 l_event_type_code VARCHAR2(30);
67356 l_line_definition_code VARCHAR2(30);
67357 l_line_definition_owner_code VARCHAR2(1);
67358 --
67359 -- adr variables
67360 l_segment VARCHAR2(30);
67361 l_ccid NUMBER;
67362 l_adr_transaction_coa_id NUMBER;
67363 l_adr_accounting_coa_id NUMBER;
67364 l_adr_flexfield_segment_code VARCHAR2(30);
67368 l_adr_value_segment_code VARCHAR2(30);
67365 l_adr_flex_value_set_id NUMBER;
67366 l_adr_value_type_code VARCHAR2(30);
67367 l_adr_value_combination_id NUMBER;
67369
67370 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
67371 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
67372 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
67373 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
67374
67375 -- 4262811 Variables ------------------------------------------------------------------------------------------
67376 l_entered_amt_idx NUMBER;
67377 l_accted_amt_idx NUMBER;
67378 l_acc_rev_flag VARCHAR2(1);
67379 l_accrual_line_num NUMBER;
67380 l_tmp_amt NUMBER;
67381 l_acc_rev_natural_side_code VARCHAR2(1);
67382
67383 l_num_entries NUMBER;
67384 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
67385 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
67386 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
67387 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
67388 l_recog_line_1 NUMBER;
67389 l_recog_line_2 NUMBER;
67390
67391 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
67392 l_bflow_applied_to_amt NUMBER; -- 5132302
67393 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
67394
67395 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67396
67397 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
67398 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
67399
67400 ---------------------------------------------------------------------------------------------------------------
67401
67402
67403 --
67404 -- bulk performance
67405 --
67406 l_balance_type_code VARCHAR2(1);
67407 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67408 l_log_module VARCHAR2(240);
67409
67410 --
67411 -- Upgrade strategy
67412 --
67413 l_actual_upg_option VARCHAR2(1);
67414 l_enc_upg_option VARCHAR2(1);
67415
67416 --
67417 BEGIN
67418 --
67419 IF g_log_enabled THEN
67420 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
67421 END IF;
67422 --
67423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67424
67425 trace
67426 (p_msg => 'BEGIN of AcctLineType_125'
67427 ,p_level => C_LEVEL_PROCEDURE
67428 ,p_module => l_log_module);
67429
67430 END IF;
67431 --
67432 l_component_type := 'AMB_JLT';
67433 l_component_code := 'AP_NON_RECOV_TAX_REF';
67434 l_component_type_code := 'S';
67435 l_component_appl_id := 200;
67436 l_amb_context_code := 'DEFAULT';
67437 l_entity_code := 'AP_PAYMENTS';
67438 l_event_class_code := 'REFUNDS';
67439 l_event_type_code := 'REFUNDS_ALL';
67440 l_line_definition_owner_code := 'S';
67441 l_line_definition_code := 'CASH_REFUNDS_ALL';
67442 --
67443 l_balance_type_code := 'A';
67444 l_segment := NULL;
67445 l_ccid := NULL;
67446 l_adr_transaction_coa_id := NULL;
67447 l_adr_accounting_coa_id := NULL;
67448 l_adr_flexfield_segment_code := NULL;
67449 l_adr_flex_value_set_id := NULL;
67450 l_adr_value_type_code := NULL;
67451 l_adr_value_combination_id := NULL;
67452 l_adr_value_segment_code := NULL;
67453
67454 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
67455 l_bflow_class_code := ''; -- 4219869 Business Flow
67456 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
67457 l_budgetary_control_flag := 'N';
67458
67459 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67460 l_bflow_applied_to_amt := NULL; -- 5132302
67461 l_entered_amt_idx := NULL; -- 4262811
67462 l_accted_amt_idx := NULL; -- 4262811
67463 l_acc_rev_flag := NULL; -- 4262811
67464 l_accrual_line_num := NULL; -- 4262811
67465 l_tmp_amt := NULL; -- 4262811
67466 --
67467
67468 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67469 l_balance_type_code <> 'B' THEN
67470 IF NVL(p_source_50,'
67471 ') <> 'CLEAR_CLEAR' AND
67472 (NVL(p_source_32,'
67473 ') = 'NONREC_TAX' OR
67474 NVL(p_source_32,'
67475 ') = 'TERV' OR
67476 NVL(p_source_32,'
67477 ') = 'TIPV' OR
67478 NVL(p_source_32,'
67479 ') = 'TRV') AND
67480 NVL(p_source_111,'
67481 ') <> 'Y' AND
67482 (NVL(p_source_51,'
67483 ') = 'CASH' OR
67484 NVL(p_source_51,'
67485 ') = 'DISCOUNT') AND
67486 NVL(p_source_71,'
67487 ') = 'R'
67488 THEN
67489
67490 --
67491 XLA_AE_LINES_PKG.SetNewLine;
67492
67493 p_balance_type_code := l_balance_type_code;
67494 -- set the flag so later we will know whether the gain loss line needs to be created
67495
67496 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67500 --
67497 p_actual_flag :='A';
67498 END IF;
67499
67501 -- bulk performance
67502 --
67503 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67504 p_header_num => 0); -- 4262811
67505 --
67506 -- set accounting line options
67507 --
67508 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67509 p_natural_side_code => 'D'
67510 , p_gain_or_loss_flag => 'N'
67511 , p_gl_transfer_mode_code => 'S'
67512 , p_acct_entry_type_code => 'A'
67513 , p_switch_side_flag => 'Y'
67514 , p_merge_duplicate_code => 'A'
67515 );
67516 --
67517 l_acc_rev_natural_side_code := 'C'; -- 4262811
67518 --
67519 --
67520 -- set accounting line type info
67521 --
67522 xla_ae_lines_pkg.SetAcctLineType
67523 (p_component_type => l_component_type
67524 ,p_event_type_code => l_event_type_code
67525 ,p_line_definition_owner_code => l_line_definition_owner_code
67526 ,p_line_definition_code => l_line_definition_code
67527 ,p_accounting_line_code => l_component_code
67528 ,p_accounting_line_type_code => l_component_type_code
67529 ,p_accounting_line_appl_id => l_component_appl_id
67530 ,p_amb_context_code => l_amb_context_code
67531 ,p_entity_code => l_entity_code
67532 ,p_event_class_code => l_event_class_code);
67533 --
67534 -- set accounting class
67535 --
67536 xla_ae_lines_pkg.SetAcctClass(
67537 p_accounting_class_code => 'NRTAX'
67538 , p_ae_header_id => l_ae_header_id
67539 );
67540
67541 --
67542 -- set rounding class
67543 --
67544 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67545 'NRTAX';
67546
67547 --
67548 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67549 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67550 --
67551 -- bulk performance
67552 --
67553 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67554
67555 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67556 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67557
67558 -- 4955764
67559 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67560 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67561
67562 -- 4458381 Public Sector Enh
67563
67564 --
67565 -- set accounting attributes for the line type
67566 --
67567 l_entered_amt_idx := 9;
67568 l_accted_amt_idx := 14;
67569 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67570 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67571 l_rec_acct_attrs.array_char_value(1) := p_source_52;
67572 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
67573 l_rec_acct_attrs.array_num_value(2) := p_source_54;
67574 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67575 l_rec_acct_attrs.array_char_value(3) := p_source_73;
67576 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
67577 l_rec_acct_attrs.array_char_value(4) := p_source_74;
67578 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
67579 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
67580 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67581 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
67582 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
67583 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
67584 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
67585 l_rec_acct_attrs.array_char_value(8) := p_source_60;
67586 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
67587 l_rec_acct_attrs.array_num_value(9) := p_source_53;
67588 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
67589 l_rec_acct_attrs.array_char_value(10) := p_source_12;
67590 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
67591 l_rec_acct_attrs.array_date_value(11) := p_source_121;
67592 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
67593 l_rec_acct_attrs.array_num_value(12) := p_source_122;
67594 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
67595 l_rec_acct_attrs.array_char_value(13) := p_source_123;
67596 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
67597 l_rec_acct_attrs.array_num_value(14) := p_source_21;
67598 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
67599 l_rec_acct_attrs.array_char_value(15) := p_source_64;
67600 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
67601 l_rec_acct_attrs.array_num_value(16) := p_source_65;
67602 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
67603 l_rec_acct_attrs.array_num_value(17) := p_source_66;
67604 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
67605 l_rec_acct_attrs.array_char_value(18) := p_source_67;
67609 l_rec_acct_attrs.array_char_value(20) := p_source_60;
67606 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
67607 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
67608 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
67610 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
67611 l_rec_acct_attrs.array_num_value(21) := p_source_69;
67612 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
67613 l_rec_acct_attrs.array_num_value(22) := p_source_77;
67614 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
67615 l_rec_acct_attrs.array_num_value(23) := p_source_70;
67616
67617 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67618 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67619
67620 ---------------------------------------------------------------------------------------------------------------
67621 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67622 ---------------------------------------------------------------------------------------------------------------
67623 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67624
67625 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67626 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67627
67628 IF xla_accounting_cache_pkg.GetValueChar
67629 (p_source_code => 'LEDGER_CATEGORY_CODE'
67630 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67631 AND l_bflow_method_code = 'PRIOR_ENTRY'
67632 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67633 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67634 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67635 )
67636 THEN
67637 xla_ae_lines_pkg.BflowUpgEntry
67638 (p_business_method_code => l_bflow_method_code
67639 ,p_business_class_code => l_bflow_class_code
67640 ,p_balance_type => l_balance_type_code);
67641 ELSE
67642 NULL;
67643 -- No business flow processing for business flow method of NONE.
67644 END IF;
67645
67646 --
67647 -- call analytical criteria
67648 --
67649
67650 --
67651 -- call description
67652 --
67653 -- No description or it is inherited.
67654 --
67655 -- call ADRs
67656 -- Bug 4922099
67657 --
67658 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67659 (NVL(l_actual_upg_option, 'N') = 'O') OR
67660 (NVL(l_enc_upg_option, 'N') = 'O')
67661 )
67662 THEN
67663 NULL;
67664 --
67665 --
67666
67667 l_ccid := AcctDerRule_28(
67668 p_application_id => p_application_id
67669 , p_ae_header_id => l_ae_header_id
67670 , p_source_29 => p_source_29
67671 , x_transaction_coa_id => l_adr_transaction_coa_id
67672 , x_accounting_coa_id => l_adr_accounting_coa_id
67673 , x_value_type_code => l_adr_value_type_code
67674 , p_side => 'NA'
67675 );
67676
67677 xla_ae_lines_pkg.set_ccid(
67678 p_code_combination_id => l_ccid
67679 , p_value_type_code => l_adr_value_type_code
67680 , p_transaction_coa_id => l_adr_transaction_coa_id
67681 , p_accounting_coa_id => l_adr_accounting_coa_id
67682 , p_adr_code => 'AP_INVOICE_DIST'
67683 , p_adr_type_code => 'S'
67684 , p_component_type => l_component_type
67685 , p_component_code => l_component_code
67686 , p_component_type_code => l_component_type_code
67687 , p_component_appl_id => l_component_appl_id
67688 , p_amb_context_code => l_amb_context_code
67689 , p_side => 'NA'
67690 );
67691
67692
67693 --
67694 --
67695 END IF;
67696 --
67697 -- Bug 4922099
67698 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67699 (NVL(l_enc_upg_option, 'N') = 'O')
67700 ) AND
67701 (l_bflow_method_code = 'PRIOR_ENTRY')
67702 )
67703 THEN
67704 IF
67705 --
67706 1 = 2
67707 --
67708 THEN
67709 xla_accounting_err_pkg.build_message
67710 (p_appli_s_name => 'XLA'
67711 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67712 ,p_token_1 => 'LINE_NUMBER'
67713 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
67714 ,p_token_2 => 'LINE_TYPE_NAME'
67715 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
67716 l_component_type
67717 ,l_component_code
67718 ,l_component_type_code
67719 ,l_component_appl_id
67723 )
67720 ,l_amb_context_code
67721 ,l_entity_code
67722 ,l_event_class_code
67724 ,p_token_3 => 'OWNER'
67725 ,p_value_3 => xla_lookups_pkg.get_meaning(
67726 p_lookup_type => 'XLA_OWNER_TYPE'
67727 ,p_lookup_code => l_component_type_code
67728 )
67729 ,p_token_4 => 'PRODUCT_NAME'
67730 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67731 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67732 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67733 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67734 ,p_ae_header_id => NULL
67735 );
67736
67737 IF (C_LEVEL_ERROR>= g_log_level) THEN
67738 trace
67739 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67740 ,p_level => C_LEVEL_ERROR
67741 ,p_module => l_log_module);
67742 END IF;
67743 END IF;
67744 END IF;
67745 --
67746 --
67747 ------------------------------------------------------------------------------------------------
67748 -- 4219869 Business Flow
67749 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67750 -- Prior Entry. Currently, the following code is always generated.
67751 ------------------------------------------------------------------------------------------------
67752 XLA_AE_LINES_PKG.ValidateCurrentLine;
67753
67754 ------------------------------------------------------------------------------------
67755 -- 4219869 Business Flow
67756 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67757 ------------------------------------------------------------------------------------
67758 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67759
67760 ----------------------------------------------------------------------------------
67761 -- 4219869 Business Flow
67762 -- Update journal entry status -- Need to generate this within IF <condition>
67763 ----------------------------------------------------------------------------------
67764 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67765 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67766 ,p_balance_type_code => l_balance_type_code
67767 );
67768
67769 -------------------------------------------------------------------------------------------
67770 -- 4262811 - Generate the Accrual Reversal lines
67771 -------------------------------------------------------------------------------------------
67772 BEGIN
67773 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67774 (g_array_event(p_event_id).array_value_num('header_index'));
67775 IF l_acc_rev_flag IS NULL THEN
67776 l_acc_rev_flag := 'N';
67777 END IF;
67778 EXCEPTION
67779 WHEN OTHERS THEN
67780 l_acc_rev_flag := 'N';
67781 END;
67782 --
67783 IF (l_acc_rev_flag = 'Y') THEN
67784
67785 -- 4645092 ------------------------------------------------------------------------------
67786 -- To allow MPA report to determine if it should generate report process
67787 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67788 ------------------------------------------------------------------------------------------
67789
67790 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67791 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67792 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
67793 -- call ADRs
67794 -- Bug 4922099
67795 --
67796 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67797 (NVL(l_actual_upg_option, 'N') = 'O') OR
67798 (NVL(l_enc_upg_option, 'N') = 'O')
67799 )
67800 THEN
67801 NULL;
67802 --
67803 --
67804
67805 l_ccid := AcctDerRule_28(
67806 p_application_id => p_application_id
67807 , p_ae_header_id => l_ae_header_id
67808 , p_source_29 => p_source_29
67809 , x_transaction_coa_id => l_adr_transaction_coa_id
67810 , x_accounting_coa_id => l_adr_accounting_coa_id
67811 , x_value_type_code => l_adr_value_type_code
67812 , p_side => 'NA'
67813 );
67814
67815 xla_ae_lines_pkg.set_ccid(
67816 p_code_combination_id => l_ccid
67817 , p_value_type_code => l_adr_value_type_code
67818 , p_transaction_coa_id => l_adr_transaction_coa_id
67819 , p_accounting_coa_id => l_adr_accounting_coa_id
67820 , p_adr_code => 'AP_INVOICE_DIST'
67824 , p_component_type_code => l_component_type_code
67821 , p_adr_type_code => 'S'
67822 , p_component_type => l_component_type
67823 , p_component_code => l_component_code
67825 , p_component_appl_id => l_component_appl_id
67826 , p_amb_context_code => l_amb_context_code
67827 , p_side => 'NA'
67828 );
67829
67830
67831 --
67832 --
67833 END IF;
67834
67835 --
67836 -- Update the line information that should be overwritten
67837 --
67838 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67839 p_header_num => 1);
67840 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
67841
67842 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67843
67844 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
67845 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67846 END IF;
67847
67848 --
67849 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67850 --
67851 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67852 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
67853 ELSE
67854 ---------------------------------------------------------------------------------------------------
67855 -- 4262811a Switch Sign
67856 ---------------------------------------------------------------------------------------------------
67857 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
67858 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67860 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67861 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67862 -- 5132302
67863 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67864 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67865
67866 END IF;
67867
67868 -- 4955764
67869 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67870 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67871
67872
67873 XLA_AE_LINES_PKG.ValidateCurrentLine;
67874 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67875
67876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67878 ,p_balance_type_code => l_balance_type_code);
67879
67880 END IF;
67881
67882 -----------------------------------------------------------------------------------------
67883 -- 4262811 Multiperiod Accounting
67884 -----------------------------------------------------------------------------------------
67885 -- No MPA option is assigned.
67886
67887
67888 END IF;
67889 END IF;
67890 --
67891
67892 --
67893 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67894 trace
67895 (p_msg => 'END of AcctLineType_125'
67896 ,p_level => C_LEVEL_PROCEDURE
67897 ,p_module => l_log_module);
67898 END IF;
67899 --
67900 EXCEPTION
67901 WHEN xla_exceptions_pkg.application_exception THEN
67902 RAISE;
67903 WHEN OTHERS THEN
67904 xla_exceptions_pkg.raise_message
67905 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_125');
67906 END AcctLineType_125;
67907 --
67908
67909 ---------------------------------------
67910 --
67911 -- PRIVATE FUNCTION
67912 -- AcctLineType_126
67913 --
67914 ---------------------------------------
67915 PROCEDURE AcctLineType_126 (
67916 p_application_id IN NUMBER
67917 ,p_event_id IN NUMBER
67918 ,p_calculate_acctd_flag IN VARCHAR2
67919 ,p_calculate_g_l_flag IN VARCHAR2
67920 ,p_actual_flag IN OUT VARCHAR2
67921 ,p_balance_type_code OUT VARCHAR2
67922 ,p_gain_or_loss_ref OUT VARCHAR2
67923
67924 --Invoice Distribution Account
67925 , p_source_29 IN NUMBER
67926 --When to Account for Payment Option
67927 , p_source_50 IN VARCHAR2
67928 --Accounting Reversal Indicator
67929 , p_source_52 IN VARCHAR2
67930 --Business Flow Accounts Payable Application Identifier
67931 , p_source_54 IN NUMBER
67932 --Distribution Link Type
67933 , p_source_60 IN VARCHAR2
67934 --Purchase Order Exchange Rate Date
67935 , p_source_61 IN DATE
67936 --Purchase Order Exchange Rate
67937 , p_source_62 IN NUMBER
67938 --Purchase Order Exchange Rate Type
67939 , p_source_63 IN VARCHAR2
67940 --Override Accounted Amount Indicator
67941 , p_source_64 IN VARCHAR2
67942 , p_source_64_meaning IN VARCHAR2
67943 --Third Party Type
67944 , p_source_67 IN VARCHAR2
67948 , p_source_70 IN NUMBER
67945 --Invoice Distribution Tax Line Identifier
67946 , p_source_69 IN NUMBER
67947 --Invoice Distribution Summary Tax Line Identifier
67949 --Invoice Distribution Tax Distribution Identifier from Tax
67950 , p_source_77 IN NUMBER
67951 --Prepayment Distribution Type
67952 , p_source_78 IN VARCHAR2
67953 --Recipient Invoice Distribution Type
67954 , p_source_79 IN VARCHAR2
67955 , p_source_79_meaning IN VARCHAR2
67956 --Prepayment Application Distribution Identifier
67957 , p_source_82 IN NUMBER
67958 --Invoice Identifier
67959 , p_source_83 IN NUMBER
67960 --Business Flow Prepayment Invoice Distribution Type
67961 , p_source_84 IN VARCHAR2
67962 --Business Flow Prepayment Invoice Entity Code
67963 , p_source_85 IN VARCHAR2
67964 --Business Flow Prepayment Invoice Distribution Identifier
67965 , p_source_86 IN NUMBER
67966 --Business Flow Prepayment Invoice Identifier
67967 , p_source_87 IN NUMBER
67968 --Upgrade Encumbrance Credit Account Class
67969 , p_source_88 IN VARCHAR2
67970 --Payables Encumbrance Upgrade Credit Account
67971 , p_source_89 IN NUMBER
67972 --Payables Encumbrance Upgrade Credit Amount
67973 , p_source_90 IN NUMBER
67974 --Invoice Currency Code
67975 , p_source_91 IN VARCHAR2
67976 --Payables Encumbrance Upgrade Credit Base Amount
67977 , p_source_92 IN NUMBER
67978 --Upgrade Encumbrance Debit Account Class
67979 , p_source_93 IN VARCHAR2
67980 --Payables Encumbrance Upgrade Debit Account
67981 , p_source_94 IN NUMBER
67982 --Payables Encumbrance Upgrade Debit Amount
67983 , p_source_95 IN NUMBER
67984 --Payables Encumbrance Upgrade Debit Base Amount
67985 , p_source_96 IN NUMBER
67986 --Payables Encumbrance Upgrade Option
67987 , p_source_97 IN VARCHAR2
67988 --Prepayment Distribution Amount
67989 , p_source_98 IN NUMBER
67990 --Prepayment Clearing Currency Code
67991 , p_source_99 IN VARCHAR2
67992 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
67993 , p_source_100 IN NUMBER
67994 --Deferred Accounting End Date
67995 , p_source_101 IN DATE
67996 --Deferred Accounting Option
67997 , p_source_102 IN VARCHAR2
67998 --Deferred Accounting Start Date
67999 , p_source_103 IN DATE
68000 --Invoice Supplier Identifier
68001 , p_source_104 IN NUMBER
68002 --Invoice Supplier Site Identifier
68003 , p_source_105 IN NUMBER
68004 --Identifier of the Prepayment Application Reversed
68005 , p_source_106 IN NUMBER
68006 --Payables Upgrade Credit Encumbrance Type Identifier
68007 , p_source_107 IN NUMBER
68008 --Payables Upgrade Debit Encumbrance Type Identifier
68009 , p_source_108 IN NUMBER
68010 --Accrue on Receipt Option
68011 , p_source_111 IN VARCHAR2
68012 , p_source_111_meaning IN VARCHAR2
68013 )
68014 IS
68015
68016 l_component_type VARCHAR2(80);
68017 l_component_code VARCHAR2(30);
68018 l_component_type_code VARCHAR2(1);
68019 l_component_appl_id INTEGER;
68020 l_amb_context_code VARCHAR2(30);
68021 l_entity_code VARCHAR2(30);
68022 l_event_class_code VARCHAR2(30);
68023 l_ae_header_id NUMBER;
68024 l_event_type_code VARCHAR2(30);
68025 l_line_definition_code VARCHAR2(30);
68026 l_line_definition_owner_code VARCHAR2(1);
68027 --
68028 -- adr variables
68029 l_segment VARCHAR2(30);
68030 l_ccid NUMBER;
68031 l_adr_transaction_coa_id NUMBER;
68032 l_adr_accounting_coa_id NUMBER;
68033 l_adr_flexfield_segment_code VARCHAR2(30);
68034 l_adr_flex_value_set_id NUMBER;
68035 l_adr_value_type_code VARCHAR2(30);
68036 l_adr_value_combination_id NUMBER;
68037 l_adr_value_segment_code VARCHAR2(30);
68038
68039 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
68040 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
68041 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
68042 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
68043
68044 -- 4262811 Variables ------------------------------------------------------------------------------------------
68045 l_entered_amt_idx NUMBER;
68046 l_accted_amt_idx NUMBER;
68047 l_acc_rev_flag VARCHAR2(1);
68048 l_accrual_line_num NUMBER;
68049 l_tmp_amt NUMBER;
68050 l_acc_rev_natural_side_code VARCHAR2(1);
68051
68052 l_num_entries NUMBER;
68053 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
68054 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
68055 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
68056 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
68057 l_recog_line_1 NUMBER;
68058 l_recog_line_2 NUMBER;
68059
68060 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
68061 l_bflow_applied_to_amt NUMBER; -- 5132302
68062 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
68063
68064 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68065
68069 ---------------------------------------------------------------------------------------------------------------
68066 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
68067 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
68068
68070
68071
68072 --
68073 -- bulk performance
68074 --
68075 l_balance_type_code VARCHAR2(1);
68076 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68077 l_log_module VARCHAR2(240);
68078
68079 --
68080 -- Upgrade strategy
68081 --
68082 l_actual_upg_option VARCHAR2(1);
68083 l_enc_upg_option VARCHAR2(1);
68084
68085 --
68086 BEGIN
68087 --
68088 IF g_log_enabled THEN
68089 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
68090 END IF;
68091 --
68092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68093
68094 trace
68095 (p_msg => 'BEGIN of AcctLineType_126'
68096 ,p_level => C_LEVEL_PROCEDURE
68097 ,p_module => l_log_module);
68098
68099 END IF;
68100 --
68101 l_component_type := 'AMB_JLT';
68102 l_component_code := 'AP_NRTAX_ACCRUAL_PREPAY_CLR';
68103 l_component_type_code := 'S';
68104 l_component_appl_id := 200;
68105 l_amb_context_code := 'DEFAULT';
68106 l_entity_code := 'AP_INVOICES';
68107 l_event_class_code := 'PREPAYMENT APPLICATIONS';
68108 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
68109 l_line_definition_owner_code := 'S';
68110 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
68111 --
68112 l_balance_type_code := 'A';
68113 l_segment := NULL;
68114 l_ccid := NULL;
68115 l_adr_transaction_coa_id := NULL;
68116 l_adr_accounting_coa_id := NULL;
68117 l_adr_flexfield_segment_code := NULL;
68118 l_adr_flex_value_set_id := NULL;
68119 l_adr_value_type_code := NULL;
68120 l_adr_value_combination_id := NULL;
68121 l_adr_value_segment_code := NULL;
68122
68123 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
68124 l_bflow_class_code := ''; -- 4219869 Business Flow
68125 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
68126 l_budgetary_control_flag := 'N';
68127
68128 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68129 l_bflow_applied_to_amt := NULL; -- 5132302
68130 l_entered_amt_idx := NULL; -- 4262811
68131 l_accted_amt_idx := NULL; -- 4262811
68132 l_acc_rev_flag := NULL; -- 4262811
68133 l_accrual_line_num := NULL; -- 4262811
68134 l_tmp_amt := NULL; -- 4262811
68135 --
68136
68137 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68138 l_balance_type_code <> 'B' THEN
68139 IF NVL(p_source_50,'
68140 ') = 'CLEAR_CLEAR' AND
68141 (NVL(p_source_78,'
68142 ') = 'PREPAY APPL' OR
68143 NVL(p_source_78,'
68144 ') = 'PREPAY APPL NONREC TAX' OR
68145 NVL(p_source_78,'
68146 ') = 'PREPAY APPL REC TAX') AND
68147 NVL(p_source_79,'
68148 ') = 'NONREC_TAX' AND
68149 NVL(p_source_111,'
68150 ') = 'Y'
68151 THEN
68152
68153 --
68154 XLA_AE_LINES_PKG.SetNewLine;
68155
68156 p_balance_type_code := l_balance_type_code;
68157 -- set the flag so later we will know whether the gain loss line needs to be created
68158
68159 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68160 p_actual_flag :='A';
68161 END IF;
68162
68163 --
68164 -- bulk performance
68165 --
68166 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68167 p_header_num => 0); -- 4262811
68168 --
68169 -- set accounting line options
68170 --
68171 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68172 p_natural_side_code => 'C'
68173 , p_gain_or_loss_flag => 'N'
68174 , p_gl_transfer_mode_code => 'S'
68175 , p_acct_entry_type_code => 'A'
68176 , p_switch_side_flag => 'Y'
68177 , p_merge_duplicate_code => 'A'
68178 );
68179 --
68180 l_acc_rev_natural_side_code := 'D'; -- 4262811
68181 --
68182 --
68183 -- set accounting line type info
68184 --
68185 xla_ae_lines_pkg.SetAcctLineType
68186 (p_component_type => l_component_type
68187 ,p_event_type_code => l_event_type_code
68188 ,p_line_definition_owner_code => l_line_definition_owner_code
68189 ,p_line_definition_code => l_line_definition_code
68190 ,p_accounting_line_code => l_component_code
68191 ,p_accounting_line_type_code => l_component_type_code
68192 ,p_accounting_line_appl_id => l_component_appl_id
68193 ,p_amb_context_code => l_amb_context_code
68194 ,p_entity_code => l_entity_code
68195 ,p_event_class_code => l_event_class_code);
68196 --
68197 -- set accounting class
68198 --
68199 xla_ae_lines_pkg.SetAcctClass(
68200 p_accounting_class_code => 'ACCRUAL'
68201 , p_ae_header_id => l_ae_header_id
68205 -- set rounding class
68202 );
68203
68204 --
68206 --
68207 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68208 'ACCRUAL';
68209
68210 --
68211 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68212 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68213 --
68214 -- bulk performance
68215 --
68216 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68217
68218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68219 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68220
68221 -- 4955764
68222 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68223 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68224
68225 -- 4458381 Public Sector Enh
68226
68227 --
68228 -- set accounting attributes for the line type
68229 --
68230 l_entered_amt_idx := 25;
68231 l_accted_amt_idx := 30;
68232 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68233 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68234 l_rec_acct_attrs.array_char_value(1) := p_source_52;
68235 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
68236 l_rec_acct_attrs.array_num_value(2) :=
68237 xla_ae_sources_pkg.GetSystemSourceNum(
68238 p_source_code => 'XLA_EVENT_APPL_ID'
68239 , p_source_type_code => 'Y'
68240 , p_source_application_id => 602
68241 );
68242 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
68243 l_rec_acct_attrs.array_char_value(3) := p_source_60;
68244 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
68245 l_rec_acct_attrs.array_char_value(4) :=
68246 xla_ae_sources_pkg.GetSystemSourceChar(
68247 p_source_code => 'XLA_ENTITY_CODE'
68248 , p_source_type_code => 'Y'
68249 , p_source_application_id => 602
68250 );
68251 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
68252 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
68253 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
68254 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
68255 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
68256 l_rec_acct_attrs.array_num_value(7) := p_source_54;
68257 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68258 l_rec_acct_attrs.array_char_value(8) := p_source_84;
68259 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
68260 l_rec_acct_attrs.array_char_value(9) := p_source_85;
68261 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
68262 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
68263 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68264 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
68265 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
68266 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
68267 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
68268 l_rec_acct_attrs.array_char_value(13) := p_source_60;
68269 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
68270 l_rec_acct_attrs.array_char_value(14) := p_source_88;
68271 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
68272 l_rec_acct_attrs.array_num_value(15) := p_source_89;
68273 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
68274 l_rec_acct_attrs.array_num_value(16) := p_source_90;
68275 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
68276 l_rec_acct_attrs.array_char_value(17) := p_source_91;
68277 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
68278 l_rec_acct_attrs.array_num_value(18) := p_source_92;
68279 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
68280 l_rec_acct_attrs.array_char_value(19) := p_source_93;
68281 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
68282 l_rec_acct_attrs.array_num_value(20) := p_source_94;
68283 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
68284 l_rec_acct_attrs.array_num_value(21) := p_source_95;
68285 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
68286 l_rec_acct_attrs.array_char_value(22) := p_source_91;
68287 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
68288 l_rec_acct_attrs.array_num_value(23) := p_source_96;
68289 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
68290 l_rec_acct_attrs.array_char_value(24) := p_source_97;
68291 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
68292 l_rec_acct_attrs.array_num_value(25) := p_source_98;
68293 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
68294 l_rec_acct_attrs.array_char_value(26) := p_source_99;
68295 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
68296 l_rec_acct_attrs.array_date_value(27) := p_source_61;
68297 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
68298 l_rec_acct_attrs.array_num_value(28) := p_source_62;
68302 l_rec_acct_attrs.array_num_value(30) := p_source_100;
68299 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
68300 l_rec_acct_attrs.array_char_value(29) := p_source_63;
68301 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
68303 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
68304 l_rec_acct_attrs.array_date_value(31) := p_source_101;
68305 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
68306 l_rec_acct_attrs.array_char_value(32) := p_source_102;
68307 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
68308 l_rec_acct_attrs.array_date_value(33) := p_source_103;
68309 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
68310 l_rec_acct_attrs.array_char_value(34) := p_source_64;
68311 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
68312 l_rec_acct_attrs.array_num_value(35) := p_source_104;
68313 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
68314 l_rec_acct_attrs.array_num_value(36) := p_source_105;
68315 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
68316 l_rec_acct_attrs.array_char_value(37) := p_source_67;
68317 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
68318 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
68319 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
68320 l_rec_acct_attrs.array_char_value(39) := p_source_60;
68321 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
68322 l_rec_acct_attrs.array_num_value(40) := p_source_69;
68323 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
68324 l_rec_acct_attrs.array_num_value(41) := p_source_77;
68325 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
68326 l_rec_acct_attrs.array_num_value(42) := p_source_70;
68327 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
68328 l_rec_acct_attrs.array_num_value(43) := p_source_107;
68329 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
68330 l_rec_acct_attrs.array_num_value(44) := p_source_108;
68331
68332 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68333 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68334
68335 ---------------------------------------------------------------------------------------------------------------
68336 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68337 ---------------------------------------------------------------------------------------------------------------
68338 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68339
68340 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68341 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68342
68343 IF xla_accounting_cache_pkg.GetValueChar
68344 (p_source_code => 'LEDGER_CATEGORY_CODE'
68345 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68346 AND l_bflow_method_code = 'PRIOR_ENTRY'
68347 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68348 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68349 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68350 )
68351 THEN
68352 xla_ae_lines_pkg.BflowUpgEntry
68353 (p_business_method_code => l_bflow_method_code
68354 ,p_business_class_code => l_bflow_class_code
68355 ,p_balance_type => l_balance_type_code);
68356 ELSE
68357 NULL;
68358 -- No business flow processing for business flow method of NONE.
68359 END IF;
68360
68361 --
68362 -- call analytical criteria
68363 --
68364
68365 --
68366 -- call description
68367 --
68368 -- No description or it is inherited.
68369 --
68370 -- call ADRs
68371 -- Bug 4922099
68372 --
68373 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68374 (NVL(l_actual_upg_option, 'N') = 'O') OR
68375 (NVL(l_enc_upg_option, 'N') = 'O')
68376 )
68377 THEN
68378 NULL;
68379 --
68380 --
68381
68382 l_ccid := AcctDerRule_28(
68383 p_application_id => p_application_id
68384 , p_ae_header_id => l_ae_header_id
68385 , p_source_29 => p_source_29
68386 , x_transaction_coa_id => l_adr_transaction_coa_id
68387 , x_accounting_coa_id => l_adr_accounting_coa_id
68388 , x_value_type_code => l_adr_value_type_code
68389 , p_side => 'NA'
68390 );
68391
68392 xla_ae_lines_pkg.set_ccid(
68393 p_code_combination_id => l_ccid
68394 , p_value_type_code => l_adr_value_type_code
68395 , p_transaction_coa_id => l_adr_transaction_coa_id
68396 , p_accounting_coa_id => l_adr_accounting_coa_id
68397 , p_adr_code => 'AP_INVOICE_DIST'
68398 , p_adr_type_code => 'S'
68399 , p_component_type => l_component_type
68400 , p_component_code => l_component_code
68401 , p_component_type_code => l_component_type_code
68402 , p_component_appl_id => l_component_appl_id
68403 , p_amb_context_code => l_amb_context_code
68407
68404 , p_side => 'NA'
68405 );
68406
68408 --
68409 --
68410 END IF;
68411 --
68412 -- Bug 4922099
68413 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68414 (NVL(l_enc_upg_option, 'N') = 'O')
68415 ) AND
68416 (l_bflow_method_code = 'PRIOR_ENTRY')
68417 )
68418 THEN
68419 IF
68420 --
68421 1 = 2
68422 --
68423 THEN
68424 xla_accounting_err_pkg.build_message
68425 (p_appli_s_name => 'XLA'
68426 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68427 ,p_token_1 => 'LINE_NUMBER'
68428 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
68429 ,p_token_2 => 'LINE_TYPE_NAME'
68430 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
68431 l_component_type
68432 ,l_component_code
68433 ,l_component_type_code
68434 ,l_component_appl_id
68435 ,l_amb_context_code
68436 ,l_entity_code
68437 ,l_event_class_code
68438 )
68439 ,p_token_3 => 'OWNER'
68440 ,p_value_3 => xla_lookups_pkg.get_meaning(
68441 p_lookup_type => 'XLA_OWNER_TYPE'
68442 ,p_lookup_code => l_component_type_code
68443 )
68444 ,p_token_4 => 'PRODUCT_NAME'
68445 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68446 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68447 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68448 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68449 ,p_ae_header_id => NULL
68450 );
68451
68452 IF (C_LEVEL_ERROR>= g_log_level) THEN
68453 trace
68454 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68455 ,p_level => C_LEVEL_ERROR
68456 ,p_module => l_log_module);
68457 END IF;
68458 END IF;
68459 END IF;
68460 --
68461 --
68462 ------------------------------------------------------------------------------------------------
68463 -- 4219869 Business Flow
68464 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68465 -- Prior Entry. Currently, the following code is always generated.
68466 ------------------------------------------------------------------------------------------------
68467 XLA_AE_LINES_PKG.ValidateCurrentLine;
68468
68469 ------------------------------------------------------------------------------------
68470 -- 4219869 Business Flow
68471 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68472 ------------------------------------------------------------------------------------
68473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68474
68475 ----------------------------------------------------------------------------------
68476 -- 4219869 Business Flow
68477 -- Update journal entry status -- Need to generate this within IF <condition>
68478 ----------------------------------------------------------------------------------
68479 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68480 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68481 ,p_balance_type_code => l_balance_type_code
68482 );
68483
68484 -------------------------------------------------------------------------------------------
68485 -- 4262811 - Generate the Accrual Reversal lines
68486 -------------------------------------------------------------------------------------------
68487 BEGIN
68488 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68489 (g_array_event(p_event_id).array_value_num('header_index'));
68490 IF l_acc_rev_flag IS NULL THEN
68491 l_acc_rev_flag := 'N';
68492 END IF;
68493 EXCEPTION
68494 WHEN OTHERS THEN
68495 l_acc_rev_flag := 'N';
68496 END;
68497 --
68498 IF (l_acc_rev_flag = 'Y') THEN
68499
68500 -- 4645092 ------------------------------------------------------------------------------
68501 -- To allow MPA report to determine if it should generate report process
68502 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68506 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68503 ------------------------------------------------------------------------------------------
68504
68505 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68507 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
68508 -- call ADRs
68509 -- Bug 4922099
68510 --
68511 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68512 (NVL(l_actual_upg_option, 'N') = 'O') OR
68513 (NVL(l_enc_upg_option, 'N') = 'O')
68514 )
68515 THEN
68516 NULL;
68517 --
68518 --
68519
68520 l_ccid := AcctDerRule_28(
68521 p_application_id => p_application_id
68522 , p_ae_header_id => l_ae_header_id
68523 , p_source_29 => p_source_29
68524 , x_transaction_coa_id => l_adr_transaction_coa_id
68525 , x_accounting_coa_id => l_adr_accounting_coa_id
68526 , x_value_type_code => l_adr_value_type_code
68527 , p_side => 'NA'
68528 );
68529
68530 xla_ae_lines_pkg.set_ccid(
68531 p_code_combination_id => l_ccid
68532 , p_value_type_code => l_adr_value_type_code
68533 , p_transaction_coa_id => l_adr_transaction_coa_id
68534 , p_accounting_coa_id => l_adr_accounting_coa_id
68535 , p_adr_code => 'AP_INVOICE_DIST'
68536 , p_adr_type_code => 'S'
68537 , p_component_type => l_component_type
68538 , p_component_code => l_component_code
68539 , p_component_type_code => l_component_type_code
68540 , p_component_appl_id => l_component_appl_id
68541 , p_amb_context_code => l_amb_context_code
68542 , p_side => 'NA'
68543 );
68544
68545
68546 --
68547 --
68548 END IF;
68549
68550 --
68551 -- Update the line information that should be overwritten
68552 --
68553 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68554 p_header_num => 1);
68555 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
68556
68557 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68558
68559 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
68560 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68561 END IF;
68562
68563 --
68564 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68565 --
68566 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68567 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
68568 ELSE
68569 ---------------------------------------------------------------------------------------------------
68570 -- 4262811a Switch Sign
68571 ---------------------------------------------------------------------------------------------------
68572 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
68573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68574 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68576 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68577 -- 5132302
68578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68579 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68580
68581 END IF;
68582
68583 -- 4955764
68584 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68585 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68586
68587
68588 XLA_AE_LINES_PKG.ValidateCurrentLine;
68589 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68590
68591 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68592 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68593 ,p_balance_type_code => l_balance_type_code);
68594
68595 END IF;
68596
68597 -----------------------------------------------------------------------------------------
68598 -- 4262811 Multiperiod Accounting
68599 -----------------------------------------------------------------------------------------
68600 -- No MPA option is assigned.
68601
68602
68603 END IF;
68604 END IF;
68605 --
68606
68607 --
68608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68609 trace
68610 (p_msg => 'END of AcctLineType_126'
68611 ,p_level => C_LEVEL_PROCEDURE
68612 ,p_module => l_log_module);
68613 END IF;
68614 --
68615 EXCEPTION
68616 WHEN xla_exceptions_pkg.application_exception THEN
68617 RAISE;
68618 WHEN OTHERS THEN
68619 xla_exceptions_pkg.raise_message
68620 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_126');
68621 END AcctLineType_126;
68625 --
68622 --
68623
68624 ---------------------------------------
68626 -- PRIVATE FUNCTION
68627 -- AcctLineType_127
68628 --
68629 ---------------------------------------
68630 PROCEDURE AcctLineType_127 (
68631 p_application_id IN NUMBER
68632 ,p_event_id IN NUMBER
68633 ,p_calculate_acctd_flag IN VARCHAR2
68634 ,p_calculate_g_l_flag IN VARCHAR2
68635 ,p_actual_flag IN OUT VARCHAR2
68636 ,p_balance_type_code OUT VARCHAR2
68637 ,p_gain_or_loss_ref OUT VARCHAR2
68638
68639 --Invoice Distribution Account
68640 , p_source_29 IN NUMBER
68641 --When to Account for Payment Option
68642 , p_source_50 IN VARCHAR2
68643 --Accounting Reversal Indicator
68644 , p_source_52 IN VARCHAR2
68645 --Business Flow Accounts Payable Application Identifier
68646 , p_source_54 IN NUMBER
68647 --Distribution Link Type
68648 , p_source_60 IN VARCHAR2
68649 --Purchase Order Exchange Rate Date
68650 , p_source_61 IN DATE
68651 --Purchase Order Exchange Rate
68652 , p_source_62 IN NUMBER
68653 --Purchase Order Exchange Rate Type
68654 , p_source_63 IN VARCHAR2
68655 --Override Accounted Amount Indicator
68656 , p_source_64 IN VARCHAR2
68657 , p_source_64_meaning IN VARCHAR2
68658 --Third Party Type
68659 , p_source_67 IN VARCHAR2
68660 --Invoice Distribution Tax Line Identifier
68661 , p_source_69 IN NUMBER
68662 --Invoice Distribution Summary Tax Line Identifier
68663 , p_source_70 IN NUMBER
68664 --Invoice Distribution Tax Distribution Identifier from Tax
68665 , p_source_77 IN NUMBER
68666 --Prepayment Distribution Type
68667 , p_source_78 IN VARCHAR2
68668 --Recipient Invoice Distribution Type
68669 , p_source_79 IN VARCHAR2
68670 , p_source_79_meaning IN VARCHAR2
68671 --Prepayment Application Distribution Identifier
68672 , p_source_82 IN NUMBER
68673 --Invoice Identifier
68674 , p_source_83 IN NUMBER
68675 --Business Flow Prepayment Invoice Distribution Type
68676 , p_source_84 IN VARCHAR2
68677 --Business Flow Prepayment Invoice Entity Code
68678 , p_source_85 IN VARCHAR2
68679 --Business Flow Prepayment Invoice Distribution Identifier
68680 , p_source_86 IN NUMBER
68681 --Business Flow Prepayment Invoice Identifier
68682 , p_source_87 IN NUMBER
68683 --Upgrade Encumbrance Credit Account Class
68684 , p_source_88 IN VARCHAR2
68685 --Payables Encumbrance Upgrade Credit Account
68686 , p_source_89 IN NUMBER
68687 --Payables Encumbrance Upgrade Credit Amount
68688 , p_source_90 IN NUMBER
68689 --Invoice Currency Code
68690 , p_source_91 IN VARCHAR2
68691 --Payables Encumbrance Upgrade Credit Base Amount
68692 , p_source_92 IN NUMBER
68693 --Upgrade Encumbrance Debit Account Class
68694 , p_source_93 IN VARCHAR2
68695 --Payables Encumbrance Upgrade Debit Account
68696 , p_source_94 IN NUMBER
68697 --Payables Encumbrance Upgrade Debit Amount
68698 , p_source_95 IN NUMBER
68699 --Payables Encumbrance Upgrade Debit Base Amount
68700 , p_source_96 IN NUMBER
68701 --Payables Encumbrance Upgrade Option
68702 , p_source_97 IN VARCHAR2
68703 --Prepayment Distribution Amount
68704 , p_source_98 IN NUMBER
68705 --Deferred Accounting End Date
68706 , p_source_101 IN DATE
68707 --Deferred Accounting Option
68708 , p_source_102 IN VARCHAR2
68709 --Deferred Accounting Start Date
68710 , p_source_103 IN DATE
68711 --Invoice Supplier Identifier
68712 , p_source_104 IN NUMBER
68713 --Invoice Supplier Site Identifier
68714 , p_source_105 IN NUMBER
68715 --Identifier of the Prepayment Application Reversed
68716 , p_source_106 IN NUMBER
68717 --Payables Upgrade Credit Encumbrance Type Identifier
68718 , p_source_107 IN NUMBER
68719 --Payables Upgrade Debit Encumbrance Type Identifier
68720 , p_source_108 IN NUMBER
68721 --Prepayment Payment Currency Code
68722 , p_source_109 IN VARCHAR2
68723 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
68724 , p_source_110 IN NUMBER
68725 --Accrue on Receipt Option
68726 , p_source_111 IN VARCHAR2
68727 , p_source_111_meaning IN VARCHAR2
68728 )
68729 IS
68730
68731 l_component_type VARCHAR2(80);
68732 l_component_code VARCHAR2(30);
68733 l_component_type_code VARCHAR2(1);
68734 l_component_appl_id INTEGER;
68735 l_amb_context_code VARCHAR2(30);
68736 l_entity_code VARCHAR2(30);
68737 l_event_class_code VARCHAR2(30);
68738 l_ae_header_id NUMBER;
68739 l_event_type_code VARCHAR2(30);
68740 l_line_definition_code VARCHAR2(30);
68741 l_line_definition_owner_code VARCHAR2(1);
68742 --
68743 -- adr variables
68744 l_segment VARCHAR2(30);
68745 l_ccid NUMBER;
68746 l_adr_transaction_coa_id NUMBER;
68747 l_adr_accounting_coa_id NUMBER;
68748 l_adr_flexfield_segment_code VARCHAR2(30);
68749 l_adr_flex_value_set_id NUMBER;
68750 l_adr_value_type_code VARCHAR2(30);
68751 l_adr_value_combination_id NUMBER;
68755 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
68752 l_adr_value_segment_code VARCHAR2(30);
68753
68754 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
68756 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
68757 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
68758
68759 -- 4262811 Variables ------------------------------------------------------------------------------------------
68760 l_entered_amt_idx NUMBER;
68761 l_accted_amt_idx NUMBER;
68762 l_acc_rev_flag VARCHAR2(1);
68763 l_accrual_line_num NUMBER;
68764 l_tmp_amt NUMBER;
68765 l_acc_rev_natural_side_code VARCHAR2(1);
68766
68767 l_num_entries NUMBER;
68768 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
68769 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
68770 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
68771 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
68772 l_recog_line_1 NUMBER;
68773 l_recog_line_2 NUMBER;
68774
68775 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
68776 l_bflow_applied_to_amt NUMBER; -- 5132302
68777 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
68778
68779 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68780
68781 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
68782 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
68783
68784 ---------------------------------------------------------------------------------------------------------------
68785
68786
68787 --
68788 -- bulk performance
68789 --
68790 l_balance_type_code VARCHAR2(1);
68791 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68792 l_log_module VARCHAR2(240);
68793
68794 --
68795 -- Upgrade strategy
68796 --
68797 l_actual_upg_option VARCHAR2(1);
68798 l_enc_upg_option VARCHAR2(1);
68799
68800 --
68801 BEGIN
68802 --
68803 IF g_log_enabled THEN
68804 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
68805 END IF;
68806 --
68807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68808
68809 trace
68810 (p_msg => 'BEGIN of AcctLineType_127'
68811 ,p_level => C_LEVEL_PROCEDURE
68812 ,p_module => l_log_module);
68813
68814 END IF;
68815 --
68816 l_component_type := 'AMB_JLT';
68817 l_component_code := 'AP_NRTAX_ACCRUAL_PREPAY_PAY';
68818 l_component_type_code := 'S';
68819 l_component_appl_id := 200;
68820 l_amb_context_code := 'DEFAULT';
68821 l_entity_code := 'AP_INVOICES';
68822 l_event_class_code := 'PREPAYMENT APPLICATIONS';
68823 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
68824 l_line_definition_owner_code := 'S';
68825 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
68826 --
68827 l_balance_type_code := 'A';
68828 l_segment := NULL;
68829 l_ccid := NULL;
68830 l_adr_transaction_coa_id := NULL;
68831 l_adr_accounting_coa_id := NULL;
68832 l_adr_flexfield_segment_code := NULL;
68833 l_adr_flex_value_set_id := NULL;
68834 l_adr_value_type_code := NULL;
68835 l_adr_value_combination_id := NULL;
68836 l_adr_value_segment_code := NULL;
68837
68838 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
68839 l_bflow_class_code := ''; -- 4219869 Business Flow
68840 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
68841 l_budgetary_control_flag := 'N';
68842
68843 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68844 l_bflow_applied_to_amt := NULL; -- 5132302
68845 l_entered_amt_idx := NULL; -- 4262811
68846 l_accted_amt_idx := NULL; -- 4262811
68847 l_acc_rev_flag := NULL; -- 4262811
68848 l_accrual_line_num := NULL; -- 4262811
68849 l_tmp_amt := NULL; -- 4262811
68850 --
68851
68852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68853 l_balance_type_code <> 'B' THEN
68854 IF NVL(p_source_50,'
68855 ') <> 'CLEAR_CLEAR' AND
68856 (NVL(p_source_78,'
68857 ') = 'PREPAY APPL' OR
68858 NVL(p_source_78,'
68859 ') = 'PREPAY APPL NONREC TAX' OR
68860 NVL(p_source_78,'
68861 ') = 'PREPAY APPL REC TAX') AND
68862 NVL(p_source_79,'
68863 ') = 'NONREC_TAX' AND
68864 NVL(p_source_111,'
68865 ') = 'Y'
68866 THEN
68867
68868 --
68869 XLA_AE_LINES_PKG.SetNewLine;
68870
68871 p_balance_type_code := l_balance_type_code;
68872 -- set the flag so later we will know whether the gain loss line needs to be created
68873
68874 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68875 p_actual_flag :='A';
68876 END IF;
68877
68878 --
68879 -- bulk performance
68880 --
68881 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68882 p_header_num => 0); -- 4262811
68886 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68883 --
68884 -- set accounting line options
68885 --
68887 p_natural_side_code => 'C'
68888 , p_gain_or_loss_flag => 'N'
68889 , p_gl_transfer_mode_code => 'S'
68890 , p_acct_entry_type_code => 'A'
68891 , p_switch_side_flag => 'Y'
68892 , p_merge_duplicate_code => 'A'
68893 );
68894 --
68895 l_acc_rev_natural_side_code := 'D'; -- 4262811
68896 --
68897 --
68898 -- set accounting line type info
68899 --
68900 xla_ae_lines_pkg.SetAcctLineType
68901 (p_component_type => l_component_type
68902 ,p_event_type_code => l_event_type_code
68903 ,p_line_definition_owner_code => l_line_definition_owner_code
68904 ,p_line_definition_code => l_line_definition_code
68905 ,p_accounting_line_code => l_component_code
68906 ,p_accounting_line_type_code => l_component_type_code
68907 ,p_accounting_line_appl_id => l_component_appl_id
68908 ,p_amb_context_code => l_amb_context_code
68909 ,p_entity_code => l_entity_code
68910 ,p_event_class_code => l_event_class_code);
68911 --
68912 -- set accounting class
68913 --
68914 xla_ae_lines_pkg.SetAcctClass(
68915 p_accounting_class_code => 'ACCRUAL'
68916 , p_ae_header_id => l_ae_header_id
68917 );
68918
68919 --
68920 -- set rounding class
68921 --
68922 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68923 'ACCRUAL';
68924
68925 --
68926 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68927 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68928 --
68929 -- bulk performance
68930 --
68931 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68932
68933 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68934 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68935
68936 -- 4955764
68937 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68938 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68939
68940 -- 4458381 Public Sector Enh
68941
68942 --
68943 -- set accounting attributes for the line type
68944 --
68945 l_entered_amt_idx := 25;
68946 l_accted_amt_idx := 30;
68947 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68948 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68949 l_rec_acct_attrs.array_char_value(1) := p_source_52;
68950 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
68951 l_rec_acct_attrs.array_num_value(2) :=
68952 xla_ae_sources_pkg.GetSystemSourceNum(
68953 p_source_code => 'XLA_EVENT_APPL_ID'
68954 , p_source_type_code => 'Y'
68955 , p_source_application_id => 602
68956 );
68957 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
68958 l_rec_acct_attrs.array_char_value(3) := p_source_60;
68959 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
68960 l_rec_acct_attrs.array_char_value(4) :=
68961 xla_ae_sources_pkg.GetSystemSourceChar(
68962 p_source_code => 'XLA_ENTITY_CODE'
68963 , p_source_type_code => 'Y'
68964 , p_source_application_id => 602
68965 );
68966 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
68967 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
68968 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
68969 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
68970 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
68971 l_rec_acct_attrs.array_num_value(7) := p_source_54;
68972 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68973 l_rec_acct_attrs.array_char_value(8) := p_source_84;
68974 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
68975 l_rec_acct_attrs.array_char_value(9) := p_source_85;
68976 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
68977 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
68978 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68979 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
68980 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
68981 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
68982 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
68983 l_rec_acct_attrs.array_char_value(13) := p_source_60;
68984 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
68985 l_rec_acct_attrs.array_char_value(14) := p_source_88;
68986 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
68987 l_rec_acct_attrs.array_num_value(15) := p_source_89;
68988 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
68989 l_rec_acct_attrs.array_num_value(16) := p_source_90;
68990 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
68991 l_rec_acct_attrs.array_char_value(17) := p_source_91;
68995 l_rec_acct_attrs.array_char_value(19) := p_source_93;
68992 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
68993 l_rec_acct_attrs.array_num_value(18) := p_source_92;
68994 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
68996 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
68997 l_rec_acct_attrs.array_num_value(20) := p_source_94;
68998 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
68999 l_rec_acct_attrs.array_num_value(21) := p_source_95;
69000 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
69001 l_rec_acct_attrs.array_char_value(22) := p_source_91;
69002 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
69003 l_rec_acct_attrs.array_num_value(23) := p_source_96;
69004 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
69005 l_rec_acct_attrs.array_char_value(24) := p_source_97;
69006 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
69007 l_rec_acct_attrs.array_num_value(25) := p_source_98;
69008 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
69009 l_rec_acct_attrs.array_char_value(26) := p_source_109;
69010 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
69011 l_rec_acct_attrs.array_date_value(27) := p_source_61;
69012 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
69013 l_rec_acct_attrs.array_num_value(28) := p_source_62;
69014 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
69015 l_rec_acct_attrs.array_char_value(29) := p_source_63;
69016 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
69017 l_rec_acct_attrs.array_num_value(30) := p_source_110;
69018 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
69019 l_rec_acct_attrs.array_date_value(31) := p_source_101;
69020 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
69021 l_rec_acct_attrs.array_char_value(32) := p_source_102;
69022 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
69023 l_rec_acct_attrs.array_date_value(33) := p_source_103;
69024 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
69025 l_rec_acct_attrs.array_char_value(34) := p_source_64;
69026 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
69027 l_rec_acct_attrs.array_num_value(35) := p_source_104;
69028 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
69029 l_rec_acct_attrs.array_num_value(36) := p_source_105;
69030 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
69031 l_rec_acct_attrs.array_char_value(37) := p_source_67;
69032 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
69033 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
69034 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
69035 l_rec_acct_attrs.array_char_value(39) := p_source_60;
69036 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
69037 l_rec_acct_attrs.array_num_value(40) := p_source_69;
69038 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
69039 l_rec_acct_attrs.array_num_value(41) := p_source_77;
69040 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
69041 l_rec_acct_attrs.array_num_value(42) := p_source_70;
69042 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
69043 l_rec_acct_attrs.array_num_value(43) := p_source_107;
69044 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
69045 l_rec_acct_attrs.array_num_value(44) := p_source_108;
69046
69047 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69048 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69049
69050 ---------------------------------------------------------------------------------------------------------------
69051 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69052 ---------------------------------------------------------------------------------------------------------------
69053 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69054
69055 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69056 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69057
69058 IF xla_accounting_cache_pkg.GetValueChar
69059 (p_source_code => 'LEDGER_CATEGORY_CODE'
69060 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69061 AND l_bflow_method_code = 'PRIOR_ENTRY'
69062 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69063 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69064 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69065 )
69066 THEN
69067 xla_ae_lines_pkg.BflowUpgEntry
69068 (p_business_method_code => l_bflow_method_code
69069 ,p_business_class_code => l_bflow_class_code
69070 ,p_balance_type => l_balance_type_code);
69071 ELSE
69072 NULL;
69073 -- No business flow processing for business flow method of NONE.
69074 END IF;
69075
69076 --
69077 -- call analytical criteria
69078 --
69079
69080 --
69081 -- call description
69082 --
69083 -- No description or it is inherited.
69087 --
69084 --
69085 -- call ADRs
69086 -- Bug 4922099
69088 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69089 (NVL(l_actual_upg_option, 'N') = 'O') OR
69090 (NVL(l_enc_upg_option, 'N') = 'O')
69091 )
69092 THEN
69093 NULL;
69094 --
69095 --
69096
69097 l_ccid := AcctDerRule_28(
69098 p_application_id => p_application_id
69099 , p_ae_header_id => l_ae_header_id
69100 , p_source_29 => p_source_29
69101 , x_transaction_coa_id => l_adr_transaction_coa_id
69102 , x_accounting_coa_id => l_adr_accounting_coa_id
69103 , x_value_type_code => l_adr_value_type_code
69104 , p_side => 'NA'
69105 );
69106
69107 xla_ae_lines_pkg.set_ccid(
69108 p_code_combination_id => l_ccid
69109 , p_value_type_code => l_adr_value_type_code
69110 , p_transaction_coa_id => l_adr_transaction_coa_id
69111 , p_accounting_coa_id => l_adr_accounting_coa_id
69112 , p_adr_code => 'AP_INVOICE_DIST'
69113 , p_adr_type_code => 'S'
69114 , p_component_type => l_component_type
69115 , p_component_code => l_component_code
69116 , p_component_type_code => l_component_type_code
69117 , p_component_appl_id => l_component_appl_id
69118 , p_amb_context_code => l_amb_context_code
69119 , p_side => 'NA'
69120 );
69121
69122
69123 --
69124 --
69125 END IF;
69126 --
69127 -- Bug 4922099
69128 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69129 (NVL(l_enc_upg_option, 'N') = 'O')
69130 ) AND
69131 (l_bflow_method_code = 'PRIOR_ENTRY')
69132 )
69133 THEN
69134 IF
69135 --
69136 1 = 2
69137 --
69138 THEN
69139 xla_accounting_err_pkg.build_message
69140 (p_appli_s_name => 'XLA'
69141 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69142 ,p_token_1 => 'LINE_NUMBER'
69143 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69144 ,p_token_2 => 'LINE_TYPE_NAME'
69145 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69146 l_component_type
69147 ,l_component_code
69148 ,l_component_type_code
69149 ,l_component_appl_id
69150 ,l_amb_context_code
69151 ,l_entity_code
69152 ,l_event_class_code
69153 )
69154 ,p_token_3 => 'OWNER'
69155 ,p_value_3 => xla_lookups_pkg.get_meaning(
69156 p_lookup_type => 'XLA_OWNER_TYPE'
69157 ,p_lookup_code => l_component_type_code
69158 )
69159 ,p_token_4 => 'PRODUCT_NAME'
69160 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69161 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69162 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69163 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69164 ,p_ae_header_id => NULL
69165 );
69166
69167 IF (C_LEVEL_ERROR>= g_log_level) THEN
69168 trace
69169 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69170 ,p_level => C_LEVEL_ERROR
69171 ,p_module => l_log_module);
69172 END IF;
69173 END IF;
69174 END IF;
69175 --
69176 --
69177 ------------------------------------------------------------------------------------------------
69178 -- 4219869 Business Flow
69179 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69180 -- Prior Entry. Currently, the following code is always generated.
69181 ------------------------------------------------------------------------------------------------
69182 XLA_AE_LINES_PKG.ValidateCurrentLine;
69183
69184 ------------------------------------------------------------------------------------
69185 -- 4219869 Business Flow
69186 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69187 ------------------------------------------------------------------------------------
69188 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69189
69193 ----------------------------------------------------------------------------------
69190 ----------------------------------------------------------------------------------
69191 -- 4219869 Business Flow
69192 -- Update journal entry status -- Need to generate this within IF <condition>
69194 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69195 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69196 ,p_balance_type_code => l_balance_type_code
69197 );
69198
69199 -------------------------------------------------------------------------------------------
69200 -- 4262811 - Generate the Accrual Reversal lines
69201 -------------------------------------------------------------------------------------------
69202 BEGIN
69203 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69204 (g_array_event(p_event_id).array_value_num('header_index'));
69205 IF l_acc_rev_flag IS NULL THEN
69206 l_acc_rev_flag := 'N';
69207 END IF;
69208 EXCEPTION
69209 WHEN OTHERS THEN
69210 l_acc_rev_flag := 'N';
69211 END;
69212 --
69213 IF (l_acc_rev_flag = 'Y') THEN
69214
69215 -- 4645092 ------------------------------------------------------------------------------
69216 -- To allow MPA report to determine if it should generate report process
69217 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69218 ------------------------------------------------------------------------------------------
69219
69220 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69221 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69222 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
69223 -- call ADRs
69224 -- Bug 4922099
69225 --
69226 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69227 (NVL(l_actual_upg_option, 'N') = 'O') OR
69228 (NVL(l_enc_upg_option, 'N') = 'O')
69229 )
69230 THEN
69231 NULL;
69232 --
69233 --
69234
69235 l_ccid := AcctDerRule_28(
69236 p_application_id => p_application_id
69237 , p_ae_header_id => l_ae_header_id
69238 , p_source_29 => p_source_29
69239 , x_transaction_coa_id => l_adr_transaction_coa_id
69240 , x_accounting_coa_id => l_adr_accounting_coa_id
69241 , x_value_type_code => l_adr_value_type_code
69242 , p_side => 'NA'
69243 );
69244
69245 xla_ae_lines_pkg.set_ccid(
69246 p_code_combination_id => l_ccid
69247 , p_value_type_code => l_adr_value_type_code
69248 , p_transaction_coa_id => l_adr_transaction_coa_id
69249 , p_accounting_coa_id => l_adr_accounting_coa_id
69250 , p_adr_code => 'AP_INVOICE_DIST'
69251 , p_adr_type_code => 'S'
69252 , p_component_type => l_component_type
69253 , p_component_code => l_component_code
69254 , p_component_type_code => l_component_type_code
69255 , p_component_appl_id => l_component_appl_id
69256 , p_amb_context_code => l_amb_context_code
69257 , p_side => 'NA'
69258 );
69259
69260
69261 --
69262 --
69263 END IF;
69264
69265 --
69266 -- Update the line information that should be overwritten
69267 --
69268 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69269 p_header_num => 1);
69270 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
69271
69272 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69273
69274 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
69275 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69276 END IF;
69277
69278 --
69279 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69280 --
69281 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69282 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
69283 ELSE
69284 ---------------------------------------------------------------------------------------------------
69285 -- 4262811a Switch Sign
69286 ---------------------------------------------------------------------------------------------------
69287 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
69288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69289 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69290 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69291 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69292 -- 5132302
69293 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69294 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69295
69296 END IF;
69297
69298 -- 4955764
69302
69299 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69300 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69301
69303 XLA_AE_LINES_PKG.ValidateCurrentLine;
69304 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69305
69306 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69307 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69308 ,p_balance_type_code => l_balance_type_code);
69309
69310 END IF;
69311
69312 -----------------------------------------------------------------------------------------
69313 -- 4262811 Multiperiod Accounting
69314 -----------------------------------------------------------------------------------------
69315 -- No MPA option is assigned.
69316
69317
69318 END IF;
69319 END IF;
69320 --
69321
69322 --
69323 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69324 trace
69325 (p_msg => 'END of AcctLineType_127'
69326 ,p_level => C_LEVEL_PROCEDURE
69327 ,p_module => l_log_module);
69328 END IF;
69329 --
69330 EXCEPTION
69331 WHEN xla_exceptions_pkg.application_exception THEN
69332 RAISE;
69333 WHEN OTHERS THEN
69334 xla_exceptions_pkg.raise_message
69335 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_127');
69336 END AcctLineType_127;
69337 --
69338
69339 ---------------------------------------
69340 --
69341 -- PRIVATE FUNCTION
69342 -- AcctLineType_128
69343 --
69344 ---------------------------------------
69345 PROCEDURE AcctLineType_128 (
69346 p_application_id IN NUMBER
69347 ,p_event_id IN NUMBER
69348 ,p_calculate_acctd_flag IN VARCHAR2
69349 ,p_calculate_g_l_flag IN VARCHAR2
69350 ,p_actual_flag IN OUT VARCHAR2
69351 ,p_balance_type_code OUT VARCHAR2
69352 ,p_gain_or_loss_ref OUT VARCHAR2
69353
69354 --Recipient Invoice Distribution Account
69355 , p_source_48 IN NUMBER
69356 --When to Account for Payment Option
69357 , p_source_50 IN VARCHAR2
69358 --Accounting Reversal Indicator
69359 , p_source_52 IN VARCHAR2
69360 --Business Flow Accounts Payable Application Identifier
69361 , p_source_54 IN NUMBER
69362 --Distribution Link Type
69363 , p_source_60 IN VARCHAR2
69364 --Override Accounted Amount Indicator
69365 , p_source_64 IN VARCHAR2
69366 , p_source_64_meaning IN VARCHAR2
69367 --Third Party Type
69368 , p_source_67 IN VARCHAR2
69369 --Invoice Distribution Tax Line Identifier
69370 , p_source_69 IN NUMBER
69371 --Invoice Distribution Summary Tax Line Identifier
69372 , p_source_70 IN NUMBER
69373 --Invoice Distribution Tax Distribution Identifier from Tax
69374 , p_source_77 IN NUMBER
69375 --Prepayment Distribution Type
69376 , p_source_78 IN VARCHAR2
69377 --Recipient Invoice Distribution Type
69378 , p_source_79 IN VARCHAR2
69379 , p_source_79_meaning IN VARCHAR2
69380 --Prepayment Application Distribution Identifier
69381 , p_source_82 IN NUMBER
69382 --Invoice Identifier
69383 , p_source_83 IN NUMBER
69384 --Business Flow Prepayment Invoice Distribution Type
69385 , p_source_84 IN VARCHAR2
69386 --Business Flow Prepayment Invoice Entity Code
69387 , p_source_85 IN VARCHAR2
69388 --Business Flow Prepayment Invoice Distribution Identifier
69389 , p_source_86 IN NUMBER
69390 --Business Flow Prepayment Invoice Identifier
69391 , p_source_87 IN NUMBER
69392 --Upgrade Encumbrance Credit Account Class
69393 , p_source_88 IN VARCHAR2
69394 --Payables Encumbrance Upgrade Credit Account
69395 , p_source_89 IN NUMBER
69396 --Payables Encumbrance Upgrade Credit Amount
69397 , p_source_90 IN NUMBER
69398 --Invoice Currency Code
69399 , p_source_91 IN VARCHAR2
69400 --Payables Encumbrance Upgrade Credit Base Amount
69401 , p_source_92 IN NUMBER
69402 --Upgrade Encumbrance Debit Account Class
69403 , p_source_93 IN VARCHAR2
69404 --Payables Encumbrance Upgrade Debit Account
69405 , p_source_94 IN NUMBER
69406 --Payables Encumbrance Upgrade Debit Amount
69407 , p_source_95 IN NUMBER
69408 --Payables Encumbrance Upgrade Debit Base Amount
69409 , p_source_96 IN NUMBER
69410 --Payables Encumbrance Upgrade Option
69411 , p_source_97 IN VARCHAR2
69412 --Prepayment Distribution Amount
69413 , p_source_98 IN NUMBER
69414 --Prepayment Clearing Currency Code
69415 , p_source_99 IN VARCHAR2
69416 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
69417 , p_source_100 IN NUMBER
69418 --Deferred Accounting End Date
69419 , p_source_101 IN DATE
69420 --Deferred Accounting Option
69421 , p_source_102 IN VARCHAR2
69422 --Deferred Accounting Start Date
69423 , p_source_103 IN DATE
69424 --Invoice Supplier Identifier
69425 , p_source_104 IN NUMBER
69426 --Invoice Supplier Site Identifier
69427 , p_source_105 IN NUMBER
69428 --Identifier of the Prepayment Application Reversed
69429 , p_source_106 IN NUMBER
69430 --Payables Upgrade Credit Encumbrance Type Identifier
69434 --Accrue on Receipt Option
69431 , p_source_107 IN NUMBER
69432 --Payables Upgrade Debit Encumbrance Type Identifier
69433 , p_source_108 IN NUMBER
69435 , p_source_111 IN VARCHAR2
69436 , p_source_111_meaning IN VARCHAR2
69437 --Prepayment Clearing Exchange Date
69438 , p_source_125 IN DATE
69439 --Prepayment Clearing Exchange Rate
69440 , p_source_126 IN NUMBER
69441 --Prepayment Clearing Exchange Rate Type
69442 , p_source_127 IN VARCHAR2
69443 )
69444 IS
69445
69446 l_component_type VARCHAR2(80);
69447 l_component_code VARCHAR2(30);
69448 l_component_type_code VARCHAR2(1);
69449 l_component_appl_id INTEGER;
69450 l_amb_context_code VARCHAR2(30);
69451 l_entity_code VARCHAR2(30);
69452 l_event_class_code VARCHAR2(30);
69453 l_ae_header_id NUMBER;
69454 l_event_type_code VARCHAR2(30);
69455 l_line_definition_code VARCHAR2(30);
69456 l_line_definition_owner_code VARCHAR2(1);
69457 --
69458 -- adr variables
69459 l_segment VARCHAR2(30);
69460 l_ccid NUMBER;
69461 l_adr_transaction_coa_id NUMBER;
69462 l_adr_accounting_coa_id NUMBER;
69463 l_adr_flexfield_segment_code VARCHAR2(30);
69464 l_adr_flex_value_set_id NUMBER;
69465 l_adr_value_type_code VARCHAR2(30);
69466 l_adr_value_combination_id NUMBER;
69467 l_adr_value_segment_code VARCHAR2(30);
69468
69469 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
69470 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
69471 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
69472 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
69473
69474 -- 4262811 Variables ------------------------------------------------------------------------------------------
69475 l_entered_amt_idx NUMBER;
69476 l_accted_amt_idx NUMBER;
69477 l_acc_rev_flag VARCHAR2(1);
69478 l_accrual_line_num NUMBER;
69479 l_tmp_amt NUMBER;
69480 l_acc_rev_natural_side_code VARCHAR2(1);
69481
69482 l_num_entries NUMBER;
69483 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
69484 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
69485 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
69486 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
69487 l_recog_line_1 NUMBER;
69488 l_recog_line_2 NUMBER;
69489
69490 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
69491 l_bflow_applied_to_amt NUMBER; -- 5132302
69492 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
69493
69494 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69495
69496 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
69497 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
69498
69499 ---------------------------------------------------------------------------------------------------------------
69500
69501
69502 --
69503 -- bulk performance
69504 --
69505 l_balance_type_code VARCHAR2(1);
69506 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69507 l_log_module VARCHAR2(240);
69508
69509 --
69510 -- Upgrade strategy
69511 --
69512 l_actual_upg_option VARCHAR2(1);
69513 l_enc_upg_option VARCHAR2(1);
69514
69515 --
69516 BEGIN
69517 --
69518 IF g_log_enabled THEN
69519 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
69520 END IF;
69521 --
69522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69523
69524 trace
69525 (p_msg => 'BEGIN of AcctLineType_128'
69526 ,p_level => C_LEVEL_PROCEDURE
69527 ,p_module => l_log_module);
69528
69529 END IF;
69530 --
69531 l_component_type := 'AMB_JLT';
69532 l_component_code := 'AP_NRTAX_PREPAY_CLR_RATE_APP';
69533 l_component_type_code := 'S';
69534 l_component_appl_id := 200;
69535 l_amb_context_code := 'DEFAULT';
69536 l_entity_code := 'AP_INVOICES';
69537 l_event_class_code := 'PREPAYMENT APPLICATIONS';
69538 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
69539 l_line_definition_owner_code := 'S';
69540 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
69541 --
69542 l_balance_type_code := 'A';
69543 l_segment := NULL;
69544 l_ccid := NULL;
69545 l_adr_transaction_coa_id := NULL;
69546 l_adr_accounting_coa_id := NULL;
69547 l_adr_flexfield_segment_code := NULL;
69548 l_adr_flex_value_set_id := NULL;
69549 l_adr_value_type_code := NULL;
69550 l_adr_value_combination_id := NULL;
69551 l_adr_value_segment_code := NULL;
69552
69553 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
69554 l_bflow_class_code := ''; -- 4219869 Business Flow
69555 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
69556 l_budgetary_control_flag := 'N';
69557
69558 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69559 l_bflow_applied_to_amt := NULL; -- 5132302
69560 l_entered_amt_idx := NULL; -- 4262811
69564 l_tmp_amt := NULL; -- 4262811
69561 l_accted_amt_idx := NULL; -- 4262811
69562 l_acc_rev_flag := NULL; -- 4262811
69563 l_accrual_line_num := NULL; -- 4262811
69565 --
69566
69567 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69568 l_balance_type_code <> 'B' THEN
69569 IF NVL(p_source_50,'
69570 ') = 'CLEAR_CLEAR' AND
69571 (NVL(p_source_78,'
69572 ') = 'PREPAY APPL' OR
69573 NVL(p_source_78,'
69574 ') = 'PREPAY APPL NONREC TAX' OR
69575 NVL(p_source_78,'
69576 ') = 'PREPAY APPL REC TAX') AND
69577 (NVL(p_source_79,'
69578 ') = 'NONREC_TAX' OR
69579 NVL(p_source_79,'
69580 ') = 'TERV') AND
69581 NVL(p_source_111,'
69582 ') <> 'Y'
69583 THEN
69584
69585 --
69586 XLA_AE_LINES_PKG.SetNewLine;
69587
69588 p_balance_type_code := l_balance_type_code;
69589 -- set the flag so later we will know whether the gain loss line needs to be created
69590
69591 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69592 p_actual_flag :='A';
69593 END IF;
69594
69595 --
69596 -- bulk performance
69597 --
69598 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69599 p_header_num => 0); -- 4262811
69600 --
69601 -- set accounting line options
69602 --
69603 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69604 p_natural_side_code => 'C'
69605 , p_gain_or_loss_flag => 'N'
69606 , p_gl_transfer_mode_code => 'S'
69607 , p_acct_entry_type_code => 'A'
69608 , p_switch_side_flag => 'Y'
69609 , p_merge_duplicate_code => 'A'
69610 );
69611 --
69612 l_acc_rev_natural_side_code := 'D'; -- 4262811
69613 --
69614 --
69615 -- set accounting line type info
69616 --
69617 xla_ae_lines_pkg.SetAcctLineType
69618 (p_component_type => l_component_type
69619 ,p_event_type_code => l_event_type_code
69620 ,p_line_definition_owner_code => l_line_definition_owner_code
69621 ,p_line_definition_code => l_line_definition_code
69622 ,p_accounting_line_code => l_component_code
69623 ,p_accounting_line_type_code => l_component_type_code
69624 ,p_accounting_line_appl_id => l_component_appl_id
69625 ,p_amb_context_code => l_amb_context_code
69626 ,p_entity_code => l_entity_code
69627 ,p_event_class_code => l_event_class_code);
69628 --
69629 -- set accounting class
69630 --
69631 xla_ae_lines_pkg.SetAcctClass(
69632 p_accounting_class_code => 'NRTAX'
69633 , p_ae_header_id => l_ae_header_id
69634 );
69635
69636 --
69637 -- set rounding class
69638 --
69639 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69640 'NRTAX';
69641
69642 --
69643 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69644 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69645 --
69646 -- bulk performance
69647 --
69648 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69649
69650 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69651 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69652
69653 -- 4955764
69654 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69655 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69656
69657 -- 4458381 Public Sector Enh
69658
69659 --
69660 -- set accounting attributes for the line type
69661 --
69662 l_entered_amt_idx := 25;
69663 l_accted_amt_idx := 30;
69664 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69665 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69666 l_rec_acct_attrs.array_char_value(1) := p_source_52;
69667 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
69668 l_rec_acct_attrs.array_num_value(2) :=
69669 xla_ae_sources_pkg.GetSystemSourceNum(
69670 p_source_code => 'XLA_EVENT_APPL_ID'
69671 , p_source_type_code => 'Y'
69672 , p_source_application_id => 602
69673 );
69674 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
69675 l_rec_acct_attrs.array_char_value(3) := p_source_60;
69676 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
69677 l_rec_acct_attrs.array_char_value(4) :=
69678 xla_ae_sources_pkg.GetSystemSourceChar(
69679 p_source_code => 'XLA_ENTITY_CODE'
69680 , p_source_type_code => 'Y'
69681 , p_source_application_id => 602
69682 );
69683 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
69684 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
69685 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
69686 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
69690 l_rec_acct_attrs.array_char_value(8) := p_source_84;
69687 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
69688 l_rec_acct_attrs.array_num_value(7) := p_source_54;
69689 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69691 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
69692 l_rec_acct_attrs.array_char_value(9) := p_source_85;
69693 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
69694 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
69695 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69696 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
69697 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
69698 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
69699 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
69700 l_rec_acct_attrs.array_char_value(13) := p_source_60;
69701 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
69702 l_rec_acct_attrs.array_char_value(14) := p_source_88;
69703 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
69704 l_rec_acct_attrs.array_num_value(15) := p_source_89;
69705 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
69706 l_rec_acct_attrs.array_num_value(16) := p_source_90;
69707 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
69708 l_rec_acct_attrs.array_char_value(17) := p_source_91;
69709 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
69710 l_rec_acct_attrs.array_num_value(18) := p_source_92;
69711 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
69712 l_rec_acct_attrs.array_char_value(19) := p_source_93;
69713 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
69714 l_rec_acct_attrs.array_num_value(20) := p_source_94;
69715 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
69716 l_rec_acct_attrs.array_num_value(21) := p_source_95;
69717 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
69718 l_rec_acct_attrs.array_char_value(22) := p_source_91;
69719 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
69720 l_rec_acct_attrs.array_num_value(23) := p_source_96;
69721 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
69722 l_rec_acct_attrs.array_char_value(24) := p_source_97;
69723 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
69724 l_rec_acct_attrs.array_num_value(25) := p_source_98;
69725 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
69726 l_rec_acct_attrs.array_char_value(26) := p_source_99;
69727 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
69728 l_rec_acct_attrs.array_date_value(27) := p_source_125;
69729 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
69730 l_rec_acct_attrs.array_num_value(28) := p_source_126;
69731 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
69732 l_rec_acct_attrs.array_char_value(29) := p_source_127;
69733 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
69734 l_rec_acct_attrs.array_num_value(30) := p_source_100;
69735 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
69736 l_rec_acct_attrs.array_date_value(31) := p_source_101;
69737 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
69738 l_rec_acct_attrs.array_char_value(32) := p_source_102;
69739 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
69740 l_rec_acct_attrs.array_date_value(33) := p_source_103;
69741 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
69742 l_rec_acct_attrs.array_char_value(34) := p_source_64;
69743 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
69744 l_rec_acct_attrs.array_num_value(35) := p_source_104;
69745 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
69746 l_rec_acct_attrs.array_num_value(36) := p_source_105;
69747 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
69748 l_rec_acct_attrs.array_char_value(37) := p_source_67;
69749 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
69750 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
69751 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
69752 l_rec_acct_attrs.array_char_value(39) := p_source_60;
69753 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
69754 l_rec_acct_attrs.array_num_value(40) := p_source_69;
69755 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
69756 l_rec_acct_attrs.array_num_value(41) := p_source_77;
69757 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
69758 l_rec_acct_attrs.array_num_value(42) := p_source_70;
69759 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
69760 l_rec_acct_attrs.array_num_value(43) := p_source_107;
69761 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
69762 l_rec_acct_attrs.array_num_value(44) := p_source_108;
69763
69764 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69765 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69766
69767 ---------------------------------------------------------------------------------------------------------------
69768 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69772 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69769 ---------------------------------------------------------------------------------------------------------------
69770 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69771
69773 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69774
69775 IF xla_accounting_cache_pkg.GetValueChar
69776 (p_source_code => 'LEDGER_CATEGORY_CODE'
69777 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69778 AND l_bflow_method_code = 'PRIOR_ENTRY'
69779 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69780 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69781 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69782 )
69783 THEN
69784 xla_ae_lines_pkg.BflowUpgEntry
69785 (p_business_method_code => l_bflow_method_code
69786 ,p_business_class_code => l_bflow_class_code
69787 ,p_balance_type => l_balance_type_code);
69788 ELSE
69789 NULL;
69790 -- No business flow processing for business flow method of NONE.
69791 END IF;
69792
69793 --
69794 -- call analytical criteria
69795 --
69796
69797 --
69798 -- call description
69799 --
69800 -- No description or it is inherited.
69801 --
69802 -- call ADRs
69803 -- Bug 4922099
69804 --
69805 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69806 (NVL(l_actual_upg_option, 'N') = 'O') OR
69807 (NVL(l_enc_upg_option, 'N') = 'O')
69808 )
69809 THEN
69810 NULL;
69811 --
69812 --
69813
69814 l_ccid := AcctDerRule_35(
69815 p_application_id => p_application_id
69816 , p_ae_header_id => l_ae_header_id
69817 , p_source_48 => p_source_48
69818 , x_transaction_coa_id => l_adr_transaction_coa_id
69819 , x_accounting_coa_id => l_adr_accounting_coa_id
69820 , x_value_type_code => l_adr_value_type_code
69821 , p_side => 'NA'
69822 );
69823
69824 xla_ae_lines_pkg.set_ccid(
69825 p_code_combination_id => l_ccid
69826 , p_value_type_code => l_adr_value_type_code
69827 , p_transaction_coa_id => l_adr_transaction_coa_id
69828 , p_accounting_coa_id => l_adr_accounting_coa_id
69829 , p_adr_code => 'AP_RECP_INV_DIST'
69830 , p_adr_type_code => 'S'
69831 , p_component_type => l_component_type
69832 , p_component_code => l_component_code
69833 , p_component_type_code => l_component_type_code
69834 , p_component_appl_id => l_component_appl_id
69835 , p_amb_context_code => l_amb_context_code
69836 , p_side => 'NA'
69837 );
69838
69839
69840 --
69841 --
69842 END IF;
69843 --
69844 -- Bug 4922099
69845 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69846 (NVL(l_enc_upg_option, 'N') = 'O')
69847 ) AND
69848 (l_bflow_method_code = 'PRIOR_ENTRY')
69849 )
69850 THEN
69851 IF
69852 --
69853 1 = 2
69854 --
69855 THEN
69856 xla_accounting_err_pkg.build_message
69857 (p_appli_s_name => 'XLA'
69858 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69859 ,p_token_1 => 'LINE_NUMBER'
69860 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69861 ,p_token_2 => 'LINE_TYPE_NAME'
69862 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69863 l_component_type
69864 ,l_component_code
69865 ,l_component_type_code
69866 ,l_component_appl_id
69867 ,l_amb_context_code
69868 ,l_entity_code
69869 ,l_event_class_code
69870 )
69871 ,p_token_3 => 'OWNER'
69872 ,p_value_3 => xla_lookups_pkg.get_meaning(
69873 p_lookup_type => 'XLA_OWNER_TYPE'
69874 ,p_lookup_code => l_component_type_code
69875 )
69876 ,p_token_4 => 'PRODUCT_NAME'
69877 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69881 ,p_ae_header_id => NULL
69878 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69879 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69880 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69882 );
69883
69884 IF (C_LEVEL_ERROR>= g_log_level) THEN
69885 trace
69886 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69887 ,p_level => C_LEVEL_ERROR
69888 ,p_module => l_log_module);
69889 END IF;
69890 END IF;
69891 END IF;
69892 --
69893 --
69894 ------------------------------------------------------------------------------------------------
69895 -- 4219869 Business Flow
69896 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69897 -- Prior Entry. Currently, the following code is always generated.
69898 ------------------------------------------------------------------------------------------------
69899 XLA_AE_LINES_PKG.ValidateCurrentLine;
69900
69901 ------------------------------------------------------------------------------------
69902 -- 4219869 Business Flow
69903 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69904 ------------------------------------------------------------------------------------
69905 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69906
69907 ----------------------------------------------------------------------------------
69908 -- 4219869 Business Flow
69909 -- Update journal entry status -- Need to generate this within IF <condition>
69910 ----------------------------------------------------------------------------------
69911 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69912 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69913 ,p_balance_type_code => l_balance_type_code
69914 );
69915
69916 -------------------------------------------------------------------------------------------
69917 -- 4262811 - Generate the Accrual Reversal lines
69918 -------------------------------------------------------------------------------------------
69919 BEGIN
69920 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69921 (g_array_event(p_event_id).array_value_num('header_index'));
69922 IF l_acc_rev_flag IS NULL THEN
69923 l_acc_rev_flag := 'N';
69924 END IF;
69925 EXCEPTION
69926 WHEN OTHERS THEN
69927 l_acc_rev_flag := 'N';
69928 END;
69929 --
69930 IF (l_acc_rev_flag = 'Y') THEN
69931
69932 -- 4645092 ------------------------------------------------------------------------------
69933 -- To allow MPA report to determine if it should generate report process
69934 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69935 ------------------------------------------------------------------------------------------
69936
69937 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69938 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69939 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
69940 -- call ADRs
69941 -- Bug 4922099
69942 --
69943 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69944 (NVL(l_actual_upg_option, 'N') = 'O') OR
69945 (NVL(l_enc_upg_option, 'N') = 'O')
69946 )
69947 THEN
69948 NULL;
69949 --
69950 --
69951
69952 l_ccid := AcctDerRule_35(
69953 p_application_id => p_application_id
69954 , p_ae_header_id => l_ae_header_id
69955 , p_source_48 => p_source_48
69956 , x_transaction_coa_id => l_adr_transaction_coa_id
69957 , x_accounting_coa_id => l_adr_accounting_coa_id
69958 , x_value_type_code => l_adr_value_type_code
69959 , p_side => 'NA'
69960 );
69961
69962 xla_ae_lines_pkg.set_ccid(
69963 p_code_combination_id => l_ccid
69964 , p_value_type_code => l_adr_value_type_code
69965 , p_transaction_coa_id => l_adr_transaction_coa_id
69966 , p_accounting_coa_id => l_adr_accounting_coa_id
69967 , p_adr_code => 'AP_RECP_INV_DIST'
69968 , p_adr_type_code => 'S'
69969 , p_component_type => l_component_type
69970 , p_component_code => l_component_code
69971 , p_component_type_code => l_component_type_code
69972 , p_component_appl_id => l_component_appl_id
69973 , p_amb_context_code => l_amb_context_code
69974 , p_side => 'NA'
69975 );
69976
69977
69978 --
69979 --
69980 END IF;
69981
69982 --
69983 -- Update the line information that should be overwritten
69984 --
69985 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69986 p_header_num => 1);
69987 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
69988
69989 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69990
69994
69991 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
69992 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69993 END IF;
69995 --
69996 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69997 --
69998 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69999 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
70000 ELSE
70001 ---------------------------------------------------------------------------------------------------
70002 -- 4262811a Switch Sign
70003 ---------------------------------------------------------------------------------------------------
70004 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
70005 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70006 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70007 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70008 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70009 -- 5132302
70010 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70011 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70012
70013 END IF;
70014
70015 -- 4955764
70016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70018
70019
70020 XLA_AE_LINES_PKG.ValidateCurrentLine;
70021 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70022
70023 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70024 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70025 ,p_balance_type_code => l_balance_type_code);
70026
70027 END IF;
70028
70029 -----------------------------------------------------------------------------------------
70030 -- 4262811 Multiperiod Accounting
70031 -----------------------------------------------------------------------------------------
70032 -- No MPA option is assigned.
70033
70034
70035 END IF;
70036 END IF;
70037 --
70038
70039 --
70040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70041 trace
70042 (p_msg => 'END of AcctLineType_128'
70043 ,p_level => C_LEVEL_PROCEDURE
70044 ,p_module => l_log_module);
70045 END IF;
70046 --
70047 EXCEPTION
70048 WHEN xla_exceptions_pkg.application_exception THEN
70049 RAISE;
70050 WHEN OTHERS THEN
70051 xla_exceptions_pkg.raise_message
70052 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_128');
70053 END AcctLineType_128;
70054 --
70055
70056 ---------------------------------------
70057 --
70058 -- PRIVATE FUNCTION
70059 -- AcctLineType_129
70060 --
70061 ---------------------------------------
70062 PROCEDURE AcctLineType_129 (
70063 p_application_id IN NUMBER
70064 ,p_event_id IN NUMBER
70065 ,p_calculate_acctd_flag IN VARCHAR2
70066 ,p_calculate_g_l_flag IN VARCHAR2
70067 ,p_actual_flag IN OUT VARCHAR2
70068 ,p_balance_type_code OUT VARCHAR2
70069 ,p_gain_or_loss_ref OUT VARCHAR2
70070
70071 --Recipient Invoice Distribution Account
70072 , p_source_48 IN NUMBER
70073 --When to Account for Payment Option
70074 , p_source_50 IN VARCHAR2
70075 --Accounting Reversal Indicator
70076 , p_source_52 IN VARCHAR2
70077 --Business Flow Accounts Payable Application Identifier
70078 , p_source_54 IN NUMBER
70079 --Distribution Link Type
70080 , p_source_60 IN VARCHAR2
70081 --Override Accounted Amount Indicator
70082 , p_source_64 IN VARCHAR2
70083 , p_source_64_meaning IN VARCHAR2
70084 --Third Party Type
70085 , p_source_67 IN VARCHAR2
70086 --Invoice Distribution Tax Line Identifier
70087 , p_source_69 IN NUMBER
70088 --Invoice Distribution Summary Tax Line Identifier
70089 , p_source_70 IN NUMBER
70090 --Invoice Distribution Tax Distribution Identifier from Tax
70091 , p_source_77 IN NUMBER
70092 --Prepayment Distribution Type
70093 , p_source_78 IN VARCHAR2
70094 --Recipient Invoice Distribution Type
70095 , p_source_79 IN VARCHAR2
70096 , p_source_79_meaning IN VARCHAR2
70097 --Prepayment Application Distribution Identifier
70098 , p_source_82 IN NUMBER
70099 --Invoice Identifier
70100 , p_source_83 IN NUMBER
70101 --Business Flow Prepayment Invoice Distribution Type
70102 , p_source_84 IN VARCHAR2
70103 --Business Flow Prepayment Invoice Entity Code
70104 , p_source_85 IN VARCHAR2
70105 --Business Flow Prepayment Invoice Distribution Identifier
70106 , p_source_86 IN NUMBER
70107 --Business Flow Prepayment Invoice Identifier
70108 , p_source_87 IN NUMBER
70109 --Upgrade Encumbrance Credit Account Class
70110 , p_source_88 IN VARCHAR2
70111 --Payables Encumbrance Upgrade Credit Account
70112 , p_source_89 IN NUMBER
70116 , p_source_91 IN VARCHAR2
70113 --Payables Encumbrance Upgrade Credit Amount
70114 , p_source_90 IN NUMBER
70115 --Invoice Currency Code
70117 --Payables Encumbrance Upgrade Credit Base Amount
70118 , p_source_92 IN NUMBER
70119 --Upgrade Encumbrance Debit Account Class
70120 , p_source_93 IN VARCHAR2
70121 --Payables Encumbrance Upgrade Debit Account
70122 , p_source_94 IN NUMBER
70123 --Payables Encumbrance Upgrade Debit Amount
70124 , p_source_95 IN NUMBER
70125 --Payables Encumbrance Upgrade Debit Base Amount
70126 , p_source_96 IN NUMBER
70127 --Payables Encumbrance Upgrade Option
70128 , p_source_97 IN VARCHAR2
70129 --Prepayment Distribution Amount
70130 , p_source_98 IN NUMBER
70131 --Deferred Accounting End Date
70132 , p_source_101 IN DATE
70133 --Deferred Accounting Option
70134 , p_source_102 IN VARCHAR2
70135 --Deferred Accounting Start Date
70136 , p_source_103 IN DATE
70137 --Invoice Supplier Identifier
70138 , p_source_104 IN NUMBER
70139 --Invoice Supplier Site Identifier
70140 , p_source_105 IN NUMBER
70141 --Identifier of the Prepayment Application Reversed
70142 , p_source_106 IN NUMBER
70143 --Payables Upgrade Credit Encumbrance Type Identifier
70144 , p_source_107 IN NUMBER
70145 --Payables Upgrade Debit Encumbrance Type Identifier
70146 , p_source_108 IN NUMBER
70147 --Prepayment Payment Currency Code
70148 , p_source_109 IN VARCHAR2
70149 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
70150 , p_source_110 IN NUMBER
70151 --Accrue on Receipt Option
70152 , p_source_111 IN VARCHAR2
70153 , p_source_111_meaning IN VARCHAR2
70154 --Prepayment Payment Exchange Date
70155 , p_source_128 IN DATE
70156 --Prepayment Payment Exchange Rate
70157 , p_source_129 IN NUMBER
70158 --Prepayment Payment Exchange Rate Type
70159 , p_source_130 IN VARCHAR2
70160 )
70161 IS
70162
70163 l_component_type VARCHAR2(80);
70164 l_component_code VARCHAR2(30);
70165 l_component_type_code VARCHAR2(1);
70166 l_component_appl_id INTEGER;
70167 l_amb_context_code VARCHAR2(30);
70168 l_entity_code VARCHAR2(30);
70169 l_event_class_code VARCHAR2(30);
70170 l_ae_header_id NUMBER;
70171 l_event_type_code VARCHAR2(30);
70172 l_line_definition_code VARCHAR2(30);
70173 l_line_definition_owner_code VARCHAR2(1);
70174 --
70175 -- adr variables
70176 l_segment VARCHAR2(30);
70177 l_ccid NUMBER;
70178 l_adr_transaction_coa_id NUMBER;
70179 l_adr_accounting_coa_id NUMBER;
70180 l_adr_flexfield_segment_code VARCHAR2(30);
70181 l_adr_flex_value_set_id NUMBER;
70182 l_adr_value_type_code VARCHAR2(30);
70183 l_adr_value_combination_id NUMBER;
70184 l_adr_value_segment_code VARCHAR2(30);
70185
70186 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70187 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70188 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70189 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70190
70191 -- 4262811 Variables ------------------------------------------------------------------------------------------
70192 l_entered_amt_idx NUMBER;
70193 l_accted_amt_idx NUMBER;
70194 l_acc_rev_flag VARCHAR2(1);
70195 l_accrual_line_num NUMBER;
70196 l_tmp_amt NUMBER;
70197 l_acc_rev_natural_side_code VARCHAR2(1);
70198
70199 l_num_entries NUMBER;
70200 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70201 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70202 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70203 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70204 l_recog_line_1 NUMBER;
70205 l_recog_line_2 NUMBER;
70206
70207 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70208 l_bflow_applied_to_amt NUMBER; -- 5132302
70209 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70210
70211 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70212
70213 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70214 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70215
70216 ---------------------------------------------------------------------------------------------------------------
70217
70218
70219 --
70220 -- bulk performance
70221 --
70222 l_balance_type_code VARCHAR2(1);
70223 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70224 l_log_module VARCHAR2(240);
70225
70226 --
70227 -- Upgrade strategy
70228 --
70229 l_actual_upg_option VARCHAR2(1);
70230 l_enc_upg_option VARCHAR2(1);
70231
70232 --
70233 BEGIN
70234 --
70235 IF g_log_enabled THEN
70236 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
70237 END IF;
70238 --
70239 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70243 ,p_level => C_LEVEL_PROCEDURE
70240
70241 trace
70242 (p_msg => 'BEGIN of AcctLineType_129'
70244 ,p_module => l_log_module);
70245
70246 END IF;
70247 --
70248 l_component_type := 'AMB_JLT';
70249 l_component_code := 'AP_NRTAX_PREPAY_PAY_RATE_APP';
70250 l_component_type_code := 'S';
70251 l_component_appl_id := 200;
70252 l_amb_context_code := 'DEFAULT';
70253 l_entity_code := 'AP_INVOICES';
70254 l_event_class_code := 'PREPAYMENT APPLICATIONS';
70255 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
70256 l_line_definition_owner_code := 'S';
70257 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
70258 --
70259 l_balance_type_code := 'A';
70260 l_segment := NULL;
70261 l_ccid := NULL;
70262 l_adr_transaction_coa_id := NULL;
70263 l_adr_accounting_coa_id := NULL;
70264 l_adr_flexfield_segment_code := NULL;
70265 l_adr_flex_value_set_id := NULL;
70266 l_adr_value_type_code := NULL;
70267 l_adr_value_combination_id := NULL;
70268 l_adr_value_segment_code := NULL;
70269
70270 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
70271 l_bflow_class_code := ''; -- 4219869 Business Flow
70272 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70273 l_budgetary_control_flag := 'N';
70274
70275 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70276 l_bflow_applied_to_amt := NULL; -- 5132302
70277 l_entered_amt_idx := NULL; -- 4262811
70278 l_accted_amt_idx := NULL; -- 4262811
70279 l_acc_rev_flag := NULL; -- 4262811
70280 l_accrual_line_num := NULL; -- 4262811
70281 l_tmp_amt := NULL; -- 4262811
70282 --
70283
70284 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70285 l_balance_type_code <> 'B' THEN
70286 IF NVL(p_source_50,'
70287 ') <> 'CLEAR_CLEAR' AND
70288 (NVL(p_source_78,'
70289 ') = 'PREPAY APPL' OR
70290 NVL(p_source_78,'
70291 ') = 'PREPAY APPL NONREC TAX' OR
70292 NVL(p_source_78,'
70293 ') = 'PREPAY APPL REC TAX') AND
70294 (NVL(p_source_79,'
70295 ') = 'NONREC_TAX' OR
70296 NVL(p_source_79,'
70297 ') = 'TERV') AND
70298 NVL(p_source_111,'
70299 ') <> 'Y'
70300 THEN
70301
70302 --
70303 XLA_AE_LINES_PKG.SetNewLine;
70304
70305 p_balance_type_code := l_balance_type_code;
70306 -- set the flag so later we will know whether the gain loss line needs to be created
70307
70308 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70309 p_actual_flag :='A';
70310 END IF;
70311
70312 --
70313 -- bulk performance
70314 --
70315 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70316 p_header_num => 0); -- 4262811
70317 --
70318 -- set accounting line options
70319 --
70320 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70321 p_natural_side_code => 'C'
70322 , p_gain_or_loss_flag => 'N'
70323 , p_gl_transfer_mode_code => 'S'
70324 , p_acct_entry_type_code => 'A'
70325 , p_switch_side_flag => 'Y'
70326 , p_merge_duplicate_code => 'A'
70327 );
70328 --
70329 l_acc_rev_natural_side_code := 'D'; -- 4262811
70330 --
70331 --
70332 -- set accounting line type info
70333 --
70334 xla_ae_lines_pkg.SetAcctLineType
70335 (p_component_type => l_component_type
70336 ,p_event_type_code => l_event_type_code
70337 ,p_line_definition_owner_code => l_line_definition_owner_code
70338 ,p_line_definition_code => l_line_definition_code
70339 ,p_accounting_line_code => l_component_code
70340 ,p_accounting_line_type_code => l_component_type_code
70341 ,p_accounting_line_appl_id => l_component_appl_id
70342 ,p_amb_context_code => l_amb_context_code
70343 ,p_entity_code => l_entity_code
70344 ,p_event_class_code => l_event_class_code);
70345 --
70346 -- set accounting class
70347 --
70348 xla_ae_lines_pkg.SetAcctClass(
70349 p_accounting_class_code => 'NRTAX'
70350 , p_ae_header_id => l_ae_header_id
70351 );
70352
70353 --
70354 -- set rounding class
70355 --
70356 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70357 'NRTAX';
70358
70359 --
70360 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70361 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70362 --
70363 -- bulk performance
70364 --
70365 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70366
70367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70368 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70369
70370 -- 4955764
70371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70375
70372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70373
70374 -- 4458381 Public Sector Enh
70376 --
70377 -- set accounting attributes for the line type
70378 --
70379 l_entered_amt_idx := 25;
70380 l_accted_amt_idx := 30;
70381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70382 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70383 l_rec_acct_attrs.array_char_value(1) := p_source_52;
70384 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
70385 l_rec_acct_attrs.array_num_value(2) :=
70386 xla_ae_sources_pkg.GetSystemSourceNum(
70387 p_source_code => 'XLA_EVENT_APPL_ID'
70388 , p_source_type_code => 'Y'
70389 , p_source_application_id => 602
70390 );
70391 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
70392 l_rec_acct_attrs.array_char_value(3) := p_source_60;
70393 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
70394 l_rec_acct_attrs.array_char_value(4) :=
70395 xla_ae_sources_pkg.GetSystemSourceChar(
70396 p_source_code => 'XLA_ENTITY_CODE'
70397 , p_source_type_code => 'Y'
70398 , p_source_application_id => 602
70399 );
70400 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
70401 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
70402 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
70403 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
70404 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
70405 l_rec_acct_attrs.array_num_value(7) := p_source_54;
70406 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70407 l_rec_acct_attrs.array_char_value(8) := p_source_84;
70408 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
70409 l_rec_acct_attrs.array_char_value(9) := p_source_85;
70410 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
70411 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
70412 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70413 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
70414 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
70415 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
70416 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
70417 l_rec_acct_attrs.array_char_value(13) := p_source_60;
70418 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
70419 l_rec_acct_attrs.array_char_value(14) := p_source_88;
70420 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
70421 l_rec_acct_attrs.array_num_value(15) := p_source_89;
70422 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
70423 l_rec_acct_attrs.array_num_value(16) := p_source_90;
70424 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
70425 l_rec_acct_attrs.array_char_value(17) := p_source_91;
70426 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
70427 l_rec_acct_attrs.array_num_value(18) := p_source_92;
70428 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
70429 l_rec_acct_attrs.array_char_value(19) := p_source_93;
70430 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
70431 l_rec_acct_attrs.array_num_value(20) := p_source_94;
70432 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
70433 l_rec_acct_attrs.array_num_value(21) := p_source_95;
70434 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
70435 l_rec_acct_attrs.array_char_value(22) := p_source_91;
70436 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
70437 l_rec_acct_attrs.array_num_value(23) := p_source_96;
70438 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
70439 l_rec_acct_attrs.array_char_value(24) := p_source_97;
70440 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
70441 l_rec_acct_attrs.array_num_value(25) := p_source_98;
70442 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
70443 l_rec_acct_attrs.array_char_value(26) := p_source_109;
70444 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
70445 l_rec_acct_attrs.array_date_value(27) := p_source_128;
70446 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
70447 l_rec_acct_attrs.array_num_value(28) := p_source_129;
70448 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
70449 l_rec_acct_attrs.array_char_value(29) := p_source_130;
70450 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
70451 l_rec_acct_attrs.array_num_value(30) := p_source_110;
70452 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
70453 l_rec_acct_attrs.array_date_value(31) := p_source_101;
70454 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
70455 l_rec_acct_attrs.array_char_value(32) := p_source_102;
70456 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
70457 l_rec_acct_attrs.array_date_value(33) := p_source_103;
70458 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
70459 l_rec_acct_attrs.array_char_value(34) := p_source_64;
70460 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
70461 l_rec_acct_attrs.array_num_value(35) := p_source_104;
70465 l_rec_acct_attrs.array_char_value(37) := p_source_67;
70462 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
70463 l_rec_acct_attrs.array_num_value(36) := p_source_105;
70464 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
70466 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
70467 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
70468 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
70469 l_rec_acct_attrs.array_char_value(39) := p_source_60;
70470 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
70471 l_rec_acct_attrs.array_num_value(40) := p_source_69;
70472 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
70473 l_rec_acct_attrs.array_num_value(41) := p_source_77;
70474 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
70475 l_rec_acct_attrs.array_num_value(42) := p_source_70;
70476 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
70477 l_rec_acct_attrs.array_num_value(43) := p_source_107;
70478 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
70479 l_rec_acct_attrs.array_num_value(44) := p_source_108;
70480
70481 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70482 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70483
70484 ---------------------------------------------------------------------------------------------------------------
70485 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70486 ---------------------------------------------------------------------------------------------------------------
70487 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70488
70489 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70490 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70491
70492 IF xla_accounting_cache_pkg.GetValueChar
70493 (p_source_code => 'LEDGER_CATEGORY_CODE'
70494 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70495 AND l_bflow_method_code = 'PRIOR_ENTRY'
70496 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70497 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70498 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70499 )
70500 THEN
70501 xla_ae_lines_pkg.BflowUpgEntry
70502 (p_business_method_code => l_bflow_method_code
70503 ,p_business_class_code => l_bflow_class_code
70504 ,p_balance_type => l_balance_type_code);
70505 ELSE
70506 NULL;
70507 -- No business flow processing for business flow method of NONE.
70508 END IF;
70509
70510 --
70511 -- call analytical criteria
70512 --
70513
70514 --
70515 -- call description
70516 --
70517 -- No description or it is inherited.
70518 --
70519 -- call ADRs
70520 -- Bug 4922099
70521 --
70522 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70523 (NVL(l_actual_upg_option, 'N') = 'O') OR
70524 (NVL(l_enc_upg_option, 'N') = 'O')
70525 )
70526 THEN
70527 NULL;
70528 --
70529 --
70530
70531 l_ccid := AcctDerRule_35(
70532 p_application_id => p_application_id
70533 , p_ae_header_id => l_ae_header_id
70534 , p_source_48 => p_source_48
70535 , x_transaction_coa_id => l_adr_transaction_coa_id
70536 , x_accounting_coa_id => l_adr_accounting_coa_id
70537 , x_value_type_code => l_adr_value_type_code
70538 , p_side => 'NA'
70539 );
70540
70541 xla_ae_lines_pkg.set_ccid(
70542 p_code_combination_id => l_ccid
70543 , p_value_type_code => l_adr_value_type_code
70544 , p_transaction_coa_id => l_adr_transaction_coa_id
70545 , p_accounting_coa_id => l_adr_accounting_coa_id
70546 , p_adr_code => 'AP_RECP_INV_DIST'
70547 , p_adr_type_code => 'S'
70548 , p_component_type => l_component_type
70549 , p_component_code => l_component_code
70550 , p_component_type_code => l_component_type_code
70551 , p_component_appl_id => l_component_appl_id
70552 , p_amb_context_code => l_amb_context_code
70553 , p_side => 'NA'
70554 );
70555
70556
70557 --
70558 --
70559 END IF;
70560 --
70561 -- Bug 4922099
70562 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70563 (NVL(l_enc_upg_option, 'N') = 'O')
70564 ) AND
70565 (l_bflow_method_code = 'PRIOR_ENTRY')
70566 )
70567 THEN
70568 IF
70569 --
70570 1 = 2
70571 --
70572 THEN
70573 xla_accounting_err_pkg.build_message
70574 (p_appli_s_name => 'XLA'
70575 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70576 ,p_token_1 => 'LINE_NUMBER'
70580 l_component_type
70577 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
70578 ,p_token_2 => 'LINE_TYPE_NAME'
70579 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
70581 ,l_component_code
70582 ,l_component_type_code
70583 ,l_component_appl_id
70584 ,l_amb_context_code
70585 ,l_entity_code
70586 ,l_event_class_code
70587 )
70588 ,p_token_3 => 'OWNER'
70589 ,p_value_3 => xla_lookups_pkg.get_meaning(
70590 p_lookup_type => 'XLA_OWNER_TYPE'
70591 ,p_lookup_code => l_component_type_code
70592 )
70593 ,p_token_4 => 'PRODUCT_NAME'
70594 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70595 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70596 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70597 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70598 ,p_ae_header_id => NULL
70599 );
70600
70601 IF (C_LEVEL_ERROR>= g_log_level) THEN
70602 trace
70603 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70604 ,p_level => C_LEVEL_ERROR
70605 ,p_module => l_log_module);
70606 END IF;
70607 END IF;
70608 END IF;
70609 --
70610 --
70611 ------------------------------------------------------------------------------------------------
70612 -- 4219869 Business Flow
70613 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70614 -- Prior Entry. Currently, the following code is always generated.
70615 ------------------------------------------------------------------------------------------------
70616 XLA_AE_LINES_PKG.ValidateCurrentLine;
70617
70618 ------------------------------------------------------------------------------------
70619 -- 4219869 Business Flow
70620 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70621 ------------------------------------------------------------------------------------
70622 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70623
70624 ----------------------------------------------------------------------------------
70625 -- 4219869 Business Flow
70626 -- Update journal entry status -- Need to generate this within IF <condition>
70627 ----------------------------------------------------------------------------------
70628 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70629 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70630 ,p_balance_type_code => l_balance_type_code
70631 );
70632
70633 -------------------------------------------------------------------------------------------
70634 -- 4262811 - Generate the Accrual Reversal lines
70635 -------------------------------------------------------------------------------------------
70636 BEGIN
70637 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70638 (g_array_event(p_event_id).array_value_num('header_index'));
70639 IF l_acc_rev_flag IS NULL THEN
70640 l_acc_rev_flag := 'N';
70641 END IF;
70642 EXCEPTION
70643 WHEN OTHERS THEN
70644 l_acc_rev_flag := 'N';
70645 END;
70646 --
70647 IF (l_acc_rev_flag = 'Y') THEN
70648
70649 -- 4645092 ------------------------------------------------------------------------------
70650 -- To allow MPA report to determine if it should generate report process
70651 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70652 ------------------------------------------------------------------------------------------
70653
70654 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70655 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70656 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
70657 -- call ADRs
70658 -- Bug 4922099
70659 --
70660 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70661 (NVL(l_actual_upg_option, 'N') = 'O') OR
70662 (NVL(l_enc_upg_option, 'N') = 'O')
70663 )
70664 THEN
70665 NULL;
70666 --
70667 --
70668
70669 l_ccid := AcctDerRule_35(
70670 p_application_id => p_application_id
70671 , p_ae_header_id => l_ae_header_id
70672 , p_source_48 => p_source_48
70676 , p_side => 'NA'
70673 , x_transaction_coa_id => l_adr_transaction_coa_id
70674 , x_accounting_coa_id => l_adr_accounting_coa_id
70675 , x_value_type_code => l_adr_value_type_code
70677 );
70678
70679 xla_ae_lines_pkg.set_ccid(
70680 p_code_combination_id => l_ccid
70681 , p_value_type_code => l_adr_value_type_code
70682 , p_transaction_coa_id => l_adr_transaction_coa_id
70683 , p_accounting_coa_id => l_adr_accounting_coa_id
70684 , p_adr_code => 'AP_RECP_INV_DIST'
70685 , p_adr_type_code => 'S'
70686 , p_component_type => l_component_type
70687 , p_component_code => l_component_code
70688 , p_component_type_code => l_component_type_code
70689 , p_component_appl_id => l_component_appl_id
70690 , p_amb_context_code => l_amb_context_code
70691 , p_side => 'NA'
70692 );
70693
70694
70695 --
70696 --
70697 END IF;
70698
70699 --
70700 -- Update the line information that should be overwritten
70701 --
70702 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70703 p_header_num => 1);
70704 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
70705
70706 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70707
70708 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
70709 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70710 END IF;
70711
70712 --
70713 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70714 --
70715 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70716 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
70717 ELSE
70718 ---------------------------------------------------------------------------------------------------
70719 -- 4262811a Switch Sign
70720 ---------------------------------------------------------------------------------------------------
70721 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
70722 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70723 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70724 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70725 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70726 -- 5132302
70727 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70728 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70729
70730 END IF;
70731
70732 -- 4955764
70733 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70734 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70735
70736
70737 XLA_AE_LINES_PKG.ValidateCurrentLine;
70738 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70739
70740 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70741 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70742 ,p_balance_type_code => l_balance_type_code);
70743
70744 END IF;
70745
70746 -----------------------------------------------------------------------------------------
70747 -- 4262811 Multiperiod Accounting
70748 -----------------------------------------------------------------------------------------
70749 -- No MPA option is assigned.
70750
70751
70752 END IF;
70753 END IF;
70754 --
70755
70756 --
70757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70758 trace
70759 (p_msg => 'END of AcctLineType_129'
70760 ,p_level => C_LEVEL_PROCEDURE
70761 ,p_module => l_log_module);
70762 END IF;
70763 --
70764 EXCEPTION
70765 WHEN xla_exceptions_pkg.application_exception THEN
70766 RAISE;
70767 WHEN OTHERS THEN
70768 xla_exceptions_pkg.raise_message
70769 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_129');
70770 END AcctLineType_129;
70771 --
70772
70773 ---------------------------------------
70774 --
70775 -- PRIVATE FUNCTION
70776 -- AcctLineType_130
70777 --
70778 ---------------------------------------
70779 PROCEDURE AcctLineType_130 (
70780 p_application_id IN NUMBER
70781 ,p_event_id IN NUMBER
70782 ,p_calculate_acctd_flag IN VARCHAR2
70783 ,p_calculate_g_l_flag IN VARCHAR2
70784 ,p_actual_flag IN OUT VARCHAR2
70785 ,p_balance_type_code OUT VARCHAR2
70786 ,p_gain_or_loss_ref OUT VARCHAR2
70787
70788 --Payment Currency Code
70789 , p_source_12 IN VARCHAR2
70790 --Payment Distribution (Payment Rate) Ledger Amount
70791 , p_source_21 IN NUMBER
70792 --Payment Card Accrued Account
70793 , p_source_43 IN NUMBER
70794 --Accounting Reversal Indicator
70798 --Business Flow Accounts Payable Application Identifier
70795 , p_source_52 IN VARCHAR2
70796 --Payment Distribution Amount
70797 , p_source_53 IN NUMBER
70799 , p_source_54 IN NUMBER
70800 --Payment Distribution Identifier
70801 , p_source_59 IN NUMBER
70802 --Distribution Link Type
70803 , p_source_60 IN VARCHAR2
70804 --Override Accounted Amount Indicator
70805 , p_source_64 IN VARCHAR2
70806 , p_source_64_meaning IN VARCHAR2
70807 --Payment Supplier Identifier
70808 , p_source_65 IN NUMBER
70809 --Payment Supplier Site Identifier
70810 , p_source_66 IN NUMBER
70811 --Third Party Type
70812 , p_source_67 IN VARCHAR2
70813 --Payment Distribution Reversed Identifier
70814 , p_source_68 IN NUMBER
70815 --Invoice Distribution Tax Line Identifier
70816 , p_source_69 IN NUMBER
70817 --Invoice Distribution Summary Tax Line Identifier
70818 , p_source_70 IN NUMBER
70819 --Invoice Distribution Amount of the Payment Distribution
70820 , p_source_72 IN NUMBER
70821 --Business Flow Invoice Distribution Type
70822 , p_source_73 IN VARCHAR2
70823 --Business Flow Invoice Entity Code
70824 , p_source_74 IN VARCHAR2
70825 --Business Flow Invoice Distribution Identifier
70826 , p_source_75 IN NUMBER
70827 --Business Flow Invoice Identifier
70828 , p_source_76 IN NUMBER
70829 --Invoice Distribution Tax Distribution Identifier from Tax
70830 , p_source_77 IN NUMBER
70831 --Payment Processing Type
70832 , p_source_120 IN VARCHAR2
70833 --Payment Exchange Date
70834 , p_source_121 IN DATE
70835 --Payment Exchange Rate
70836 , p_source_122 IN NUMBER
70837 --Payment Exchange Rate Type
70838 , p_source_123 IN VARCHAR2
70839 )
70840 IS
70841
70842 l_component_type VARCHAR2(80);
70843 l_component_code VARCHAR2(30);
70844 l_component_type_code VARCHAR2(1);
70845 l_component_appl_id INTEGER;
70846 l_amb_context_code VARCHAR2(30);
70847 l_entity_code VARCHAR2(30);
70848 l_event_class_code VARCHAR2(30);
70849 l_ae_header_id NUMBER;
70850 l_event_type_code VARCHAR2(30);
70851 l_line_definition_code VARCHAR2(30);
70852 l_line_definition_owner_code VARCHAR2(1);
70853 --
70854 -- adr variables
70855 l_segment VARCHAR2(30);
70856 l_ccid NUMBER;
70857 l_adr_transaction_coa_id NUMBER;
70858 l_adr_accounting_coa_id NUMBER;
70859 l_adr_flexfield_segment_code VARCHAR2(30);
70860 l_adr_flex_value_set_id NUMBER;
70861 l_adr_value_type_code VARCHAR2(30);
70862 l_adr_value_combination_id NUMBER;
70863 l_adr_value_segment_code VARCHAR2(30);
70864
70865 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70866 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70867 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70868 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70869
70870 -- 4262811 Variables ------------------------------------------------------------------------------------------
70871 l_entered_amt_idx NUMBER;
70872 l_accted_amt_idx NUMBER;
70873 l_acc_rev_flag VARCHAR2(1);
70874 l_accrual_line_num NUMBER;
70875 l_tmp_amt NUMBER;
70876 l_acc_rev_natural_side_code VARCHAR2(1);
70877
70878 l_num_entries NUMBER;
70879 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70880 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70881 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70882 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70883 l_recog_line_1 NUMBER;
70884 l_recog_line_2 NUMBER;
70885
70886 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70887 l_bflow_applied_to_amt NUMBER; -- 5132302
70888 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70889
70890 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70891
70892 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70893 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70894
70895 ---------------------------------------------------------------------------------------------------------------
70896
70897
70898 --
70899 -- bulk performance
70900 --
70901 l_balance_type_code VARCHAR2(1);
70902 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70903 l_log_module VARCHAR2(240);
70904
70905 --
70906 -- Upgrade strategy
70907 --
70908 l_actual_upg_option VARCHAR2(1);
70909 l_enc_upg_option VARCHAR2(1);
70910
70911 --
70912 BEGIN
70913 --
70914 IF g_log_enabled THEN
70915 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
70916 END IF;
70917 --
70918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70919
70920 trace
70921 (p_msg => 'BEGIN of AcctLineType_130'
70922 ,p_level => C_LEVEL_PROCEDURE
70926 --
70923 ,p_module => l_log_module);
70924
70925 END IF;
70927 l_component_type := 'AMB_JLT';
70928 l_component_code := 'AP_PAYCARD_PMT';
70929 l_component_type_code := 'S';
70930 l_component_appl_id := 200;
70931 l_amb_context_code := 'DEFAULT';
70932 l_entity_code := 'AP_PAYMENTS';
70933 l_event_class_code := 'PAYMENTS';
70934 l_event_type_code := 'PAYMENTS_ALL';
70935 l_line_definition_owner_code := 'S';
70936 l_line_definition_code := 'CASH_PAYMENTS_ALL';
70937 --
70938 l_balance_type_code := 'A';
70939 l_segment := NULL;
70940 l_ccid := NULL;
70941 l_adr_transaction_coa_id := NULL;
70942 l_adr_accounting_coa_id := NULL;
70943 l_adr_flexfield_segment_code := NULL;
70944 l_adr_flex_value_set_id := NULL;
70945 l_adr_value_type_code := NULL;
70946 l_adr_value_combination_id := NULL;
70947 l_adr_value_segment_code := NULL;
70948
70949 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
70950 l_bflow_class_code := ''; -- 4219869 Business Flow
70951 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70952 l_budgetary_control_flag := 'N';
70953
70954 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70955 l_bflow_applied_to_amt := NULL; -- 5132302
70956 l_entered_amt_idx := NULL; -- 4262811
70957 l_accted_amt_idx := NULL; -- 4262811
70958 l_acc_rev_flag := NULL; -- 4262811
70959 l_accrual_line_num := NULL; -- 4262811
70960 l_tmp_amt := NULL; -- 4262811
70961 --
70962
70963 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70964 l_balance_type_code <> 'B' THEN
70965 IF NVL(p_source_120,'
70966 ') = 'PAYMENTCARD'
70967 THEN
70968
70969 --
70970 XLA_AE_LINES_PKG.SetNewLine;
70971
70972 p_balance_type_code := l_balance_type_code;
70973 -- set the flag so later we will know whether the gain loss line needs to be created
70974
70975 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70976 p_actual_flag :='A';
70977 END IF;
70978
70979 --
70980 -- bulk performance
70981 --
70982 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70983 p_header_num => 0); -- 4262811
70984 --
70985 -- set accounting line options
70986 --
70987 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70988 p_natural_side_code => 'C'
70989 , p_gain_or_loss_flag => 'N'
70990 , p_gl_transfer_mode_code => 'S'
70991 , p_acct_entry_type_code => 'A'
70992 , p_switch_side_flag => 'Y'
70993 , p_merge_duplicate_code => 'A'
70994 );
70995 --
70996 l_acc_rev_natural_side_code := 'D'; -- 4262811
70997 --
70998 --
70999 -- set accounting line type info
71000 --
71001 xla_ae_lines_pkg.SetAcctLineType
71002 (p_component_type => l_component_type
71003 ,p_event_type_code => l_event_type_code
71004 ,p_line_definition_owner_code => l_line_definition_owner_code
71005 ,p_line_definition_code => l_line_definition_code
71006 ,p_accounting_line_code => l_component_code
71007 ,p_accounting_line_type_code => l_component_type_code
71008 ,p_accounting_line_appl_id => l_component_appl_id
71009 ,p_amb_context_code => l_amb_context_code
71010 ,p_entity_code => l_entity_code
71011 ,p_event_class_code => l_event_class_code);
71012 --
71013 -- set accounting class
71014 --
71015 xla_ae_lines_pkg.SetAcctClass(
71016 p_accounting_class_code => 'PAYMENTCARD'
71017 , p_ae_header_id => l_ae_header_id
71018 );
71019
71020 --
71021 -- set rounding class
71022 --
71023 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71024 'PAYMENTCARD';
71025
71026 --
71027 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71028 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71029 --
71030 -- bulk performance
71031 --
71032 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71033
71034 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71035 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71036
71037 -- 4955764
71038 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71039 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71040
71041 -- 4458381 Public Sector Enh
71042
71043 --
71044 -- set accounting attributes for the line type
71045 --
71046 l_entered_amt_idx := 10;
71047 l_accted_amt_idx := 15;
71048 l_bflow_applied_to_amt_idx := 2; -- 5132302
71049 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71050 l_rec_acct_attrs.array_char_value(1) := p_source_52;
71051 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71055 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71052 l_rec_acct_attrs.array_num_value(2) := p_source_72;
71053 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71054 l_rec_acct_attrs.array_num_value(3) := p_source_54;
71056 l_rec_acct_attrs.array_char_value(4) := p_source_73;
71057 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71058 l_rec_acct_attrs.array_char_value(5) := p_source_74;
71059 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71060 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
71061 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71062 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
71063 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71064 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
71065 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71066 l_rec_acct_attrs.array_char_value(9) := p_source_60;
71067 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71068 l_rec_acct_attrs.array_num_value(10) := p_source_53;
71069 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71070 l_rec_acct_attrs.array_char_value(11) := p_source_12;
71071 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71072 l_rec_acct_attrs.array_date_value(12) := p_source_121;
71073 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71074 l_rec_acct_attrs.array_num_value(13) := p_source_122;
71075 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71076 l_rec_acct_attrs.array_char_value(14) := p_source_123;
71077 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71078 l_rec_acct_attrs.array_num_value(15) := p_source_21;
71079 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71080 l_rec_acct_attrs.array_char_value(16) := p_source_64;
71081 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71082 l_rec_acct_attrs.array_num_value(17) := p_source_65;
71083 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71084 l_rec_acct_attrs.array_num_value(18) := p_source_66;
71085 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71086 l_rec_acct_attrs.array_char_value(19) := p_source_67;
71087 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71088 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
71089 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71090 l_rec_acct_attrs.array_char_value(21) := p_source_60;
71091 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71092 l_rec_acct_attrs.array_num_value(22) := p_source_69;
71093 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71094 l_rec_acct_attrs.array_num_value(23) := p_source_77;
71095 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71096 l_rec_acct_attrs.array_num_value(24) := p_source_70;
71097
71098 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71099 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71100
71101 ---------------------------------------------------------------------------------------------------------------
71102 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71103 ---------------------------------------------------------------------------------------------------------------
71104 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71105
71106 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71107 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71108
71109 IF xla_accounting_cache_pkg.GetValueChar
71110 (p_source_code => 'LEDGER_CATEGORY_CODE'
71111 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71112 AND l_bflow_method_code = 'PRIOR_ENTRY'
71113 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71114 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71115 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71116 )
71117 THEN
71118 xla_ae_lines_pkg.BflowUpgEntry
71119 (p_business_method_code => l_bflow_method_code
71120 ,p_business_class_code => l_bflow_class_code
71121 ,p_balance_type => l_balance_type_code);
71122 ELSE
71123 NULL;
71124 -- No business flow processing for business flow method of NONE.
71125 END IF;
71126
71127 --
71128 -- call analytical criteria
71129 --
71130
71131 --
71132 -- call description
71133 --
71134 -- No description or it is inherited.
71135 --
71136 -- call ADRs
71137 -- Bug 4922099
71138 --
71139 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71140 (NVL(l_actual_upg_option, 'N') = 'O') OR
71141 (NVL(l_enc_upg_option, 'N') = 'O')
71142 )
71143 THEN
71144 NULL;
71145 --
71146 --
71147
71148 l_ccid := AcctDerRule_29(
71149 p_application_id => p_application_id
71150 , p_ae_header_id => l_ae_header_id
71151 , p_source_43 => p_source_43
71155 , p_side => 'NA'
71152 , x_transaction_coa_id => l_adr_transaction_coa_id
71153 , x_accounting_coa_id => l_adr_accounting_coa_id
71154 , x_value_type_code => l_adr_value_type_code
71156 );
71157
71158 xla_ae_lines_pkg.set_ccid(
71159 p_code_combination_id => l_ccid
71160 , p_value_type_code => l_adr_value_type_code
71161 , p_transaction_coa_id => l_adr_transaction_coa_id
71162 , p_accounting_coa_id => l_adr_accounting_coa_id
71163 , p_adr_code => 'AP_PAYCARD_ACCRUED_ADR'
71164 , p_adr_type_code => 'S'
71165 , p_component_type => l_component_type
71166 , p_component_code => l_component_code
71167 , p_component_type_code => l_component_type_code
71168 , p_component_appl_id => l_component_appl_id
71169 , p_amb_context_code => l_amb_context_code
71170 , p_side => 'NA'
71171 );
71172
71173
71174 --
71175 --
71176 END IF;
71177 --
71178 -- Bug 4922099
71179 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71180 (NVL(l_enc_upg_option, 'N') = 'O')
71181 ) AND
71182 (l_bflow_method_code = 'PRIOR_ENTRY')
71183 )
71184 THEN
71185 IF
71186 --
71187 1 = 2
71188 --
71189 THEN
71190 xla_accounting_err_pkg.build_message
71191 (p_appli_s_name => 'XLA'
71192 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71193 ,p_token_1 => 'LINE_NUMBER'
71194 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71195 ,p_token_2 => 'LINE_TYPE_NAME'
71196 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71197 l_component_type
71198 ,l_component_code
71199 ,l_component_type_code
71200 ,l_component_appl_id
71201 ,l_amb_context_code
71202 ,l_entity_code
71203 ,l_event_class_code
71204 )
71205 ,p_token_3 => 'OWNER'
71206 ,p_value_3 => xla_lookups_pkg.get_meaning(
71207 p_lookup_type => 'XLA_OWNER_TYPE'
71208 ,p_lookup_code => l_component_type_code
71209 )
71210 ,p_token_4 => 'PRODUCT_NAME'
71211 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71212 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71213 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71214 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71215 ,p_ae_header_id => NULL
71216 );
71217
71218 IF (C_LEVEL_ERROR>= g_log_level) THEN
71219 trace
71220 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71221 ,p_level => C_LEVEL_ERROR
71222 ,p_module => l_log_module);
71223 END IF;
71224 END IF;
71225 END IF;
71226 --
71227 --
71228 ------------------------------------------------------------------------------------------------
71229 -- 4219869 Business Flow
71230 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71231 -- Prior Entry. Currently, the following code is always generated.
71232 ------------------------------------------------------------------------------------------------
71233 XLA_AE_LINES_PKG.ValidateCurrentLine;
71234
71235 ------------------------------------------------------------------------------------
71236 -- 4219869 Business Flow
71237 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71238 ------------------------------------------------------------------------------------
71239 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71240
71241 ----------------------------------------------------------------------------------
71242 -- 4219869 Business Flow
71243 -- Update journal entry status -- Need to generate this within IF <condition>
71244 ----------------------------------------------------------------------------------
71245 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71246 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71250 -------------------------------------------------------------------------------------------
71247 ,p_balance_type_code => l_balance_type_code
71248 );
71249
71251 -- 4262811 - Generate the Accrual Reversal lines
71252 -------------------------------------------------------------------------------------------
71253 BEGIN
71254 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71255 (g_array_event(p_event_id).array_value_num('header_index'));
71256 IF l_acc_rev_flag IS NULL THEN
71257 l_acc_rev_flag := 'N';
71258 END IF;
71259 EXCEPTION
71260 WHEN OTHERS THEN
71261 l_acc_rev_flag := 'N';
71262 END;
71263 --
71264 IF (l_acc_rev_flag = 'Y') THEN
71265
71266 -- 4645092 ------------------------------------------------------------------------------
71267 -- To allow MPA report to determine if it should generate report process
71268 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71269 ------------------------------------------------------------------------------------------
71270
71271 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71272 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71273 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
71274 -- call ADRs
71275 -- Bug 4922099
71276 --
71277 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71278 (NVL(l_actual_upg_option, 'N') = 'O') OR
71279 (NVL(l_enc_upg_option, 'N') = 'O')
71280 )
71281 THEN
71282 NULL;
71283 --
71284 --
71285
71286 l_ccid := AcctDerRule_29(
71287 p_application_id => p_application_id
71288 , p_ae_header_id => l_ae_header_id
71289 , p_source_43 => p_source_43
71290 , x_transaction_coa_id => l_adr_transaction_coa_id
71291 , x_accounting_coa_id => l_adr_accounting_coa_id
71292 , x_value_type_code => l_adr_value_type_code
71293 , p_side => 'NA'
71294 );
71295
71296 xla_ae_lines_pkg.set_ccid(
71297 p_code_combination_id => l_ccid
71298 , p_value_type_code => l_adr_value_type_code
71299 , p_transaction_coa_id => l_adr_transaction_coa_id
71300 , p_accounting_coa_id => l_adr_accounting_coa_id
71301 , p_adr_code => 'AP_PAYCARD_ACCRUED_ADR'
71302 , p_adr_type_code => 'S'
71303 , p_component_type => l_component_type
71304 , p_component_code => l_component_code
71305 , p_component_type_code => l_component_type_code
71306 , p_component_appl_id => l_component_appl_id
71307 , p_amb_context_code => l_amb_context_code
71308 , p_side => 'NA'
71309 );
71310
71311
71312 --
71313 --
71314 END IF;
71315
71316 --
71317 -- Update the line information that should be overwritten
71318 --
71319 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71320 p_header_num => 1);
71321 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71322
71323 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71324
71325 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71326 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71327 END IF;
71328
71329 --
71330 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71331 --
71332 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71333 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71334 ELSE
71335 ---------------------------------------------------------------------------------------------------
71336 -- 4262811a Switch Sign
71337 ---------------------------------------------------------------------------------------------------
71338 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71339 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71340 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71341 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71342 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71343 -- 5132302
71344 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71345 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71346
71347 END IF;
71348
71349 -- 4955764
71350 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71351 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71352
71353
71354 XLA_AE_LINES_PKG.ValidateCurrentLine;
71355 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71356
71357 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71361 END IF;
71358 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71359 ,p_balance_type_code => l_balance_type_code);
71360
71362
71363 -----------------------------------------------------------------------------------------
71364 -- 4262811 Multiperiod Accounting
71365 -----------------------------------------------------------------------------------------
71366 -- No MPA option is assigned.
71367
71368
71369 END IF;
71370 END IF;
71371 --
71372
71373 --
71374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71375 trace
71376 (p_msg => 'END of AcctLineType_130'
71377 ,p_level => C_LEVEL_PROCEDURE
71378 ,p_module => l_log_module);
71379 END IF;
71380 --
71381 EXCEPTION
71382 WHEN xla_exceptions_pkg.application_exception THEN
71383 RAISE;
71384 WHEN OTHERS THEN
71385 xla_exceptions_pkg.raise_message
71386 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_130');
71387 END AcctLineType_130;
71388 --
71389
71390 ---------------------------------------
71391 --
71392 -- PRIVATE FUNCTION
71393 -- AcctLineType_131
71394 --
71395 ---------------------------------------
71396 PROCEDURE AcctLineType_131 (
71397 p_application_id IN NUMBER
71398 ,p_event_id IN NUMBER
71399 ,p_calculate_acctd_flag IN VARCHAR2
71400 ,p_calculate_g_l_flag IN VARCHAR2
71401 ,p_actual_flag IN OUT VARCHAR2
71402 ,p_balance_type_code OUT VARCHAR2
71403 ,p_gain_or_loss_ref OUT VARCHAR2
71404
71405 --Payment Currency Code
71406 , p_source_12 IN VARCHAR2
71407 --Automatic Offsets Value
71408 , p_source_16 IN VARCHAR2
71409 , p_source_16_meaning IN VARCHAR2
71410 --Payment Distribution (Payment Rate) Ledger Amount
71411 , p_source_21 IN NUMBER
71412 --Invoice Distribution Account
71413 , p_source_29 IN NUMBER
71414 --Payables Options Rounding Account
71415 , p_source_49 IN NUMBER
71416 --When to Account for Payment Option
71417 , p_source_50 IN VARCHAR2
71418 --Payment Distribution Type
71419 , p_source_51 IN VARCHAR2
71420 , p_source_51_meaning IN VARCHAR2
71421 --Accounting Reversal Indicator
71422 , p_source_52 IN VARCHAR2
71423 --Payment Distribution Amount
71424 , p_source_53 IN NUMBER
71425 --Business Flow Accounts Payable Application Identifier
71426 , p_source_54 IN NUMBER
71427 --Business Flow Payment Distribution Type
71428 , p_source_55 IN VARCHAR2
71429 --Business Flow Payment Entity Code
71430 , p_source_56 IN VARCHAR2
71431 --Business Flow Payment Distribution Identifier
71432 , p_source_57 IN NUMBER
71433 --Business Flow Payment Identifier
71434 , p_source_58 IN NUMBER
71435 --Payment Distribution Identifier
71436 , p_source_59 IN NUMBER
71437 --Distribution Link Type
71438 , p_source_60 IN VARCHAR2
71439 --Override Accounted Amount Indicator
71440 , p_source_64 IN VARCHAR2
71441 , p_source_64_meaning IN VARCHAR2
71442 --Payment Supplier Identifier
71443 , p_source_65 IN NUMBER
71444 --Payment Supplier Site Identifier
71445 , p_source_66 IN NUMBER
71446 --Third Party Type
71447 , p_source_67 IN VARCHAR2
71448 --Payment Distribution Reversed Identifier
71449 , p_source_68 IN NUMBER
71450 --Invoice Distribution Tax Line Identifier
71451 , p_source_69 IN NUMBER
71452 --Invoice Distribution Summary Tax Line Identifier
71453 , p_source_70 IN NUMBER
71454 --Payment Maturity Date
71455 , p_source_118 IN DATE
71456 --Payment Exchange Date
71457 , p_source_121 IN DATE
71458 --Payment Exchange Rate
71459 , p_source_122 IN NUMBER
71460 --Payment Exchange Rate Type
71461 , p_source_123 IN VARCHAR2
71462 )
71463 IS
71464
71465 l_component_type VARCHAR2(80);
71466 l_component_code VARCHAR2(30);
71467 l_component_type_code VARCHAR2(1);
71468 l_component_appl_id INTEGER;
71469 l_amb_context_code VARCHAR2(30);
71470 l_entity_code VARCHAR2(30);
71471 l_event_class_code VARCHAR2(30);
71472 l_ae_header_id NUMBER;
71473 l_event_type_code VARCHAR2(30);
71474 l_line_definition_code VARCHAR2(30);
71475 l_line_definition_owner_code VARCHAR2(1);
71476 --
71477 -- adr variables
71478 l_segment VARCHAR2(30);
71479 l_ccid NUMBER;
71480 l_adr_transaction_coa_id NUMBER;
71481 l_adr_accounting_coa_id NUMBER;
71482 l_adr_flexfield_segment_code VARCHAR2(30);
71483 l_adr_flex_value_set_id NUMBER;
71484 l_adr_value_type_code VARCHAR2(30);
71485 l_adr_value_combination_id NUMBER;
71486 l_adr_value_segment_code VARCHAR2(30);
71487
71488 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
71489 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
71490 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
71491 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
71492
71493 -- 4262811 Variables ------------------------------------------------------------------------------------------
71494 l_entered_amt_idx NUMBER;
71495 l_accted_amt_idx NUMBER;
71499 l_acc_rev_natural_side_code VARCHAR2(1);
71496 l_acc_rev_flag VARCHAR2(1);
71497 l_accrual_line_num NUMBER;
71498 l_tmp_amt NUMBER;
71500
71501 l_num_entries NUMBER;
71502 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
71503 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
71504 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
71505 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
71506 l_recog_line_1 NUMBER;
71507 l_recog_line_2 NUMBER;
71508
71509 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
71510 l_bflow_applied_to_amt NUMBER; -- 5132302
71511 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
71512
71513 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71514
71515 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
71516 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
71517
71518 ---------------------------------------------------------------------------------------------------------------
71519
71520
71521 --
71522 -- bulk performance
71523 --
71524 l_balance_type_code VARCHAR2(1);
71525 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
71526 l_log_module VARCHAR2(240);
71527
71528 --
71529 -- Upgrade strategy
71530 --
71531 l_actual_upg_option VARCHAR2(1);
71532 l_enc_upg_option VARCHAR2(1);
71533
71534 --
71535 BEGIN
71536 --
71537 IF g_log_enabled THEN
71538 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
71539 END IF;
71540 --
71541 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71542
71543 trace
71544 (p_msg => 'BEGIN of AcctLineType_131'
71545 ,p_level => C_LEVEL_PROCEDURE
71546 ,p_module => l_log_module);
71547
71548 END IF;
71549 --
71550 l_component_type := 'AMB_JLT';
71551 l_component_code := 'AP_PMT_CLR_ROUNDING_CLEAR';
71552 l_component_type_code := 'S';
71553 l_component_appl_id := 200;
71554 l_amb_context_code := 'DEFAULT';
71555 l_entity_code := 'AP_PAYMENTS';
71556 l_event_class_code := 'RECONCILED PAYMENTS';
71557 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
71558 l_line_definition_owner_code := 'S';
71559 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
71560 --
71561 l_balance_type_code := 'A';
71562 l_segment := NULL;
71563 l_ccid := NULL;
71564 l_adr_transaction_coa_id := NULL;
71565 l_adr_accounting_coa_id := NULL;
71566 l_adr_flexfield_segment_code := NULL;
71567 l_adr_flex_value_set_id := NULL;
71568 l_adr_value_type_code := NULL;
71569 l_adr_value_combination_id := NULL;
71570 l_adr_value_segment_code := NULL;
71571
71572 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
71573 l_bflow_class_code := ''; -- 4219869 Business Flow
71574 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
71575 l_budgetary_control_flag := 'N';
71576
71577 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71578 l_bflow_applied_to_amt := NULL; -- 5132302
71579 l_entered_amt_idx := NULL; -- 4262811
71580 l_accted_amt_idx := NULL; -- 4262811
71581 l_acc_rev_flag := NULL; -- 4262811
71582 l_accrual_line_num := NULL; -- 4262811
71583 l_tmp_amt := NULL; -- 4262811
71584 --
71585
71586 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71587 l_balance_type_code <> 'B' THEN
71588 IF (NVL(p_source_50,'
71589 ') = 'ALWAYS_ALWAYS' OR
71590 NVL(p_source_50,'
71591 ') = 'ALWAYS_CLEAR') AND
71592 NVL(p_source_51,'
71593 ') = 'PAYMENT TO CLEARING ROUNDING' AND
71594 p_source_118 IS NULL
71595 THEN
71596
71597 --
71598 XLA_AE_LINES_PKG.SetNewLine;
71599
71600 p_balance_type_code := l_balance_type_code;
71601 -- set the flag so later we will know whether the gain loss line needs to be created
71602
71603 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71604 p_actual_flag :='A';
71605 END IF;
71606
71607 --
71608 -- bulk performance
71609 --
71610 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71611 p_header_num => 0); -- 4262811
71612 --
71613 -- set accounting line options
71614 --
71615 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71616 p_natural_side_code => 'D'
71617 , p_gain_or_loss_flag => 'N'
71618 , p_gl_transfer_mode_code => 'S'
71619 , p_acct_entry_type_code => 'A'
71620 , p_switch_side_flag => 'Y'
71621 , p_merge_duplicate_code => 'A'
71622 );
71623 --
71624 l_acc_rev_natural_side_code := 'C'; -- 4262811
71625 --
71626 --
71627 -- set accounting line type info
71628 --
71629 xla_ae_lines_pkg.SetAcctLineType
71633 ,p_line_definition_code => l_line_definition_code
71630 (p_component_type => l_component_type
71631 ,p_event_type_code => l_event_type_code
71632 ,p_line_definition_owner_code => l_line_definition_owner_code
71634 ,p_accounting_line_code => l_component_code
71635 ,p_accounting_line_type_code => l_component_type_code
71636 ,p_accounting_line_appl_id => l_component_appl_id
71637 ,p_amb_context_code => l_amb_context_code
71638 ,p_entity_code => l_entity_code
71639 ,p_event_class_code => l_event_class_code);
71640 --
71641 -- set accounting class
71642 --
71643 xla_ae_lines_pkg.SetAcctClass(
71644 p_accounting_class_code => 'ROUNDING'
71645 , p_ae_header_id => l_ae_header_id
71646 );
71647
71648 --
71649 -- set rounding class
71650 --
71651 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71652 'ROUNDING';
71653
71654 --
71655 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71656 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71657 --
71658 -- bulk performance
71659 --
71660 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71661
71662 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71663 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71664
71665 -- 4955764
71666 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71667 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71668
71669 -- 4458381 Public Sector Enh
71670
71671 --
71672 -- set accounting attributes for the line type
71673 --
71674 l_entered_amt_idx := 10;
71675 l_accted_amt_idx := 15;
71676 l_bflow_applied_to_amt_idx := 2; -- 5132302
71677 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71678 l_rec_acct_attrs.array_char_value(1) := p_source_52;
71679 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71680 l_rec_acct_attrs.array_num_value(2) := p_source_53;
71681 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71682 l_rec_acct_attrs.array_num_value(3) := p_source_54;
71683 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71684 l_rec_acct_attrs.array_char_value(4) := p_source_55;
71685 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71686 l_rec_acct_attrs.array_char_value(5) := p_source_56;
71687 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71688 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
71689 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71690 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
71691 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71692 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
71693 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71694 l_rec_acct_attrs.array_char_value(9) := p_source_60;
71695 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71696 l_rec_acct_attrs.array_num_value(10) := p_source_53;
71697 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71698 l_rec_acct_attrs.array_char_value(11) := p_source_12;
71699 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71700 l_rec_acct_attrs.array_date_value(12) := p_source_121;
71701 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71702 l_rec_acct_attrs.array_num_value(13) := p_source_122;
71703 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71704 l_rec_acct_attrs.array_char_value(14) := p_source_123;
71705 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71706 l_rec_acct_attrs.array_num_value(15) := p_source_21;
71707 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71708 l_rec_acct_attrs.array_char_value(16) := p_source_64;
71709 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71710 l_rec_acct_attrs.array_num_value(17) := p_source_65;
71711 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71712 l_rec_acct_attrs.array_num_value(18) := p_source_66;
71713 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71714 l_rec_acct_attrs.array_char_value(19) := p_source_67;
71715 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71716 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
71717 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71718 l_rec_acct_attrs.array_char_value(21) := p_source_60;
71719 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71720 l_rec_acct_attrs.array_num_value(22) := p_source_69;
71721 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71722 l_rec_acct_attrs.array_num_value(23) := p_source_69;
71723 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71724 l_rec_acct_attrs.array_num_value(24) := p_source_70;
71725
71726 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71727 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71728
71729 ---------------------------------------------------------------------------------------------------------------
71733
71730 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71731 ---------------------------------------------------------------------------------------------------------------
71732 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71734 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71735 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71736
71737 IF xla_accounting_cache_pkg.GetValueChar
71738 (p_source_code => 'LEDGER_CATEGORY_CODE'
71739 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71740 AND l_bflow_method_code = 'PRIOR_ENTRY'
71741 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71742 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71743 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71744 )
71745 THEN
71746 xla_ae_lines_pkg.BflowUpgEntry
71747 (p_business_method_code => l_bflow_method_code
71748 ,p_business_class_code => l_bflow_class_code
71749 ,p_balance_type => l_balance_type_code);
71750 ELSE
71751 NULL;
71752 -- No business flow processing for business flow method of NONE.
71753 END IF;
71754
71755 --
71756 -- call analytical criteria
71757 --
71758
71759 --
71760 -- call description
71761 --
71762 -- No description or it is inherited.
71763 --
71764 -- call ADRs
71765 -- Bug 4922099
71766 --
71767 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71768 (NVL(l_actual_upg_option, 'N') = 'O') OR
71769 (NVL(l_enc_upg_option, 'N') = 'O')
71770 )
71771 THEN
71772 NULL;
71773 --
71774 --
71775
71776 l_ccid := AcctDerRule_37(
71777 p_application_id => p_application_id
71778 , p_ae_header_id => l_ae_header_id
71779 , p_source_16 => p_source_16
71780 , p_source_16_meaning => p_source_16_meaning
71781 , p_source_29 => p_source_29
71782 , p_source_49 => p_source_49
71783 , x_transaction_coa_id => l_adr_transaction_coa_id
71784 , x_accounting_coa_id => l_adr_accounting_coa_id
71785 , x_value_type_code => l_adr_value_type_code
71786 , p_side => 'NA'
71787 );
71788
71789 xla_ae_lines_pkg.set_ccid(
71790 p_code_combination_id => l_ccid
71791 , p_value_type_code => l_adr_value_type_code
71792 , p_transaction_coa_id => l_adr_transaction_coa_id
71793 , p_accounting_coa_id => l_adr_accounting_coa_id
71794 , p_adr_code => 'AP_ROUNDING'
71795 , p_adr_type_code => 'S'
71796 , p_component_type => l_component_type
71797 , p_component_code => l_component_code
71798 , p_component_type_code => l_component_type_code
71799 , p_component_appl_id => l_component_appl_id
71800 , p_amb_context_code => l_amb_context_code
71801 , p_side => 'NA'
71802 );
71803
71804
71805 --
71806 --
71807 END IF;
71808 --
71809 -- Bug 4922099
71810 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71811 (NVL(l_enc_upg_option, 'N') = 'O')
71812 ) AND
71813 (l_bflow_method_code = 'PRIOR_ENTRY')
71814 )
71815 THEN
71816 IF
71817 --
71818 1 = 2
71819 --
71820 THEN
71821 xla_accounting_err_pkg.build_message
71822 (p_appli_s_name => 'XLA'
71823 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71824 ,p_token_1 => 'LINE_NUMBER'
71825 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71826 ,p_token_2 => 'LINE_TYPE_NAME'
71827 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71828 l_component_type
71829 ,l_component_code
71830 ,l_component_type_code
71831 ,l_component_appl_id
71832 ,l_amb_context_code
71833 ,l_entity_code
71834 ,l_event_class_code
71835 )
71836 ,p_token_3 => 'OWNER'
71837 ,p_value_3 => xla_lookups_pkg.get_meaning(
71838 p_lookup_type => 'XLA_OWNER_TYPE'
71839 ,p_lookup_code => l_component_type_code
71840 )
71844 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71841 ,p_token_4 => 'PRODUCT_NAME'
71842 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71843 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71845 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71846 ,p_ae_header_id => NULL
71847 );
71848
71849 IF (C_LEVEL_ERROR>= g_log_level) THEN
71850 trace
71851 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71852 ,p_level => C_LEVEL_ERROR
71853 ,p_module => l_log_module);
71854 END IF;
71855 END IF;
71856 END IF;
71857 --
71858 --
71859 ------------------------------------------------------------------------------------------------
71860 -- 4219869 Business Flow
71861 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71862 -- Prior Entry. Currently, the following code is always generated.
71863 ------------------------------------------------------------------------------------------------
71864 XLA_AE_LINES_PKG.ValidateCurrentLine;
71865
71866 ------------------------------------------------------------------------------------
71867 -- 4219869 Business Flow
71868 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71869 ------------------------------------------------------------------------------------
71870 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71871
71872 ----------------------------------------------------------------------------------
71873 -- 4219869 Business Flow
71874 -- Update journal entry status -- Need to generate this within IF <condition>
71875 ----------------------------------------------------------------------------------
71876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71878 ,p_balance_type_code => l_balance_type_code
71879 );
71880
71881 -------------------------------------------------------------------------------------------
71882 -- 4262811 - Generate the Accrual Reversal lines
71883 -------------------------------------------------------------------------------------------
71884 BEGIN
71885 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71886 (g_array_event(p_event_id).array_value_num('header_index'));
71887 IF l_acc_rev_flag IS NULL THEN
71888 l_acc_rev_flag := 'N';
71889 END IF;
71890 EXCEPTION
71891 WHEN OTHERS THEN
71892 l_acc_rev_flag := 'N';
71893 END;
71894 --
71895 IF (l_acc_rev_flag = 'Y') THEN
71896
71897 -- 4645092 ------------------------------------------------------------------------------
71898 -- To allow MPA report to determine if it should generate report process
71899 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71900 ------------------------------------------------------------------------------------------
71901
71902 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71903 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71904 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
71905 -- call ADRs
71906 -- Bug 4922099
71907 --
71908 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71909 (NVL(l_actual_upg_option, 'N') = 'O') OR
71910 (NVL(l_enc_upg_option, 'N') = 'O')
71911 )
71912 THEN
71913 NULL;
71914 --
71915 --
71916
71917 l_ccid := AcctDerRule_37(
71918 p_application_id => p_application_id
71919 , p_ae_header_id => l_ae_header_id
71920 , p_source_16 => p_source_16
71921 , p_source_16_meaning => p_source_16_meaning
71922 , p_source_29 => p_source_29
71923 , p_source_49 => p_source_49
71924 , x_transaction_coa_id => l_adr_transaction_coa_id
71925 , x_accounting_coa_id => l_adr_accounting_coa_id
71926 , x_value_type_code => l_adr_value_type_code
71927 , p_side => 'NA'
71928 );
71929
71930 xla_ae_lines_pkg.set_ccid(
71931 p_code_combination_id => l_ccid
71932 , p_value_type_code => l_adr_value_type_code
71933 , p_transaction_coa_id => l_adr_transaction_coa_id
71934 , p_accounting_coa_id => l_adr_accounting_coa_id
71935 , p_adr_code => 'AP_ROUNDING'
71936 , p_adr_type_code => 'S'
71937 , p_component_type => l_component_type
71938 , p_component_code => l_component_code
71939 , p_component_type_code => l_component_type_code
71940 , p_component_appl_id => l_component_appl_id
71941 , p_amb_context_code => l_amb_context_code
71942 , p_side => 'NA'
71943 );
71944
71945
71946 --
71947 --
71948 END IF;
71949
71950 --
71951 -- Update the line information that should be overwritten
71952 --
71956
71953 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71954 p_header_num => 1);
71955 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71957 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71958
71959 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71960 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71961 END IF;
71962
71963 --
71964 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71965 --
71966 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71967 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71968 ELSE
71969 ---------------------------------------------------------------------------------------------------
71970 -- 4262811a Switch Sign
71971 ---------------------------------------------------------------------------------------------------
71972 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71974 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71975 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71976 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71977 -- 5132302
71978 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71979 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71980
71981 END IF;
71982
71983 -- 4955764
71984 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71985 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71986
71987
71988 XLA_AE_LINES_PKG.ValidateCurrentLine;
71989 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71990
71991 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71992 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71993 ,p_balance_type_code => l_balance_type_code);
71994
71995 END IF;
71996
71997 -----------------------------------------------------------------------------------------
71998 -- 4262811 Multiperiod Accounting
71999 -----------------------------------------------------------------------------------------
72000 -- No MPA option is assigned.
72001
72002
72003 END IF;
72004 END IF;
72005 --
72006
72007 --
72008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72009 trace
72010 (p_msg => 'END of AcctLineType_131'
72011 ,p_level => C_LEVEL_PROCEDURE
72012 ,p_module => l_log_module);
72013 END IF;
72014 --
72015 EXCEPTION
72016 WHEN xla_exceptions_pkg.application_exception THEN
72017 RAISE;
72018 WHEN OTHERS THEN
72019 xla_exceptions_pkg.raise_message
72020 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_131');
72021 END AcctLineType_131;
72022 --
72023
72024 ---------------------------------------
72025 --
72026 -- PRIVATE FUNCTION
72027 -- AcctLineType_132
72028 --
72029 ---------------------------------------
72030 PROCEDURE AcctLineType_132 (
72031 p_application_id IN NUMBER
72032 ,p_event_id IN NUMBER
72033 ,p_calculate_acctd_flag IN VARCHAR2
72034 ,p_calculate_g_l_flag IN VARCHAR2
72035 ,p_actual_flag IN OUT VARCHAR2
72036 ,p_balance_type_code OUT VARCHAR2
72037 ,p_gain_or_loss_ref OUT VARCHAR2
72038
72039 --Payment Currency Code
72040 , p_source_12 IN VARCHAR2
72041 --Payment Distribution (Payment Rate) Ledger Amount
72042 , p_source_21 IN NUMBER
72043 --Invoice Distribution Account
72044 , p_source_29 IN NUMBER
72045 --Prepaid Expense Account Source Option
72046 , p_source_30 IN VARCHAR2
72047 , p_source_30_meaning IN VARCHAR2
72048 --Purchase Order Number
72049 , p_source_31 IN VARCHAR2
72050 --Invoice Distribution Type
72051 , p_source_32 IN VARCHAR2
72052 , p_source_32_meaning IN VARCHAR2
72053 --Purchase Order Charge Account
72054 , p_source_40 IN NUMBER
72055 --When to Account for Payment Option
72056 , p_source_50 IN VARCHAR2
72057 --Payment Distribution Type
72058 , p_source_51 IN VARCHAR2
72059 , p_source_51_meaning IN VARCHAR2
72060 --Accounting Reversal Indicator
72061 , p_source_52 IN VARCHAR2
72062 --Payment Distribution Amount
72063 , p_source_53 IN NUMBER
72064 --Business Flow Accounts Payable Application Identifier
72065 , p_source_54 IN NUMBER
72066 --Payment Distribution Identifier
72067 , p_source_59 IN NUMBER
72068 --Distribution Link Type
72069 , p_source_60 IN VARCHAR2
72070 --Override Accounted Amount Indicator
72071 , p_source_64 IN VARCHAR2
72072 , p_source_64_meaning IN VARCHAR2
72076 , p_source_66 IN NUMBER
72073 --Payment Supplier Identifier
72074 , p_source_65 IN NUMBER
72075 --Payment Supplier Site Identifier
72077 --Third Party Type
72078 , p_source_67 IN VARCHAR2
72079 --Payment Distribution Reversed Identifier
72080 , p_source_68 IN NUMBER
72081 --Invoice Distribution Tax Line Identifier
72082 , p_source_69 IN NUMBER
72083 --Invoice Distribution Summary Tax Line Identifier
72084 , p_source_70 IN NUMBER
72085 --Payment Type
72086 , p_source_71 IN VARCHAR2
72087 , p_source_71_meaning IN VARCHAR2
72088 --Invoice Distribution Amount of the Payment Distribution
72089 , p_source_72 IN NUMBER
72090 --Business Flow Invoice Distribution Type
72091 , p_source_73 IN VARCHAR2
72092 --Business Flow Invoice Entity Code
72093 , p_source_74 IN VARCHAR2
72094 --Business Flow Invoice Distribution Identifier
72095 , p_source_75 IN NUMBER
72096 --Business Flow Invoice Identifier
72097 , p_source_76 IN NUMBER
72098 --Invoice Distribution Tax Distribution Identifier from Tax
72099 , p_source_77 IN NUMBER
72100 --Invoice Type Paid
72101 , p_source_112 IN VARCHAR2
72102 , p_source_112_meaning IN VARCHAR2
72103 --Payment Exchange Date
72104 , p_source_121 IN DATE
72105 --Payment Exchange Rate
72106 , p_source_122 IN NUMBER
72107 --Payment Exchange Rate Type
72108 , p_source_123 IN VARCHAR2
72109 )
72110 IS
72111
72112 l_component_type VARCHAR2(80);
72113 l_component_code VARCHAR2(30);
72114 l_component_type_code VARCHAR2(1);
72115 l_component_appl_id INTEGER;
72116 l_amb_context_code VARCHAR2(30);
72117 l_entity_code VARCHAR2(30);
72118 l_event_class_code VARCHAR2(30);
72119 l_ae_header_id NUMBER;
72120 l_event_type_code VARCHAR2(30);
72121 l_line_definition_code VARCHAR2(30);
72122 l_line_definition_owner_code VARCHAR2(1);
72123 --
72124 -- adr variables
72125 l_segment VARCHAR2(30);
72126 l_ccid NUMBER;
72127 l_adr_transaction_coa_id NUMBER;
72128 l_adr_accounting_coa_id NUMBER;
72129 l_adr_flexfield_segment_code VARCHAR2(30);
72130 l_adr_flex_value_set_id NUMBER;
72131 l_adr_value_type_code VARCHAR2(30);
72132 l_adr_value_combination_id NUMBER;
72133 l_adr_value_segment_code VARCHAR2(30);
72134
72135 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72136 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72137 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72138 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72139
72140 -- 4262811 Variables ------------------------------------------------------------------------------------------
72141 l_entered_amt_idx NUMBER;
72142 l_accted_amt_idx NUMBER;
72143 l_acc_rev_flag VARCHAR2(1);
72144 l_accrual_line_num NUMBER;
72145 l_tmp_amt NUMBER;
72146 l_acc_rev_natural_side_code VARCHAR2(1);
72147
72148 l_num_entries NUMBER;
72149 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72150 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72151 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72152 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72153 l_recog_line_1 NUMBER;
72154 l_recog_line_2 NUMBER;
72155
72156 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72157 l_bflow_applied_to_amt NUMBER; -- 5132302
72158 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72159
72160 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72161
72162 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72163 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72164
72165 ---------------------------------------------------------------------------------------------------------------
72166
72167
72168 --
72169 -- bulk performance
72170 --
72171 l_balance_type_code VARCHAR2(1);
72172 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72173 l_log_module VARCHAR2(240);
72174
72175 --
72176 -- Upgrade strategy
72177 --
72178 l_actual_upg_option VARCHAR2(1);
72179 l_enc_upg_option VARCHAR2(1);
72180
72181 --
72182 BEGIN
72183 --
72184 IF g_log_enabled THEN
72185 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
72186 END IF;
72187 --
72188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72189
72190 trace
72191 (p_msg => 'BEGIN of AcctLineType_132'
72192 ,p_level => C_LEVEL_PROCEDURE
72193 ,p_module => l_log_module);
72194
72195 END IF;
72196 --
72197 l_component_type := 'AMB_JLT';
72198 l_component_code := 'AP_PREPAID_EXPENSE_CASH_PMT';
72199 l_component_type_code := 'S';
72200 l_component_appl_id := 200;
72201 l_amb_context_code := 'DEFAULT';
72202 l_entity_code := 'AP_PAYMENTS';
72203 l_event_class_code := 'PAYMENTS';
72207 --
72204 l_event_type_code := 'PAYMENTS_ALL';
72205 l_line_definition_owner_code := 'S';
72206 l_line_definition_code := 'CASH_PAYMENTS_ALL';
72208 l_balance_type_code := 'A';
72209 l_segment := NULL;
72210 l_ccid := NULL;
72211 l_adr_transaction_coa_id := NULL;
72212 l_adr_accounting_coa_id := NULL;
72213 l_adr_flexfield_segment_code := NULL;
72214 l_adr_flex_value_set_id := NULL;
72215 l_adr_value_type_code := NULL;
72216 l_adr_value_combination_id := NULL;
72217 l_adr_value_segment_code := NULL;
72218
72219 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
72220 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
72221 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
72222 l_budgetary_control_flag := 'N';
72223
72224 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72225 l_bflow_applied_to_amt := NULL; -- 5132302
72226 l_entered_amt_idx := NULL; -- 4262811
72227 l_accted_amt_idx := NULL; -- 4262811
72228 l_acc_rev_flag := NULL; -- 4262811
72229 l_accrual_line_num := NULL; -- 4262811
72230 l_tmp_amt := NULL; -- 4262811
72231 --
72232
72233 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72234 l_balance_type_code <> 'B' THEN
72235 IF NVL(p_source_50,'
72236 ') <> 'CLEAR_CLEAR' AND
72237 (NVL(p_source_32,'
72238 ') = 'ITEM' OR
72239 NVL(p_source_32,'
72240 ') = 'AWT' OR
72241 NVL(p_source_32,'
72242 ') = 'RETROEXPENSE') AND
72243 NVL(p_source_112,'
72244 ') = 'PREPAYMENT' AND
72245 (NVL(p_source_51,'
72246 ') = 'CASH' OR
72247 NVL(p_source_51,'
72248 ') = 'AWT' OR
72249 NVL(p_source_51,'
72250 ') = 'DISCOUNT') AND
72251 NVL(p_source_71,'
72252 ') <> 'R'
72253 THEN
72254
72255 --
72256 XLA_AE_LINES_PKG.SetNewLine;
72257
72258 p_balance_type_code := l_balance_type_code;
72259 -- set the flag so later we will know whether the gain loss line needs to be created
72260
72261 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72262 p_actual_flag :='A';
72263 END IF;
72264
72265 --
72266 -- bulk performance
72267 --
72268 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72269 p_header_num => 0); -- 4262811
72270 --
72271 -- set accounting line options
72272 --
72273 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72274 p_natural_side_code => 'D'
72275 , p_gain_or_loss_flag => 'N'
72276 , p_gl_transfer_mode_code => 'S'
72277 , p_acct_entry_type_code => 'A'
72278 , p_switch_side_flag => 'Y'
72279 , p_merge_duplicate_code => 'A'
72280 );
72281 --
72282 l_acc_rev_natural_side_code := 'C'; -- 4262811
72283 --
72284 --
72285 -- set accounting line type info
72286 --
72287 xla_ae_lines_pkg.SetAcctLineType
72288 (p_component_type => l_component_type
72289 ,p_event_type_code => l_event_type_code
72290 ,p_line_definition_owner_code => l_line_definition_owner_code
72291 ,p_line_definition_code => l_line_definition_code
72292 ,p_accounting_line_code => l_component_code
72293 ,p_accounting_line_type_code => l_component_type_code
72294 ,p_accounting_line_appl_id => l_component_appl_id
72295 ,p_amb_context_code => l_amb_context_code
72296 ,p_entity_code => l_entity_code
72297 ,p_event_class_code => l_event_class_code);
72298 --
72299 -- set accounting class
72300 --
72301 xla_ae_lines_pkg.SetAcctClass(
72302 p_accounting_class_code => 'PREPAID_EXPENSE'
72303 , p_ae_header_id => l_ae_header_id
72304 );
72305
72306 --
72307 -- set rounding class
72308 --
72309 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72310 'PREPAID_EXPENSE';
72311
72312 --
72313 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72314 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72315 --
72316 -- bulk performance
72317 --
72318 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72319
72320 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72321 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72322
72323 -- 4955764
72324 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72325 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72326
72327 -- 4458381 Public Sector Enh
72328
72329 --
72330 -- set accounting attributes for the line type
72331 --
72332 l_entered_amt_idx := 10;
72333 l_accted_amt_idx := 15;
72334 l_bflow_applied_to_amt_idx := 2; -- 5132302
72335 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72339 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
72336 l_rec_acct_attrs.array_char_value(1) := p_source_52;
72337 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
72338 l_rec_acct_attrs.array_num_value(2) := p_source_72;
72340 l_rec_acct_attrs.array_num_value(3) := p_source_54;
72341 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72342 l_rec_acct_attrs.array_char_value(4) := p_source_73;
72343 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
72344 l_rec_acct_attrs.array_char_value(5) := p_source_74;
72345 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
72346 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
72347 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72348 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
72349 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
72350 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
72351 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
72352 l_rec_acct_attrs.array_char_value(9) := p_source_60;
72353 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
72354 l_rec_acct_attrs.array_num_value(10) := p_source_53;
72355 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
72356 l_rec_acct_attrs.array_char_value(11) := p_source_12;
72357 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
72358 l_rec_acct_attrs.array_date_value(12) := p_source_121;
72359 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
72360 l_rec_acct_attrs.array_num_value(13) := p_source_122;
72361 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
72362 l_rec_acct_attrs.array_char_value(14) := p_source_123;
72363 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
72364 l_rec_acct_attrs.array_num_value(15) := p_source_21;
72365 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
72366 l_rec_acct_attrs.array_char_value(16) := p_source_64;
72367 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
72368 l_rec_acct_attrs.array_num_value(17) := p_source_65;
72369 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
72370 l_rec_acct_attrs.array_num_value(18) := p_source_66;
72371 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
72372 l_rec_acct_attrs.array_char_value(19) := p_source_67;
72373 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
72374 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
72375 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
72376 l_rec_acct_attrs.array_char_value(21) := p_source_60;
72377 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
72378 l_rec_acct_attrs.array_num_value(22) := p_source_69;
72379 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
72380 l_rec_acct_attrs.array_num_value(23) := p_source_77;
72381 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
72382 l_rec_acct_attrs.array_num_value(24) := p_source_70;
72383
72384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72386
72387 ---------------------------------------------------------------------------------------------------------------
72388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72389 ---------------------------------------------------------------------------------------------------------------
72390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72391
72392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72394
72395 IF xla_accounting_cache_pkg.GetValueChar
72396 (p_source_code => 'LEDGER_CATEGORY_CODE'
72397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72398 AND l_bflow_method_code = 'PRIOR_ENTRY'
72399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72402 )
72403 THEN
72404 xla_ae_lines_pkg.BflowUpgEntry
72405 (p_business_method_code => l_bflow_method_code
72406 ,p_business_class_code => l_bflow_class_code
72407 ,p_balance_type => l_balance_type_code);
72408 ELSE
72409 NULL;
72410 -- No business flow processing for business flow method of NONE.
72411 END IF;
72412
72413 --
72414 -- call analytical criteria
72415 --
72416
72417 --
72418 -- call description
72419 --
72420 -- No description or it is inherited.
72421 --
72422 -- call ADRs
72423 -- Bug 4922099
72424 --
72425 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72426 (NVL(l_actual_upg_option, 'N') = 'O') OR
72427 (NVL(l_enc_upg_option, 'N') = 'O')
72428 )
72429 THEN
72430 NULL;
72431 --
72432 --
72433
72434 l_ccid := AcctDerRule_32(
72435 p_application_id => p_application_id
72436 , p_ae_header_id => l_ae_header_id
72437 , p_source_29 => p_source_29
72438 , p_source_30 => p_source_30
72442 , p_source_32_meaning => p_source_32_meaning
72439 , p_source_30_meaning => p_source_30_meaning
72440 , p_source_31 => p_source_31
72441 , p_source_32 => p_source_32
72443 , p_source_40 => p_source_40
72444 , x_transaction_coa_id => l_adr_transaction_coa_id
72445 , x_accounting_coa_id => l_adr_accounting_coa_id
72446 , x_value_type_code => l_adr_value_type_code
72447 , p_side => 'NA'
72448 );
72449
72450 xla_ae_lines_pkg.set_ccid(
72451 p_code_combination_id => l_ccid
72452 , p_value_type_code => l_adr_value_type_code
72453 , p_transaction_coa_id => l_adr_transaction_coa_id
72454 , p_accounting_coa_id => l_adr_accounting_coa_id
72455 , p_adr_code => 'AP_PREPAY_INVOICE_DIST'
72456 , p_adr_type_code => 'S'
72457 , p_component_type => l_component_type
72458 , p_component_code => l_component_code
72459 , p_component_type_code => l_component_type_code
72460 , p_component_appl_id => l_component_appl_id
72461 , p_amb_context_code => l_amb_context_code
72462 , p_side => 'NA'
72463 );
72464
72465
72466 l_segment := AcctDerRule_11(
72467 p_application_id => p_application_id
72468 , p_ae_header_id => l_ae_header_id
72469 , p_source_29 => p_source_29
72470 , p_source_30 => p_source_30
72471 , p_source_30_meaning => p_source_30_meaning
72472 , p_source_31 => p_source_31
72473 , p_source_32 => p_source_32
72474 , p_source_32_meaning => p_source_32_meaning
72475 , x_transaction_coa_id => l_adr_transaction_coa_id
72476 , x_accounting_coa_id => l_adr_accounting_coa_id
72477 , x_flexfield_segment_code => l_adr_flexfield_segment_code
72478 , x_flex_value_set_id => l_adr_flex_value_set_id
72479 , x_value_type_code => l_adr_value_type_code
72480 , x_value_combination_id => l_adr_value_combination_id
72481 , x_value_segment_code => l_adr_value_segment_code
72482 , p_side => 'NA'
72483 , p_override_seg_flag => 'Y'
72484 );
72485
72486 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
72487
72488 xla_ae_lines_pkg.set_segment(
72489 p_to_segment_code => 'GL_ACCOUNT'
72490 , p_segment_value => l_segment
72491 , p_from_segment_code => l_adr_value_segment_code
72492 , p_from_combination_id => l_adr_value_combination_id
72493 , p_value_type_code => l_adr_value_type_code
72494 , p_transaction_coa_id => l_adr_transaction_coa_id
72495 , p_accounting_coa_id => l_adr_accounting_coa_id
72496 , p_flexfield_segment_code => l_adr_flexfield_segment_code
72497 , p_flex_value_set_id => l_adr_flex_value_set_id
72498 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
72499 , p_adr_type_code => 'S'
72500 , p_component_type => l_component_type
72501 , p_component_code => l_component_code
72502 , p_component_type_code => l_component_type_code
72503 , p_component_appl_id => l_component_appl_id
72504 , p_amb_context_code => l_amb_context_code
72505 , p_entity_code => 'AP_PAYMENTS'
72506 , p_event_class_code => 'PAYMENTS'
72507 , p_side => 'NA'
72508 );
72509
72510 END IF;
72511
72512 --
72513 --
72514 END IF;
72515 --
72516 -- Bug 4922099
72517 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72518 (NVL(l_enc_upg_option, 'N') = 'O')
72519 ) AND
72520 (l_bflow_method_code = 'PRIOR_ENTRY')
72521 )
72522 THEN
72523 IF
72524 --
72525 1 = 2
72526 --
72527 THEN
72528 xla_accounting_err_pkg.build_message
72529 (p_appli_s_name => 'XLA'
72530 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72531 ,p_token_1 => 'LINE_NUMBER'
72532 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
72533 ,p_token_2 => 'LINE_TYPE_NAME'
72534 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
72535 l_component_type
72536 ,l_component_code
72537 ,l_component_type_code
72538 ,l_component_appl_id
72539 ,l_amb_context_code
72540 ,l_entity_code
72541 ,l_event_class_code
72542 )
72543 ,p_token_3 => 'OWNER'
72547 )
72544 ,p_value_3 => xla_lookups_pkg.get_meaning(
72545 p_lookup_type => 'XLA_OWNER_TYPE'
72546 ,p_lookup_code => l_component_type_code
72548 ,p_token_4 => 'PRODUCT_NAME'
72549 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72550 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72551 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72552 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72553 ,p_ae_header_id => NULL
72554 );
72555
72556 IF (C_LEVEL_ERROR>= g_log_level) THEN
72557 trace
72558 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72559 ,p_level => C_LEVEL_ERROR
72560 ,p_module => l_log_module);
72561 END IF;
72562 END IF;
72563 END IF;
72564 --
72565 --
72566 ------------------------------------------------------------------------------------------------
72567 -- 4219869 Business Flow
72568 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72569 -- Prior Entry. Currently, the following code is always generated.
72570 ------------------------------------------------------------------------------------------------
72571 XLA_AE_LINES_PKG.ValidateCurrentLine;
72572
72573 ------------------------------------------------------------------------------------
72574 -- 4219869 Business Flow
72575 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72576 ------------------------------------------------------------------------------------
72577 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72578
72579 ----------------------------------------------------------------------------------
72580 -- 4219869 Business Flow
72581 -- Update journal entry status -- Need to generate this within IF <condition>
72582 ----------------------------------------------------------------------------------
72583 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72584 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72585 ,p_balance_type_code => l_balance_type_code
72586 );
72587
72588 -------------------------------------------------------------------------------------------
72589 -- 4262811 - Generate the Accrual Reversal lines
72590 -------------------------------------------------------------------------------------------
72591 BEGIN
72592 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72593 (g_array_event(p_event_id).array_value_num('header_index'));
72594 IF l_acc_rev_flag IS NULL THEN
72595 l_acc_rev_flag := 'N';
72596 END IF;
72597 EXCEPTION
72598 WHEN OTHERS THEN
72599 l_acc_rev_flag := 'N';
72600 END;
72601 --
72602 IF (l_acc_rev_flag = 'Y') THEN
72603
72604 -- 4645092 ------------------------------------------------------------------------------
72605 -- To allow MPA report to determine if it should generate report process
72606 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72607 ------------------------------------------------------------------------------------------
72608
72609 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72610 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72611 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
72612 -- call ADRs
72613 -- Bug 4922099
72614 --
72615 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72616 (NVL(l_actual_upg_option, 'N') = 'O') OR
72617 (NVL(l_enc_upg_option, 'N') = 'O')
72618 )
72619 THEN
72620 NULL;
72621 --
72622 --
72623
72624 l_ccid := AcctDerRule_32(
72625 p_application_id => p_application_id
72626 , p_ae_header_id => l_ae_header_id
72627 , p_source_29 => p_source_29
72628 , p_source_30 => p_source_30
72629 , p_source_30_meaning => p_source_30_meaning
72630 , p_source_31 => p_source_31
72631 , p_source_32 => p_source_32
72632 , p_source_32_meaning => p_source_32_meaning
72633 , p_source_40 => p_source_40
72634 , x_transaction_coa_id => l_adr_transaction_coa_id
72635 , x_accounting_coa_id => l_adr_accounting_coa_id
72636 , x_value_type_code => l_adr_value_type_code
72637 , p_side => 'NA'
72638 );
72639
72640 xla_ae_lines_pkg.set_ccid(
72641 p_code_combination_id => l_ccid
72642 , p_value_type_code => l_adr_value_type_code
72643 , p_transaction_coa_id => l_adr_transaction_coa_id
72644 , p_accounting_coa_id => l_adr_accounting_coa_id
72645 , p_adr_code => 'AP_PREPAY_INVOICE_DIST'
72646 , p_adr_type_code => 'S'
72650 , p_component_appl_id => l_component_appl_id
72647 , p_component_type => l_component_type
72648 , p_component_code => l_component_code
72649 , p_component_type_code => l_component_type_code
72651 , p_amb_context_code => l_amb_context_code
72652 , p_side => 'NA'
72653 );
72654
72655
72656 l_segment := AcctDerRule_11(
72657 p_application_id => p_application_id
72658 , p_ae_header_id => l_ae_header_id
72659 , p_source_29 => p_source_29
72660 , p_source_30 => p_source_30
72661 , p_source_30_meaning => p_source_30_meaning
72662 , p_source_31 => p_source_31
72663 , p_source_32 => p_source_32
72664 , p_source_32_meaning => p_source_32_meaning
72665 , x_transaction_coa_id => l_adr_transaction_coa_id
72666 , x_accounting_coa_id => l_adr_accounting_coa_id
72667 , x_flexfield_segment_code => l_adr_flexfield_segment_code
72668 , x_flex_value_set_id => l_adr_flex_value_set_id
72669 , x_value_type_code => l_adr_value_type_code
72670 , x_value_combination_id => l_adr_value_combination_id
72671 , x_value_segment_code => l_adr_value_segment_code
72672 , p_side => 'NA'
72673 , p_override_seg_flag => 'Y'
72674 );
72675
72676 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
72677
72678 xla_ae_lines_pkg.set_segment(
72679 p_to_segment_code => 'GL_ACCOUNT'
72680 , p_segment_value => l_segment
72681 , p_from_segment_code => l_adr_value_segment_code
72682 , p_from_combination_id => l_adr_value_combination_id
72683 , p_value_type_code => l_adr_value_type_code
72684 , p_transaction_coa_id => l_adr_transaction_coa_id
72685 , p_accounting_coa_id => l_adr_accounting_coa_id
72686 , p_flexfield_segment_code => l_adr_flexfield_segment_code
72687 , p_flex_value_set_id => l_adr_flex_value_set_id
72688 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
72689 , p_adr_type_code => 'S'
72690 , p_component_type => l_component_type
72691 , p_component_code => l_component_code
72692 , p_component_type_code => l_component_type_code
72693 , p_component_appl_id => l_component_appl_id
72694 , p_amb_context_code => l_amb_context_code
72695 , p_entity_code => 'AP_PAYMENTS'
72696 , p_event_class_code => 'PAYMENTS'
72697 , p_side => 'NA'
72698 );
72699
72700 END IF;
72701
72702 --
72703 --
72704 END IF;
72705
72706 --
72707 -- Update the line information that should be overwritten
72708 --
72709 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72710 p_header_num => 1);
72711 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
72712
72713 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72714
72715 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
72716 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72717 END IF;
72718
72719 --
72720 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72721 --
72722 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72723 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
72724 ELSE
72725 ---------------------------------------------------------------------------------------------------
72726 -- 4262811a Switch Sign
72727 ---------------------------------------------------------------------------------------------------
72728 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
72729 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72731 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72732 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72733 -- 5132302
72734 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72735 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72736
72737 END IF;
72738
72739 -- 4955764
72740 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72741 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72742
72743
72744 XLA_AE_LINES_PKG.ValidateCurrentLine;
72745 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72746
72747 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72748 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72749 ,p_balance_type_code => l_balance_type_code);
72750
72751 END IF;
72752
72756 -- No MPA option is assigned.
72753 -----------------------------------------------------------------------------------------
72754 -- 4262811 Multiperiod Accounting
72755 -----------------------------------------------------------------------------------------
72757
72758
72759 END IF;
72760 END IF;
72761 --
72762
72763 --
72764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72765 trace
72766 (p_msg => 'END of AcctLineType_132'
72767 ,p_level => C_LEVEL_PROCEDURE
72768 ,p_module => l_log_module);
72769 END IF;
72770 --
72771 EXCEPTION
72772 WHEN xla_exceptions_pkg.application_exception THEN
72773 RAISE;
72774 WHEN OTHERS THEN
72775 xla_exceptions_pkg.raise_message
72776 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_132');
72777 END AcctLineType_132;
72778 --
72779
72780 ---------------------------------------
72781 --
72782 -- PRIVATE FUNCTION
72783 -- AcctLineType_133
72784 --
72785 ---------------------------------------
72786 PROCEDURE AcctLineType_133 (
72787 p_application_id IN NUMBER
72788 ,p_event_id IN NUMBER
72789 ,p_calculate_acctd_flag IN VARCHAR2
72790 ,p_calculate_g_l_flag IN VARCHAR2
72791 ,p_actual_flag IN OUT VARCHAR2
72792 ,p_balance_type_code OUT VARCHAR2
72793 ,p_gain_or_loss_ref OUT VARCHAR2
72794
72795 --Payment Currency Code
72796 , p_source_12 IN VARCHAR2
72797 --Payment Distribution (Cleared Rate) Ledger Amount
72798 , p_source_22 IN NUMBER
72799 --Invoice Distribution Account
72800 , p_source_29 IN NUMBER
72801 --Invoice Distribution Type
72802 , p_source_32 IN VARCHAR2
72803 , p_source_32_meaning IN VARCHAR2
72804 --When to Account for Payment Option
72805 , p_source_50 IN VARCHAR2
72806 --Payment Distribution Type
72807 , p_source_51 IN VARCHAR2
72808 , p_source_51_meaning IN VARCHAR2
72809 --Accounting Reversal Indicator
72810 , p_source_52 IN VARCHAR2
72811 --Payment Distribution Amount
72812 , p_source_53 IN NUMBER
72813 --Business Flow Accounts Payable Application Identifier
72814 , p_source_54 IN NUMBER
72815 --Business Flow Payment Distribution Type
72816 , p_source_55 IN VARCHAR2
72817 --Business Flow Payment Entity Code
72818 , p_source_56 IN VARCHAR2
72819 --Business Flow Payment Distribution Identifier
72820 , p_source_57 IN NUMBER
72821 --Business Flow Payment Identifier
72822 , p_source_58 IN NUMBER
72823 --Payment Distribution Identifier
72824 , p_source_59 IN NUMBER
72825 --Distribution Link Type
72826 , p_source_60 IN VARCHAR2
72827 --Override Accounted Amount Indicator
72828 , p_source_64 IN VARCHAR2
72829 , p_source_64_meaning IN VARCHAR2
72830 --Payment Supplier Identifier
72831 , p_source_65 IN NUMBER
72832 --Payment Supplier Site Identifier
72833 , p_source_66 IN NUMBER
72834 --Third Party Type
72835 , p_source_67 IN VARCHAR2
72836 --Payment Distribution Reversed Identifier
72837 , p_source_68 IN NUMBER
72838 --Invoice Distribution Tax Line Identifier
72839 , p_source_69 IN NUMBER
72840 --Invoice Distribution Summary Tax Line Identifier
72841 , p_source_70 IN NUMBER
72842 --Payment Type
72843 , p_source_71 IN VARCHAR2
72844 , p_source_71_meaning IN VARCHAR2
72845 --Invoice Type Paid
72846 , p_source_112 IN VARCHAR2
72847 , p_source_112_meaning IN VARCHAR2
72848 --Cleared Exchange Date
72849 , p_source_114 IN DATE
72850 --Cleared Exchange Rate
72851 , p_source_115 IN NUMBER
72852 --Cleared Exchange Rate Type
72853 , p_source_116 IN VARCHAR2
72854 )
72855 IS
72856
72857 l_component_type VARCHAR2(80);
72858 l_component_code VARCHAR2(30);
72859 l_component_type_code VARCHAR2(1);
72860 l_component_appl_id INTEGER;
72861 l_amb_context_code VARCHAR2(30);
72862 l_entity_code VARCHAR2(30);
72863 l_event_class_code VARCHAR2(30);
72864 l_ae_header_id NUMBER;
72865 l_event_type_code VARCHAR2(30);
72866 l_line_definition_code VARCHAR2(30);
72867 l_line_definition_owner_code VARCHAR2(1);
72868 --
72869 -- adr variables
72870 l_segment VARCHAR2(30);
72871 l_ccid NUMBER;
72872 l_adr_transaction_coa_id NUMBER;
72873 l_adr_accounting_coa_id NUMBER;
72874 l_adr_flexfield_segment_code VARCHAR2(30);
72875 l_adr_flex_value_set_id NUMBER;
72876 l_adr_value_type_code VARCHAR2(30);
72877 l_adr_value_combination_id NUMBER;
72878 l_adr_value_segment_code VARCHAR2(30);
72879
72880 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72881 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72882 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72883 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72884
72885 -- 4262811 Variables ------------------------------------------------------------------------------------------
72886 l_entered_amt_idx NUMBER;
72887 l_accted_amt_idx NUMBER;
72888 l_acc_rev_flag VARCHAR2(1);
72889 l_accrual_line_num NUMBER;
72893 l_num_entries NUMBER;
72890 l_tmp_amt NUMBER;
72891 l_acc_rev_natural_side_code VARCHAR2(1);
72892
72894 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72895 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72896 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72897 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72898 l_recog_line_1 NUMBER;
72899 l_recog_line_2 NUMBER;
72900
72901 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72902 l_bflow_applied_to_amt NUMBER; -- 5132302
72903 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72904
72905 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72906
72907 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72908 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72909
72910 ---------------------------------------------------------------------------------------------------------------
72911
72912
72913 --
72914 -- bulk performance
72915 --
72916 l_balance_type_code VARCHAR2(1);
72917 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72918 l_log_module VARCHAR2(240);
72919
72920 --
72921 -- Upgrade strategy
72922 --
72923 l_actual_upg_option VARCHAR2(1);
72924 l_enc_upg_option VARCHAR2(1);
72925
72926 --
72927 BEGIN
72928 --
72929 IF g_log_enabled THEN
72930 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
72931 END IF;
72932 --
72933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72934
72935 trace
72936 (p_msg => 'BEGIN of AcctLineType_133'
72937 ,p_level => C_LEVEL_PROCEDURE
72938 ,p_module => l_log_module);
72939
72940 END IF;
72941 --
72942 l_component_type := 'AMB_JLT';
72943 l_component_code := 'AP_PREPAID_EXPENSE_CLEAR';
72944 l_component_type_code := 'S';
72945 l_component_appl_id := 200;
72946 l_amb_context_code := 'DEFAULT';
72947 l_entity_code := 'AP_PAYMENTS';
72948 l_event_class_code := 'RECONCILED PAYMENTS';
72949 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
72950 l_line_definition_owner_code := 'S';
72951 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
72952 --
72953 l_balance_type_code := 'A';
72954 l_segment := NULL;
72955 l_ccid := NULL;
72956 l_adr_transaction_coa_id := NULL;
72957 l_adr_accounting_coa_id := NULL;
72958 l_adr_flexfield_segment_code := NULL;
72959 l_adr_flex_value_set_id := NULL;
72960 l_adr_value_type_code := NULL;
72961 l_adr_value_combination_id := NULL;
72962 l_adr_value_segment_code := NULL;
72963
72964 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
72965 l_bflow_class_code := ''; -- 4219869 Business Flow
72966 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
72967 l_budgetary_control_flag := 'N';
72968
72969 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72970 l_bflow_applied_to_amt := NULL; -- 5132302
72971 l_entered_amt_idx := NULL; -- 4262811
72972 l_accted_amt_idx := NULL; -- 4262811
72973 l_acc_rev_flag := NULL; -- 4262811
72974 l_accrual_line_num := NULL; -- 4262811
72975 l_tmp_amt := NULL; -- 4262811
72976 --
72977
72978 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72979 l_balance_type_code <> 'B' THEN
72980 IF NVL(p_source_50,'
72981 ') = 'CLEAR_CLEAR' AND
72982 (NVL(p_source_32,'
72983 ') = 'ITEM' OR
72984 NVL(p_source_32,'
72985 ') = 'RETROEXPENSE') AND
72986 NVL(p_source_112,'
72987 ') = 'PREPAYMENT' AND
72988 (NVL(p_source_51,'
72989 ') = 'CASH' OR
72990 NVL(p_source_51,'
72991 ') = 'DISCOUNT') AND
72992 NVL(p_source_71,'
72993 ') <> 'R'
72994 THEN
72995
72996 --
72997 XLA_AE_LINES_PKG.SetNewLine;
72998
72999 p_balance_type_code := l_balance_type_code;
73000 -- set the flag so later we will know whether the gain loss line needs to be created
73001
73002 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73003 p_actual_flag :='A';
73004 END IF;
73005
73006 --
73007 -- bulk performance
73008 --
73009 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73010 p_header_num => 0); -- 4262811
73011 --
73012 -- set accounting line options
73013 --
73014 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73015 p_natural_side_code => 'D'
73016 , p_gain_or_loss_flag => 'N'
73017 , p_gl_transfer_mode_code => 'S'
73018 , p_acct_entry_type_code => 'A'
73019 , p_switch_side_flag => 'Y'
73020 , p_merge_duplicate_code => 'A'
73021 );
73022 --
73023 l_acc_rev_natural_side_code := 'C'; -- 4262811
73024 --
73025 --
73026 -- set accounting line type info
73027 --
73031 ,p_line_definition_owner_code => l_line_definition_owner_code
73028 xla_ae_lines_pkg.SetAcctLineType
73029 (p_component_type => l_component_type
73030 ,p_event_type_code => l_event_type_code
73032 ,p_line_definition_code => l_line_definition_code
73033 ,p_accounting_line_code => l_component_code
73034 ,p_accounting_line_type_code => l_component_type_code
73035 ,p_accounting_line_appl_id => l_component_appl_id
73036 ,p_amb_context_code => l_amb_context_code
73037 ,p_entity_code => l_entity_code
73038 ,p_event_class_code => l_event_class_code);
73039 --
73040 -- set accounting class
73041 --
73042 xla_ae_lines_pkg.SetAcctClass(
73043 p_accounting_class_code => 'PREPAID_EXPENSE'
73044 , p_ae_header_id => l_ae_header_id
73045 );
73046
73047 --
73048 -- set rounding class
73049 --
73050 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73051 'PREPAID_EXPENSE';
73052
73053 --
73054 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73055 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73056 --
73057 -- bulk performance
73058 --
73059 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73060
73061 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73062 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73063
73064 -- 4955764
73065 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73066 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73067
73068 -- 4458381 Public Sector Enh
73069
73070 --
73071 -- set accounting attributes for the line type
73072 --
73073 l_entered_amt_idx := 10;
73074 l_accted_amt_idx := 15;
73075 l_bflow_applied_to_amt_idx := 2; -- 5132302
73076 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73077 l_rec_acct_attrs.array_char_value(1) := p_source_52;
73078 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
73079 l_rec_acct_attrs.array_num_value(2) := p_source_53;
73080 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
73081 l_rec_acct_attrs.array_num_value(3) := p_source_54;
73082 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73083 l_rec_acct_attrs.array_char_value(4) := p_source_55;
73084 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
73085 l_rec_acct_attrs.array_char_value(5) := p_source_56;
73086 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
73087 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
73088 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73089 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
73090 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
73091 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
73092 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
73093 l_rec_acct_attrs.array_char_value(9) := p_source_60;
73094 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
73095 l_rec_acct_attrs.array_num_value(10) := p_source_53;
73096 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
73097 l_rec_acct_attrs.array_char_value(11) := p_source_12;
73098 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
73099 l_rec_acct_attrs.array_date_value(12) := p_source_114;
73100 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
73101 l_rec_acct_attrs.array_num_value(13) := p_source_115;
73102 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
73103 l_rec_acct_attrs.array_char_value(14) := p_source_116;
73104 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
73105 l_rec_acct_attrs.array_num_value(15) := p_source_22;
73106 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
73107 l_rec_acct_attrs.array_char_value(16) := p_source_64;
73108 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
73109 l_rec_acct_attrs.array_num_value(17) := p_source_65;
73110 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
73111 l_rec_acct_attrs.array_num_value(18) := p_source_66;
73112 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
73113 l_rec_acct_attrs.array_char_value(19) := p_source_67;
73114 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
73115 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
73116 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
73117 l_rec_acct_attrs.array_char_value(21) := p_source_60;
73118 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
73119 l_rec_acct_attrs.array_num_value(22) := p_source_69;
73120 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
73121 l_rec_acct_attrs.array_num_value(23) := p_source_69;
73122 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
73123 l_rec_acct_attrs.array_num_value(24) := p_source_70;
73124
73125 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73129 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73126 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73127
73128 ---------------------------------------------------------------------------------------------------------------
73130 ---------------------------------------------------------------------------------------------------------------
73131 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73132
73133 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73134 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73135
73136 IF xla_accounting_cache_pkg.GetValueChar
73137 (p_source_code => 'LEDGER_CATEGORY_CODE'
73138 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73139 AND l_bflow_method_code = 'PRIOR_ENTRY'
73140 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73141 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73142 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73143 )
73144 THEN
73145 xla_ae_lines_pkg.BflowUpgEntry
73146 (p_business_method_code => l_bflow_method_code
73147 ,p_business_class_code => l_bflow_class_code
73148 ,p_balance_type => l_balance_type_code);
73149 ELSE
73150 NULL;
73151 -- No business flow processing for business flow method of NONE.
73152 END IF;
73153
73154 --
73155 -- call analytical criteria
73156 --
73157
73158 --
73159 -- call description
73160 --
73161 -- No description or it is inherited.
73162 --
73163 -- call ADRs
73164 -- Bug 4922099
73165 --
73166 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73167 (NVL(l_actual_upg_option, 'N') = 'O') OR
73168 (NVL(l_enc_upg_option, 'N') = 'O')
73169 )
73170 THEN
73171 NULL;
73172 --
73173 --
73174
73175 l_ccid := AcctDerRule_28(
73176 p_application_id => p_application_id
73177 , p_ae_header_id => l_ae_header_id
73178 , p_source_29 => p_source_29
73179 , x_transaction_coa_id => l_adr_transaction_coa_id
73180 , x_accounting_coa_id => l_adr_accounting_coa_id
73181 , x_value_type_code => l_adr_value_type_code
73182 , p_side => 'NA'
73183 );
73184
73185 xla_ae_lines_pkg.set_ccid(
73186 p_code_combination_id => l_ccid
73187 , p_value_type_code => l_adr_value_type_code
73188 , p_transaction_coa_id => l_adr_transaction_coa_id
73189 , p_accounting_coa_id => l_adr_accounting_coa_id
73190 , p_adr_code => 'AP_INVOICE_DIST'
73191 , p_adr_type_code => 'S'
73192 , p_component_type => l_component_type
73193 , p_component_code => l_component_code
73194 , p_component_type_code => l_component_type_code
73195 , p_component_appl_id => l_component_appl_id
73196 , p_amb_context_code => l_amb_context_code
73197 , p_side => 'NA'
73198 );
73199
73200
73201 --
73202 --
73203 END IF;
73204 --
73205 -- Bug 4922099
73206 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73207 (NVL(l_enc_upg_option, 'N') = 'O')
73208 ) AND
73209 (l_bflow_method_code = 'PRIOR_ENTRY')
73210 )
73211 THEN
73212 IF
73213 --
73214 1 = 2
73215 --
73216 THEN
73217 xla_accounting_err_pkg.build_message
73218 (p_appli_s_name => 'XLA'
73219 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73220 ,p_token_1 => 'LINE_NUMBER'
73221 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73222 ,p_token_2 => 'LINE_TYPE_NAME'
73223 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73224 l_component_type
73225 ,l_component_code
73226 ,l_component_type_code
73227 ,l_component_appl_id
73228 ,l_amb_context_code
73229 ,l_entity_code
73230 ,l_event_class_code
73231 )
73232 ,p_token_3 => 'OWNER'
73233 ,p_value_3 => xla_lookups_pkg.get_meaning(
73234 p_lookup_type => 'XLA_OWNER_TYPE'
73238 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73235 ,p_lookup_code => l_component_type_code
73236 )
73237 ,p_token_4 => 'PRODUCT_NAME'
73239 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73240 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73241 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73242 ,p_ae_header_id => NULL
73243 );
73244
73245 IF (C_LEVEL_ERROR>= g_log_level) THEN
73246 trace
73247 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73248 ,p_level => C_LEVEL_ERROR
73249 ,p_module => l_log_module);
73250 END IF;
73251 END IF;
73252 END IF;
73253 --
73254 --
73255 ------------------------------------------------------------------------------------------------
73256 -- 4219869 Business Flow
73257 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73258 -- Prior Entry. Currently, the following code is always generated.
73259 ------------------------------------------------------------------------------------------------
73260 XLA_AE_LINES_PKG.ValidateCurrentLine;
73261
73262 ------------------------------------------------------------------------------------
73263 -- 4219869 Business Flow
73264 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73265 ------------------------------------------------------------------------------------
73266 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73267
73268 ----------------------------------------------------------------------------------
73269 -- 4219869 Business Flow
73270 -- Update journal entry status -- Need to generate this within IF <condition>
73271 ----------------------------------------------------------------------------------
73272 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73273 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73274 ,p_balance_type_code => l_balance_type_code
73275 );
73276
73277 -------------------------------------------------------------------------------------------
73278 -- 4262811 - Generate the Accrual Reversal lines
73279 -------------------------------------------------------------------------------------------
73280 BEGIN
73281 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73282 (g_array_event(p_event_id).array_value_num('header_index'));
73283 IF l_acc_rev_flag IS NULL THEN
73284 l_acc_rev_flag := 'N';
73285 END IF;
73286 EXCEPTION
73287 WHEN OTHERS THEN
73288 l_acc_rev_flag := 'N';
73289 END;
73290 --
73291 IF (l_acc_rev_flag = 'Y') THEN
73292
73293 -- 4645092 ------------------------------------------------------------------------------
73294 -- To allow MPA report to determine if it should generate report process
73295 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73296 ------------------------------------------------------------------------------------------
73297
73298 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73299 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73300 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
73301 -- call ADRs
73302 -- Bug 4922099
73303 --
73304 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73305 (NVL(l_actual_upg_option, 'N') = 'O') OR
73306 (NVL(l_enc_upg_option, 'N') = 'O')
73307 )
73308 THEN
73309 NULL;
73310 --
73311 --
73312
73313 l_ccid := AcctDerRule_28(
73314 p_application_id => p_application_id
73315 , p_ae_header_id => l_ae_header_id
73316 , p_source_29 => p_source_29
73317 , x_transaction_coa_id => l_adr_transaction_coa_id
73318 , x_accounting_coa_id => l_adr_accounting_coa_id
73319 , x_value_type_code => l_adr_value_type_code
73320 , p_side => 'NA'
73321 );
73322
73323 xla_ae_lines_pkg.set_ccid(
73324 p_code_combination_id => l_ccid
73325 , p_value_type_code => l_adr_value_type_code
73326 , p_transaction_coa_id => l_adr_transaction_coa_id
73327 , p_accounting_coa_id => l_adr_accounting_coa_id
73328 , p_adr_code => 'AP_INVOICE_DIST'
73329 , p_adr_type_code => 'S'
73330 , p_component_type => l_component_type
73331 , p_component_code => l_component_code
73332 , p_component_type_code => l_component_type_code
73333 , p_component_appl_id => l_component_appl_id
73334 , p_amb_context_code => l_amb_context_code
73335 , p_side => 'NA'
73336 );
73337
73338
73339 --
73340 --
73341 END IF;
73342
73343 --
73347 p_header_num => 1);
73344 -- Update the line information that should be overwritten
73345 --
73346 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73348 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73349
73350 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73351
73352 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73353 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73354 END IF;
73355
73356 --
73357 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73358 --
73359 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73360 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73361 ELSE
73362 ---------------------------------------------------------------------------------------------------
73363 -- 4262811a Switch Sign
73364 ---------------------------------------------------------------------------------------------------
73365 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
73366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73368 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73369 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73370 -- 5132302
73371 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73372 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73373
73374 END IF;
73375
73376 -- 4955764
73377 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73378 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73379
73380
73381 XLA_AE_LINES_PKG.ValidateCurrentLine;
73382 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73383
73384 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73385 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73386 ,p_balance_type_code => l_balance_type_code);
73387
73388 END IF;
73389
73390 -----------------------------------------------------------------------------------------
73391 -- 4262811 Multiperiod Accounting
73392 -----------------------------------------------------------------------------------------
73393 -- No MPA option is assigned.
73394
73395
73396 END IF;
73397 END IF;
73398 --
73399
73400 --
73401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73402 trace
73403 (p_msg => 'END of AcctLineType_133'
73404 ,p_level => C_LEVEL_PROCEDURE
73405 ,p_module => l_log_module);
73406 END IF;
73407 --
73408 EXCEPTION
73409 WHEN xla_exceptions_pkg.application_exception THEN
73410 RAISE;
73411 WHEN OTHERS THEN
73412 xla_exceptions_pkg.raise_message
73413 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_133');
73414 END AcctLineType_133;
73415 --
73416
73417 ---------------------------------------
73418 --
73419 -- PRIVATE FUNCTION
73420 -- AcctLineType_134
73421 --
73422 ---------------------------------------
73423 PROCEDURE AcctLineType_134 (
73424 p_application_id IN NUMBER
73425 ,p_event_id IN NUMBER
73426 ,p_calculate_acctd_flag IN VARCHAR2
73427 ,p_calculate_g_l_flag IN VARCHAR2
73428 ,p_actual_flag IN OUT VARCHAR2
73429 ,p_balance_type_code OUT VARCHAR2
73430 ,p_gain_or_loss_ref OUT VARCHAR2
73431
73432 --When to Account for Payment Option
73433 , p_source_50 IN VARCHAR2
73434 --Accounting Reversal Indicator
73435 , p_source_52 IN VARCHAR2
73436 --Business Flow Accounts Payable Application Identifier
73437 , p_source_54 IN NUMBER
73438 --Distribution Link Type
73439 , p_source_60 IN VARCHAR2
73440 --Override Accounted Amount Indicator
73441 , p_source_64 IN VARCHAR2
73442 , p_source_64_meaning IN VARCHAR2
73443 --Third Party Type
73444 , p_source_67 IN VARCHAR2
73445 --Invoice Distribution Tax Line Identifier
73446 , p_source_69 IN NUMBER
73447 --Invoice Distribution Summary Tax Line Identifier
73448 , p_source_70 IN NUMBER
73449 --Invoice Distribution Tax Distribution Identifier from Tax
73450 , p_source_77 IN NUMBER
73451 --Prepayment Distribution Type
73452 , p_source_78 IN VARCHAR2
73453 --Prepayment Application Distribution Identifier
73454 , p_source_82 IN NUMBER
73455 --Invoice Identifier
73456 , p_source_83 IN NUMBER
73457 --Upgrade Encumbrance Credit Account Class
73458 , p_source_88 IN VARCHAR2
73459 --Payables Encumbrance Upgrade Credit Account
73460 , p_source_89 IN NUMBER
73461 --Payables Encumbrance Upgrade Credit Amount
73462 , p_source_90 IN NUMBER
73463 --Invoice Currency Code
73464 , p_source_91 IN VARCHAR2
73468 , p_source_93 IN VARCHAR2
73465 --Payables Encumbrance Upgrade Credit Base Amount
73466 , p_source_92 IN NUMBER
73467 --Upgrade Encumbrance Debit Account Class
73469 --Payables Encumbrance Upgrade Debit Account
73470 , p_source_94 IN NUMBER
73471 --Payables Encumbrance Upgrade Debit Amount
73472 , p_source_95 IN NUMBER
73473 --Payables Encumbrance Upgrade Debit Base Amount
73474 , p_source_96 IN NUMBER
73475 --Payables Encumbrance Upgrade Option
73476 , p_source_97 IN VARCHAR2
73477 --Prepayment Distribution Amount
73478 , p_source_98 IN NUMBER
73479 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
73480 , p_source_100 IN NUMBER
73481 --Deferred Accounting End Date
73482 , p_source_101 IN DATE
73483 --Deferred Accounting Option
73484 , p_source_102 IN VARCHAR2
73485 --Deferred Accounting Start Date
73486 , p_source_103 IN DATE
73487 --Identifier of the Prepayment Application Reversed
73488 , p_source_106 IN NUMBER
73489 --Payables Upgrade Credit Encumbrance Type Identifier
73490 , p_source_107 IN NUMBER
73491 --Payables Upgrade Debit Encumbrance Type Identifier
73492 , p_source_108 IN NUMBER
73493 --Business Flow Prepayment Clearing Distribution Type
73494 , p_source_141 IN VARCHAR2
73495 --Business Flow Cash Basis Clearing Only Prepayment Entity Code
73496 , p_source_142 IN VARCHAR2
73497 --Business Flow Prepay Payment Clearing Distribution Id
73498 , p_source_143 IN NUMBER
73499 --Business Flow Prepay Payment Id
73500 , p_source_144 IN NUMBER
73501 )
73502 IS
73503
73504 l_component_type VARCHAR2(80);
73505 l_component_code VARCHAR2(30);
73506 l_component_type_code VARCHAR2(1);
73507 l_component_appl_id INTEGER;
73508 l_amb_context_code VARCHAR2(30);
73509 l_entity_code VARCHAR2(30);
73510 l_event_class_code VARCHAR2(30);
73511 l_ae_header_id NUMBER;
73512 l_event_type_code VARCHAR2(30);
73513 l_line_definition_code VARCHAR2(30);
73514 l_line_definition_owner_code VARCHAR2(1);
73515 --
73516 -- adr variables
73517 l_segment VARCHAR2(30);
73518 l_ccid NUMBER;
73519 l_adr_transaction_coa_id NUMBER;
73520 l_adr_accounting_coa_id NUMBER;
73521 l_adr_flexfield_segment_code VARCHAR2(30);
73522 l_adr_flex_value_set_id NUMBER;
73523 l_adr_value_type_code VARCHAR2(30);
73524 l_adr_value_combination_id NUMBER;
73525 l_adr_value_segment_code VARCHAR2(30);
73526
73527 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
73528 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
73529 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
73530 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
73531
73532 -- 4262811 Variables ------------------------------------------------------------------------------------------
73533 l_entered_amt_idx NUMBER;
73534 l_accted_amt_idx NUMBER;
73535 l_acc_rev_flag VARCHAR2(1);
73536 l_accrual_line_num NUMBER;
73537 l_tmp_amt NUMBER;
73538 l_acc_rev_natural_side_code VARCHAR2(1);
73539
73540 l_num_entries NUMBER;
73541 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
73542 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
73543 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
73544 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
73545 l_recog_line_1 NUMBER;
73546 l_recog_line_2 NUMBER;
73547
73548 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
73549 l_bflow_applied_to_amt NUMBER; -- 5132302
73550 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
73551
73552 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73553
73554 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
73555 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
73556
73557 ---------------------------------------------------------------------------------------------------------------
73558
73559
73560 --
73561 -- bulk performance
73562 --
73563 l_balance_type_code VARCHAR2(1);
73564 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73565 l_log_module VARCHAR2(240);
73566
73567 --
73568 -- Upgrade strategy
73569 --
73570 l_actual_upg_option VARCHAR2(1);
73571 l_enc_upg_option VARCHAR2(1);
73572
73573 --
73574 BEGIN
73575 --
73576 IF g_log_enabled THEN
73577 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
73578 END IF;
73579 --
73580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73581
73582 trace
73583 (p_msg => 'BEGIN of AcctLineType_134'
73584 ,p_level => C_LEVEL_PROCEDURE
73585 ,p_module => l_log_module);
73586
73587 END IF;
73588 --
73589 l_component_type := 'AMB_JLT';
73590 l_component_code := 'AP_PREPAID_EXP_CASH_CLR_XRATE';
73591 l_component_type_code := 'S';
73592 l_component_appl_id := 200;
73593 l_amb_context_code := 'DEFAULT';
73597 l_line_definition_owner_code := 'S';
73594 l_entity_code := 'AP_INVOICES';
73595 l_event_class_code := 'PREPAYMENT APPLICATIONS';
73596 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
73598 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
73599 --
73600 l_balance_type_code := 'A';
73601 l_segment := NULL;
73602 l_ccid := NULL;
73603 l_adr_transaction_coa_id := NULL;
73604 l_adr_accounting_coa_id := NULL;
73605 l_adr_flexfield_segment_code := NULL;
73606 l_adr_flex_value_set_id := NULL;
73607 l_adr_value_type_code := NULL;
73608 l_adr_value_combination_id := NULL;
73609 l_adr_value_segment_code := NULL;
73610
73611 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
73612 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
73613 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
73614 l_budgetary_control_flag := 'N';
73615
73616 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73617 l_bflow_applied_to_amt := NULL; -- 5132302
73618 l_entered_amt_idx := NULL; -- 4262811
73619 l_accted_amt_idx := NULL; -- 4262811
73620 l_acc_rev_flag := NULL; -- 4262811
73621 l_accrual_line_num := NULL; -- 4262811
73622 l_tmp_amt := NULL; -- 4262811
73623 --
73624
73625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73626 l_balance_type_code <> 'B' THEN
73627 IF NVL(p_source_50,'
73628 ') = 'CLEAR_CLEAR' AND
73629 (NVL(p_source_78,'
73630 ') = 'PREPAY APPL' OR
73631 NVL(p_source_78,'
73632 ') = 'PREPAY APPL NONREC TAX' OR
73633 NVL(p_source_78,'
73634 ') = 'PREPAY APPL REC TAX' OR
73635 NVL(p_source_78,'
73636 ') = 'TAX DIFF' OR
73637 NVL(p_source_78,'
73638 ') = 'FINAL APPLICATION ROUNDING')
73639 THEN
73640
73641 --
73642 XLA_AE_LINES_PKG.SetNewLine;
73643
73644 p_balance_type_code := l_balance_type_code;
73645 -- set the flag so later we will know whether the gain loss line needs to be created
73646
73647 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73648 p_actual_flag :='A';
73649 END IF;
73650
73651 --
73652 -- bulk performance
73653 --
73654 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73655 p_header_num => 0); -- 4262811
73656 --
73657 -- set accounting line options
73658 --
73659 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73660 p_natural_side_code => 'D'
73661 , p_gain_or_loss_flag => 'N'
73662 , p_gl_transfer_mode_code => 'S'
73663 , p_acct_entry_type_code => 'A'
73664 , p_switch_side_flag => 'Y'
73665 , p_merge_duplicate_code => 'A'
73666 );
73667 --
73668 l_acc_rev_natural_side_code := 'C'; -- 4262811
73669 --
73670 --
73671 -- set accounting line type info
73672 --
73673 xla_ae_lines_pkg.SetAcctLineType
73674 (p_component_type => l_component_type
73675 ,p_event_type_code => l_event_type_code
73676 ,p_line_definition_owner_code => l_line_definition_owner_code
73677 ,p_line_definition_code => l_line_definition_code
73678 ,p_accounting_line_code => l_component_code
73679 ,p_accounting_line_type_code => l_component_type_code
73680 ,p_accounting_line_appl_id => l_component_appl_id
73681 ,p_amb_context_code => l_amb_context_code
73682 ,p_entity_code => l_entity_code
73683 ,p_event_class_code => l_event_class_code);
73684 --
73685 -- set accounting class
73686 --
73687 xla_ae_lines_pkg.SetAcctClass(
73688 p_accounting_class_code => 'PREPAID_EXPENSE'
73689 , p_ae_header_id => l_ae_header_id
73690 );
73691
73692 --
73693 -- set rounding class
73694 --
73695 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73696 'PREPAID_EXPENSE';
73697
73698 --
73699 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73700 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73701 --
73702 -- bulk performance
73703 --
73704 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73705
73706 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73707 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73708
73709 -- 4955764
73710 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73711 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73712
73713 -- 4458381 Public Sector Enh
73714
73715 --
73716 -- set accounting attributes for the line type
73717 --
73718 l_entered_amt_idx := 25;
73719 l_accted_amt_idx := 27;
73720 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73721 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73722 l_rec_acct_attrs.array_char_value(1) := p_source_52;
73726 p_source_code => 'XLA_EVENT_APPL_ID'
73723 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
73724 l_rec_acct_attrs.array_num_value(2) :=
73725 xla_ae_sources_pkg.GetSystemSourceNum(
73727 , p_source_type_code => 'Y'
73728 , p_source_application_id => 602
73729 );
73730 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
73731 l_rec_acct_attrs.array_char_value(3) := p_source_60;
73732 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
73733 l_rec_acct_attrs.array_char_value(4) :=
73734 xla_ae_sources_pkg.GetSystemSourceChar(
73735 p_source_code => 'XLA_ENTITY_CODE'
73736 , p_source_type_code => 'Y'
73737 , p_source_application_id => 602
73738 );
73739 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
73740 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
73741 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
73742 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
73743 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
73744 l_rec_acct_attrs.array_num_value(7) := p_source_54;
73745 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73746 l_rec_acct_attrs.array_char_value(8) := p_source_141;
73747 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
73748 l_rec_acct_attrs.array_char_value(9) := p_source_142;
73749 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
73750 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_143);
73751 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73752 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_144);
73753 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
73754 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
73755 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
73756 l_rec_acct_attrs.array_char_value(13) := p_source_60;
73757 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
73758 l_rec_acct_attrs.array_char_value(14) := p_source_88;
73759 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
73760 l_rec_acct_attrs.array_num_value(15) := p_source_89;
73761 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
73762 l_rec_acct_attrs.array_num_value(16) := p_source_90;
73763 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
73764 l_rec_acct_attrs.array_char_value(17) := p_source_91;
73765 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
73766 l_rec_acct_attrs.array_num_value(18) := p_source_92;
73767 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
73768 l_rec_acct_attrs.array_char_value(19) := p_source_93;
73769 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
73770 l_rec_acct_attrs.array_num_value(20) := p_source_94;
73771 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
73772 l_rec_acct_attrs.array_num_value(21) := p_source_95;
73773 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
73774 l_rec_acct_attrs.array_char_value(22) := p_source_91;
73775 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
73776 l_rec_acct_attrs.array_num_value(23) := p_source_96;
73777 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
73778 l_rec_acct_attrs.array_char_value(24) := p_source_97;
73779 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
73780 l_rec_acct_attrs.array_num_value(25) := p_source_98;
73781 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
73782 l_rec_acct_attrs.array_char_value(26) := p_source_91;
73783 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
73784 l_rec_acct_attrs.array_num_value(27) := p_source_100;
73785 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
73786 l_rec_acct_attrs.array_date_value(28) := p_source_101;
73787 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
73788 l_rec_acct_attrs.array_char_value(29) := p_source_102;
73789 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
73790 l_rec_acct_attrs.array_date_value(30) := p_source_103;
73791 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
73792 l_rec_acct_attrs.array_char_value(31) := p_source_64;
73793 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
73794 l_rec_acct_attrs.array_char_value(32) := p_source_67;
73795 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
73796 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
73797 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
73798 l_rec_acct_attrs.array_char_value(34) := p_source_60;
73799 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
73800 l_rec_acct_attrs.array_num_value(35) := p_source_69;
73801 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
73802 l_rec_acct_attrs.array_num_value(36) := p_source_77;
73803 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
73804 l_rec_acct_attrs.array_num_value(37) := p_source_70;
73805 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
73806 l_rec_acct_attrs.array_num_value(38) := p_source_107;
73807 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
73808 l_rec_acct_attrs.array_num_value(39) := p_source_108;
73809
73813 ---------------------------------------------------------------------------------------------------------------
73810 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73811 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73812
73814 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73815 ---------------------------------------------------------------------------------------------------------------
73816 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73817
73818 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73819 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73820
73821 IF xla_accounting_cache_pkg.GetValueChar
73822 (p_source_code => 'LEDGER_CATEGORY_CODE'
73823 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73824 AND l_bflow_method_code = 'PRIOR_ENTRY'
73825 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73826 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73827 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73828 )
73829 THEN
73830 xla_ae_lines_pkg.BflowUpgEntry
73831 (p_business_method_code => l_bflow_method_code
73832 ,p_business_class_code => l_bflow_class_code
73833 ,p_balance_type => l_balance_type_code);
73834 ELSE
73835 NULL;
73836 XLA_AE_LINES_PKG.business_flow_validation(
73837 p_business_method_code => l_bflow_method_code
73838 ,p_business_class_code => l_bflow_class_code
73839 ,p_inherit_description_flag => l_inherit_desc_flag);
73840 END IF;
73841
73842 --
73843 -- call analytical criteria
73844 --
73845 -- Inherited Analytical Criteria for business flow method of Prior Entry.
73846 --
73847 -- call description
73848 --
73849 -- No description or it is inherited.
73850 --
73851 -- call ADRs
73852 -- Bug 4922099
73853 --
73854 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73855 (NVL(l_actual_upg_option, 'N') = 'O') OR
73856 (NVL(l_enc_upg_option, 'N') = 'O')
73857 )
73858 THEN
73859 NULL;
73860 --
73861 --
73862
73863 --
73864 --
73865 END IF;
73866 --
73867 -- Bug 4922099
73868 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73869 (NVL(l_enc_upg_option, 'N') = 'O')
73870 ) AND
73871 (l_bflow_method_code = 'PRIOR_ENTRY')
73872 )
73873 THEN
73874 IF
73875 --
73876 1 = 1
73877 --
73878 THEN
73879 xla_accounting_err_pkg.build_message
73880 (p_appli_s_name => 'XLA'
73881 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73882 ,p_token_1 => 'LINE_NUMBER'
73883 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73884 ,p_token_2 => 'LINE_TYPE_NAME'
73885 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73886 l_component_type
73887 ,l_component_code
73888 ,l_component_type_code
73889 ,l_component_appl_id
73890 ,l_amb_context_code
73891 ,l_entity_code
73892 ,l_event_class_code
73893 )
73894 ,p_token_3 => 'OWNER'
73895 ,p_value_3 => xla_lookups_pkg.get_meaning(
73896 p_lookup_type => 'XLA_OWNER_TYPE'
73897 ,p_lookup_code => l_component_type_code
73898 )
73899 ,p_token_4 => 'PRODUCT_NAME'
73900 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73901 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73902 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73903 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73904 ,p_ae_header_id => NULL
73905 );
73906
73907 IF (C_LEVEL_ERROR>= g_log_level) THEN
73908 trace
73909 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73913 END IF;
73910 ,p_level => C_LEVEL_ERROR
73911 ,p_module => l_log_module);
73912 END IF;
73914 END IF;
73915 --
73916 --
73917 ------------------------------------------------------------------------------------------------
73918 -- 4219869 Business Flow
73919 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73920 -- Prior Entry. Currently, the following code is always generated.
73921 ------------------------------------------------------------------------------------------------
73922 -- No ValidateCurrentLine for business flow method of Prior Entry
73923
73924 ------------------------------------------------------------------------------------
73925 -- 4219869 Business Flow
73926 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73927 ------------------------------------------------------------------------------------
73928 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73929
73930 ----------------------------------------------------------------------------------
73931 -- 4219869 Business Flow
73932 -- Update journal entry status -- Need to generate this within IF <condition>
73933 ----------------------------------------------------------------------------------
73934 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73935 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73936 ,p_balance_type_code => l_balance_type_code
73937 );
73938
73939 -------------------------------------------------------------------------------------------
73940 -- 4262811 - Generate the Accrual Reversal lines
73941 -------------------------------------------------------------------------------------------
73942 BEGIN
73943 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73944 (g_array_event(p_event_id).array_value_num('header_index'));
73945 IF l_acc_rev_flag IS NULL THEN
73946 l_acc_rev_flag := 'N';
73947 END IF;
73948 EXCEPTION
73949 WHEN OTHERS THEN
73950 l_acc_rev_flag := 'N';
73951 END;
73952 --
73953 IF (l_acc_rev_flag = 'Y') THEN
73954
73955 -- 4645092 ------------------------------------------------------------------------------
73956 -- To allow MPA report to determine if it should generate report process
73957 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73958 ------------------------------------------------------------------------------------------
73959
73960 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73961 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73962 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
73963 -- call ADRs
73964 -- Bug 4922099
73965 --
73966 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73967 (NVL(l_actual_upg_option, 'N') = 'O') OR
73968 (NVL(l_enc_upg_option, 'N') = 'O')
73969 )
73970 THEN
73971 NULL;
73972 --
73973 --
73974
73975 --
73976 --
73977 END IF;
73978
73979 --
73980 -- Update the line information that should be overwritten
73981 --
73982 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73983 p_header_num => 1);
73984 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73985
73986 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73987
73988 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73989 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73990 END IF;
73991
73992 --
73993 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73994 --
73995 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73996 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73997 ELSE
73998 ---------------------------------------------------------------------------------------------------
73999 -- 4262811a Switch Sign
74000 ---------------------------------------------------------------------------------------------------
74001 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
74002 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74003 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74004 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74005 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74006 -- 5132302
74007 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74008 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74009
74010 END IF;
74011
74012 -- 4955764
74013 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74017 XLA_AE_LINES_PKG.ValidateCurrentLine;
74014 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74015
74016
74018 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74019
74020 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74021 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74022 ,p_balance_type_code => l_balance_type_code);
74023
74024 END IF;
74025
74026 -----------------------------------------------------------------------------------------
74027 -- 4262811 Multiperiod Accounting
74028 -----------------------------------------------------------------------------------------
74029 -- No MPA option is assigned.
74030
74031
74032 END IF;
74033 END IF;
74034 --
74035
74036 --
74037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74038 trace
74039 (p_msg => 'END of AcctLineType_134'
74040 ,p_level => C_LEVEL_PROCEDURE
74041 ,p_module => l_log_module);
74042 END IF;
74043 --
74044 EXCEPTION
74045 WHEN xla_exceptions_pkg.application_exception THEN
74046 RAISE;
74047 WHEN OTHERS THEN
74048 xla_exceptions_pkg.raise_message
74049 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_134');
74050 END AcctLineType_134;
74051 --
74052
74053 ---------------------------------------
74054 --
74055 -- PRIVATE FUNCTION
74056 -- AcctLineType_135
74057 --
74058 ---------------------------------------
74059 PROCEDURE AcctLineType_135 (
74060 p_application_id IN NUMBER
74061 ,p_event_id IN NUMBER
74062 ,p_calculate_acctd_flag IN VARCHAR2
74063 ,p_calculate_g_l_flag IN VARCHAR2
74064 ,p_actual_flag IN OUT VARCHAR2
74065 ,p_balance_type_code OUT VARCHAR2
74066 ,p_gain_or_loss_ref OUT VARCHAR2
74067
74068 --When to Account for Payment Option
74069 , p_source_50 IN VARCHAR2
74070 --Accounting Reversal Indicator
74071 , p_source_52 IN VARCHAR2
74072 --Business Flow Accounts Payable Application Identifier
74073 , p_source_54 IN NUMBER
74074 --Distribution Link Type
74075 , p_source_60 IN VARCHAR2
74076 --Override Accounted Amount Indicator
74077 , p_source_64 IN VARCHAR2
74078 , p_source_64_meaning IN VARCHAR2
74079 --Third Party Type
74080 , p_source_67 IN VARCHAR2
74081 --Invoice Distribution Tax Line Identifier
74082 , p_source_69 IN NUMBER
74083 --Invoice Distribution Summary Tax Line Identifier
74084 , p_source_70 IN NUMBER
74085 --Invoice Distribution Tax Distribution Identifier from Tax
74086 , p_source_77 IN NUMBER
74087 --Prepayment Distribution Type
74088 , p_source_78 IN VARCHAR2
74089 --Prepayment Application Distribution Identifier
74090 , p_source_82 IN NUMBER
74091 --Invoice Identifier
74092 , p_source_83 IN NUMBER
74093 --Upgrade Encumbrance Credit Account Class
74094 , p_source_88 IN VARCHAR2
74095 --Payables Encumbrance Upgrade Credit Account
74096 , p_source_89 IN NUMBER
74097 --Payables Encumbrance Upgrade Credit Amount
74098 , p_source_90 IN NUMBER
74099 --Invoice Currency Code
74100 , p_source_91 IN VARCHAR2
74101 --Payables Encumbrance Upgrade Credit Base Amount
74102 , p_source_92 IN NUMBER
74103 --Upgrade Encumbrance Debit Account Class
74104 , p_source_93 IN VARCHAR2
74105 --Payables Encumbrance Upgrade Debit Account
74106 , p_source_94 IN NUMBER
74107 --Payables Encumbrance Upgrade Debit Amount
74108 , p_source_95 IN NUMBER
74109 --Payables Encumbrance Upgrade Debit Base Amount
74110 , p_source_96 IN NUMBER
74111 --Payables Encumbrance Upgrade Option
74112 , p_source_97 IN VARCHAR2
74113 --Prepayment Distribution Amount
74114 , p_source_98 IN NUMBER
74115 --Deferred Accounting End Date
74116 , p_source_101 IN DATE
74117 --Deferred Accounting Option
74118 , p_source_102 IN VARCHAR2
74119 --Deferred Accounting Start Date
74120 , p_source_103 IN DATE
74121 --Identifier of the Prepayment Application Reversed
74122 , p_source_106 IN NUMBER
74123 --Payables Upgrade Credit Encumbrance Type Identifier
74124 , p_source_107 IN NUMBER
74125 --Payables Upgrade Debit Encumbrance Type Identifier
74126 , p_source_108 IN NUMBER
74127 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
74128 , p_source_110 IN NUMBER
74129 --Business Flow Prepay Payment Id
74130 , p_source_144 IN NUMBER
74131 --Business Flow Prepayment Payment Distribution Type
74132 , p_source_145 IN VARCHAR2
74133 --Business Flow Cash Basis Prepayment Entity Code
74134 , p_source_146 IN VARCHAR2
74135 --Business Flow Prepay Payment Distribution Id
74136 , p_source_147 IN NUMBER
74137 )
74138 IS
74139
74140 l_component_type VARCHAR2(80);
74141 l_component_code VARCHAR2(30);
74142 l_component_type_code VARCHAR2(1);
74143 l_component_appl_id INTEGER;
74144 l_amb_context_code VARCHAR2(30);
74145 l_entity_code VARCHAR2(30);
74146 l_event_class_code VARCHAR2(30);
74147 l_ae_header_id NUMBER;
74148 l_event_type_code VARCHAR2(30);
74149 l_line_definition_code VARCHAR2(30);
74153 l_segment VARCHAR2(30);
74150 l_line_definition_owner_code VARCHAR2(1);
74151 --
74152 -- adr variables
74154 l_ccid NUMBER;
74155 l_adr_transaction_coa_id NUMBER;
74156 l_adr_accounting_coa_id NUMBER;
74157 l_adr_flexfield_segment_code VARCHAR2(30);
74158 l_adr_flex_value_set_id NUMBER;
74159 l_adr_value_type_code VARCHAR2(30);
74160 l_adr_value_combination_id NUMBER;
74161 l_adr_value_segment_code VARCHAR2(30);
74162
74163 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
74164 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
74165 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
74166 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
74167
74168 -- 4262811 Variables ------------------------------------------------------------------------------------------
74169 l_entered_amt_idx NUMBER;
74170 l_accted_amt_idx NUMBER;
74171 l_acc_rev_flag VARCHAR2(1);
74172 l_accrual_line_num NUMBER;
74173 l_tmp_amt NUMBER;
74174 l_acc_rev_natural_side_code VARCHAR2(1);
74175
74176 l_num_entries NUMBER;
74177 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
74178 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
74179 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
74180 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
74181 l_recog_line_1 NUMBER;
74182 l_recog_line_2 NUMBER;
74183
74184 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
74185 l_bflow_applied_to_amt NUMBER; -- 5132302
74186 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
74187
74188 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74189
74190 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
74191 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
74192
74193 ---------------------------------------------------------------------------------------------------------------
74194
74195
74196 --
74197 -- bulk performance
74198 --
74199 l_balance_type_code VARCHAR2(1);
74200 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74201 l_log_module VARCHAR2(240);
74202
74203 --
74204 -- Upgrade strategy
74205 --
74206 l_actual_upg_option VARCHAR2(1);
74207 l_enc_upg_option VARCHAR2(1);
74208
74209 --
74210 BEGIN
74211 --
74212 IF g_log_enabled THEN
74213 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
74214 END IF;
74215 --
74216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74217
74218 trace
74219 (p_msg => 'BEGIN of AcctLineType_135'
74220 ,p_level => C_LEVEL_PROCEDURE
74221 ,p_module => l_log_module);
74222
74223 END IF;
74224 --
74225 l_component_type := 'AMB_JLT';
74226 l_component_code := 'AP_PREPAID_EXP_CASH_PAY_XRATE';
74227 l_component_type_code := 'S';
74228 l_component_appl_id := 200;
74229 l_amb_context_code := 'DEFAULT';
74230 l_entity_code := 'AP_INVOICES';
74231 l_event_class_code := 'PREPAYMENT APPLICATIONS';
74232 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
74233 l_line_definition_owner_code := 'S';
74234 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
74235 --
74236 l_balance_type_code := 'A';
74237 l_segment := NULL;
74238 l_ccid := NULL;
74239 l_adr_transaction_coa_id := NULL;
74240 l_adr_accounting_coa_id := NULL;
74241 l_adr_flexfield_segment_code := NULL;
74242 l_adr_flex_value_set_id := NULL;
74243 l_adr_value_type_code := NULL;
74244 l_adr_value_combination_id := NULL;
74245 l_adr_value_segment_code := NULL;
74246
74247 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
74248 l_bflow_class_code := 'AP_PREPAY'; -- 4219869 Business Flow
74249 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
74250 l_budgetary_control_flag := 'N';
74251
74252 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74253 l_bflow_applied_to_amt := NULL; -- 5132302
74254 l_entered_amt_idx := NULL; -- 4262811
74255 l_accted_amt_idx := NULL; -- 4262811
74256 l_acc_rev_flag := NULL; -- 4262811
74257 l_accrual_line_num := NULL; -- 4262811
74258 l_tmp_amt := NULL; -- 4262811
74259 --
74260
74261 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74262 l_balance_type_code <> 'B' THEN
74263 IF NVL(p_source_50,'
74264 ') <> 'CLEAR_CLEAR' AND
74265 (NVL(p_source_78,'
74266 ') = 'PREPAY APPL' OR
74267 NVL(p_source_78,'
74268 ') = 'PREPAY APPL NONREC TAX' OR
74269 NVL(p_source_78,'
74270 ') = 'PREPAY APPL REC TAX' OR
74271 NVL(p_source_78,'
74272 ') = 'TAX DIFF' OR
74273 NVL(p_source_78,'
74274 ') = 'FINAL APPLICATION ROUNDING')
74275 THEN
74276
74277 --
74278 XLA_AE_LINES_PKG.SetNewLine;
74279
74283 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74280 p_balance_type_code := l_balance_type_code;
74281 -- set the flag so later we will know whether the gain loss line needs to be created
74282
74284 p_actual_flag :='A';
74285 END IF;
74286
74287 --
74288 -- bulk performance
74289 --
74290 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74291 p_header_num => 0); -- 4262811
74292 --
74293 -- set accounting line options
74294 --
74295 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74296 p_natural_side_code => 'D'
74297 , p_gain_or_loss_flag => 'N'
74298 , p_gl_transfer_mode_code => 'S'
74299 , p_acct_entry_type_code => 'A'
74300 , p_switch_side_flag => 'Y'
74301 , p_merge_duplicate_code => 'A'
74302 );
74303 --
74304 l_acc_rev_natural_side_code := 'C'; -- 4262811
74305 --
74306 --
74307 -- set accounting line type info
74308 --
74309 xla_ae_lines_pkg.SetAcctLineType
74310 (p_component_type => l_component_type
74311 ,p_event_type_code => l_event_type_code
74312 ,p_line_definition_owner_code => l_line_definition_owner_code
74313 ,p_line_definition_code => l_line_definition_code
74314 ,p_accounting_line_code => l_component_code
74315 ,p_accounting_line_type_code => l_component_type_code
74316 ,p_accounting_line_appl_id => l_component_appl_id
74317 ,p_amb_context_code => l_amb_context_code
74318 ,p_entity_code => l_entity_code
74319 ,p_event_class_code => l_event_class_code);
74320 --
74321 -- set accounting class
74322 --
74323 xla_ae_lines_pkg.SetAcctClass(
74324 p_accounting_class_code => 'PREPAID_EXPENSE'
74325 , p_ae_header_id => l_ae_header_id
74326 );
74327
74328 --
74329 -- set rounding class
74330 --
74331 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74332 'PREPAID_EXPENSE';
74333
74334 --
74335 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74336 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74337 --
74338 -- bulk performance
74339 --
74340 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74341
74342 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74343 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74344
74345 -- 4955764
74346 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74347 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74348
74349 -- 4458381 Public Sector Enh
74350
74351 --
74352 -- set accounting attributes for the line type
74353 --
74354 l_entered_amt_idx := 25;
74355 l_accted_amt_idx := 27;
74356 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74357 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74358 l_rec_acct_attrs.array_char_value(1) := p_source_52;
74359 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
74360 l_rec_acct_attrs.array_num_value(2) :=
74361 xla_ae_sources_pkg.GetSystemSourceNum(
74362 p_source_code => 'XLA_EVENT_APPL_ID'
74363 , p_source_type_code => 'Y'
74364 , p_source_application_id => 602
74365 );
74366 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
74367 l_rec_acct_attrs.array_char_value(3) := p_source_60;
74368 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
74369 l_rec_acct_attrs.array_char_value(4) :=
74370 xla_ae_sources_pkg.GetSystemSourceChar(
74371 p_source_code => 'XLA_ENTITY_CODE'
74372 , p_source_type_code => 'Y'
74373 , p_source_application_id => 602
74374 );
74375 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
74376 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
74377 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
74378 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
74379 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
74380 l_rec_acct_attrs.array_num_value(7) := p_source_54;
74381 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74382 l_rec_acct_attrs.array_char_value(8) := p_source_145;
74383 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
74384 l_rec_acct_attrs.array_char_value(9) := p_source_146;
74385 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
74386 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_147);
74387 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74388 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_144);
74389 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
74390 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
74391 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
74392 l_rec_acct_attrs.array_char_value(13) := p_source_60;
74396 l_rec_acct_attrs.array_num_value(15) := p_source_89;
74393 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
74394 l_rec_acct_attrs.array_char_value(14) := p_source_88;
74395 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
74397 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
74398 l_rec_acct_attrs.array_num_value(16) := p_source_90;
74399 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
74400 l_rec_acct_attrs.array_char_value(17) := p_source_91;
74401 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
74402 l_rec_acct_attrs.array_num_value(18) := p_source_92;
74403 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
74404 l_rec_acct_attrs.array_char_value(19) := p_source_93;
74405 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
74406 l_rec_acct_attrs.array_num_value(20) := p_source_94;
74407 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
74408 l_rec_acct_attrs.array_num_value(21) := p_source_95;
74409 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
74410 l_rec_acct_attrs.array_char_value(22) := p_source_91;
74411 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
74412 l_rec_acct_attrs.array_num_value(23) := p_source_96;
74413 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
74414 l_rec_acct_attrs.array_char_value(24) := p_source_97;
74415 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
74416 l_rec_acct_attrs.array_num_value(25) := p_source_98;
74417 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
74418 l_rec_acct_attrs.array_char_value(26) := p_source_91;
74419 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
74420 l_rec_acct_attrs.array_num_value(27) := p_source_110;
74421 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
74422 l_rec_acct_attrs.array_date_value(28) := p_source_101;
74423 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
74424 l_rec_acct_attrs.array_char_value(29) := p_source_102;
74425 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
74426 l_rec_acct_attrs.array_date_value(30) := p_source_103;
74427 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
74428 l_rec_acct_attrs.array_char_value(31) := p_source_64;
74429 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
74430 l_rec_acct_attrs.array_char_value(32) := p_source_67;
74431 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
74432 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
74433 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
74434 l_rec_acct_attrs.array_char_value(34) := p_source_60;
74435 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
74436 l_rec_acct_attrs.array_num_value(35) := p_source_69;
74437 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
74438 l_rec_acct_attrs.array_num_value(36) := p_source_77;
74439 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
74440 l_rec_acct_attrs.array_num_value(37) := p_source_70;
74441 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
74442 l_rec_acct_attrs.array_num_value(38) := p_source_107;
74443 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
74444 l_rec_acct_attrs.array_num_value(39) := p_source_108;
74445
74446 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74447 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74448
74449 ---------------------------------------------------------------------------------------------------------------
74450 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74451 ---------------------------------------------------------------------------------------------------------------
74452 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74453
74454 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74455 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74456
74457 IF xla_accounting_cache_pkg.GetValueChar
74458 (p_source_code => 'LEDGER_CATEGORY_CODE'
74459 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74460 AND l_bflow_method_code = 'PRIOR_ENTRY'
74461 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74462 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74463 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74464 )
74465 THEN
74466 xla_ae_lines_pkg.BflowUpgEntry
74467 (p_business_method_code => l_bflow_method_code
74468 ,p_business_class_code => l_bflow_class_code
74469 ,p_balance_type => l_balance_type_code);
74470 ELSE
74471 NULL;
74472 XLA_AE_LINES_PKG.business_flow_validation(
74473 p_business_method_code => l_bflow_method_code
74474 ,p_business_class_code => l_bflow_class_code
74475 ,p_inherit_description_flag => l_inherit_desc_flag);
74476 END IF;
74477
74478 --
74479 -- call analytical criteria
74480 --
74484 --
74481 -- Inherited Analytical Criteria for business flow method of Prior Entry.
74482 --
74483 -- call description
74485 -- No description or it is inherited.
74486 --
74487 -- call ADRs
74488 -- Bug 4922099
74489 --
74490 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74491 (NVL(l_actual_upg_option, 'N') = 'O') OR
74492 (NVL(l_enc_upg_option, 'N') = 'O')
74493 )
74494 THEN
74495 NULL;
74496 --
74497 --
74498
74499 --
74500 --
74501 END IF;
74502 --
74503 -- Bug 4922099
74504 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74505 (NVL(l_enc_upg_option, 'N') = 'O')
74506 ) AND
74507 (l_bflow_method_code = 'PRIOR_ENTRY')
74508 )
74509 THEN
74510 IF
74511 --
74512 1 = 1
74513 --
74514 THEN
74515 xla_accounting_err_pkg.build_message
74516 (p_appli_s_name => 'XLA'
74517 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74518 ,p_token_1 => 'LINE_NUMBER'
74519 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
74520 ,p_token_2 => 'LINE_TYPE_NAME'
74521 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
74522 l_component_type
74523 ,l_component_code
74524 ,l_component_type_code
74525 ,l_component_appl_id
74526 ,l_amb_context_code
74527 ,l_entity_code
74528 ,l_event_class_code
74529 )
74530 ,p_token_3 => 'OWNER'
74531 ,p_value_3 => xla_lookups_pkg.get_meaning(
74532 p_lookup_type => 'XLA_OWNER_TYPE'
74533 ,p_lookup_code => l_component_type_code
74534 )
74535 ,p_token_4 => 'PRODUCT_NAME'
74536 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74537 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74538 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74539 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74540 ,p_ae_header_id => NULL
74541 );
74542
74543 IF (C_LEVEL_ERROR>= g_log_level) THEN
74544 trace
74545 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74546 ,p_level => C_LEVEL_ERROR
74547 ,p_module => l_log_module);
74548 END IF;
74549 END IF;
74550 END IF;
74551 --
74552 --
74553 ------------------------------------------------------------------------------------------------
74554 -- 4219869 Business Flow
74555 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74556 -- Prior Entry. Currently, the following code is always generated.
74557 ------------------------------------------------------------------------------------------------
74558 -- No ValidateCurrentLine for business flow method of Prior Entry
74559
74560 ------------------------------------------------------------------------------------
74561 -- 4219869 Business Flow
74562 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74563 ------------------------------------------------------------------------------------
74564 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74565
74566 ----------------------------------------------------------------------------------
74567 -- 4219869 Business Flow
74568 -- Update journal entry status -- Need to generate this within IF <condition>
74569 ----------------------------------------------------------------------------------
74570 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74571 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74572 ,p_balance_type_code => l_balance_type_code
74573 );
74574
74575 -------------------------------------------------------------------------------------------
74576 -- 4262811 - Generate the Accrual Reversal lines
74577 -------------------------------------------------------------------------------------------
74578 BEGIN
74579 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74583 END IF;
74580 (g_array_event(p_event_id).array_value_num('header_index'));
74581 IF l_acc_rev_flag IS NULL THEN
74582 l_acc_rev_flag := 'N';
74584 EXCEPTION
74585 WHEN OTHERS THEN
74586 l_acc_rev_flag := 'N';
74587 END;
74588 --
74589 IF (l_acc_rev_flag = 'Y') THEN
74590
74591 -- 4645092 ------------------------------------------------------------------------------
74592 -- To allow MPA report to determine if it should generate report process
74593 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74594 ------------------------------------------------------------------------------------------
74595
74596 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74597 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74598 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
74599 -- call ADRs
74600 -- Bug 4922099
74601 --
74602 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74603 (NVL(l_actual_upg_option, 'N') = 'O') OR
74604 (NVL(l_enc_upg_option, 'N') = 'O')
74605 )
74606 THEN
74607 NULL;
74608 --
74609 --
74610
74611 --
74612 --
74613 END IF;
74614
74615 --
74616 -- Update the line information that should be overwritten
74617 --
74618 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74619 p_header_num => 1);
74620 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
74621
74622 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74623
74624 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
74625 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74626 END IF;
74627
74628 --
74629 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74630 --
74631 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74632 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
74633 ELSE
74634 ---------------------------------------------------------------------------------------------------
74635 -- 4262811a Switch Sign
74636 ---------------------------------------------------------------------------------------------------
74637 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
74638 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74639 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74640 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74641 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74642 -- 5132302
74643 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74644 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74645
74646 END IF;
74647
74648 -- 4955764
74649 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74650 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74651
74652
74653 XLA_AE_LINES_PKG.ValidateCurrentLine;
74654 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74655
74656 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74657 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74658 ,p_balance_type_code => l_balance_type_code);
74659
74660 END IF;
74661
74662 -----------------------------------------------------------------------------------------
74663 -- 4262811 Multiperiod Accounting
74664 -----------------------------------------------------------------------------------------
74665 -- No MPA option is assigned.
74666
74667
74668 END IF;
74669 END IF;
74670 --
74671
74672 --
74673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74674 trace
74675 (p_msg => 'END of AcctLineType_135'
74676 ,p_level => C_LEVEL_PROCEDURE
74677 ,p_module => l_log_module);
74678 END IF;
74679 --
74680 EXCEPTION
74681 WHEN xla_exceptions_pkg.application_exception THEN
74682 RAISE;
74683 WHEN OTHERS THEN
74684 xla_exceptions_pkg.raise_message
74685 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_135');
74686 END AcctLineType_135;
74687 --
74688
74689 ---------------------------------------
74690 --
74691 -- PRIVATE FUNCTION
74692 -- AcctLineType_136
74693 --
74694 ---------------------------------------
74695 PROCEDURE AcctLineType_136 (
74696 p_application_id IN NUMBER
74697 ,p_event_id IN NUMBER
74698 ,p_calculate_acctd_flag IN VARCHAR2
74699 ,p_calculate_g_l_flag IN VARCHAR2
74700 ,p_actual_flag IN OUT VARCHAR2
74701 ,p_balance_type_code OUT VARCHAR2
74702 ,p_gain_or_loss_ref OUT VARCHAR2
74703
74704 --Recipient Invoice Distribution Account
74705 , p_source_48 IN NUMBER
74709 , p_source_52 IN VARCHAR2
74706 --When to Account for Payment Option
74707 , p_source_50 IN VARCHAR2
74708 --Accounting Reversal Indicator
74710 --Business Flow Accounts Payable Application Identifier
74711 , p_source_54 IN NUMBER
74712 --Distribution Link Type
74713 , p_source_60 IN VARCHAR2
74714 --Override Accounted Amount Indicator
74715 , p_source_64 IN VARCHAR2
74716 , p_source_64_meaning IN VARCHAR2
74717 --Third Party Type
74718 , p_source_67 IN VARCHAR2
74719 --Invoice Distribution Tax Line Identifier
74720 , p_source_69 IN NUMBER
74721 --Invoice Distribution Summary Tax Line Identifier
74722 , p_source_70 IN NUMBER
74723 --Invoice Distribution Tax Distribution Identifier from Tax
74724 , p_source_77 IN NUMBER
74725 --Prepayment Distribution Type
74726 , p_source_78 IN VARCHAR2
74727 --Recipient Invoice Distribution Type
74728 , p_source_79 IN VARCHAR2
74729 , p_source_79_meaning IN VARCHAR2
74730 --Prepayment Application Distribution Identifier
74731 , p_source_82 IN NUMBER
74732 --Invoice Identifier
74733 , p_source_83 IN NUMBER
74734 --Business Flow Prepayment Invoice Distribution Type
74735 , p_source_84 IN VARCHAR2
74736 --Business Flow Prepayment Invoice Entity Code
74737 , p_source_85 IN VARCHAR2
74738 --Business Flow Prepayment Invoice Distribution Identifier
74739 , p_source_86 IN NUMBER
74740 --Business Flow Prepayment Invoice Identifier
74741 , p_source_87 IN NUMBER
74742 --Upgrade Encumbrance Credit Account Class
74743 , p_source_88 IN VARCHAR2
74744 --Payables Encumbrance Upgrade Credit Account
74745 , p_source_89 IN NUMBER
74746 --Payables Encumbrance Upgrade Credit Amount
74747 , p_source_90 IN NUMBER
74748 --Invoice Currency Code
74749 , p_source_91 IN VARCHAR2
74750 --Payables Encumbrance Upgrade Credit Base Amount
74751 , p_source_92 IN NUMBER
74752 --Upgrade Encumbrance Debit Account Class
74753 , p_source_93 IN VARCHAR2
74754 --Payables Encumbrance Upgrade Debit Account
74755 , p_source_94 IN NUMBER
74756 --Payables Encumbrance Upgrade Debit Amount
74757 , p_source_95 IN NUMBER
74758 --Payables Encumbrance Upgrade Debit Base Amount
74759 , p_source_96 IN NUMBER
74760 --Payables Encumbrance Upgrade Option
74761 , p_source_97 IN VARCHAR2
74762 --Prepayment Distribution Amount
74763 , p_source_98 IN NUMBER
74764 --Prepayment Clearing Currency Code
74765 , p_source_99 IN VARCHAR2
74766 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
74767 , p_source_100 IN NUMBER
74768 --Deferred Accounting End Date
74769 , p_source_101 IN DATE
74770 --Deferred Accounting Option
74771 , p_source_102 IN VARCHAR2
74772 --Deferred Accounting Start Date
74773 , p_source_103 IN DATE
74774 --Invoice Supplier Identifier
74775 , p_source_104 IN NUMBER
74776 --Invoice Supplier Site Identifier
74777 , p_source_105 IN NUMBER
74778 --Identifier of the Prepayment Application Reversed
74779 , p_source_106 IN NUMBER
74780 --Payables Upgrade Credit Encumbrance Type Identifier
74781 , p_source_107 IN NUMBER
74782 --Payables Upgrade Debit Encumbrance Type Identifier
74783 , p_source_108 IN NUMBER
74784 --Prepayment Clearing Exchange Date
74785 , p_source_125 IN DATE
74786 --Prepayment Clearing Exchange Rate
74787 , p_source_126 IN NUMBER
74788 --Prepayment Clearing Exchange Rate Type
74789 , p_source_127 IN VARCHAR2
74790 )
74791 IS
74792
74793 l_component_type VARCHAR2(80);
74794 l_component_code VARCHAR2(30);
74795 l_component_type_code VARCHAR2(1);
74796 l_component_appl_id INTEGER;
74797 l_amb_context_code VARCHAR2(30);
74798 l_entity_code VARCHAR2(30);
74799 l_event_class_code VARCHAR2(30);
74800 l_ae_header_id NUMBER;
74801 l_event_type_code VARCHAR2(30);
74802 l_line_definition_code VARCHAR2(30);
74803 l_line_definition_owner_code VARCHAR2(1);
74804 --
74805 -- adr variables
74806 l_segment VARCHAR2(30);
74807 l_ccid NUMBER;
74808 l_adr_transaction_coa_id NUMBER;
74809 l_adr_accounting_coa_id NUMBER;
74810 l_adr_flexfield_segment_code VARCHAR2(30);
74811 l_adr_flex_value_set_id NUMBER;
74812 l_adr_value_type_code VARCHAR2(30);
74813 l_adr_value_combination_id NUMBER;
74814 l_adr_value_segment_code VARCHAR2(30);
74815
74816 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
74817 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
74818 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
74819 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
74820
74821 -- 4262811 Variables ------------------------------------------------------------------------------------------
74822 l_entered_amt_idx NUMBER;
74823 l_accted_amt_idx NUMBER;
74824 l_acc_rev_flag VARCHAR2(1);
74825 l_accrual_line_num NUMBER;
74826 l_tmp_amt NUMBER;
74827 l_acc_rev_natural_side_code VARCHAR2(1);
74828
74829 l_num_entries NUMBER;
74833 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
74830 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
74831 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
74832 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
74834 l_recog_line_1 NUMBER;
74835 l_recog_line_2 NUMBER;
74836
74837 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
74838 l_bflow_applied_to_amt NUMBER; -- 5132302
74839 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
74840
74841 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74842
74843 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
74844 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
74845
74846 ---------------------------------------------------------------------------------------------------------------
74847
74848
74849 --
74850 -- bulk performance
74851 --
74852 l_balance_type_code VARCHAR2(1);
74853 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74854 l_log_module VARCHAR2(240);
74855
74856 --
74857 -- Upgrade strategy
74858 --
74859 l_actual_upg_option VARCHAR2(1);
74860 l_enc_upg_option VARCHAR2(1);
74861
74862 --
74863 BEGIN
74864 --
74865 IF g_log_enabled THEN
74866 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
74867 END IF;
74868 --
74869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74870
74871 trace
74872 (p_msg => 'BEGIN of AcctLineType_136'
74873 ,p_level => C_LEVEL_PROCEDURE
74874 ,p_module => l_log_module);
74875
74876 END IF;
74877 --
74878 l_component_type := 'AMB_JLT';
74879 l_component_code := 'AP_RECOV_PREPAY_CLR_RATE_APP';
74880 l_component_type_code := 'S';
74881 l_component_appl_id := 200;
74882 l_amb_context_code := 'DEFAULT';
74883 l_entity_code := 'AP_INVOICES';
74884 l_event_class_code := 'PREPAYMENT APPLICATIONS';
74885 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
74886 l_line_definition_owner_code := 'S';
74887 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
74888 --
74889 l_balance_type_code := 'A';
74890 l_segment := NULL;
74891 l_ccid := NULL;
74892 l_adr_transaction_coa_id := NULL;
74893 l_adr_accounting_coa_id := NULL;
74894 l_adr_flexfield_segment_code := NULL;
74895 l_adr_flex_value_set_id := NULL;
74896 l_adr_value_type_code := NULL;
74897 l_adr_value_combination_id := NULL;
74898 l_adr_value_segment_code := NULL;
74899
74900 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
74901 l_bflow_class_code := ''; -- 4219869 Business Flow
74902 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
74903 l_budgetary_control_flag := 'N';
74904
74905 l_bflow_applied_to_amt_idx := NULL; -- 5132302
74906 l_bflow_applied_to_amt := NULL; -- 5132302
74907 l_entered_amt_idx := NULL; -- 4262811
74908 l_accted_amt_idx := NULL; -- 4262811
74909 l_acc_rev_flag := NULL; -- 4262811
74910 l_accrual_line_num := NULL; -- 4262811
74911 l_tmp_amt := NULL; -- 4262811
74912 --
74913
74914 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74915 l_balance_type_code <> 'B' THEN
74916 IF NVL(p_source_50,'
74917 ') = 'CLEAR_CLEAR' AND
74918 (NVL(p_source_78,'
74919 ') = 'PREPAY APPL' OR
74920 NVL(p_source_78,'
74921 ') = 'PREPAY APPL NONREC TAX' OR
74922 NVL(p_source_78,'
74923 ') = 'PREPAY APPL REC TAX') AND
74924 NVL(p_source_79,'
74925 ') = 'REC_TAX'
74926 THEN
74927
74928 --
74929 XLA_AE_LINES_PKG.SetNewLine;
74930
74931 p_balance_type_code := l_balance_type_code;
74932 -- set the flag so later we will know whether the gain loss line needs to be created
74933
74934 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74935 p_actual_flag :='A';
74936 END IF;
74937
74938 --
74939 -- bulk performance
74940 --
74941 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74942 p_header_num => 0); -- 4262811
74943 --
74944 -- set accounting line options
74945 --
74946 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74947 p_natural_side_code => 'C'
74948 , p_gain_or_loss_flag => 'N'
74949 , p_gl_transfer_mode_code => 'S'
74950 , p_acct_entry_type_code => 'A'
74951 , p_switch_side_flag => 'Y'
74952 , p_merge_duplicate_code => 'A'
74953 );
74954 --
74955 l_acc_rev_natural_side_code := 'D'; -- 4262811
74956 --
74957 --
74958 -- set accounting line type info
74959 --
74960 xla_ae_lines_pkg.SetAcctLineType
74961 (p_component_type => l_component_type
74962 ,p_event_type_code => l_event_type_code
74963 ,p_line_definition_owner_code => l_line_definition_owner_code
74964 ,p_line_definition_code => l_line_definition_code
74968 ,p_amb_context_code => l_amb_context_code
74965 ,p_accounting_line_code => l_component_code
74966 ,p_accounting_line_type_code => l_component_type_code
74967 ,p_accounting_line_appl_id => l_component_appl_id
74969 ,p_entity_code => l_entity_code
74970 ,p_event_class_code => l_event_class_code);
74971 --
74972 -- set accounting class
74973 --
74974 xla_ae_lines_pkg.SetAcctClass(
74975 p_accounting_class_code => 'RTAX'
74976 , p_ae_header_id => l_ae_header_id
74977 );
74978
74979 --
74980 -- set rounding class
74981 --
74982 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74983 'RTAX';
74984
74985 --
74986 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74987 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74988 --
74989 -- bulk performance
74990 --
74991 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74992
74993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74994 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74995
74996 -- 4955764
74997 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74998 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74999
75000 -- 4458381 Public Sector Enh
75001
75002 --
75003 -- set accounting attributes for the line type
75004 --
75005 l_entered_amt_idx := 25;
75006 l_accted_amt_idx := 30;
75007 l_bflow_applied_to_amt_idx := NULL; -- 5132302
75008 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75009 l_rec_acct_attrs.array_char_value(1) := p_source_52;
75010 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
75011 l_rec_acct_attrs.array_num_value(2) :=
75012 xla_ae_sources_pkg.GetSystemSourceNum(
75013 p_source_code => 'XLA_EVENT_APPL_ID'
75014 , p_source_type_code => 'Y'
75015 , p_source_application_id => 602
75016 );
75017 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
75018 l_rec_acct_attrs.array_char_value(3) := p_source_60;
75019 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
75020 l_rec_acct_attrs.array_char_value(4) :=
75021 xla_ae_sources_pkg.GetSystemSourceChar(
75022 p_source_code => 'XLA_ENTITY_CODE'
75023 , p_source_type_code => 'Y'
75024 , p_source_application_id => 602
75025 );
75026 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
75027 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
75028 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
75029 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
75030 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
75031 l_rec_acct_attrs.array_num_value(7) := p_source_54;
75032 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75033 l_rec_acct_attrs.array_char_value(8) := p_source_84;
75034 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
75035 l_rec_acct_attrs.array_char_value(9) := p_source_85;
75036 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
75037 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
75038 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75039 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
75040 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
75041 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
75042 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
75043 l_rec_acct_attrs.array_char_value(13) := p_source_60;
75044 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
75045 l_rec_acct_attrs.array_char_value(14) := p_source_88;
75046 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
75047 l_rec_acct_attrs.array_num_value(15) := p_source_89;
75048 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
75049 l_rec_acct_attrs.array_num_value(16) := p_source_90;
75050 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
75051 l_rec_acct_attrs.array_char_value(17) := p_source_91;
75052 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
75053 l_rec_acct_attrs.array_num_value(18) := p_source_92;
75054 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
75055 l_rec_acct_attrs.array_char_value(19) := p_source_93;
75056 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
75057 l_rec_acct_attrs.array_num_value(20) := p_source_94;
75058 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
75059 l_rec_acct_attrs.array_num_value(21) := p_source_95;
75060 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
75061 l_rec_acct_attrs.array_char_value(22) := p_source_91;
75062 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
75063 l_rec_acct_attrs.array_num_value(23) := p_source_96;
75064 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
75068 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
75065 l_rec_acct_attrs.array_char_value(24) := p_source_97;
75066 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
75067 l_rec_acct_attrs.array_num_value(25) := p_source_98;
75069 l_rec_acct_attrs.array_char_value(26) := p_source_99;
75070 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
75071 l_rec_acct_attrs.array_date_value(27) := p_source_125;
75072 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
75073 l_rec_acct_attrs.array_num_value(28) := p_source_126;
75074 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
75075 l_rec_acct_attrs.array_char_value(29) := p_source_127;
75076 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
75077 l_rec_acct_attrs.array_num_value(30) := p_source_100;
75078 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
75079 l_rec_acct_attrs.array_date_value(31) := p_source_101;
75080 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
75081 l_rec_acct_attrs.array_char_value(32) := p_source_102;
75082 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
75083 l_rec_acct_attrs.array_date_value(33) := p_source_103;
75084 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
75085 l_rec_acct_attrs.array_char_value(34) := p_source_64;
75086 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
75087 l_rec_acct_attrs.array_num_value(35) := p_source_104;
75088 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
75089 l_rec_acct_attrs.array_num_value(36) := p_source_105;
75090 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
75091 l_rec_acct_attrs.array_char_value(37) := p_source_67;
75092 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
75093 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
75094 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
75095 l_rec_acct_attrs.array_char_value(39) := p_source_60;
75096 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
75097 l_rec_acct_attrs.array_num_value(40) := p_source_69;
75098 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
75099 l_rec_acct_attrs.array_num_value(41) := p_source_77;
75100 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
75101 l_rec_acct_attrs.array_num_value(42) := p_source_70;
75102 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
75103 l_rec_acct_attrs.array_num_value(43) := p_source_107;
75104 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
75105 l_rec_acct_attrs.array_num_value(44) := p_source_108;
75106
75107 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75108 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75109
75110 ---------------------------------------------------------------------------------------------------------------
75111 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75112 ---------------------------------------------------------------------------------------------------------------
75113 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75114
75115 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75116 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75117
75118 IF xla_accounting_cache_pkg.GetValueChar
75119 (p_source_code => 'LEDGER_CATEGORY_CODE'
75120 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75121 AND l_bflow_method_code = 'PRIOR_ENTRY'
75122 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75123 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75124 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75125 )
75126 THEN
75127 xla_ae_lines_pkg.BflowUpgEntry
75128 (p_business_method_code => l_bflow_method_code
75129 ,p_business_class_code => l_bflow_class_code
75130 ,p_balance_type => l_balance_type_code);
75131 ELSE
75132 NULL;
75133 -- No business flow processing for business flow method of NONE.
75134 END IF;
75135
75136 --
75137 -- call analytical criteria
75138 --
75139
75140 --
75141 -- call description
75142 --
75143 -- No description or it is inherited.
75144 --
75145 -- call ADRs
75146 -- Bug 4922099
75147 --
75148 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75149 (NVL(l_actual_upg_option, 'N') = 'O') OR
75150 (NVL(l_enc_upg_option, 'N') = 'O')
75151 )
75152 THEN
75153 NULL;
75154 --
75155 --
75156
75157 l_ccid := AcctDerRule_35(
75158 p_application_id => p_application_id
75159 , p_ae_header_id => l_ae_header_id
75160 , p_source_48 => p_source_48
75161 , x_transaction_coa_id => l_adr_transaction_coa_id
75162 , x_accounting_coa_id => l_adr_accounting_coa_id
75163 , x_value_type_code => l_adr_value_type_code
75164 , p_side => 'NA'
75165 );
75166
75167 xla_ae_lines_pkg.set_ccid(
75168 p_code_combination_id => l_ccid
75172 , p_adr_code => 'AP_RECP_INV_DIST'
75169 , p_value_type_code => l_adr_value_type_code
75170 , p_transaction_coa_id => l_adr_transaction_coa_id
75171 , p_accounting_coa_id => l_adr_accounting_coa_id
75173 , p_adr_type_code => 'S'
75174 , p_component_type => l_component_type
75175 , p_component_code => l_component_code
75176 , p_component_type_code => l_component_type_code
75177 , p_component_appl_id => l_component_appl_id
75178 , p_amb_context_code => l_amb_context_code
75179 , p_side => 'NA'
75180 );
75181
75182
75183 --
75184 --
75185 END IF;
75186 --
75187 -- Bug 4922099
75188 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75189 (NVL(l_enc_upg_option, 'N') = 'O')
75190 ) AND
75191 (l_bflow_method_code = 'PRIOR_ENTRY')
75192 )
75193 THEN
75194 IF
75195 --
75196 1 = 2
75197 --
75198 THEN
75199 xla_accounting_err_pkg.build_message
75200 (p_appli_s_name => 'XLA'
75201 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75202 ,p_token_1 => 'LINE_NUMBER'
75203 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
75204 ,p_token_2 => 'LINE_TYPE_NAME'
75205 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
75206 l_component_type
75207 ,l_component_code
75208 ,l_component_type_code
75209 ,l_component_appl_id
75210 ,l_amb_context_code
75211 ,l_entity_code
75212 ,l_event_class_code
75213 )
75214 ,p_token_3 => 'OWNER'
75215 ,p_value_3 => xla_lookups_pkg.get_meaning(
75216 p_lookup_type => 'XLA_OWNER_TYPE'
75217 ,p_lookup_code => l_component_type_code
75218 )
75219 ,p_token_4 => 'PRODUCT_NAME'
75220 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75221 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75222 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75223 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75224 ,p_ae_header_id => NULL
75225 );
75226
75227 IF (C_LEVEL_ERROR>= g_log_level) THEN
75228 trace
75229 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75230 ,p_level => C_LEVEL_ERROR
75231 ,p_module => l_log_module);
75232 END IF;
75233 END IF;
75234 END IF;
75235 --
75236 --
75237 ------------------------------------------------------------------------------------------------
75238 -- 4219869 Business Flow
75239 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75240 -- Prior Entry. Currently, the following code is always generated.
75241 ------------------------------------------------------------------------------------------------
75242 XLA_AE_LINES_PKG.ValidateCurrentLine;
75243
75244 ------------------------------------------------------------------------------------
75245 -- 4219869 Business Flow
75246 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75247 ------------------------------------------------------------------------------------
75248 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75249
75250 ----------------------------------------------------------------------------------
75251 -- 4219869 Business Flow
75252 -- Update journal entry status -- Need to generate this within IF <condition>
75253 ----------------------------------------------------------------------------------
75254 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75255 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75256 ,p_balance_type_code => l_balance_type_code
75257 );
75258
75259 -------------------------------------------------------------------------------------------
75260 -- 4262811 - Generate the Accrual Reversal lines
75261 -------------------------------------------------------------------------------------------
75262 BEGIN
75263 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75267 END IF;
75264 (g_array_event(p_event_id).array_value_num('header_index'));
75265 IF l_acc_rev_flag IS NULL THEN
75266 l_acc_rev_flag := 'N';
75268 EXCEPTION
75269 WHEN OTHERS THEN
75270 l_acc_rev_flag := 'N';
75271 END;
75272 --
75273 IF (l_acc_rev_flag = 'Y') THEN
75274
75275 -- 4645092 ------------------------------------------------------------------------------
75276 -- To allow MPA report to determine if it should generate report process
75277 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75278 ------------------------------------------------------------------------------------------
75279
75280 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75281 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75282 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
75283 -- call ADRs
75284 -- Bug 4922099
75285 --
75286 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75287 (NVL(l_actual_upg_option, 'N') = 'O') OR
75288 (NVL(l_enc_upg_option, 'N') = 'O')
75289 )
75290 THEN
75291 NULL;
75292 --
75293 --
75294
75295 l_ccid := AcctDerRule_35(
75296 p_application_id => p_application_id
75297 , p_ae_header_id => l_ae_header_id
75298 , p_source_48 => p_source_48
75299 , x_transaction_coa_id => l_adr_transaction_coa_id
75300 , x_accounting_coa_id => l_adr_accounting_coa_id
75301 , x_value_type_code => l_adr_value_type_code
75302 , p_side => 'NA'
75303 );
75304
75305 xla_ae_lines_pkg.set_ccid(
75306 p_code_combination_id => l_ccid
75307 , p_value_type_code => l_adr_value_type_code
75308 , p_transaction_coa_id => l_adr_transaction_coa_id
75309 , p_accounting_coa_id => l_adr_accounting_coa_id
75310 , p_adr_code => 'AP_RECP_INV_DIST'
75311 , p_adr_type_code => 'S'
75312 , p_component_type => l_component_type
75313 , p_component_code => l_component_code
75314 , p_component_type_code => l_component_type_code
75315 , p_component_appl_id => l_component_appl_id
75316 , p_amb_context_code => l_amb_context_code
75317 , p_side => 'NA'
75318 );
75319
75320
75321 --
75322 --
75323 END IF;
75324
75325 --
75326 -- Update the line information that should be overwritten
75327 --
75328 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75329 p_header_num => 1);
75330 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
75331
75332 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75333
75334 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
75335 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75336 END IF;
75337
75338 --
75339 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75340 --
75341 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75342 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
75343 ELSE
75344 ---------------------------------------------------------------------------------------------------
75345 -- 4262811a Switch Sign
75346 ---------------------------------------------------------------------------------------------------
75347 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
75348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75349 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75350 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75351 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75352 -- 5132302
75353 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75354 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75355
75356 END IF;
75357
75358 -- 4955764
75359 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75360 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75361
75362
75363 XLA_AE_LINES_PKG.ValidateCurrentLine;
75364 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75365
75366 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75367 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75368 ,p_balance_type_code => l_balance_type_code);
75369
75370 END IF;
75371
75372 -----------------------------------------------------------------------------------------
75373 -- 4262811 Multiperiod Accounting
75374 -----------------------------------------------------------------------------------------
75375 -- No MPA option is assigned.
75376
75377
75378 END IF;
75379 END IF;
75383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75380 --
75381
75382 --
75384 trace
75385 (p_msg => 'END of AcctLineType_136'
75386 ,p_level => C_LEVEL_PROCEDURE
75387 ,p_module => l_log_module);
75388 END IF;
75389 --
75390 EXCEPTION
75391 WHEN xla_exceptions_pkg.application_exception THEN
75392 RAISE;
75393 WHEN OTHERS THEN
75394 xla_exceptions_pkg.raise_message
75395 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_136');
75396 END AcctLineType_136;
75397 --
75398
75399 ---------------------------------------
75400 --
75401 -- PRIVATE FUNCTION
75402 -- AcctLineType_137
75403 --
75404 ---------------------------------------
75405 PROCEDURE AcctLineType_137 (
75406 p_application_id IN NUMBER
75407 ,p_event_id IN NUMBER
75408 ,p_calculate_acctd_flag IN VARCHAR2
75409 ,p_calculate_g_l_flag IN VARCHAR2
75410 ,p_actual_flag IN OUT VARCHAR2
75411 ,p_balance_type_code OUT VARCHAR2
75412 ,p_gain_or_loss_ref OUT VARCHAR2
75413
75414 --Recipient Invoice Distribution Account
75415 , p_source_48 IN NUMBER
75416 --When to Account for Payment Option
75417 , p_source_50 IN VARCHAR2
75418 --Accounting Reversal Indicator
75419 , p_source_52 IN VARCHAR2
75420 --Business Flow Accounts Payable Application Identifier
75421 , p_source_54 IN NUMBER
75422 --Distribution Link Type
75423 , p_source_60 IN VARCHAR2
75424 --Override Accounted Amount Indicator
75425 , p_source_64 IN VARCHAR2
75426 , p_source_64_meaning IN VARCHAR2
75427 --Third Party Type
75428 , p_source_67 IN VARCHAR2
75429 --Invoice Distribution Tax Line Identifier
75430 , p_source_69 IN NUMBER
75431 --Invoice Distribution Summary Tax Line Identifier
75432 , p_source_70 IN NUMBER
75433 --Invoice Distribution Tax Distribution Identifier from Tax
75434 , p_source_77 IN NUMBER
75435 --Prepayment Distribution Type
75436 , p_source_78 IN VARCHAR2
75437 --Recipient Invoice Distribution Type
75438 , p_source_79 IN VARCHAR2
75439 , p_source_79_meaning IN VARCHAR2
75440 --Prepayment Application Distribution Identifier
75441 , p_source_82 IN NUMBER
75442 --Invoice Identifier
75443 , p_source_83 IN NUMBER
75444 --Business Flow Prepayment Invoice Distribution Type
75445 , p_source_84 IN VARCHAR2
75446 --Business Flow Prepayment Invoice Entity Code
75447 , p_source_85 IN VARCHAR2
75448 --Business Flow Prepayment Invoice Distribution Identifier
75449 , p_source_86 IN NUMBER
75450 --Business Flow Prepayment Invoice Identifier
75451 , p_source_87 IN NUMBER
75452 --Upgrade Encumbrance Credit Account Class
75453 , p_source_88 IN VARCHAR2
75454 --Payables Encumbrance Upgrade Credit Account
75455 , p_source_89 IN NUMBER
75456 --Payables Encumbrance Upgrade Credit Amount
75457 , p_source_90 IN NUMBER
75458 --Invoice Currency Code
75459 , p_source_91 IN VARCHAR2
75460 --Payables Encumbrance Upgrade Credit Base Amount
75461 , p_source_92 IN NUMBER
75462 --Upgrade Encumbrance Debit Account Class
75463 , p_source_93 IN VARCHAR2
75464 --Payables Encumbrance Upgrade Debit Account
75465 , p_source_94 IN NUMBER
75466 --Payables Encumbrance Upgrade Debit Amount
75467 , p_source_95 IN NUMBER
75468 --Payables Encumbrance Upgrade Debit Base Amount
75469 , p_source_96 IN NUMBER
75470 --Payables Encumbrance Upgrade Option
75471 , p_source_97 IN VARCHAR2
75472 --Prepayment Distribution Amount
75473 , p_source_98 IN NUMBER
75474 --Deferred Accounting End Date
75475 , p_source_101 IN DATE
75476 --Deferred Accounting Option
75477 , p_source_102 IN VARCHAR2
75478 --Deferred Accounting Start Date
75479 , p_source_103 IN DATE
75480 --Invoice Supplier Identifier
75481 , p_source_104 IN NUMBER
75482 --Invoice Supplier Site Identifier
75483 , p_source_105 IN NUMBER
75484 --Identifier of the Prepayment Application Reversed
75485 , p_source_106 IN NUMBER
75486 --Payables Upgrade Credit Encumbrance Type Identifier
75487 , p_source_107 IN NUMBER
75488 --Payables Upgrade Debit Encumbrance Type Identifier
75489 , p_source_108 IN NUMBER
75490 --Prepayment Payment Currency Code
75491 , p_source_109 IN VARCHAR2
75492 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
75493 , p_source_110 IN NUMBER
75494 --Prepayment Payment Exchange Date
75495 , p_source_128 IN DATE
75496 --Prepayment Payment Exchange Rate
75497 , p_source_129 IN NUMBER
75498 --Prepayment Payment Exchange Rate Type
75499 , p_source_130 IN VARCHAR2
75500 )
75501 IS
75502
75503 l_component_type VARCHAR2(80);
75504 l_component_code VARCHAR2(30);
75505 l_component_type_code VARCHAR2(1);
75506 l_component_appl_id INTEGER;
75507 l_amb_context_code VARCHAR2(30);
75508 l_entity_code VARCHAR2(30);
75509 l_event_class_code VARCHAR2(30);
75510 l_ae_header_id NUMBER;
75511 l_event_type_code VARCHAR2(30);
75512 l_line_definition_code VARCHAR2(30);
75513 l_line_definition_owner_code VARCHAR2(1);
75514 --
75518 l_adr_transaction_coa_id NUMBER;
75515 -- adr variables
75516 l_segment VARCHAR2(30);
75517 l_ccid NUMBER;
75519 l_adr_accounting_coa_id NUMBER;
75520 l_adr_flexfield_segment_code VARCHAR2(30);
75521 l_adr_flex_value_set_id NUMBER;
75522 l_adr_value_type_code VARCHAR2(30);
75523 l_adr_value_combination_id NUMBER;
75524 l_adr_value_segment_code VARCHAR2(30);
75525
75526 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
75527 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
75528 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
75529 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
75530
75531 -- 4262811 Variables ------------------------------------------------------------------------------------------
75532 l_entered_amt_idx NUMBER;
75533 l_accted_amt_idx NUMBER;
75534 l_acc_rev_flag VARCHAR2(1);
75535 l_accrual_line_num NUMBER;
75536 l_tmp_amt NUMBER;
75537 l_acc_rev_natural_side_code VARCHAR2(1);
75538
75539 l_num_entries NUMBER;
75540 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
75541 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
75542 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
75543 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
75544 l_recog_line_1 NUMBER;
75545 l_recog_line_2 NUMBER;
75546
75547 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
75548 l_bflow_applied_to_amt NUMBER; -- 5132302
75549 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
75550
75551 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75552
75553 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
75554 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
75555
75556 ---------------------------------------------------------------------------------------------------------------
75557
75558
75559 --
75560 -- bulk performance
75561 --
75562 l_balance_type_code VARCHAR2(1);
75563 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75564 l_log_module VARCHAR2(240);
75565
75566 --
75567 -- Upgrade strategy
75568 --
75569 l_actual_upg_option VARCHAR2(1);
75570 l_enc_upg_option VARCHAR2(1);
75571
75572 --
75573 BEGIN
75574 --
75575 IF g_log_enabled THEN
75576 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
75577 END IF;
75578 --
75579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75580
75581 trace
75582 (p_msg => 'BEGIN of AcctLineType_137'
75583 ,p_level => C_LEVEL_PROCEDURE
75584 ,p_module => l_log_module);
75585
75586 END IF;
75587 --
75588 l_component_type := 'AMB_JLT';
75589 l_component_code := 'AP_RECOV_PREPAY_PAY_RATE_APP';
75590 l_component_type_code := 'S';
75591 l_component_appl_id := 200;
75592 l_amb_context_code := 'DEFAULT';
75593 l_entity_code := 'AP_INVOICES';
75594 l_event_class_code := 'PREPAYMENT APPLICATIONS';
75595 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
75596 l_line_definition_owner_code := 'S';
75597 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
75598 --
75599 l_balance_type_code := 'A';
75600 l_segment := NULL;
75601 l_ccid := NULL;
75602 l_adr_transaction_coa_id := NULL;
75603 l_adr_accounting_coa_id := NULL;
75604 l_adr_flexfield_segment_code := NULL;
75605 l_adr_flex_value_set_id := NULL;
75606 l_adr_value_type_code := NULL;
75607 l_adr_value_combination_id := NULL;
75608 l_adr_value_segment_code := NULL;
75609
75610 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
75611 l_bflow_class_code := ''; -- 4219869 Business Flow
75612 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
75613 l_budgetary_control_flag := 'N';
75614
75615 l_bflow_applied_to_amt_idx := NULL; -- 5132302
75616 l_bflow_applied_to_amt := NULL; -- 5132302
75617 l_entered_amt_idx := NULL; -- 4262811
75618 l_accted_amt_idx := NULL; -- 4262811
75619 l_acc_rev_flag := NULL; -- 4262811
75620 l_accrual_line_num := NULL; -- 4262811
75621 l_tmp_amt := NULL; -- 4262811
75622 --
75623
75624 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75625 l_balance_type_code <> 'B' THEN
75626 IF NVL(p_source_50,'
75627 ') <> 'CLEAR_CLEAR' AND
75628 (NVL(p_source_78,'
75629 ') = 'PREPAY APPL' OR
75630 NVL(p_source_78,'
75631 ') = 'PREPAY APPL NONREC TAX' OR
75632 NVL(p_source_78,'
75633 ') = 'PREPAY APPL REC TAX') AND
75634 NVL(p_source_79,'
75635 ') = 'REC_TAX'
75636 THEN
75637
75638 --
75639 XLA_AE_LINES_PKG.SetNewLine;
75640
75641 p_balance_type_code := l_balance_type_code;
75642 -- set the flag so later we will know whether the gain loss line needs to be created
75643
75644 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75648 --
75645 p_actual_flag :='A';
75646 END IF;
75647
75649 -- bulk performance
75650 --
75651 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75652 p_header_num => 0); -- 4262811
75653 --
75654 -- set accounting line options
75655 --
75656 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75657 p_natural_side_code => 'C'
75658 , p_gain_or_loss_flag => 'N'
75659 , p_gl_transfer_mode_code => 'S'
75660 , p_acct_entry_type_code => 'A'
75661 , p_switch_side_flag => 'Y'
75662 , p_merge_duplicate_code => 'A'
75663 );
75664 --
75665 l_acc_rev_natural_side_code := 'D'; -- 4262811
75666 --
75667 --
75668 -- set accounting line type info
75669 --
75670 xla_ae_lines_pkg.SetAcctLineType
75671 (p_component_type => l_component_type
75672 ,p_event_type_code => l_event_type_code
75673 ,p_line_definition_owner_code => l_line_definition_owner_code
75674 ,p_line_definition_code => l_line_definition_code
75675 ,p_accounting_line_code => l_component_code
75676 ,p_accounting_line_type_code => l_component_type_code
75677 ,p_accounting_line_appl_id => l_component_appl_id
75678 ,p_amb_context_code => l_amb_context_code
75679 ,p_entity_code => l_entity_code
75680 ,p_event_class_code => l_event_class_code);
75681 --
75682 -- set accounting class
75683 --
75684 xla_ae_lines_pkg.SetAcctClass(
75685 p_accounting_class_code => 'RTAX'
75686 , p_ae_header_id => l_ae_header_id
75687 );
75688
75689 --
75690 -- set rounding class
75691 --
75692 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75693 'RTAX';
75694
75695 --
75696 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75697 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75698 --
75699 -- bulk performance
75700 --
75701 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75702
75703 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75704 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75705
75706 -- 4955764
75707 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75708 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75709
75710 -- 4458381 Public Sector Enh
75711
75712 --
75713 -- set accounting attributes for the line type
75714 --
75715 l_entered_amt_idx := 25;
75716 l_accted_amt_idx := 30;
75717 l_bflow_applied_to_amt_idx := NULL; -- 5132302
75718 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75719 l_rec_acct_attrs.array_char_value(1) := p_source_52;
75720 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
75721 l_rec_acct_attrs.array_num_value(2) :=
75722 xla_ae_sources_pkg.GetSystemSourceNum(
75723 p_source_code => 'XLA_EVENT_APPL_ID'
75724 , p_source_type_code => 'Y'
75725 , p_source_application_id => 602
75726 );
75727 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
75728 l_rec_acct_attrs.array_char_value(3) := p_source_60;
75729 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
75730 l_rec_acct_attrs.array_char_value(4) :=
75731 xla_ae_sources_pkg.GetSystemSourceChar(
75732 p_source_code => 'XLA_ENTITY_CODE'
75733 , p_source_type_code => 'Y'
75734 , p_source_application_id => 602
75735 );
75736 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
75737 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
75738 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
75739 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
75740 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
75741 l_rec_acct_attrs.array_num_value(7) := p_source_54;
75742 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75743 l_rec_acct_attrs.array_char_value(8) := p_source_84;
75744 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
75745 l_rec_acct_attrs.array_char_value(9) := p_source_85;
75746 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
75747 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
75748 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75749 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
75750 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
75751 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
75752 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
75753 l_rec_acct_attrs.array_char_value(13) := p_source_60;
75754 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
75755 l_rec_acct_attrs.array_char_value(14) := p_source_88;
75756 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
75760 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
75757 l_rec_acct_attrs.array_num_value(15) := p_source_89;
75758 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
75759 l_rec_acct_attrs.array_num_value(16) := p_source_90;
75761 l_rec_acct_attrs.array_char_value(17) := p_source_91;
75762 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
75763 l_rec_acct_attrs.array_num_value(18) := p_source_92;
75764 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
75765 l_rec_acct_attrs.array_char_value(19) := p_source_93;
75766 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
75767 l_rec_acct_attrs.array_num_value(20) := p_source_94;
75768 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
75769 l_rec_acct_attrs.array_num_value(21) := p_source_95;
75770 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
75771 l_rec_acct_attrs.array_char_value(22) := p_source_91;
75772 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
75773 l_rec_acct_attrs.array_num_value(23) := p_source_96;
75774 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
75775 l_rec_acct_attrs.array_char_value(24) := p_source_97;
75776 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
75777 l_rec_acct_attrs.array_num_value(25) := p_source_98;
75778 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
75779 l_rec_acct_attrs.array_char_value(26) := p_source_109;
75780 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
75781 l_rec_acct_attrs.array_date_value(27) := p_source_128;
75782 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
75783 l_rec_acct_attrs.array_num_value(28) := p_source_129;
75784 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
75785 l_rec_acct_attrs.array_char_value(29) := p_source_130;
75786 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
75787 l_rec_acct_attrs.array_num_value(30) := p_source_110;
75788 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
75789 l_rec_acct_attrs.array_date_value(31) := p_source_101;
75790 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
75791 l_rec_acct_attrs.array_char_value(32) := p_source_102;
75792 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
75793 l_rec_acct_attrs.array_date_value(33) := p_source_103;
75794 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
75795 l_rec_acct_attrs.array_char_value(34) := p_source_64;
75796 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
75797 l_rec_acct_attrs.array_num_value(35) := p_source_104;
75798 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
75799 l_rec_acct_attrs.array_num_value(36) := p_source_105;
75800 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
75801 l_rec_acct_attrs.array_char_value(37) := p_source_67;
75802 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
75803 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
75804 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
75805 l_rec_acct_attrs.array_char_value(39) := p_source_60;
75806 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
75807 l_rec_acct_attrs.array_num_value(40) := p_source_69;
75808 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
75809 l_rec_acct_attrs.array_num_value(41) := p_source_77;
75810 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
75811 l_rec_acct_attrs.array_num_value(42) := p_source_70;
75812 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
75813 l_rec_acct_attrs.array_num_value(43) := p_source_107;
75814 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
75815 l_rec_acct_attrs.array_num_value(44) := p_source_108;
75816
75817 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75818 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75819
75820 ---------------------------------------------------------------------------------------------------------------
75821 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75822 ---------------------------------------------------------------------------------------------------------------
75823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75824
75825 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75826 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75827
75828 IF xla_accounting_cache_pkg.GetValueChar
75829 (p_source_code => 'LEDGER_CATEGORY_CODE'
75830 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75831 AND l_bflow_method_code = 'PRIOR_ENTRY'
75832 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75833 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75834 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75835 )
75836 THEN
75837 xla_ae_lines_pkg.BflowUpgEntry
75838 (p_business_method_code => l_bflow_method_code
75839 ,p_business_class_code => l_bflow_class_code
75840 ,p_balance_type => l_balance_type_code);
75841 ELSE
75845
75842 NULL;
75843 -- No business flow processing for business flow method of NONE.
75844 END IF;
75846 --
75847 -- call analytical criteria
75848 --
75849
75850 --
75851 -- call description
75852 --
75853 -- No description or it is inherited.
75854 --
75855 -- call ADRs
75856 -- Bug 4922099
75857 --
75858 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75859 (NVL(l_actual_upg_option, 'N') = 'O') OR
75860 (NVL(l_enc_upg_option, 'N') = 'O')
75861 )
75862 THEN
75863 NULL;
75864 --
75865 --
75866
75867 l_ccid := AcctDerRule_35(
75868 p_application_id => p_application_id
75869 , p_ae_header_id => l_ae_header_id
75870 , p_source_48 => p_source_48
75871 , x_transaction_coa_id => l_adr_transaction_coa_id
75872 , x_accounting_coa_id => l_adr_accounting_coa_id
75873 , x_value_type_code => l_adr_value_type_code
75874 , p_side => 'NA'
75875 );
75876
75877 xla_ae_lines_pkg.set_ccid(
75878 p_code_combination_id => l_ccid
75879 , p_value_type_code => l_adr_value_type_code
75880 , p_transaction_coa_id => l_adr_transaction_coa_id
75881 , p_accounting_coa_id => l_adr_accounting_coa_id
75882 , p_adr_code => 'AP_RECP_INV_DIST'
75883 , p_adr_type_code => 'S'
75884 , p_component_type => l_component_type
75885 , p_component_code => l_component_code
75886 , p_component_type_code => l_component_type_code
75887 , p_component_appl_id => l_component_appl_id
75888 , p_amb_context_code => l_amb_context_code
75889 , p_side => 'NA'
75890 );
75891
75892
75893 --
75894 --
75895 END IF;
75896 --
75897 -- Bug 4922099
75898 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75899 (NVL(l_enc_upg_option, 'N') = 'O')
75900 ) AND
75901 (l_bflow_method_code = 'PRIOR_ENTRY')
75902 )
75903 THEN
75904 IF
75905 --
75906 1 = 2
75907 --
75908 THEN
75909 xla_accounting_err_pkg.build_message
75910 (p_appli_s_name => 'XLA'
75911 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75912 ,p_token_1 => 'LINE_NUMBER'
75913 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
75914 ,p_token_2 => 'LINE_TYPE_NAME'
75915 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
75916 l_component_type
75917 ,l_component_code
75918 ,l_component_type_code
75919 ,l_component_appl_id
75920 ,l_amb_context_code
75921 ,l_entity_code
75922 ,l_event_class_code
75923 )
75924 ,p_token_3 => 'OWNER'
75925 ,p_value_3 => xla_lookups_pkg.get_meaning(
75926 p_lookup_type => 'XLA_OWNER_TYPE'
75927 ,p_lookup_code => l_component_type_code
75928 )
75929 ,p_token_4 => 'PRODUCT_NAME'
75930 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75931 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75932 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75933 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75934 ,p_ae_header_id => NULL
75935 );
75936
75937 IF (C_LEVEL_ERROR>= g_log_level) THEN
75938 trace
75939 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75940 ,p_level => C_LEVEL_ERROR
75941 ,p_module => l_log_module);
75942 END IF;
75943 END IF;
75944 END IF;
75945 --
75946 --
75947 ------------------------------------------------------------------------------------------------
75948 -- 4219869 Business Flow
75949 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75950 -- Prior Entry. Currently, the following code is always generated.
75951 ------------------------------------------------------------------------------------------------
75952 XLA_AE_LINES_PKG.ValidateCurrentLine;
75953
75957 ------------------------------------------------------------------------------------
75954 ------------------------------------------------------------------------------------
75955 -- 4219869 Business Flow
75956 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75958 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75959
75960 ----------------------------------------------------------------------------------
75961 -- 4219869 Business Flow
75962 -- Update journal entry status -- Need to generate this within IF <condition>
75963 ----------------------------------------------------------------------------------
75964 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75965 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75966 ,p_balance_type_code => l_balance_type_code
75967 );
75968
75969 -------------------------------------------------------------------------------------------
75970 -- 4262811 - Generate the Accrual Reversal lines
75971 -------------------------------------------------------------------------------------------
75972 BEGIN
75973 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75974 (g_array_event(p_event_id).array_value_num('header_index'));
75975 IF l_acc_rev_flag IS NULL THEN
75976 l_acc_rev_flag := 'N';
75977 END IF;
75978 EXCEPTION
75979 WHEN OTHERS THEN
75980 l_acc_rev_flag := 'N';
75981 END;
75982 --
75983 IF (l_acc_rev_flag = 'Y') THEN
75984
75985 -- 4645092 ------------------------------------------------------------------------------
75986 -- To allow MPA report to determine if it should generate report process
75987 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75988 ------------------------------------------------------------------------------------------
75989
75990 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75991 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75992 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
75993 -- call ADRs
75994 -- Bug 4922099
75995 --
75996 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75997 (NVL(l_actual_upg_option, 'N') = 'O') OR
75998 (NVL(l_enc_upg_option, 'N') = 'O')
75999 )
76000 THEN
76001 NULL;
76002 --
76003 --
76004
76005 l_ccid := AcctDerRule_35(
76006 p_application_id => p_application_id
76007 , p_ae_header_id => l_ae_header_id
76008 , p_source_48 => p_source_48
76009 , x_transaction_coa_id => l_adr_transaction_coa_id
76010 , x_accounting_coa_id => l_adr_accounting_coa_id
76011 , x_value_type_code => l_adr_value_type_code
76012 , p_side => 'NA'
76013 );
76014
76015 xla_ae_lines_pkg.set_ccid(
76016 p_code_combination_id => l_ccid
76017 , p_value_type_code => l_adr_value_type_code
76018 , p_transaction_coa_id => l_adr_transaction_coa_id
76019 , p_accounting_coa_id => l_adr_accounting_coa_id
76020 , p_adr_code => 'AP_RECP_INV_DIST'
76021 , p_adr_type_code => 'S'
76022 , p_component_type => l_component_type
76023 , p_component_code => l_component_code
76024 , p_component_type_code => l_component_type_code
76025 , p_component_appl_id => l_component_appl_id
76026 , p_amb_context_code => l_amb_context_code
76027 , p_side => 'NA'
76028 );
76029
76030
76031 --
76032 --
76033 END IF;
76034
76035 --
76036 -- Update the line information that should be overwritten
76037 --
76038 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76039 p_header_num => 1);
76040 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
76041
76042 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76043
76044 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
76045 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76046 END IF;
76047
76048 --
76049 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76050 --
76051 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76052 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
76053 ELSE
76054 ---------------------------------------------------------------------------------------------------
76055 -- 4262811a Switch Sign
76056 ---------------------------------------------------------------------------------------------------
76057 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
76058 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76059 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76060 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76061 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76065
76062 -- 5132302
76063 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76064 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76066 END IF;
76067
76068 -- 4955764
76069 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76070 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76071
76072
76073 XLA_AE_LINES_PKG.ValidateCurrentLine;
76074 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76075
76076 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76077 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76078 ,p_balance_type_code => l_balance_type_code);
76079
76080 END IF;
76081
76082 -----------------------------------------------------------------------------------------
76083 -- 4262811 Multiperiod Accounting
76084 -----------------------------------------------------------------------------------------
76085 -- No MPA option is assigned.
76086
76087
76088 END IF;
76089 END IF;
76090 --
76091
76092 --
76093 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76094 trace
76095 (p_msg => 'END of AcctLineType_137'
76096 ,p_level => C_LEVEL_PROCEDURE
76097 ,p_module => l_log_module);
76098 END IF;
76099 --
76100 EXCEPTION
76101 WHEN xla_exceptions_pkg.application_exception THEN
76102 RAISE;
76103 WHEN OTHERS THEN
76104 xla_exceptions_pkg.raise_message
76105 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_137');
76106 END AcctLineType_137;
76107 --
76108
76109 ---------------------------------------
76110 --
76111 -- PRIVATE FUNCTION
76112 -- AcctLineType_138
76113 --
76114 ---------------------------------------
76115 PROCEDURE AcctLineType_138 (
76116 p_application_id IN NUMBER
76117 ,p_event_id IN NUMBER
76118 ,p_calculate_acctd_flag IN VARCHAR2
76119 ,p_calculate_g_l_flag IN VARCHAR2
76120 ,p_actual_flag IN OUT VARCHAR2
76121 ,p_balance_type_code OUT VARCHAR2
76122 ,p_gain_or_loss_ref OUT VARCHAR2
76123
76124 --Payment Currency Code
76125 , p_source_12 IN VARCHAR2
76126 --Payment Distribution (Cleared Rate) Ledger Amount
76127 , p_source_22 IN NUMBER
76128 --Invoice Distribution Account
76129 , p_source_29 IN NUMBER
76130 --Invoice Distribution Type
76131 , p_source_32 IN VARCHAR2
76132 , p_source_32_meaning IN VARCHAR2
76133 --When to Account for Payment Option
76134 , p_source_50 IN VARCHAR2
76135 --Payment Distribution Type
76136 , p_source_51 IN VARCHAR2
76137 , p_source_51_meaning IN VARCHAR2
76138 --Accounting Reversal Indicator
76139 , p_source_52 IN VARCHAR2
76140 --Payment Distribution Amount
76141 , p_source_53 IN NUMBER
76142 --Business Flow Accounts Payable Application Identifier
76143 , p_source_54 IN NUMBER
76144 --Business Flow Payment Distribution Type
76145 , p_source_55 IN VARCHAR2
76146 --Business Flow Payment Entity Code
76147 , p_source_56 IN VARCHAR2
76148 --Business Flow Payment Distribution Identifier
76149 , p_source_57 IN NUMBER
76150 --Business Flow Payment Identifier
76151 , p_source_58 IN NUMBER
76152 --Payment Distribution Identifier
76153 , p_source_59 IN NUMBER
76154 --Distribution Link Type
76155 , p_source_60 IN VARCHAR2
76156 --Override Accounted Amount Indicator
76157 , p_source_64 IN VARCHAR2
76158 , p_source_64_meaning IN VARCHAR2
76159 --Payment Supplier Identifier
76160 , p_source_65 IN NUMBER
76161 --Payment Supplier Site Identifier
76162 , p_source_66 IN NUMBER
76163 --Third Party Type
76164 , p_source_67 IN VARCHAR2
76165 --Payment Distribution Reversed Identifier
76166 , p_source_68 IN NUMBER
76167 --Invoice Distribution Tax Line Identifier
76168 , p_source_69 IN NUMBER
76169 --Invoice Distribution Summary Tax Line Identifier
76170 , p_source_70 IN NUMBER
76171 --Cleared Exchange Date
76172 , p_source_114 IN DATE
76173 --Cleared Exchange Rate
76174 , p_source_115 IN NUMBER
76175 --Cleared Exchange Rate Type
76176 , p_source_116 IN VARCHAR2
76177 )
76178 IS
76179
76180 l_component_type VARCHAR2(80);
76181 l_component_code VARCHAR2(30);
76182 l_component_type_code VARCHAR2(1);
76183 l_component_appl_id INTEGER;
76184 l_amb_context_code VARCHAR2(30);
76185 l_entity_code VARCHAR2(30);
76186 l_event_class_code VARCHAR2(30);
76187 l_ae_header_id NUMBER;
76188 l_event_type_code VARCHAR2(30);
76189 l_line_definition_code VARCHAR2(30);
76190 l_line_definition_owner_code VARCHAR2(1);
76191 --
76192 -- adr variables
76193 l_segment VARCHAR2(30);
76194 l_ccid NUMBER;
76195 l_adr_transaction_coa_id NUMBER;
76196 l_adr_accounting_coa_id NUMBER;
76197 l_adr_flexfield_segment_code VARCHAR2(30);
76198 l_adr_flex_value_set_id NUMBER;
76199 l_adr_value_type_code VARCHAR2(30);
76200 l_adr_value_combination_id NUMBER;
76204 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
76201 l_adr_value_segment_code VARCHAR2(30);
76202
76203 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
76205 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
76206 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
76207
76208 -- 4262811 Variables ------------------------------------------------------------------------------------------
76209 l_entered_amt_idx NUMBER;
76210 l_accted_amt_idx NUMBER;
76211 l_acc_rev_flag VARCHAR2(1);
76212 l_accrual_line_num NUMBER;
76213 l_tmp_amt NUMBER;
76214 l_acc_rev_natural_side_code VARCHAR2(1);
76215
76216 l_num_entries NUMBER;
76217 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
76218 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
76219 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
76220 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
76221 l_recog_line_1 NUMBER;
76222 l_recog_line_2 NUMBER;
76223
76224 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
76225 l_bflow_applied_to_amt NUMBER; -- 5132302
76226 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
76227
76228 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76229
76230 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
76231 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
76232
76233 ---------------------------------------------------------------------------------------------------------------
76234
76235
76236 --
76237 -- bulk performance
76238 --
76239 l_balance_type_code VARCHAR2(1);
76240 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76241 l_log_module VARCHAR2(240);
76242
76243 --
76244 -- Upgrade strategy
76245 --
76246 l_actual_upg_option VARCHAR2(1);
76247 l_enc_upg_option VARCHAR2(1);
76248
76249 --
76250 BEGIN
76251 --
76252 IF g_log_enabled THEN
76253 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
76254 END IF;
76255 --
76256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76257
76258 trace
76259 (p_msg => 'BEGIN of AcctLineType_138'
76260 ,p_level => C_LEVEL_PROCEDURE
76261 ,p_module => l_log_module);
76262
76263 END IF;
76264 --
76265 l_component_type := 'AMB_JLT';
76266 l_component_code := 'AP_RECOV_TAX_CLEAR';
76267 l_component_type_code := 'S';
76268 l_component_appl_id := 200;
76269 l_amb_context_code := 'DEFAULT';
76270 l_entity_code := 'AP_PAYMENTS';
76271 l_event_class_code := 'RECONCILED PAYMENTS';
76272 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
76273 l_line_definition_owner_code := 'S';
76274 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
76275 --
76276 l_balance_type_code := 'A';
76277 l_segment := NULL;
76278 l_ccid := NULL;
76279 l_adr_transaction_coa_id := NULL;
76280 l_adr_accounting_coa_id := NULL;
76281 l_adr_flexfield_segment_code := NULL;
76282 l_adr_flex_value_set_id := NULL;
76283 l_adr_value_type_code := NULL;
76284 l_adr_value_combination_id := NULL;
76285 l_adr_value_segment_code := NULL;
76286
76287 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
76288 l_bflow_class_code := ''; -- 4219869 Business Flow
76289 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
76290 l_budgetary_control_flag := 'N';
76291
76292 l_bflow_applied_to_amt_idx := NULL; -- 5132302
76293 l_bflow_applied_to_amt := NULL; -- 5132302
76294 l_entered_amt_idx := NULL; -- 4262811
76295 l_accted_amt_idx := NULL; -- 4262811
76296 l_acc_rev_flag := NULL; -- 4262811
76297 l_accrual_line_num := NULL; -- 4262811
76298 l_tmp_amt := NULL; -- 4262811
76299 --
76300
76301 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76302 l_balance_type_code <> 'B' THEN
76303 IF NVL(p_source_50,'
76304 ') = 'CLEAR_CLEAR' AND
76305 NVL(p_source_32,'
76306 ') = 'REC_TAX' AND
76307 (NVL(p_source_51,'
76308 ') = 'CASH' OR
76309 NVL(p_source_51,'
76310 ') = 'AWT' OR
76311 NVL(p_source_51,'
76312 ') = 'DISCOUNT')
76313 THEN
76314
76315 --
76316 XLA_AE_LINES_PKG.SetNewLine;
76317
76318 p_balance_type_code := l_balance_type_code;
76319 -- set the flag so later we will know whether the gain loss line needs to be created
76320
76321 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76322 p_actual_flag :='A';
76323 END IF;
76324
76325 --
76326 -- bulk performance
76327 --
76328 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76329 p_header_num => 0); -- 4262811
76330 --
76331 -- set accounting line options
76335 , p_gain_or_loss_flag => 'N'
76332 --
76333 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76334 p_natural_side_code => 'D'
76336 , p_gl_transfer_mode_code => 'S'
76337 , p_acct_entry_type_code => 'A'
76338 , p_switch_side_flag => 'Y'
76339 , p_merge_duplicate_code => 'A'
76340 );
76341 --
76342 l_acc_rev_natural_side_code := 'C'; -- 4262811
76343 --
76344 --
76345 -- set accounting line type info
76346 --
76347 xla_ae_lines_pkg.SetAcctLineType
76348 (p_component_type => l_component_type
76349 ,p_event_type_code => l_event_type_code
76350 ,p_line_definition_owner_code => l_line_definition_owner_code
76351 ,p_line_definition_code => l_line_definition_code
76352 ,p_accounting_line_code => l_component_code
76353 ,p_accounting_line_type_code => l_component_type_code
76354 ,p_accounting_line_appl_id => l_component_appl_id
76355 ,p_amb_context_code => l_amb_context_code
76356 ,p_entity_code => l_entity_code
76357 ,p_event_class_code => l_event_class_code);
76358 --
76359 -- set accounting class
76360 --
76361 xla_ae_lines_pkg.SetAcctClass(
76362 p_accounting_class_code => 'RTAX'
76363 , p_ae_header_id => l_ae_header_id
76364 );
76365
76366 --
76367 -- set rounding class
76368 --
76369 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76370 'RTAX';
76371
76372 --
76373 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76374 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76375 --
76376 -- bulk performance
76377 --
76378 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76379
76380 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76381 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76382
76383 -- 4955764
76384 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76385 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76386
76387 -- 4458381 Public Sector Enh
76388
76389 --
76390 -- set accounting attributes for the line type
76391 --
76392 l_entered_amt_idx := 10;
76393 l_accted_amt_idx := 15;
76394 l_bflow_applied_to_amt_idx := 2; -- 5132302
76395 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76396 l_rec_acct_attrs.array_char_value(1) := p_source_52;
76397 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76398 l_rec_acct_attrs.array_num_value(2) := p_source_53;
76399 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76400 l_rec_acct_attrs.array_num_value(3) := p_source_54;
76401 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76402 l_rec_acct_attrs.array_char_value(4) := p_source_55;
76403 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76404 l_rec_acct_attrs.array_char_value(5) := p_source_56;
76405 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76406 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
76407 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76408 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
76409 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76410 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
76411 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76412 l_rec_acct_attrs.array_char_value(9) := p_source_60;
76413 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76414 l_rec_acct_attrs.array_num_value(10) := p_source_53;
76415 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76416 l_rec_acct_attrs.array_char_value(11) := p_source_12;
76417 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
76418 l_rec_acct_attrs.array_date_value(12) := p_source_114;
76419 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
76420 l_rec_acct_attrs.array_num_value(13) := p_source_115;
76421 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
76422 l_rec_acct_attrs.array_char_value(14) := p_source_116;
76423 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
76424 l_rec_acct_attrs.array_num_value(15) := p_source_22;
76425 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
76426 l_rec_acct_attrs.array_char_value(16) := p_source_64;
76427 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76428 l_rec_acct_attrs.array_num_value(17) := p_source_65;
76429 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76430 l_rec_acct_attrs.array_num_value(18) := p_source_66;
76431 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76432 l_rec_acct_attrs.array_char_value(19) := p_source_67;
76433 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76434 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
76438 l_rec_acct_attrs.array_num_value(22) := p_source_69;
76435 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76436 l_rec_acct_attrs.array_char_value(21) := p_source_60;
76437 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76439 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76440 l_rec_acct_attrs.array_num_value(23) := p_source_69;
76441 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76442 l_rec_acct_attrs.array_num_value(24) := p_source_70;
76443
76444 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76445 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76446
76447 ---------------------------------------------------------------------------------------------------------------
76448 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76449 ---------------------------------------------------------------------------------------------------------------
76450 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76451
76452 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76453 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76454
76455 IF xla_accounting_cache_pkg.GetValueChar
76456 (p_source_code => 'LEDGER_CATEGORY_CODE'
76457 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76458 AND l_bflow_method_code = 'PRIOR_ENTRY'
76459 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76460 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76461 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76462 )
76463 THEN
76464 xla_ae_lines_pkg.BflowUpgEntry
76465 (p_business_method_code => l_bflow_method_code
76466 ,p_business_class_code => l_bflow_class_code
76467 ,p_balance_type => l_balance_type_code);
76468 ELSE
76469 NULL;
76470 -- No business flow processing for business flow method of NONE.
76471 END IF;
76472
76473 --
76474 -- call analytical criteria
76475 --
76476
76477 --
76478 -- call description
76479 --
76480 -- No description or it is inherited.
76481 --
76482 -- call ADRs
76483 -- Bug 4922099
76484 --
76485 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76486 (NVL(l_actual_upg_option, 'N') = 'O') OR
76487 (NVL(l_enc_upg_option, 'N') = 'O')
76488 )
76489 THEN
76490 NULL;
76491 --
76492 --
76493
76494 l_ccid := AcctDerRule_28(
76495 p_application_id => p_application_id
76496 , p_ae_header_id => l_ae_header_id
76497 , p_source_29 => p_source_29
76498 , x_transaction_coa_id => l_adr_transaction_coa_id
76499 , x_accounting_coa_id => l_adr_accounting_coa_id
76500 , x_value_type_code => l_adr_value_type_code
76501 , p_side => 'NA'
76502 );
76503
76504 xla_ae_lines_pkg.set_ccid(
76505 p_code_combination_id => l_ccid
76506 , p_value_type_code => l_adr_value_type_code
76507 , p_transaction_coa_id => l_adr_transaction_coa_id
76508 , p_accounting_coa_id => l_adr_accounting_coa_id
76509 , p_adr_code => 'AP_INVOICE_DIST'
76510 , p_adr_type_code => 'S'
76511 , p_component_type => l_component_type
76512 , p_component_code => l_component_code
76513 , p_component_type_code => l_component_type_code
76514 , p_component_appl_id => l_component_appl_id
76515 , p_amb_context_code => l_amb_context_code
76516 , p_side => 'NA'
76517 );
76518
76519
76520 --
76521 --
76522 END IF;
76523 --
76524 -- Bug 4922099
76525 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76526 (NVL(l_enc_upg_option, 'N') = 'O')
76527 ) AND
76528 (l_bflow_method_code = 'PRIOR_ENTRY')
76529 )
76530 THEN
76531 IF
76532 --
76533 1 = 2
76534 --
76535 THEN
76536 xla_accounting_err_pkg.build_message
76537 (p_appli_s_name => 'XLA'
76538 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76539 ,p_token_1 => 'LINE_NUMBER'
76540 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
76541 ,p_token_2 => 'LINE_TYPE_NAME'
76542 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
76543 l_component_type
76544 ,l_component_code
76545 ,l_component_type_code
76546 ,l_component_appl_id
76547 ,l_amb_context_code
76548 ,l_entity_code
76552 ,p_value_3 => xla_lookups_pkg.get_meaning(
76549 ,l_event_class_code
76550 )
76551 ,p_token_3 => 'OWNER'
76553 p_lookup_type => 'XLA_OWNER_TYPE'
76554 ,p_lookup_code => l_component_type_code
76555 )
76556 ,p_token_4 => 'PRODUCT_NAME'
76557 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76558 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76559 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76560 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76561 ,p_ae_header_id => NULL
76562 );
76563
76564 IF (C_LEVEL_ERROR>= g_log_level) THEN
76565 trace
76566 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76567 ,p_level => C_LEVEL_ERROR
76568 ,p_module => l_log_module);
76569 END IF;
76570 END IF;
76571 END IF;
76572 --
76573 --
76574 ------------------------------------------------------------------------------------------------
76575 -- 4219869 Business Flow
76576 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76577 -- Prior Entry. Currently, the following code is always generated.
76578 ------------------------------------------------------------------------------------------------
76579 XLA_AE_LINES_PKG.ValidateCurrentLine;
76580
76581 ------------------------------------------------------------------------------------
76582 -- 4219869 Business Flow
76583 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76584 ------------------------------------------------------------------------------------
76585 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76586
76587 ----------------------------------------------------------------------------------
76588 -- 4219869 Business Flow
76589 -- Update journal entry status -- Need to generate this within IF <condition>
76590 ----------------------------------------------------------------------------------
76591 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76592 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76593 ,p_balance_type_code => l_balance_type_code
76594 );
76595
76596 -------------------------------------------------------------------------------------------
76597 -- 4262811 - Generate the Accrual Reversal lines
76598 -------------------------------------------------------------------------------------------
76599 BEGIN
76600 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76601 (g_array_event(p_event_id).array_value_num('header_index'));
76602 IF l_acc_rev_flag IS NULL THEN
76603 l_acc_rev_flag := 'N';
76604 END IF;
76605 EXCEPTION
76606 WHEN OTHERS THEN
76607 l_acc_rev_flag := 'N';
76608 END;
76609 --
76610 IF (l_acc_rev_flag = 'Y') THEN
76611
76612 -- 4645092 ------------------------------------------------------------------------------
76613 -- To allow MPA report to determine if it should generate report process
76614 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76615 ------------------------------------------------------------------------------------------
76616
76617 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76618 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76619 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
76620 -- call ADRs
76621 -- Bug 4922099
76622 --
76623 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76624 (NVL(l_actual_upg_option, 'N') = 'O') OR
76625 (NVL(l_enc_upg_option, 'N') = 'O')
76626 )
76627 THEN
76628 NULL;
76629 --
76630 --
76631
76632 l_ccid := AcctDerRule_28(
76633 p_application_id => p_application_id
76634 , p_ae_header_id => l_ae_header_id
76635 , p_source_29 => p_source_29
76636 , x_transaction_coa_id => l_adr_transaction_coa_id
76637 , x_accounting_coa_id => l_adr_accounting_coa_id
76638 , x_value_type_code => l_adr_value_type_code
76639 , p_side => 'NA'
76640 );
76641
76642 xla_ae_lines_pkg.set_ccid(
76643 p_code_combination_id => l_ccid
76644 , p_value_type_code => l_adr_value_type_code
76645 , p_transaction_coa_id => l_adr_transaction_coa_id
76646 , p_accounting_coa_id => l_adr_accounting_coa_id
76647 , p_adr_code => 'AP_INVOICE_DIST'
76648 , p_adr_type_code => 'S'
76649 , p_component_type => l_component_type
76650 , p_component_code => l_component_code
76654 , p_side => 'NA'
76651 , p_component_type_code => l_component_type_code
76652 , p_component_appl_id => l_component_appl_id
76653 , p_amb_context_code => l_amb_context_code
76655 );
76656
76657
76658 --
76659 --
76660 END IF;
76661
76662 --
76663 -- Update the line information that should be overwritten
76664 --
76665 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76666 p_header_num => 1);
76667 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
76668
76669 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76670
76671 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
76672 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76673 END IF;
76674
76675 --
76676 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76677 --
76678 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76679 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
76680 ELSE
76681 ---------------------------------------------------------------------------------------------------
76682 -- 4262811a Switch Sign
76683 ---------------------------------------------------------------------------------------------------
76684 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
76685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76686 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76688 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76689 -- 5132302
76690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76691 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76692
76693 END IF;
76694
76695 -- 4955764
76696 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76697 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76698
76699
76700 XLA_AE_LINES_PKG.ValidateCurrentLine;
76701 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76702
76703 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76704 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76705 ,p_balance_type_code => l_balance_type_code);
76706
76707 END IF;
76708
76709 -----------------------------------------------------------------------------------------
76710 -- 4262811 Multiperiod Accounting
76711 -----------------------------------------------------------------------------------------
76712 -- No MPA option is assigned.
76713
76714
76715 END IF;
76716 END IF;
76717 --
76718
76719 --
76720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76721 trace
76722 (p_msg => 'END of AcctLineType_138'
76723 ,p_level => C_LEVEL_PROCEDURE
76724 ,p_module => l_log_module);
76725 END IF;
76726 --
76727 EXCEPTION
76728 WHEN xla_exceptions_pkg.application_exception THEN
76729 RAISE;
76730 WHEN OTHERS THEN
76731 xla_exceptions_pkg.raise_message
76732 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_138');
76733 END AcctLineType_138;
76734 --
76735
76736 ---------------------------------------
76737 --
76738 -- PRIVATE FUNCTION
76739 -- AcctLineType_139
76740 --
76741 ---------------------------------------
76742 PROCEDURE AcctLineType_139 (
76743 p_application_id IN NUMBER
76744 ,p_event_id IN NUMBER
76745 ,p_calculate_acctd_flag IN VARCHAR2
76746 ,p_calculate_g_l_flag IN VARCHAR2
76747 ,p_actual_flag IN OUT VARCHAR2
76748 ,p_balance_type_code OUT VARCHAR2
76749 ,p_gain_or_loss_ref OUT VARCHAR2
76750
76751 --Payment Currency Code
76752 , p_source_12 IN VARCHAR2
76753 --Payment Distribution (Payment Rate) Ledger Amount
76754 , p_source_21 IN NUMBER
76755 --Invoice Distribution Account
76756 , p_source_29 IN NUMBER
76757 --Invoice Distribution Type
76758 , p_source_32 IN VARCHAR2
76759 , p_source_32_meaning IN VARCHAR2
76760 --When to Account for Payment Option
76761 , p_source_50 IN VARCHAR2
76762 --Payment Distribution Type
76763 , p_source_51 IN VARCHAR2
76764 , p_source_51_meaning IN VARCHAR2
76765 --Accounting Reversal Indicator
76766 , p_source_52 IN VARCHAR2
76767 --Payment Distribution Amount
76768 , p_source_53 IN NUMBER
76769 --Business Flow Accounts Payable Application Identifier
76770 , p_source_54 IN NUMBER
76771 --Payment Distribution Identifier
76772 , p_source_59 IN NUMBER
76773 --Distribution Link Type
76774 , p_source_60 IN VARCHAR2
76775 --Override Accounted Amount Indicator
76776 , p_source_64 IN VARCHAR2
76780 --Payment Supplier Site Identifier
76777 , p_source_64_meaning IN VARCHAR2
76778 --Payment Supplier Identifier
76779 , p_source_65 IN NUMBER
76781 , p_source_66 IN NUMBER
76782 --Third Party Type
76783 , p_source_67 IN VARCHAR2
76784 --Payment Distribution Reversed Identifier
76785 , p_source_68 IN NUMBER
76786 --Invoice Distribution Tax Line Identifier
76787 , p_source_69 IN NUMBER
76788 --Invoice Distribution Summary Tax Line Identifier
76789 , p_source_70 IN NUMBER
76790 --Payment Type
76791 , p_source_71 IN VARCHAR2
76792 , p_source_71_meaning IN VARCHAR2
76793 --Invoice Distribution Amount of the Payment Distribution
76794 , p_source_72 IN NUMBER
76795 --Business Flow Invoice Distribution Type
76796 , p_source_73 IN VARCHAR2
76797 --Business Flow Invoice Entity Code
76798 , p_source_74 IN VARCHAR2
76799 --Business Flow Invoice Distribution Identifier
76800 , p_source_75 IN NUMBER
76801 --Business Flow Invoice Identifier
76802 , p_source_76 IN NUMBER
76803 --Invoice Distribution Tax Distribution Identifier from Tax
76804 , p_source_77 IN NUMBER
76805 --Payment Exchange Date
76806 , p_source_121 IN DATE
76807 --Payment Exchange Rate
76808 , p_source_122 IN NUMBER
76809 --Payment Exchange Rate Type
76810 , p_source_123 IN VARCHAR2
76811 )
76812 IS
76813
76814 l_component_type VARCHAR2(80);
76815 l_component_code VARCHAR2(30);
76816 l_component_type_code VARCHAR2(1);
76817 l_component_appl_id INTEGER;
76818 l_amb_context_code VARCHAR2(30);
76819 l_entity_code VARCHAR2(30);
76820 l_event_class_code VARCHAR2(30);
76821 l_ae_header_id NUMBER;
76822 l_event_type_code VARCHAR2(30);
76823 l_line_definition_code VARCHAR2(30);
76824 l_line_definition_owner_code VARCHAR2(1);
76825 --
76826 -- adr variables
76827 l_segment VARCHAR2(30);
76828 l_ccid NUMBER;
76829 l_adr_transaction_coa_id NUMBER;
76830 l_adr_accounting_coa_id NUMBER;
76831 l_adr_flexfield_segment_code VARCHAR2(30);
76832 l_adr_flex_value_set_id NUMBER;
76833 l_adr_value_type_code VARCHAR2(30);
76834 l_adr_value_combination_id NUMBER;
76835 l_adr_value_segment_code VARCHAR2(30);
76836
76837 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
76838 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
76839 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
76840 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
76841
76842 -- 4262811 Variables ------------------------------------------------------------------------------------------
76843 l_entered_amt_idx NUMBER;
76844 l_accted_amt_idx NUMBER;
76845 l_acc_rev_flag VARCHAR2(1);
76846 l_accrual_line_num NUMBER;
76847 l_tmp_amt NUMBER;
76848 l_acc_rev_natural_side_code VARCHAR2(1);
76849
76850 l_num_entries NUMBER;
76851 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
76852 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
76853 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
76854 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
76855 l_recog_line_1 NUMBER;
76856 l_recog_line_2 NUMBER;
76857
76858 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
76859 l_bflow_applied_to_amt NUMBER; -- 5132302
76860 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
76861
76862 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76863
76864 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
76865 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
76866
76867 ---------------------------------------------------------------------------------------------------------------
76868
76869
76870 --
76871 -- bulk performance
76872 --
76873 l_balance_type_code VARCHAR2(1);
76874 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76875 l_log_module VARCHAR2(240);
76876
76877 --
76878 -- Upgrade strategy
76879 --
76880 l_actual_upg_option VARCHAR2(1);
76881 l_enc_upg_option VARCHAR2(1);
76882
76883 --
76884 BEGIN
76885 --
76886 IF g_log_enabled THEN
76887 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
76888 END IF;
76889 --
76890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76891
76892 trace
76893 (p_msg => 'BEGIN of AcctLineType_139'
76894 ,p_level => C_LEVEL_PROCEDURE
76895 ,p_module => l_log_module);
76896
76897 END IF;
76898 --
76899 l_component_type := 'AMB_JLT';
76900 l_component_code := 'AP_RECOV_TAX_PMT';
76901 l_component_type_code := 'S';
76902 l_component_appl_id := 200;
76903 l_amb_context_code := 'DEFAULT';
76904 l_entity_code := 'AP_PAYMENTS';
76905 l_event_class_code := 'PAYMENTS';
76909 --
76906 l_event_type_code := 'PAYMENTS_ALL';
76907 l_line_definition_owner_code := 'S';
76908 l_line_definition_code := 'CASH_PAYMENTS_ALL';
76910 l_balance_type_code := 'A';
76911 l_segment := NULL;
76912 l_ccid := NULL;
76913 l_adr_transaction_coa_id := NULL;
76914 l_adr_accounting_coa_id := NULL;
76915 l_adr_flexfield_segment_code := NULL;
76916 l_adr_flex_value_set_id := NULL;
76917 l_adr_value_type_code := NULL;
76918 l_adr_value_combination_id := NULL;
76919 l_adr_value_segment_code := NULL;
76920
76921 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
76922 l_bflow_class_code := ''; -- 4219869 Business Flow
76923 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
76924 l_budgetary_control_flag := 'N';
76925
76926 l_bflow_applied_to_amt_idx := NULL; -- 5132302
76927 l_bflow_applied_to_amt := NULL; -- 5132302
76928 l_entered_amt_idx := NULL; -- 4262811
76929 l_accted_amt_idx := NULL; -- 4262811
76930 l_acc_rev_flag := NULL; -- 4262811
76931 l_accrual_line_num := NULL; -- 4262811
76932 l_tmp_amt := NULL; -- 4262811
76933 --
76934
76935 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76936 l_balance_type_code <> 'B' THEN
76937 IF NVL(p_source_50,'
76938 ') <> 'CLEAR_CLEAR' AND
76939 NVL(p_source_32,'
76940 ') = 'REC_TAX' AND
76941 (NVL(p_source_51,'
76942 ') = 'CASH' OR
76943 NVL(p_source_51,'
76944 ') = 'AWT' OR
76945 NVL(p_source_51,'
76946 ') = 'DISCOUNT') AND
76947 NVL(p_source_71,'
76948 ') <> 'R'
76949 THEN
76950
76951 --
76952 XLA_AE_LINES_PKG.SetNewLine;
76953
76954 p_balance_type_code := l_balance_type_code;
76955 -- set the flag so later we will know whether the gain loss line needs to be created
76956
76957 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76958 p_actual_flag :='A';
76959 END IF;
76960
76961 --
76962 -- bulk performance
76963 --
76964 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76965 p_header_num => 0); -- 4262811
76966 --
76967 -- set accounting line options
76968 --
76969 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76970 p_natural_side_code => 'D'
76971 , p_gain_or_loss_flag => 'N'
76972 , p_gl_transfer_mode_code => 'S'
76973 , p_acct_entry_type_code => 'A'
76974 , p_switch_side_flag => 'Y'
76975 , p_merge_duplicate_code => 'A'
76976 );
76977 --
76978 l_acc_rev_natural_side_code := 'C'; -- 4262811
76979 --
76980 --
76981 -- set accounting line type info
76982 --
76983 xla_ae_lines_pkg.SetAcctLineType
76984 (p_component_type => l_component_type
76985 ,p_event_type_code => l_event_type_code
76986 ,p_line_definition_owner_code => l_line_definition_owner_code
76987 ,p_line_definition_code => l_line_definition_code
76988 ,p_accounting_line_code => l_component_code
76989 ,p_accounting_line_type_code => l_component_type_code
76990 ,p_accounting_line_appl_id => l_component_appl_id
76991 ,p_amb_context_code => l_amb_context_code
76992 ,p_entity_code => l_entity_code
76993 ,p_event_class_code => l_event_class_code);
76994 --
76995 -- set accounting class
76996 --
76997 xla_ae_lines_pkg.SetAcctClass(
76998 p_accounting_class_code => 'RTAX'
76999 , p_ae_header_id => l_ae_header_id
77000 );
77001
77002 --
77003 -- set rounding class
77004 --
77005 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77006 'RTAX';
77007
77008 --
77009 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77010 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77011 --
77012 -- bulk performance
77013 --
77014 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77015
77016 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77017 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77018
77019 -- 4955764
77020 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77021 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77022
77023 -- 4458381 Public Sector Enh
77024
77025 --
77026 -- set accounting attributes for the line type
77027 --
77028 l_entered_amt_idx := 10;
77029 l_accted_amt_idx := 15;
77030 l_bflow_applied_to_amt_idx := 2; -- 5132302
77031 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77032 l_rec_acct_attrs.array_char_value(1) := p_source_52;
77033 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
77034 l_rec_acct_attrs.array_num_value(2) := p_source_72;
77038 l_rec_acct_attrs.array_char_value(4) := p_source_73;
77035 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
77036 l_rec_acct_attrs.array_num_value(3) := p_source_54;
77037 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77039 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
77040 l_rec_acct_attrs.array_char_value(5) := p_source_74;
77041 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
77042 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
77043 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77044 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
77045 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
77046 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
77047 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
77048 l_rec_acct_attrs.array_char_value(9) := p_source_60;
77049 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
77050 l_rec_acct_attrs.array_num_value(10) := p_source_53;
77051 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
77052 l_rec_acct_attrs.array_char_value(11) := p_source_12;
77053 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
77054 l_rec_acct_attrs.array_date_value(12) := p_source_121;
77055 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
77056 l_rec_acct_attrs.array_num_value(13) := p_source_122;
77057 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
77058 l_rec_acct_attrs.array_char_value(14) := p_source_123;
77059 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
77060 l_rec_acct_attrs.array_num_value(15) := p_source_21;
77061 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
77062 l_rec_acct_attrs.array_char_value(16) := p_source_64;
77063 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
77064 l_rec_acct_attrs.array_num_value(17) := p_source_65;
77065 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
77066 l_rec_acct_attrs.array_num_value(18) := p_source_66;
77067 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
77068 l_rec_acct_attrs.array_char_value(19) := p_source_67;
77069 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
77070 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
77071 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
77072 l_rec_acct_attrs.array_char_value(21) := p_source_60;
77073 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
77074 l_rec_acct_attrs.array_num_value(22) := p_source_69;
77075 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
77076 l_rec_acct_attrs.array_num_value(23) := p_source_77;
77077 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
77078 l_rec_acct_attrs.array_num_value(24) := p_source_70;
77079
77080 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77081 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77082
77083 ---------------------------------------------------------------------------------------------------------------
77084 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77085 ---------------------------------------------------------------------------------------------------------------
77086 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77087
77088 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77089 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77090
77091 IF xla_accounting_cache_pkg.GetValueChar
77092 (p_source_code => 'LEDGER_CATEGORY_CODE'
77093 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77094 AND l_bflow_method_code = 'PRIOR_ENTRY'
77095 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77096 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77097 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77098 )
77099 THEN
77100 xla_ae_lines_pkg.BflowUpgEntry
77101 (p_business_method_code => l_bflow_method_code
77102 ,p_business_class_code => l_bflow_class_code
77103 ,p_balance_type => l_balance_type_code);
77104 ELSE
77105 NULL;
77106 -- No business flow processing for business flow method of NONE.
77107 END IF;
77108
77109 --
77110 -- call analytical criteria
77111 --
77112
77113 --
77114 -- call description
77115 --
77116 -- No description or it is inherited.
77117 --
77118 -- call ADRs
77119 -- Bug 4922099
77120 --
77121 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77122 (NVL(l_actual_upg_option, 'N') = 'O') OR
77123 (NVL(l_enc_upg_option, 'N') = 'O')
77124 )
77125 THEN
77126 NULL;
77127 --
77128 --
77129
77130 l_ccid := AcctDerRule_28(
77131 p_application_id => p_application_id
77132 , p_ae_header_id => l_ae_header_id
77133 , p_source_29 => p_source_29
77134 , x_transaction_coa_id => l_adr_transaction_coa_id
77135 , x_accounting_coa_id => l_adr_accounting_coa_id
77139
77136 , x_value_type_code => l_adr_value_type_code
77137 , p_side => 'NA'
77138 );
77140 xla_ae_lines_pkg.set_ccid(
77141 p_code_combination_id => l_ccid
77142 , p_value_type_code => l_adr_value_type_code
77143 , p_transaction_coa_id => l_adr_transaction_coa_id
77144 , p_accounting_coa_id => l_adr_accounting_coa_id
77145 , p_adr_code => 'AP_INVOICE_DIST'
77146 , p_adr_type_code => 'S'
77147 , p_component_type => l_component_type
77148 , p_component_code => l_component_code
77149 , p_component_type_code => l_component_type_code
77150 , p_component_appl_id => l_component_appl_id
77151 , p_amb_context_code => l_amb_context_code
77152 , p_side => 'NA'
77153 );
77154
77155
77156 --
77157 --
77158 END IF;
77159 --
77160 -- Bug 4922099
77161 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77162 (NVL(l_enc_upg_option, 'N') = 'O')
77163 ) AND
77164 (l_bflow_method_code = 'PRIOR_ENTRY')
77165 )
77166 THEN
77167 IF
77168 --
77169 1 = 2
77170 --
77171 THEN
77172 xla_accounting_err_pkg.build_message
77173 (p_appli_s_name => 'XLA'
77174 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77175 ,p_token_1 => 'LINE_NUMBER'
77176 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
77177 ,p_token_2 => 'LINE_TYPE_NAME'
77178 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
77179 l_component_type
77180 ,l_component_code
77181 ,l_component_type_code
77182 ,l_component_appl_id
77183 ,l_amb_context_code
77184 ,l_entity_code
77185 ,l_event_class_code
77186 )
77187 ,p_token_3 => 'OWNER'
77188 ,p_value_3 => xla_lookups_pkg.get_meaning(
77189 p_lookup_type => 'XLA_OWNER_TYPE'
77190 ,p_lookup_code => l_component_type_code
77191 )
77192 ,p_token_4 => 'PRODUCT_NAME'
77193 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77194 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77195 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77196 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77197 ,p_ae_header_id => NULL
77198 );
77199
77200 IF (C_LEVEL_ERROR>= g_log_level) THEN
77201 trace
77202 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77203 ,p_level => C_LEVEL_ERROR
77204 ,p_module => l_log_module);
77205 END IF;
77206 END IF;
77207 END IF;
77208 --
77209 --
77210 ------------------------------------------------------------------------------------------------
77211 -- 4219869 Business Flow
77212 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77213 -- Prior Entry. Currently, the following code is always generated.
77214 ------------------------------------------------------------------------------------------------
77215 XLA_AE_LINES_PKG.ValidateCurrentLine;
77216
77217 ------------------------------------------------------------------------------------
77218 -- 4219869 Business Flow
77219 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77220 ------------------------------------------------------------------------------------
77221 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77222
77223 ----------------------------------------------------------------------------------
77224 -- 4219869 Business Flow
77225 -- Update journal entry status -- Need to generate this within IF <condition>
77226 ----------------------------------------------------------------------------------
77227 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77228 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77229 ,p_balance_type_code => l_balance_type_code
77230 );
77231
77232 -------------------------------------------------------------------------------------------
77233 -- 4262811 - Generate the Accrual Reversal lines
77237 (g_array_event(p_event_id).array_value_num('header_index'));
77234 -------------------------------------------------------------------------------------------
77235 BEGIN
77236 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77238 IF l_acc_rev_flag IS NULL THEN
77239 l_acc_rev_flag := 'N';
77240 END IF;
77241 EXCEPTION
77242 WHEN OTHERS THEN
77243 l_acc_rev_flag := 'N';
77244 END;
77245 --
77246 IF (l_acc_rev_flag = 'Y') THEN
77247
77248 -- 4645092 ------------------------------------------------------------------------------
77249 -- To allow MPA report to determine if it should generate report process
77250 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77251 ------------------------------------------------------------------------------------------
77252
77253 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77254 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77255 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
77256 -- call ADRs
77257 -- Bug 4922099
77258 --
77259 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77260 (NVL(l_actual_upg_option, 'N') = 'O') OR
77261 (NVL(l_enc_upg_option, 'N') = 'O')
77262 )
77263 THEN
77264 NULL;
77265 --
77266 --
77267
77268 l_ccid := AcctDerRule_28(
77269 p_application_id => p_application_id
77270 , p_ae_header_id => l_ae_header_id
77271 , p_source_29 => p_source_29
77272 , x_transaction_coa_id => l_adr_transaction_coa_id
77273 , x_accounting_coa_id => l_adr_accounting_coa_id
77274 , x_value_type_code => l_adr_value_type_code
77275 , p_side => 'NA'
77276 );
77277
77278 xla_ae_lines_pkg.set_ccid(
77279 p_code_combination_id => l_ccid
77280 , p_value_type_code => l_adr_value_type_code
77281 , p_transaction_coa_id => l_adr_transaction_coa_id
77282 , p_accounting_coa_id => l_adr_accounting_coa_id
77283 , p_adr_code => 'AP_INVOICE_DIST'
77284 , p_adr_type_code => 'S'
77285 , p_component_type => l_component_type
77286 , p_component_code => l_component_code
77287 , p_component_type_code => l_component_type_code
77288 , p_component_appl_id => l_component_appl_id
77289 , p_amb_context_code => l_amb_context_code
77290 , p_side => 'NA'
77291 );
77292
77293
77294 --
77295 --
77296 END IF;
77297
77298 --
77299 -- Update the line information that should be overwritten
77300 --
77301 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77302 p_header_num => 1);
77303 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
77304
77305 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77306
77307 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
77308 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77309 END IF;
77310
77311 --
77312 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77313 --
77314 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77315 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
77316 ELSE
77317 ---------------------------------------------------------------------------------------------------
77318 -- 4262811a Switch Sign
77319 ---------------------------------------------------------------------------------------------------
77320 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
77321 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77322 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77323 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77324 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77325 -- 5132302
77326 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77327 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77328
77329 END IF;
77330
77331 -- 4955764
77332 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77333 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77334
77335
77336 XLA_AE_LINES_PKG.ValidateCurrentLine;
77337 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77338
77339 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77340 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77341 ,p_balance_type_code => l_balance_type_code);
77342
77343 END IF;
77344
77345 -----------------------------------------------------------------------------------------
77349
77346 -- 4262811 Multiperiod Accounting
77347 -----------------------------------------------------------------------------------------
77348 -- No MPA option is assigned.
77350
77351 END IF;
77352 END IF;
77353 --
77354
77355 --
77356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77357 trace
77358 (p_msg => 'END of AcctLineType_139'
77359 ,p_level => C_LEVEL_PROCEDURE
77360 ,p_module => l_log_module);
77361 END IF;
77362 --
77363 EXCEPTION
77364 WHEN xla_exceptions_pkg.application_exception THEN
77365 RAISE;
77366 WHEN OTHERS THEN
77367 xla_exceptions_pkg.raise_message
77368 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_139');
77369 END AcctLineType_139;
77370 --
77371
77372 ---------------------------------------
77373 --
77374 -- PRIVATE FUNCTION
77375 -- AcctLineType_140
77376 --
77377 ---------------------------------------
77378 PROCEDURE AcctLineType_140 (
77379 p_application_id IN NUMBER
77380 ,p_event_id IN NUMBER
77381 ,p_calculate_acctd_flag IN VARCHAR2
77382 ,p_calculate_g_l_flag IN VARCHAR2
77383 ,p_actual_flag IN OUT VARCHAR2
77384 ,p_balance_type_code OUT VARCHAR2
77385 ,p_gain_or_loss_ref OUT VARCHAR2
77386
77387 --Payment Currency Code
77388 , p_source_12 IN VARCHAR2
77389 --Payment Distribution (Payment Rate) Ledger Amount
77390 , p_source_21 IN NUMBER
77391 --Invoice Distribution Account
77392 , p_source_29 IN NUMBER
77393 --Invoice Distribution Type
77394 , p_source_32 IN VARCHAR2
77395 , p_source_32_meaning IN VARCHAR2
77396 --When to Account for Payment Option
77397 , p_source_50 IN VARCHAR2
77398 --Payment Distribution Type
77399 , p_source_51 IN VARCHAR2
77400 , p_source_51_meaning IN VARCHAR2
77401 --Accounting Reversal Indicator
77402 , p_source_52 IN VARCHAR2
77403 --Payment Distribution Amount
77404 , p_source_53 IN NUMBER
77405 --Business Flow Accounts Payable Application Identifier
77406 , p_source_54 IN NUMBER
77407 --Payment Distribution Identifier
77408 , p_source_59 IN NUMBER
77409 --Distribution Link Type
77410 , p_source_60 IN VARCHAR2
77411 --Override Accounted Amount Indicator
77412 , p_source_64 IN VARCHAR2
77413 , p_source_64_meaning IN VARCHAR2
77414 --Payment Supplier Identifier
77415 , p_source_65 IN NUMBER
77416 --Payment Supplier Site Identifier
77417 , p_source_66 IN NUMBER
77418 --Third Party Type
77419 , p_source_67 IN VARCHAR2
77420 --Payment Distribution Reversed Identifier
77421 , p_source_68 IN NUMBER
77422 --Invoice Distribution Tax Line Identifier
77423 , p_source_69 IN NUMBER
77424 --Invoice Distribution Summary Tax Line Identifier
77425 , p_source_70 IN NUMBER
77426 --Payment Type
77427 , p_source_71 IN VARCHAR2
77428 , p_source_71_meaning IN VARCHAR2
77429 --Business Flow Invoice Distribution Type
77430 , p_source_73 IN VARCHAR2
77431 --Business Flow Invoice Entity Code
77432 , p_source_74 IN VARCHAR2
77433 --Business Flow Invoice Distribution Identifier
77434 , p_source_75 IN NUMBER
77435 --Business Flow Invoice Identifier
77436 , p_source_76 IN NUMBER
77437 --Invoice Distribution Tax Distribution Identifier from Tax
77438 , p_source_77 IN NUMBER
77439 --Payment Exchange Date
77440 , p_source_121 IN DATE
77441 --Payment Exchange Rate
77442 , p_source_122 IN NUMBER
77443 --Payment Exchange Rate Type
77444 , p_source_123 IN VARCHAR2
77445 )
77446 IS
77447
77448 l_component_type VARCHAR2(80);
77449 l_component_code VARCHAR2(30);
77450 l_component_type_code VARCHAR2(1);
77451 l_component_appl_id INTEGER;
77452 l_amb_context_code VARCHAR2(30);
77453 l_entity_code VARCHAR2(30);
77454 l_event_class_code VARCHAR2(30);
77455 l_ae_header_id NUMBER;
77456 l_event_type_code VARCHAR2(30);
77457 l_line_definition_code VARCHAR2(30);
77458 l_line_definition_owner_code VARCHAR2(1);
77459 --
77460 -- adr variables
77461 l_segment VARCHAR2(30);
77462 l_ccid NUMBER;
77463 l_adr_transaction_coa_id NUMBER;
77464 l_adr_accounting_coa_id NUMBER;
77465 l_adr_flexfield_segment_code VARCHAR2(30);
77466 l_adr_flex_value_set_id NUMBER;
77467 l_adr_value_type_code VARCHAR2(30);
77468 l_adr_value_combination_id NUMBER;
77469 l_adr_value_segment_code VARCHAR2(30);
77470
77471 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
77472 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
77473 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
77474 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
77475
77476 -- 4262811 Variables ------------------------------------------------------------------------------------------
77477 l_entered_amt_idx NUMBER;
77478 l_accted_amt_idx NUMBER;
77479 l_acc_rev_flag VARCHAR2(1);
77480 l_accrual_line_num NUMBER;
77481 l_tmp_amt NUMBER;
77482 l_acc_rev_natural_side_code VARCHAR2(1);
77483
77484 l_num_entries NUMBER;
77488 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
77485 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
77486 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
77487 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
77489 l_recog_line_1 NUMBER;
77490 l_recog_line_2 NUMBER;
77491
77492 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
77493 l_bflow_applied_to_amt NUMBER; -- 5132302
77494 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
77495
77496 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77497
77498 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
77499 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
77500
77501 ---------------------------------------------------------------------------------------------------------------
77502
77503
77504 --
77505 -- bulk performance
77506 --
77507 l_balance_type_code VARCHAR2(1);
77508 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77509 l_log_module VARCHAR2(240);
77510
77511 --
77512 -- Upgrade strategy
77513 --
77514 l_actual_upg_option VARCHAR2(1);
77515 l_enc_upg_option VARCHAR2(1);
77516
77517 --
77518 BEGIN
77519 --
77520 IF g_log_enabled THEN
77521 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
77522 END IF;
77523 --
77524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77525
77526 trace
77527 (p_msg => 'BEGIN of AcctLineType_140'
77528 ,p_level => C_LEVEL_PROCEDURE
77529 ,p_module => l_log_module);
77530
77531 END IF;
77532 --
77533 l_component_type := 'AMB_JLT';
77534 l_component_code := 'AP_RECOV_TAX_REF';
77535 l_component_type_code := 'S';
77536 l_component_appl_id := 200;
77537 l_amb_context_code := 'DEFAULT';
77538 l_entity_code := 'AP_PAYMENTS';
77539 l_event_class_code := 'REFUNDS';
77540 l_event_type_code := 'REFUNDS_ALL';
77541 l_line_definition_owner_code := 'S';
77542 l_line_definition_code := 'CASH_REFUNDS_ALL';
77543 --
77544 l_balance_type_code := 'A';
77545 l_segment := NULL;
77546 l_ccid := NULL;
77547 l_adr_transaction_coa_id := NULL;
77548 l_adr_accounting_coa_id := NULL;
77549 l_adr_flexfield_segment_code := NULL;
77550 l_adr_flex_value_set_id := NULL;
77551 l_adr_value_type_code := NULL;
77552 l_adr_value_combination_id := NULL;
77553 l_adr_value_segment_code := NULL;
77554
77555 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
77556 l_bflow_class_code := ''; -- 4219869 Business Flow
77557 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
77558 l_budgetary_control_flag := 'N';
77559
77560 l_bflow_applied_to_amt_idx := NULL; -- 5132302
77561 l_bflow_applied_to_amt := NULL; -- 5132302
77562 l_entered_amt_idx := NULL; -- 4262811
77563 l_accted_amt_idx := NULL; -- 4262811
77564 l_acc_rev_flag := NULL; -- 4262811
77565 l_accrual_line_num := NULL; -- 4262811
77566 l_tmp_amt := NULL; -- 4262811
77567 --
77568
77569 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77570 l_balance_type_code <> 'B' THEN
77571 IF NVL(p_source_50,'
77572 ') <> 'CLEAR_CLEAR' AND
77573 NVL(p_source_32,'
77574 ') = 'REC_TAX' AND
77575 (NVL(p_source_51,'
77576 ') = 'CASH' OR
77577 NVL(p_source_51,'
77578 ') = 'DISCOUNT') AND
77579 NVL(p_source_71,'
77580 ') = 'R'
77581 THEN
77582
77583 --
77584 XLA_AE_LINES_PKG.SetNewLine;
77585
77586 p_balance_type_code := l_balance_type_code;
77587 -- set the flag so later we will know whether the gain loss line needs to be created
77588
77589 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77590 p_actual_flag :='A';
77591 END IF;
77592
77593 --
77594 -- bulk performance
77595 --
77596 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77597 p_header_num => 0); -- 4262811
77598 --
77599 -- set accounting line options
77600 --
77601 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77602 p_natural_side_code => 'D'
77603 , p_gain_or_loss_flag => 'N'
77604 , p_gl_transfer_mode_code => 'S'
77605 , p_acct_entry_type_code => 'A'
77606 , p_switch_side_flag => 'Y'
77607 , p_merge_duplicate_code => 'A'
77608 );
77609 --
77610 l_acc_rev_natural_side_code := 'C'; -- 4262811
77611 --
77612 --
77613 -- set accounting line type info
77614 --
77615 xla_ae_lines_pkg.SetAcctLineType
77616 (p_component_type => l_component_type
77617 ,p_event_type_code => l_event_type_code
77618 ,p_line_definition_owner_code => l_line_definition_owner_code
77622 ,p_accounting_line_appl_id => l_component_appl_id
77619 ,p_line_definition_code => l_line_definition_code
77620 ,p_accounting_line_code => l_component_code
77621 ,p_accounting_line_type_code => l_component_type_code
77623 ,p_amb_context_code => l_amb_context_code
77624 ,p_entity_code => l_entity_code
77625 ,p_event_class_code => l_event_class_code);
77626 --
77627 -- set accounting class
77628 --
77629 xla_ae_lines_pkg.SetAcctClass(
77630 p_accounting_class_code => 'RTAX'
77631 , p_ae_header_id => l_ae_header_id
77632 );
77633
77634 --
77635 -- set rounding class
77636 --
77637 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77638 'RTAX';
77639
77640 --
77641 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77642 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77643 --
77644 -- bulk performance
77645 --
77646 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77647
77648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77649 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77650
77651 -- 4955764
77652 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77653 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77654
77655 -- 4458381 Public Sector Enh
77656
77657 --
77658 -- set accounting attributes for the line type
77659 --
77660 l_entered_amt_idx := 9;
77661 l_accted_amt_idx := 14;
77662 l_bflow_applied_to_amt_idx := NULL; -- 5132302
77663 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77664 l_rec_acct_attrs.array_char_value(1) := p_source_52;
77665 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
77666 l_rec_acct_attrs.array_num_value(2) := p_source_54;
77667 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77668 l_rec_acct_attrs.array_char_value(3) := p_source_73;
77669 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
77670 l_rec_acct_attrs.array_char_value(4) := p_source_74;
77671 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
77672 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
77673 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77674 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
77675 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
77676 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
77677 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
77678 l_rec_acct_attrs.array_char_value(8) := p_source_60;
77679 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
77680 l_rec_acct_attrs.array_num_value(9) := p_source_53;
77681 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
77682 l_rec_acct_attrs.array_char_value(10) := p_source_12;
77683 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
77684 l_rec_acct_attrs.array_date_value(11) := p_source_121;
77685 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
77686 l_rec_acct_attrs.array_num_value(12) := p_source_122;
77687 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
77688 l_rec_acct_attrs.array_char_value(13) := p_source_123;
77689 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
77690 l_rec_acct_attrs.array_num_value(14) := p_source_21;
77691 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
77692 l_rec_acct_attrs.array_char_value(15) := p_source_64;
77693 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
77694 l_rec_acct_attrs.array_num_value(16) := p_source_65;
77695 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
77696 l_rec_acct_attrs.array_num_value(17) := p_source_66;
77697 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
77698 l_rec_acct_attrs.array_char_value(18) := p_source_67;
77699 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
77700 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
77701 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
77702 l_rec_acct_attrs.array_char_value(20) := p_source_60;
77703 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
77704 l_rec_acct_attrs.array_num_value(21) := p_source_69;
77705 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
77706 l_rec_acct_attrs.array_num_value(22) := p_source_77;
77707 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
77708 l_rec_acct_attrs.array_num_value(23) := p_source_70;
77709
77710 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77711 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77712
77713 ---------------------------------------------------------------------------------------------------------------
77714 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77715 ---------------------------------------------------------------------------------------------------------------
77719 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77716 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77717
77718 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77720
77721 IF xla_accounting_cache_pkg.GetValueChar
77722 (p_source_code => 'LEDGER_CATEGORY_CODE'
77723 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77724 AND l_bflow_method_code = 'PRIOR_ENTRY'
77725 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77726 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77727 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77728 )
77729 THEN
77730 xla_ae_lines_pkg.BflowUpgEntry
77731 (p_business_method_code => l_bflow_method_code
77732 ,p_business_class_code => l_bflow_class_code
77733 ,p_balance_type => l_balance_type_code);
77734 ELSE
77735 NULL;
77736 -- No business flow processing for business flow method of NONE.
77737 END IF;
77738
77739 --
77740 -- call analytical criteria
77741 --
77742
77743 --
77744 -- call description
77745 --
77746 -- No description or it is inherited.
77747 --
77748 -- call ADRs
77749 -- Bug 4922099
77750 --
77751 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77752 (NVL(l_actual_upg_option, 'N') = 'O') OR
77753 (NVL(l_enc_upg_option, 'N') = 'O')
77754 )
77755 THEN
77756 NULL;
77757 --
77758 --
77759
77760 l_ccid := AcctDerRule_28(
77761 p_application_id => p_application_id
77762 , p_ae_header_id => l_ae_header_id
77763 , p_source_29 => p_source_29
77764 , x_transaction_coa_id => l_adr_transaction_coa_id
77765 , x_accounting_coa_id => l_adr_accounting_coa_id
77766 , x_value_type_code => l_adr_value_type_code
77767 , p_side => 'NA'
77768 );
77769
77770 xla_ae_lines_pkg.set_ccid(
77771 p_code_combination_id => l_ccid
77772 , p_value_type_code => l_adr_value_type_code
77773 , p_transaction_coa_id => l_adr_transaction_coa_id
77774 , p_accounting_coa_id => l_adr_accounting_coa_id
77775 , p_adr_code => 'AP_INVOICE_DIST'
77776 , p_adr_type_code => 'S'
77777 , p_component_type => l_component_type
77778 , p_component_code => l_component_code
77779 , p_component_type_code => l_component_type_code
77780 , p_component_appl_id => l_component_appl_id
77781 , p_amb_context_code => l_amb_context_code
77782 , p_side => 'NA'
77783 );
77784
77785
77786 --
77787 --
77788 END IF;
77789 --
77790 -- Bug 4922099
77791 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77792 (NVL(l_enc_upg_option, 'N') = 'O')
77793 ) AND
77794 (l_bflow_method_code = 'PRIOR_ENTRY')
77795 )
77796 THEN
77797 IF
77798 --
77799 1 = 2
77800 --
77801 THEN
77802 xla_accounting_err_pkg.build_message
77803 (p_appli_s_name => 'XLA'
77804 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77805 ,p_token_1 => 'LINE_NUMBER'
77806 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
77807 ,p_token_2 => 'LINE_TYPE_NAME'
77808 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
77809 l_component_type
77810 ,l_component_code
77811 ,l_component_type_code
77812 ,l_component_appl_id
77813 ,l_amb_context_code
77814 ,l_entity_code
77815 ,l_event_class_code
77816 )
77817 ,p_token_3 => 'OWNER'
77818 ,p_value_3 => xla_lookups_pkg.get_meaning(
77819 p_lookup_type => 'XLA_OWNER_TYPE'
77820 ,p_lookup_code => l_component_type_code
77821 )
77822 ,p_token_4 => 'PRODUCT_NAME'
77823 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77824 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77828 );
77825 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77826 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77827 ,p_ae_header_id => NULL
77829
77830 IF (C_LEVEL_ERROR>= g_log_level) THEN
77831 trace
77832 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77833 ,p_level => C_LEVEL_ERROR
77834 ,p_module => l_log_module);
77835 END IF;
77836 END IF;
77837 END IF;
77838 --
77839 --
77840 ------------------------------------------------------------------------------------------------
77841 -- 4219869 Business Flow
77842 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77843 -- Prior Entry. Currently, the following code is always generated.
77844 ------------------------------------------------------------------------------------------------
77845 XLA_AE_LINES_PKG.ValidateCurrentLine;
77846
77847 ------------------------------------------------------------------------------------
77848 -- 4219869 Business Flow
77849 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77850 ------------------------------------------------------------------------------------
77851 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77852
77853 ----------------------------------------------------------------------------------
77854 -- 4219869 Business Flow
77855 -- Update journal entry status -- Need to generate this within IF <condition>
77856 ----------------------------------------------------------------------------------
77857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77859 ,p_balance_type_code => l_balance_type_code
77860 );
77861
77862 -------------------------------------------------------------------------------------------
77863 -- 4262811 - Generate the Accrual Reversal lines
77864 -------------------------------------------------------------------------------------------
77865 BEGIN
77866 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77867 (g_array_event(p_event_id).array_value_num('header_index'));
77868 IF l_acc_rev_flag IS NULL THEN
77869 l_acc_rev_flag := 'N';
77870 END IF;
77871 EXCEPTION
77872 WHEN OTHERS THEN
77873 l_acc_rev_flag := 'N';
77874 END;
77875 --
77876 IF (l_acc_rev_flag = 'Y') THEN
77877
77878 -- 4645092 ------------------------------------------------------------------------------
77879 -- To allow MPA report to determine if it should generate report process
77880 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77881 ------------------------------------------------------------------------------------------
77882
77883 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77884 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77885 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
77886 -- call ADRs
77887 -- Bug 4922099
77888 --
77889 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77890 (NVL(l_actual_upg_option, 'N') = 'O') OR
77891 (NVL(l_enc_upg_option, 'N') = 'O')
77892 )
77893 THEN
77894 NULL;
77895 --
77896 --
77897
77898 l_ccid := AcctDerRule_28(
77899 p_application_id => p_application_id
77900 , p_ae_header_id => l_ae_header_id
77901 , p_source_29 => p_source_29
77902 , x_transaction_coa_id => l_adr_transaction_coa_id
77903 , x_accounting_coa_id => l_adr_accounting_coa_id
77904 , x_value_type_code => l_adr_value_type_code
77905 , p_side => 'NA'
77906 );
77907
77908 xla_ae_lines_pkg.set_ccid(
77909 p_code_combination_id => l_ccid
77910 , p_value_type_code => l_adr_value_type_code
77911 , p_transaction_coa_id => l_adr_transaction_coa_id
77912 , p_accounting_coa_id => l_adr_accounting_coa_id
77913 , p_adr_code => 'AP_INVOICE_DIST'
77914 , p_adr_type_code => 'S'
77915 , p_component_type => l_component_type
77916 , p_component_code => l_component_code
77917 , p_component_type_code => l_component_type_code
77918 , p_component_appl_id => l_component_appl_id
77919 , p_amb_context_code => l_amb_context_code
77920 , p_side => 'NA'
77921 );
77922
77923
77924 --
77925 --
77926 END IF;
77927
77928 --
77929 -- Update the line information that should be overwritten
77930 --
77931 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77932 p_header_num => 1);
77933 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
77934
77935 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77936
77937 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
77941 --
77938 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77939 END IF;
77940
77942 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77943 --
77944 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77945 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
77946 ELSE
77947 ---------------------------------------------------------------------------------------------------
77948 -- 4262811a Switch Sign
77949 ---------------------------------------------------------------------------------------------------
77950 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
77951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77952 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77953 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77954 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77955 -- 5132302
77956 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77957 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77958
77959 END IF;
77960
77961 -- 4955764
77962 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77963 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77964
77965
77966 XLA_AE_LINES_PKG.ValidateCurrentLine;
77967 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77968
77969 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77970 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77971 ,p_balance_type_code => l_balance_type_code);
77972
77973 END IF;
77974
77975 -----------------------------------------------------------------------------------------
77976 -- 4262811 Multiperiod Accounting
77977 -----------------------------------------------------------------------------------------
77978 -- No MPA option is assigned.
77979
77980
77981 END IF;
77982 END IF;
77983 --
77984
77985 --
77986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77987 trace
77988 (p_msg => 'END of AcctLineType_140'
77989 ,p_level => C_LEVEL_PROCEDURE
77990 ,p_module => l_log_module);
77991 END IF;
77992 --
77993 EXCEPTION
77994 WHEN xla_exceptions_pkg.application_exception THEN
77995 RAISE;
77996 WHEN OTHERS THEN
77997 xla_exceptions_pkg.raise_message
77998 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_140');
77999 END AcctLineType_140;
78000 --
78001
78002 ---------------------------------------
78003 --
78004 -- PRIVATE FUNCTION
78005 -- AcctLineType_141
78006 --
78007 ---------------------------------------
78008 PROCEDURE AcctLineType_141 (
78009 p_application_id IN NUMBER
78010 ,p_event_id IN NUMBER
78011 ,p_calculate_acctd_flag IN VARCHAR2
78012 ,p_calculate_g_l_flag IN VARCHAR2
78013 ,p_actual_flag IN OUT VARCHAR2
78014 ,p_balance_type_code OUT VARCHAR2
78015 ,p_gain_or_loss_ref OUT VARCHAR2
78016
78017 --Payment Currency Code
78018 , p_source_12 IN VARCHAR2
78019 --Automatic Offsets Value
78020 , p_source_16 IN VARCHAR2
78021 , p_source_16_meaning IN VARCHAR2
78022 --Payment Distribution (Cleared Rate) Ledger Amount
78023 , p_source_22 IN NUMBER
78024 --Invoice Distribution Account
78025 , p_source_29 IN NUMBER
78026 --Invoice Distribution Type
78027 , p_source_32 IN VARCHAR2
78028 , p_source_32_meaning IN VARCHAR2
78029 --Retainage Account
78030 , p_source_34 IN NUMBER
78031 --Retainage Related Item Distribution Account
78032 , p_source_35 IN NUMBER
78033 --When to Account for Payment Option
78034 , p_source_50 IN VARCHAR2
78035 --Accounting Reversal Indicator
78036 , p_source_52 IN VARCHAR2
78037 --Payment Distribution Amount
78038 , p_source_53 IN NUMBER
78039 --Business Flow Accounts Payable Application Identifier
78040 , p_source_54 IN NUMBER
78041 --Business Flow Payment Distribution Type
78042 , p_source_55 IN VARCHAR2
78043 --Business Flow Payment Entity Code
78044 , p_source_56 IN VARCHAR2
78045 --Business Flow Payment Distribution Identifier
78046 , p_source_57 IN NUMBER
78047 --Business Flow Payment Identifier
78048 , p_source_58 IN NUMBER
78049 --Payment Distribution Identifier
78050 , p_source_59 IN NUMBER
78051 --Distribution Link Type
78052 , p_source_60 IN VARCHAR2
78053 --Override Accounted Amount Indicator
78054 , p_source_64 IN VARCHAR2
78055 , p_source_64_meaning IN VARCHAR2
78056 --Payment Supplier Identifier
78057 , p_source_65 IN NUMBER
78058 --Payment Supplier Site Identifier
78059 , p_source_66 IN NUMBER
78060 --Third Party Type
78061 , p_source_67 IN VARCHAR2
78062 --Payment Distribution Reversed Identifier
78066 --Invoice Distribution Summary Tax Line Identifier
78063 , p_source_68 IN NUMBER
78064 --Invoice Distribution Tax Line Identifier
78065 , p_source_69 IN NUMBER
78067 , p_source_70 IN NUMBER
78068 --Invoice Type Paid
78069 , p_source_112 IN VARCHAR2
78070 , p_source_112_meaning IN VARCHAR2
78071 --Cleared Exchange Date
78072 , p_source_114 IN DATE
78073 --Cleared Exchange Rate
78074 , p_source_115 IN NUMBER
78075 --Cleared Exchange Rate Type
78076 , p_source_116 IN VARCHAR2
78077 )
78078 IS
78079
78080 l_component_type VARCHAR2(80);
78081 l_component_code VARCHAR2(30);
78082 l_component_type_code VARCHAR2(1);
78083 l_component_appl_id INTEGER;
78084 l_amb_context_code VARCHAR2(30);
78085 l_entity_code VARCHAR2(30);
78086 l_event_class_code VARCHAR2(30);
78087 l_ae_header_id NUMBER;
78088 l_event_type_code VARCHAR2(30);
78089 l_line_definition_code VARCHAR2(30);
78090 l_line_definition_owner_code VARCHAR2(1);
78091 --
78092 -- adr variables
78093 l_segment VARCHAR2(30);
78094 l_ccid NUMBER;
78095 l_adr_transaction_coa_id NUMBER;
78096 l_adr_accounting_coa_id NUMBER;
78097 l_adr_flexfield_segment_code VARCHAR2(30);
78098 l_adr_flex_value_set_id NUMBER;
78099 l_adr_value_type_code VARCHAR2(30);
78100 l_adr_value_combination_id NUMBER;
78101 l_adr_value_segment_code VARCHAR2(30);
78102
78103 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
78104 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
78105 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
78106 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
78107
78108 -- 4262811 Variables ------------------------------------------------------------------------------------------
78109 l_entered_amt_idx NUMBER;
78110 l_accted_amt_idx NUMBER;
78111 l_acc_rev_flag VARCHAR2(1);
78112 l_accrual_line_num NUMBER;
78113 l_tmp_amt NUMBER;
78114 l_acc_rev_natural_side_code VARCHAR2(1);
78115
78116 l_num_entries NUMBER;
78117 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
78118 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
78119 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
78120 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
78121 l_recog_line_1 NUMBER;
78122 l_recog_line_2 NUMBER;
78123
78124 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
78125 l_bflow_applied_to_amt NUMBER; -- 5132302
78126 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
78127
78128 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78129
78130 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
78131 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
78132
78133 ---------------------------------------------------------------------------------------------------------------
78134
78135
78136 --
78137 -- bulk performance
78138 --
78139 l_balance_type_code VARCHAR2(1);
78140 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78141 l_log_module VARCHAR2(240);
78142
78143 --
78144 -- Upgrade strategy
78145 --
78146 l_actual_upg_option VARCHAR2(1);
78147 l_enc_upg_option VARCHAR2(1);
78148
78149 --
78150 BEGIN
78151 --
78152 IF g_log_enabled THEN
78153 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
78154 END IF;
78155 --
78156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78157
78158 trace
78159 (p_msg => 'BEGIN of AcctLineType_141'
78160 ,p_level => C_LEVEL_PROCEDURE
78161 ,p_module => l_log_module);
78162
78163 END IF;
78164 --
78165 l_component_type := 'AMB_JLT';
78166 l_component_code := 'AP_RETAINAGE_CLR_CASH';
78167 l_component_type_code := 'S';
78168 l_component_appl_id := 200;
78169 l_amb_context_code := 'DEFAULT';
78170 l_entity_code := 'AP_PAYMENTS';
78171 l_event_class_code := 'RECONCILED PAYMENTS';
78172 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
78173 l_line_definition_owner_code := 'S';
78174 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
78175 --
78176 l_balance_type_code := 'A';
78177 l_segment := NULL;
78178 l_ccid := NULL;
78179 l_adr_transaction_coa_id := NULL;
78180 l_adr_accounting_coa_id := NULL;
78181 l_adr_flexfield_segment_code := NULL;
78182 l_adr_flex_value_set_id := NULL;
78183 l_adr_value_type_code := NULL;
78184 l_adr_value_combination_id := NULL;
78185 l_adr_value_segment_code := NULL;
78186
78187 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
78188 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
78189 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
78190 l_budgetary_control_flag := 'N';
78194 l_entered_amt_idx := NULL; -- 4262811
78191
78192 l_bflow_applied_to_amt_idx := NULL; -- 5132302
78193 l_bflow_applied_to_amt := NULL; -- 5132302
78195 l_accted_amt_idx := NULL; -- 4262811
78196 l_acc_rev_flag := NULL; -- 4262811
78197 l_accrual_line_num := NULL; -- 4262811
78198 l_tmp_amt := NULL; -- 4262811
78199 --
78200
78201 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78202 l_balance_type_code <> 'B' THEN
78203 IF NVL(p_source_50,'
78204 ') = 'CLEAR_CLEAR' AND
78205 NVL(p_source_112,'
78206 ') <> 'STANDARD' AND
78207 NVL(p_source_32,'
78208 ') = 'RETAINAGE'
78209 THEN
78210
78211 --
78212 XLA_AE_LINES_PKG.SetNewLine;
78213
78214 p_balance_type_code := l_balance_type_code;
78215 -- set the flag so later we will know whether the gain loss line needs to be created
78216
78217 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78218 p_actual_flag :='A';
78219 END IF;
78220
78221 --
78222 -- bulk performance
78223 --
78224 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78225 p_header_num => 0); -- 4262811
78226 --
78227 -- set accounting line options
78228 --
78229 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78230 p_natural_side_code => 'D'
78231 , p_gain_or_loss_flag => 'N'
78232 , p_gl_transfer_mode_code => 'S'
78233 , p_acct_entry_type_code => 'A'
78234 , p_switch_side_flag => 'Y'
78235 , p_merge_duplicate_code => 'A'
78236 );
78237 --
78238 l_acc_rev_natural_side_code := 'C'; -- 4262811
78239 --
78240 --
78241 -- set accounting line type info
78242 --
78243 xla_ae_lines_pkg.SetAcctLineType
78244 (p_component_type => l_component_type
78245 ,p_event_type_code => l_event_type_code
78246 ,p_line_definition_owner_code => l_line_definition_owner_code
78247 ,p_line_definition_code => l_line_definition_code
78248 ,p_accounting_line_code => l_component_code
78249 ,p_accounting_line_type_code => l_component_type_code
78250 ,p_accounting_line_appl_id => l_component_appl_id
78251 ,p_amb_context_code => l_amb_context_code
78252 ,p_entity_code => l_entity_code
78253 ,p_event_class_code => l_event_class_code);
78254 --
78255 -- set accounting class
78256 --
78257 xla_ae_lines_pkg.SetAcctClass(
78258 p_accounting_class_code => 'RETAINAGE'
78259 , p_ae_header_id => l_ae_header_id
78260 );
78261
78262 --
78263 -- set rounding class
78264 --
78265 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78266 'RETAINAGE';
78267
78268 --
78269 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78270 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78271 --
78272 -- bulk performance
78273 --
78274 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78275
78276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78277 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78278
78279 -- 4955764
78280 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78281 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78282
78283 -- 4458381 Public Sector Enh
78284
78285 --
78286 -- set accounting attributes for the line type
78287 --
78288 l_entered_amt_idx := 10;
78289 l_accted_amt_idx := 15;
78290 l_bflow_applied_to_amt_idx := 2; -- 5132302
78291 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78292 l_rec_acct_attrs.array_char_value(1) := p_source_52;
78293 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
78294 l_rec_acct_attrs.array_num_value(2) := p_source_53;
78295 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
78296 l_rec_acct_attrs.array_num_value(3) := p_source_54;
78297 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78298 l_rec_acct_attrs.array_char_value(4) := p_source_55;
78299 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
78300 l_rec_acct_attrs.array_char_value(5) := p_source_56;
78301 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
78302 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
78303 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78304 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
78305 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
78306 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
78307 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
78308 l_rec_acct_attrs.array_char_value(9) := p_source_60;
78309 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
78313 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
78310 l_rec_acct_attrs.array_num_value(10) := p_source_53;
78311 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
78312 l_rec_acct_attrs.array_char_value(11) := p_source_12;
78314 l_rec_acct_attrs.array_date_value(12) := p_source_114;
78315 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
78316 l_rec_acct_attrs.array_num_value(13) := p_source_115;
78317 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
78318 l_rec_acct_attrs.array_char_value(14) := p_source_116;
78319 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
78320 l_rec_acct_attrs.array_num_value(15) := p_source_22;
78321 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
78322 l_rec_acct_attrs.array_char_value(16) := p_source_64;
78323 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
78324 l_rec_acct_attrs.array_num_value(17) := p_source_65;
78325 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
78326 l_rec_acct_attrs.array_num_value(18) := p_source_66;
78327 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
78328 l_rec_acct_attrs.array_char_value(19) := p_source_67;
78329 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
78330 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
78331 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
78332 l_rec_acct_attrs.array_char_value(21) := p_source_60;
78333 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
78334 l_rec_acct_attrs.array_num_value(22) := p_source_69;
78335 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
78336 l_rec_acct_attrs.array_num_value(23) := p_source_69;
78337 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
78338 l_rec_acct_attrs.array_num_value(24) := p_source_70;
78339
78340 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78341 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78342
78343 ---------------------------------------------------------------------------------------------------------------
78344 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78345 ---------------------------------------------------------------------------------------------------------------
78346 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78347
78348 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78349 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78350
78351 IF xla_accounting_cache_pkg.GetValueChar
78352 (p_source_code => 'LEDGER_CATEGORY_CODE'
78353 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78354 AND l_bflow_method_code = 'PRIOR_ENTRY'
78355 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78356 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78357 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78358 )
78359 THEN
78360 xla_ae_lines_pkg.BflowUpgEntry
78361 (p_business_method_code => l_bflow_method_code
78362 ,p_business_class_code => l_bflow_class_code
78363 ,p_balance_type => l_balance_type_code);
78364 ELSE
78365 NULL;
78366 -- No business flow processing for business flow method of NONE.
78367 END IF;
78368
78369 --
78370 -- call analytical criteria
78371 --
78372
78373 --
78374 -- call description
78375 --
78376 -- No description or it is inherited.
78377 --
78378 -- call ADRs
78379 -- Bug 4922099
78380 --
78381 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78382 (NVL(l_actual_upg_option, 'N') = 'O') OR
78383 (NVL(l_enc_upg_option, 'N') = 'O')
78384 )
78385 THEN
78386 NULL;
78387 --
78388 --
78389
78390 l_ccid := AcctDerRule_36(
78391 p_application_id => p_application_id
78392 , p_ae_header_id => l_ae_header_id
78393 , p_source_16 => p_source_16
78394 , p_source_16_meaning => p_source_16_meaning
78395 , p_source_29 => p_source_29
78396 , p_source_35 => p_source_35
78397 , x_transaction_coa_id => l_adr_transaction_coa_id
78398 , x_accounting_coa_id => l_adr_accounting_coa_id
78399 , x_value_type_code => l_adr_value_type_code
78400 , p_side => 'NA'
78401 );
78402
78403 xla_ae_lines_pkg.set_ccid(
78404 p_code_combination_id => l_ccid
78405 , p_value_type_code => l_adr_value_type_code
78406 , p_transaction_coa_id => l_adr_transaction_coa_id
78407 , p_accounting_coa_id => l_adr_accounting_coa_id
78408 , p_adr_code => 'AP_RETAINAGE'
78409 , p_adr_type_code => 'S'
78410 , p_component_type => l_component_type
78411 , p_component_code => l_component_code
78412 , p_component_type_code => l_component_type_code
78413 , p_component_appl_id => l_component_appl_id
78414 , p_amb_context_code => l_amb_context_code
78415 , p_side => 'NA'
78416 );
78417
78421 , p_ae_header_id => l_ae_header_id
78418
78419 l_segment := AcctDerRule_14(
78420 p_application_id => p_application_id
78422 , p_source_34 => p_source_34
78423 , x_transaction_coa_id => l_adr_transaction_coa_id
78424 , x_accounting_coa_id => l_adr_accounting_coa_id
78425 , x_flexfield_segment_code => l_adr_flexfield_segment_code
78426 , x_flex_value_set_id => l_adr_flex_value_set_id
78427 , x_value_type_code => l_adr_value_type_code
78428 , x_value_combination_id => l_adr_value_combination_id
78429 , x_value_segment_code => l_adr_value_segment_code
78430 , p_side => 'NA'
78431 , p_override_seg_flag => 'Y'
78432 );
78433
78434 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
78435
78436 xla_ae_lines_pkg.set_segment(
78437 p_to_segment_code => 'GL_ACCOUNT'
78438 , p_segment_value => l_segment
78439 , p_from_segment_code => l_adr_value_segment_code
78440 , p_from_combination_id => l_adr_value_combination_id
78441 , p_value_type_code => l_adr_value_type_code
78442 , p_transaction_coa_id => l_adr_transaction_coa_id
78443 , p_accounting_coa_id => l_adr_accounting_coa_id
78444 , p_flexfield_segment_code => l_adr_flexfield_segment_code
78445 , p_flex_value_set_id => l_adr_flex_value_set_id
78446 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
78447 , p_adr_type_code => 'S'
78448 , p_component_type => l_component_type
78449 , p_component_code => l_component_code
78450 , p_component_type_code => l_component_type_code
78451 , p_component_appl_id => l_component_appl_id
78452 , p_amb_context_code => l_amb_context_code
78453 , p_entity_code => 'AP_PAYMENTS'
78454 , p_event_class_code => 'RECONCILED PAYMENTS'
78455 , p_side => 'NA'
78456 );
78457
78458 END IF;
78459
78460 l_segment := AcctDerRule_18(
78461 p_application_id => p_application_id
78462 , p_ae_header_id => l_ae_header_id
78463 , p_source_16 => p_source_16
78464 , p_source_16_meaning => p_source_16_meaning
78465 , p_source_35 => p_source_35
78466 , x_transaction_coa_id => l_adr_transaction_coa_id
78467 , x_accounting_coa_id => l_adr_accounting_coa_id
78468 , x_flexfield_segment_code => l_adr_flexfield_segment_code
78469 , x_flex_value_set_id => l_adr_flex_value_set_id
78470 , x_value_type_code => l_adr_value_type_code
78471 , x_value_combination_id => l_adr_value_combination_id
78472 , x_value_segment_code => l_adr_value_segment_code
78473 , p_side => 'NA'
78474 , p_override_seg_flag => 'Y'
78475 );
78476
78477 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
78478
78479 xla_ae_lines_pkg.set_segment(
78480 p_to_segment_code => 'GL_BALANCING'
78481 , p_segment_value => l_segment
78482 , p_from_segment_code => l_adr_value_segment_code
78483 , p_from_combination_id => l_adr_value_combination_id
78484 , p_value_type_code => l_adr_value_type_code
78485 , p_transaction_coa_id => l_adr_transaction_coa_id
78486 , p_accounting_coa_id => l_adr_accounting_coa_id
78487 , p_flexfield_segment_code => l_adr_flexfield_segment_code
78488 , p_flex_value_set_id => l_adr_flex_value_set_id
78489 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
78490 , p_adr_type_code => 'S'
78491 , p_component_type => l_component_type
78492 , p_component_code => l_component_code
78493 , p_component_type_code => l_component_type_code
78494 , p_component_appl_id => l_component_appl_id
78495 , p_amb_context_code => l_amb_context_code
78496 , p_entity_code => 'AP_PAYMENTS'
78497 , p_event_class_code => 'RECONCILED PAYMENTS'
78498 , p_side => 'NA'
78499 );
78500
78501 END IF;
78502
78503 --
78504 --
78505 END IF;
78506 --
78507 -- Bug 4922099
78508 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78509 (NVL(l_enc_upg_option, 'N') = 'O')
78510 ) AND
78511 (l_bflow_method_code = 'PRIOR_ENTRY')
78512 )
78513 THEN
78514 IF
78515 --
78516 1 = 2
78517 --
78518 THEN
78519 xla_accounting_err_pkg.build_message
78520 (p_appli_s_name => 'XLA'
78521 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78522 ,p_token_1 => 'LINE_NUMBER'
78523 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
78524 ,p_token_2 => 'LINE_TYPE_NAME'
78525 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
78526 l_component_type
78527 ,l_component_code
78531 ,l_entity_code
78528 ,l_component_type_code
78529 ,l_component_appl_id
78530 ,l_amb_context_code
78532 ,l_event_class_code
78533 )
78534 ,p_token_3 => 'OWNER'
78535 ,p_value_3 => xla_lookups_pkg.get_meaning(
78536 p_lookup_type => 'XLA_OWNER_TYPE'
78537 ,p_lookup_code => l_component_type_code
78538 )
78539 ,p_token_4 => 'PRODUCT_NAME'
78540 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78541 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78542 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78543 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78544 ,p_ae_header_id => NULL
78545 );
78546
78547 IF (C_LEVEL_ERROR>= g_log_level) THEN
78548 trace
78549 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78550 ,p_level => C_LEVEL_ERROR
78551 ,p_module => l_log_module);
78552 END IF;
78553 END IF;
78554 END IF;
78555 --
78556 --
78557 ------------------------------------------------------------------------------------------------
78558 -- 4219869 Business Flow
78559 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78560 -- Prior Entry. Currently, the following code is always generated.
78561 ------------------------------------------------------------------------------------------------
78562 XLA_AE_LINES_PKG.ValidateCurrentLine;
78563
78564 ------------------------------------------------------------------------------------
78565 -- 4219869 Business Flow
78566 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78567 ------------------------------------------------------------------------------------
78568 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78569
78570 ----------------------------------------------------------------------------------
78571 -- 4219869 Business Flow
78572 -- Update journal entry status -- Need to generate this within IF <condition>
78573 ----------------------------------------------------------------------------------
78574 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78575 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78576 ,p_balance_type_code => l_balance_type_code
78577 );
78578
78579 -------------------------------------------------------------------------------------------
78580 -- 4262811 - Generate the Accrual Reversal lines
78581 -------------------------------------------------------------------------------------------
78582 BEGIN
78583 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78584 (g_array_event(p_event_id).array_value_num('header_index'));
78585 IF l_acc_rev_flag IS NULL THEN
78586 l_acc_rev_flag := 'N';
78587 END IF;
78588 EXCEPTION
78589 WHEN OTHERS THEN
78590 l_acc_rev_flag := 'N';
78591 END;
78592 --
78593 IF (l_acc_rev_flag = 'Y') THEN
78594
78595 -- 4645092 ------------------------------------------------------------------------------
78596 -- To allow MPA report to determine if it should generate report process
78597 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78598 ------------------------------------------------------------------------------------------
78599
78600 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78601 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78602 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
78603 -- call ADRs
78604 -- Bug 4922099
78605 --
78606 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78607 (NVL(l_actual_upg_option, 'N') = 'O') OR
78608 (NVL(l_enc_upg_option, 'N') = 'O')
78609 )
78610 THEN
78611 NULL;
78612 --
78613 --
78614
78615 l_ccid := AcctDerRule_36(
78616 p_application_id => p_application_id
78617 , p_ae_header_id => l_ae_header_id
78618 , p_source_16 => p_source_16
78619 , p_source_16_meaning => p_source_16_meaning
78620 , p_source_29 => p_source_29
78621 , p_source_35 => p_source_35
78622 , x_transaction_coa_id => l_adr_transaction_coa_id
78623 , x_accounting_coa_id => l_adr_accounting_coa_id
78624 , x_value_type_code => l_adr_value_type_code
78625 , p_side => 'NA'
78626 );
78627
78631 , p_transaction_coa_id => l_adr_transaction_coa_id
78628 xla_ae_lines_pkg.set_ccid(
78629 p_code_combination_id => l_ccid
78630 , p_value_type_code => l_adr_value_type_code
78632 , p_accounting_coa_id => l_adr_accounting_coa_id
78633 , p_adr_code => 'AP_RETAINAGE'
78634 , p_adr_type_code => 'S'
78635 , p_component_type => l_component_type
78636 , p_component_code => l_component_code
78637 , p_component_type_code => l_component_type_code
78638 , p_component_appl_id => l_component_appl_id
78639 , p_amb_context_code => l_amb_context_code
78640 , p_side => 'NA'
78641 );
78642
78643
78644 l_segment := AcctDerRule_14(
78645 p_application_id => p_application_id
78646 , p_ae_header_id => l_ae_header_id
78647 , p_source_34 => p_source_34
78648 , x_transaction_coa_id => l_adr_transaction_coa_id
78649 , x_accounting_coa_id => l_adr_accounting_coa_id
78650 , x_flexfield_segment_code => l_adr_flexfield_segment_code
78651 , x_flex_value_set_id => l_adr_flex_value_set_id
78652 , x_value_type_code => l_adr_value_type_code
78653 , x_value_combination_id => l_adr_value_combination_id
78654 , x_value_segment_code => l_adr_value_segment_code
78655 , p_side => 'NA'
78656 , p_override_seg_flag => 'Y'
78657 );
78658
78659 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
78660
78661 xla_ae_lines_pkg.set_segment(
78662 p_to_segment_code => 'GL_ACCOUNT'
78663 , p_segment_value => l_segment
78664 , p_from_segment_code => l_adr_value_segment_code
78665 , p_from_combination_id => l_adr_value_combination_id
78666 , p_value_type_code => l_adr_value_type_code
78667 , p_transaction_coa_id => l_adr_transaction_coa_id
78668 , p_accounting_coa_id => l_adr_accounting_coa_id
78669 , p_flexfield_segment_code => l_adr_flexfield_segment_code
78670 , p_flex_value_set_id => l_adr_flex_value_set_id
78671 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
78672 , p_adr_type_code => 'S'
78673 , p_component_type => l_component_type
78674 , p_component_code => l_component_code
78675 , p_component_type_code => l_component_type_code
78676 , p_component_appl_id => l_component_appl_id
78677 , p_amb_context_code => l_amb_context_code
78678 , p_entity_code => 'AP_PAYMENTS'
78679 , p_event_class_code => 'RECONCILED PAYMENTS'
78680 , p_side => 'NA'
78681 );
78682
78683 END IF;
78684
78685 l_segment := AcctDerRule_18(
78686 p_application_id => p_application_id
78687 , p_ae_header_id => l_ae_header_id
78688 , p_source_16 => p_source_16
78689 , p_source_16_meaning => p_source_16_meaning
78690 , p_source_35 => p_source_35
78691 , x_transaction_coa_id => l_adr_transaction_coa_id
78692 , x_accounting_coa_id => l_adr_accounting_coa_id
78693 , x_flexfield_segment_code => l_adr_flexfield_segment_code
78694 , x_flex_value_set_id => l_adr_flex_value_set_id
78695 , x_value_type_code => l_adr_value_type_code
78696 , x_value_combination_id => l_adr_value_combination_id
78697 , x_value_segment_code => l_adr_value_segment_code
78698 , p_side => 'NA'
78699 , p_override_seg_flag => 'Y'
78700 );
78701
78702 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
78703
78704 xla_ae_lines_pkg.set_segment(
78705 p_to_segment_code => 'GL_BALANCING'
78706 , p_segment_value => l_segment
78707 , p_from_segment_code => l_adr_value_segment_code
78708 , p_from_combination_id => l_adr_value_combination_id
78709 , p_value_type_code => l_adr_value_type_code
78710 , p_transaction_coa_id => l_adr_transaction_coa_id
78711 , p_accounting_coa_id => l_adr_accounting_coa_id
78712 , p_flexfield_segment_code => l_adr_flexfield_segment_code
78713 , p_flex_value_set_id => l_adr_flex_value_set_id
78714 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
78715 , p_adr_type_code => 'S'
78716 , p_component_type => l_component_type
78717 , p_component_code => l_component_code
78718 , p_component_type_code => l_component_type_code
78719 , p_component_appl_id => l_component_appl_id
78720 , p_amb_context_code => l_amb_context_code
78721 , p_entity_code => 'AP_PAYMENTS'
78722 , p_event_class_code => 'RECONCILED PAYMENTS'
78723 , p_side => 'NA'
78724 );
78725
78726 END IF;
78727
78728 --
78729 --
78730 END IF;
78731
78732 --
78733 -- Update the line information that should be overwritten
78734 --
78735 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78736 p_header_num => 1);
78737 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
78738
78742 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78739 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78740
78741 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
78743 END IF;
78744
78745 --
78746 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78747 --
78748 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78749 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
78750 ELSE
78751 ---------------------------------------------------------------------------------------------------
78752 -- 4262811a Switch Sign
78753 ---------------------------------------------------------------------------------------------------
78754 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
78755 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78756 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78757 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78758 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78759 -- 5132302
78760 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78761 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78762
78763 END IF;
78764
78765 -- 4955764
78766 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78767 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78768
78769
78770 XLA_AE_LINES_PKG.ValidateCurrentLine;
78771 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78772
78773 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78774 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78775 ,p_balance_type_code => l_balance_type_code);
78776
78777 END IF;
78778
78779 -----------------------------------------------------------------------------------------
78780 -- 4262811 Multiperiod Accounting
78781 -----------------------------------------------------------------------------------------
78782 -- No MPA option is assigned.
78783
78784
78785 END IF;
78786 END IF;
78787 --
78788
78789 --
78790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78791 trace
78792 (p_msg => 'END of AcctLineType_141'
78793 ,p_level => C_LEVEL_PROCEDURE
78794 ,p_module => l_log_module);
78795 END IF;
78796 --
78797 EXCEPTION
78798 WHEN xla_exceptions_pkg.application_exception THEN
78799 RAISE;
78800 WHEN OTHERS THEN
78801 xla_exceptions_pkg.raise_message
78802 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_141');
78803 END AcctLineType_141;
78804 --
78805
78806 ---------------------------------------
78807 --
78808 -- PRIVATE FUNCTION
78809 -- AcctLineType_142
78810 --
78811 ---------------------------------------
78812 PROCEDURE AcctLineType_142 (
78813 p_application_id IN NUMBER
78814 ,p_event_id IN NUMBER
78815 ,p_calculate_acctd_flag IN VARCHAR2
78816 ,p_calculate_g_l_flag IN VARCHAR2
78817 ,p_actual_flag IN OUT VARCHAR2
78818 ,p_balance_type_code OUT VARCHAR2
78819 ,p_gain_or_loss_ref OUT VARCHAR2
78820
78821 --Payment Currency Code
78822 , p_source_12 IN VARCHAR2
78823 --Automatic Offsets Value
78824 , p_source_16 IN VARCHAR2
78825 , p_source_16_meaning IN VARCHAR2
78826 --Payment Distribution (Payment Rate) Ledger Amount
78827 , p_source_21 IN NUMBER
78828 --Invoice Distribution Account
78829 , p_source_29 IN NUMBER
78830 --Invoice Distribution Type
78831 , p_source_32 IN VARCHAR2
78832 , p_source_32_meaning IN VARCHAR2
78833 --Retainage Account
78834 , p_source_34 IN NUMBER
78835 --Retainage Related Item Distribution Account
78836 , p_source_35 IN NUMBER
78837 --When to Account for Payment Option
78838 , p_source_50 IN VARCHAR2
78839 --Accounting Reversal Indicator
78840 , p_source_52 IN VARCHAR2
78841 --Payment Distribution Amount
78842 , p_source_53 IN NUMBER
78843 --Business Flow Accounts Payable Application Identifier
78844 , p_source_54 IN NUMBER
78845 --Payment Distribution Identifier
78846 , p_source_59 IN NUMBER
78847 --Distribution Link Type
78848 , p_source_60 IN VARCHAR2
78849 --Override Accounted Amount Indicator
78850 , p_source_64 IN VARCHAR2
78851 , p_source_64_meaning IN VARCHAR2
78852 --Payment Supplier Identifier
78853 , p_source_65 IN NUMBER
78854 --Payment Supplier Site Identifier
78855 , p_source_66 IN NUMBER
78856 --Third Party Type
78857 , p_source_67 IN VARCHAR2
78858 --Payment Distribution Reversed Identifier
78859 , p_source_68 IN NUMBER
78860 --Invoice Distribution Tax Line Identifier
78864 --Invoice Distribution Amount of the Payment Distribution
78861 , p_source_69 IN NUMBER
78862 --Invoice Distribution Summary Tax Line Identifier
78863 , p_source_70 IN NUMBER
78865 , p_source_72 IN NUMBER
78866 --Business Flow Invoice Distribution Type
78867 , p_source_73 IN VARCHAR2
78868 --Business Flow Invoice Entity Code
78869 , p_source_74 IN VARCHAR2
78870 --Business Flow Invoice Distribution Identifier
78871 , p_source_75 IN NUMBER
78872 --Business Flow Invoice Identifier
78873 , p_source_76 IN NUMBER
78874 --Invoice Distribution Tax Distribution Identifier from Tax
78875 , p_source_77 IN NUMBER
78876 --Invoice Type Paid
78877 , p_source_112 IN VARCHAR2
78878 , p_source_112_meaning IN VARCHAR2
78879 --Payment Exchange Date
78880 , p_source_121 IN DATE
78881 --Payment Exchange Rate
78882 , p_source_122 IN NUMBER
78883 --Payment Exchange Rate Type
78884 , p_source_123 IN VARCHAR2
78885 )
78886 IS
78887
78888 l_component_type VARCHAR2(80);
78889 l_component_code VARCHAR2(30);
78890 l_component_type_code VARCHAR2(1);
78891 l_component_appl_id INTEGER;
78892 l_amb_context_code VARCHAR2(30);
78893 l_entity_code VARCHAR2(30);
78894 l_event_class_code VARCHAR2(30);
78895 l_ae_header_id NUMBER;
78896 l_event_type_code VARCHAR2(30);
78897 l_line_definition_code VARCHAR2(30);
78898 l_line_definition_owner_code VARCHAR2(1);
78899 --
78900 -- adr variables
78901 l_segment VARCHAR2(30);
78902 l_ccid NUMBER;
78903 l_adr_transaction_coa_id NUMBER;
78904 l_adr_accounting_coa_id NUMBER;
78905 l_adr_flexfield_segment_code VARCHAR2(30);
78906 l_adr_flex_value_set_id NUMBER;
78907 l_adr_value_type_code VARCHAR2(30);
78908 l_adr_value_combination_id NUMBER;
78909 l_adr_value_segment_code VARCHAR2(30);
78910
78911 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
78912 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
78913 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
78914 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
78915
78916 -- 4262811 Variables ------------------------------------------------------------------------------------------
78917 l_entered_amt_idx NUMBER;
78918 l_accted_amt_idx NUMBER;
78919 l_acc_rev_flag VARCHAR2(1);
78920 l_accrual_line_num NUMBER;
78921 l_tmp_amt NUMBER;
78922 l_acc_rev_natural_side_code VARCHAR2(1);
78923
78924 l_num_entries NUMBER;
78925 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
78926 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
78927 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
78928 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
78929 l_recog_line_1 NUMBER;
78930 l_recog_line_2 NUMBER;
78931
78932 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
78933 l_bflow_applied_to_amt NUMBER; -- 5132302
78934 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
78935
78936 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78937
78938 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
78939 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
78940
78941 ---------------------------------------------------------------------------------------------------------------
78942
78943
78944 --
78945 -- bulk performance
78946 --
78947 l_balance_type_code VARCHAR2(1);
78948 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78949 l_log_module VARCHAR2(240);
78950
78951 --
78952 -- Upgrade strategy
78953 --
78954 l_actual_upg_option VARCHAR2(1);
78955 l_enc_upg_option VARCHAR2(1);
78956
78957 --
78958 BEGIN
78959 --
78960 IF g_log_enabled THEN
78961 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
78962 END IF;
78963 --
78964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78965
78966 trace
78967 (p_msg => 'BEGIN of AcctLineType_142'
78968 ,p_level => C_LEVEL_PROCEDURE
78969 ,p_module => l_log_module);
78970
78971 END IF;
78972 --
78973 l_component_type := 'AMB_JLT';
78974 l_component_code := 'AP_RETAINAGE_PMT_CASH';
78975 l_component_type_code := 'S';
78976 l_component_appl_id := 200;
78977 l_amb_context_code := 'DEFAULT';
78978 l_entity_code := 'AP_PAYMENTS';
78979 l_event_class_code := 'PAYMENTS';
78980 l_event_type_code := 'PAYMENTS_ALL';
78981 l_line_definition_owner_code := 'S';
78982 l_line_definition_code := 'CASH_PAYMENTS_ALL';
78983 --
78984 l_balance_type_code := 'A';
78985 l_segment := NULL;
78986 l_ccid := NULL;
78987 l_adr_transaction_coa_id := NULL;
78988 l_adr_accounting_coa_id := NULL;
78992 l_adr_value_combination_id := NULL;
78989 l_adr_flexfield_segment_code := NULL;
78990 l_adr_flex_value_set_id := NULL;
78991 l_adr_value_type_code := NULL;
78993 l_adr_value_segment_code := NULL;
78994
78995 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
78996 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
78997 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
78998 l_budgetary_control_flag := 'N';
78999
79000 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79001 l_bflow_applied_to_amt := NULL; -- 5132302
79002 l_entered_amt_idx := NULL; -- 4262811
79003 l_accted_amt_idx := NULL; -- 4262811
79004 l_acc_rev_flag := NULL; -- 4262811
79005 l_accrual_line_num := NULL; -- 4262811
79006 l_tmp_amt := NULL; -- 4262811
79007 --
79008
79009 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79010 l_balance_type_code <> 'B' THEN
79011 IF NVL(p_source_50,'
79012 ') <> 'CLEAR_CLEAR' AND
79013 NVL(p_source_112,'
79014 ') <> 'RETAINAGE RELEASE' AND
79015 NVL(p_source_32,'
79016 ') = 'RETAINAGE'
79017 THEN
79018
79019 --
79020 XLA_AE_LINES_PKG.SetNewLine;
79021
79022 p_balance_type_code := l_balance_type_code;
79023 -- set the flag so later we will know whether the gain loss line needs to be created
79024
79025 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79026 p_actual_flag :='A';
79027 END IF;
79028
79029 --
79030 -- bulk performance
79031 --
79032 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79033 p_header_num => 0); -- 4262811
79034 --
79035 -- set accounting line options
79036 --
79037 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79038 p_natural_side_code => 'D'
79039 , p_gain_or_loss_flag => 'N'
79040 , p_gl_transfer_mode_code => 'S'
79041 , p_acct_entry_type_code => 'A'
79042 , p_switch_side_flag => 'Y'
79043 , p_merge_duplicate_code => 'A'
79044 );
79045 --
79046 l_acc_rev_natural_side_code := 'C'; -- 4262811
79047 --
79048 --
79049 -- set accounting line type info
79050 --
79051 xla_ae_lines_pkg.SetAcctLineType
79052 (p_component_type => l_component_type
79053 ,p_event_type_code => l_event_type_code
79054 ,p_line_definition_owner_code => l_line_definition_owner_code
79055 ,p_line_definition_code => l_line_definition_code
79056 ,p_accounting_line_code => l_component_code
79057 ,p_accounting_line_type_code => l_component_type_code
79058 ,p_accounting_line_appl_id => l_component_appl_id
79059 ,p_amb_context_code => l_amb_context_code
79060 ,p_entity_code => l_entity_code
79061 ,p_event_class_code => l_event_class_code);
79062 --
79063 -- set accounting class
79064 --
79065 xla_ae_lines_pkg.SetAcctClass(
79066 p_accounting_class_code => 'RETAINAGE'
79067 , p_ae_header_id => l_ae_header_id
79068 );
79069
79070 --
79071 -- set rounding class
79072 --
79073 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79074 'RETAINAGE';
79075
79076 --
79077 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79078 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79079 --
79080 -- bulk performance
79081 --
79082 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79083
79084 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79085 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79086
79087 -- 4955764
79088 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79089 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79090
79091 -- 4458381 Public Sector Enh
79092
79093 --
79094 -- set accounting attributes for the line type
79095 --
79096 l_entered_amt_idx := 10;
79097 l_accted_amt_idx := 15;
79098 l_bflow_applied_to_amt_idx := 2; -- 5132302
79099 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79100 l_rec_acct_attrs.array_char_value(1) := p_source_52;
79101 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
79102 l_rec_acct_attrs.array_num_value(2) := p_source_72;
79103 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
79104 l_rec_acct_attrs.array_num_value(3) := p_source_54;
79105 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79106 l_rec_acct_attrs.array_char_value(4) := p_source_73;
79107 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
79108 l_rec_acct_attrs.array_char_value(5) := p_source_74;
79109 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
79110 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
79111 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79115 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
79112 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
79113 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
79114 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
79116 l_rec_acct_attrs.array_char_value(9) := p_source_60;
79117 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
79118 l_rec_acct_attrs.array_num_value(10) := p_source_53;
79119 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
79120 l_rec_acct_attrs.array_char_value(11) := p_source_12;
79121 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
79122 l_rec_acct_attrs.array_date_value(12) := p_source_121;
79123 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
79124 l_rec_acct_attrs.array_num_value(13) := p_source_122;
79125 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
79126 l_rec_acct_attrs.array_char_value(14) := p_source_123;
79127 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
79128 l_rec_acct_attrs.array_num_value(15) := p_source_21;
79129 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
79130 l_rec_acct_attrs.array_char_value(16) := p_source_64;
79131 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
79132 l_rec_acct_attrs.array_num_value(17) := p_source_65;
79133 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
79134 l_rec_acct_attrs.array_num_value(18) := p_source_66;
79135 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
79136 l_rec_acct_attrs.array_char_value(19) := p_source_67;
79137 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
79138 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
79139 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
79140 l_rec_acct_attrs.array_char_value(21) := p_source_60;
79141 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
79142 l_rec_acct_attrs.array_num_value(22) := p_source_69;
79143 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
79144 l_rec_acct_attrs.array_num_value(23) := p_source_77;
79145 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
79146 l_rec_acct_attrs.array_num_value(24) := p_source_70;
79147
79148 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79149 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79150
79151 ---------------------------------------------------------------------------------------------------------------
79152 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79153 ---------------------------------------------------------------------------------------------------------------
79154 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79155
79156 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79157 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79158
79159 IF xla_accounting_cache_pkg.GetValueChar
79160 (p_source_code => 'LEDGER_CATEGORY_CODE'
79161 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79162 AND l_bflow_method_code = 'PRIOR_ENTRY'
79163 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79164 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79165 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79166 )
79167 THEN
79168 xla_ae_lines_pkg.BflowUpgEntry
79169 (p_business_method_code => l_bflow_method_code
79170 ,p_business_class_code => l_bflow_class_code
79171 ,p_balance_type => l_balance_type_code);
79172 ELSE
79173 NULL;
79174 -- No business flow processing for business flow method of NONE.
79175 END IF;
79176
79177 --
79178 -- call analytical criteria
79179 --
79180
79181 --
79182 -- call description
79183 --
79184 -- No description or it is inherited.
79185 --
79186 -- call ADRs
79187 -- Bug 4922099
79188 --
79189 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79190 (NVL(l_actual_upg_option, 'N') = 'O') OR
79191 (NVL(l_enc_upg_option, 'N') = 'O')
79192 )
79193 THEN
79194 NULL;
79195 --
79196 --
79197
79198 l_ccid := AcctDerRule_36(
79199 p_application_id => p_application_id
79200 , p_ae_header_id => l_ae_header_id
79201 , p_source_16 => p_source_16
79202 , p_source_16_meaning => p_source_16_meaning
79203 , p_source_29 => p_source_29
79204 , p_source_35 => p_source_35
79205 , x_transaction_coa_id => l_adr_transaction_coa_id
79206 , x_accounting_coa_id => l_adr_accounting_coa_id
79207 , x_value_type_code => l_adr_value_type_code
79208 , p_side => 'NA'
79209 );
79210
79211 xla_ae_lines_pkg.set_ccid(
79212 p_code_combination_id => l_ccid
79213 , p_value_type_code => l_adr_value_type_code
79214 , p_transaction_coa_id => l_adr_transaction_coa_id
79215 , p_accounting_coa_id => l_adr_accounting_coa_id
79216 , p_adr_code => 'AP_RETAINAGE'
79217 , p_adr_type_code => 'S'
79218 , p_component_type => l_component_type
79222 , p_amb_context_code => l_amb_context_code
79219 , p_component_code => l_component_code
79220 , p_component_type_code => l_component_type_code
79221 , p_component_appl_id => l_component_appl_id
79223 , p_side => 'NA'
79224 );
79225
79226
79227 l_segment := AcctDerRule_14(
79228 p_application_id => p_application_id
79229 , p_ae_header_id => l_ae_header_id
79230 , p_source_34 => p_source_34
79231 , x_transaction_coa_id => l_adr_transaction_coa_id
79232 , x_accounting_coa_id => l_adr_accounting_coa_id
79233 , x_flexfield_segment_code => l_adr_flexfield_segment_code
79234 , x_flex_value_set_id => l_adr_flex_value_set_id
79235 , x_value_type_code => l_adr_value_type_code
79236 , x_value_combination_id => l_adr_value_combination_id
79237 , x_value_segment_code => l_adr_value_segment_code
79238 , p_side => 'NA'
79239 , p_override_seg_flag => 'Y'
79240 );
79241
79242 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
79243
79244 xla_ae_lines_pkg.set_segment(
79245 p_to_segment_code => 'GL_ACCOUNT'
79246 , p_segment_value => l_segment
79247 , p_from_segment_code => l_adr_value_segment_code
79248 , p_from_combination_id => l_adr_value_combination_id
79249 , p_value_type_code => l_adr_value_type_code
79250 , p_transaction_coa_id => l_adr_transaction_coa_id
79251 , p_accounting_coa_id => l_adr_accounting_coa_id
79252 , p_flexfield_segment_code => l_adr_flexfield_segment_code
79253 , p_flex_value_set_id => l_adr_flex_value_set_id
79254 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
79255 , p_adr_type_code => 'S'
79256 , p_component_type => l_component_type
79257 , p_component_code => l_component_code
79258 , p_component_type_code => l_component_type_code
79259 , p_component_appl_id => l_component_appl_id
79260 , p_amb_context_code => l_amb_context_code
79261 , p_entity_code => 'AP_PAYMENTS'
79262 , p_event_class_code => 'PAYMENTS'
79263 , p_side => 'NA'
79264 );
79265
79266 END IF;
79267
79268 l_segment := AcctDerRule_18(
79269 p_application_id => p_application_id
79270 , p_ae_header_id => l_ae_header_id
79271 , p_source_16 => p_source_16
79272 , p_source_16_meaning => p_source_16_meaning
79273 , p_source_35 => p_source_35
79274 , x_transaction_coa_id => l_adr_transaction_coa_id
79275 , x_accounting_coa_id => l_adr_accounting_coa_id
79276 , x_flexfield_segment_code => l_adr_flexfield_segment_code
79277 , x_flex_value_set_id => l_adr_flex_value_set_id
79278 , x_value_type_code => l_adr_value_type_code
79279 , x_value_combination_id => l_adr_value_combination_id
79280 , x_value_segment_code => l_adr_value_segment_code
79281 , p_side => 'NA'
79282 , p_override_seg_flag => 'Y'
79283 );
79284
79285 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
79286
79287 xla_ae_lines_pkg.set_segment(
79288 p_to_segment_code => 'GL_BALANCING'
79289 , p_segment_value => l_segment
79290 , p_from_segment_code => l_adr_value_segment_code
79291 , p_from_combination_id => l_adr_value_combination_id
79292 , p_value_type_code => l_adr_value_type_code
79293 , p_transaction_coa_id => l_adr_transaction_coa_id
79294 , p_accounting_coa_id => l_adr_accounting_coa_id
79295 , p_flexfield_segment_code => l_adr_flexfield_segment_code
79296 , p_flex_value_set_id => l_adr_flex_value_set_id
79297 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
79298 , p_adr_type_code => 'S'
79299 , p_component_type => l_component_type
79300 , p_component_code => l_component_code
79301 , p_component_type_code => l_component_type_code
79302 , p_component_appl_id => l_component_appl_id
79303 , p_amb_context_code => l_amb_context_code
79304 , p_entity_code => 'AP_PAYMENTS'
79305 , p_event_class_code => 'PAYMENTS'
79306 , p_side => 'NA'
79307 );
79308
79309 END IF;
79310
79311 --
79312 --
79313 END IF;
79314 --
79315 -- Bug 4922099
79316 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79317 (NVL(l_enc_upg_option, 'N') = 'O')
79318 ) AND
79319 (l_bflow_method_code = 'PRIOR_ENTRY')
79320 )
79321 THEN
79322 IF
79323 --
79324 1 = 2
79325 --
79326 THEN
79327 xla_accounting_err_pkg.build_message
79328 (p_appli_s_name => 'XLA'
79329 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79330 ,p_token_1 => 'LINE_NUMBER'
79331 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
79332 ,p_token_2 => 'LINE_TYPE_NAME'
79336 ,l_component_type_code
79333 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
79334 l_component_type
79335 ,l_component_code
79337 ,l_component_appl_id
79338 ,l_amb_context_code
79339 ,l_entity_code
79340 ,l_event_class_code
79341 )
79342 ,p_token_3 => 'OWNER'
79343 ,p_value_3 => xla_lookups_pkg.get_meaning(
79344 p_lookup_type => 'XLA_OWNER_TYPE'
79345 ,p_lookup_code => l_component_type_code
79346 )
79347 ,p_token_4 => 'PRODUCT_NAME'
79348 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79349 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79350 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79351 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79352 ,p_ae_header_id => NULL
79353 );
79354
79355 IF (C_LEVEL_ERROR>= g_log_level) THEN
79356 trace
79357 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79358 ,p_level => C_LEVEL_ERROR
79359 ,p_module => l_log_module);
79360 END IF;
79361 END IF;
79362 END IF;
79363 --
79364 --
79365 ------------------------------------------------------------------------------------------------
79366 -- 4219869 Business Flow
79367 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79368 -- Prior Entry. Currently, the following code is always generated.
79369 ------------------------------------------------------------------------------------------------
79370 XLA_AE_LINES_PKG.ValidateCurrentLine;
79371
79372 ------------------------------------------------------------------------------------
79373 -- 4219869 Business Flow
79374 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79375 ------------------------------------------------------------------------------------
79376 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79377
79378 ----------------------------------------------------------------------------------
79379 -- 4219869 Business Flow
79380 -- Update journal entry status -- Need to generate this within IF <condition>
79381 ----------------------------------------------------------------------------------
79382 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79383 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79384 ,p_balance_type_code => l_balance_type_code
79385 );
79386
79387 -------------------------------------------------------------------------------------------
79388 -- 4262811 - Generate the Accrual Reversal lines
79389 -------------------------------------------------------------------------------------------
79390 BEGIN
79391 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79392 (g_array_event(p_event_id).array_value_num('header_index'));
79393 IF l_acc_rev_flag IS NULL THEN
79394 l_acc_rev_flag := 'N';
79395 END IF;
79396 EXCEPTION
79397 WHEN OTHERS THEN
79398 l_acc_rev_flag := 'N';
79399 END;
79400 --
79401 IF (l_acc_rev_flag = 'Y') THEN
79402
79403 -- 4645092 ------------------------------------------------------------------------------
79404 -- To allow MPA report to determine if it should generate report process
79405 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79406 ------------------------------------------------------------------------------------------
79407
79408 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79409 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79410 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
79411 -- call ADRs
79412 -- Bug 4922099
79413 --
79414 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79415 (NVL(l_actual_upg_option, 'N') = 'O') OR
79416 (NVL(l_enc_upg_option, 'N') = 'O')
79417 )
79418 THEN
79419 NULL;
79420 --
79421 --
79422
79423 l_ccid := AcctDerRule_36(
79424 p_application_id => p_application_id
79425 , p_ae_header_id => l_ae_header_id
79426 , p_source_16 => p_source_16
79427 , p_source_16_meaning => p_source_16_meaning
79428 , p_source_29 => p_source_29
79429 , p_source_35 => p_source_35
79433 , p_side => 'NA'
79430 , x_transaction_coa_id => l_adr_transaction_coa_id
79431 , x_accounting_coa_id => l_adr_accounting_coa_id
79432 , x_value_type_code => l_adr_value_type_code
79434 );
79435
79436 xla_ae_lines_pkg.set_ccid(
79437 p_code_combination_id => l_ccid
79438 , p_value_type_code => l_adr_value_type_code
79439 , p_transaction_coa_id => l_adr_transaction_coa_id
79440 , p_accounting_coa_id => l_adr_accounting_coa_id
79441 , p_adr_code => 'AP_RETAINAGE'
79442 , p_adr_type_code => 'S'
79443 , p_component_type => l_component_type
79444 , p_component_code => l_component_code
79445 , p_component_type_code => l_component_type_code
79446 , p_component_appl_id => l_component_appl_id
79447 , p_amb_context_code => l_amb_context_code
79448 , p_side => 'NA'
79449 );
79450
79451
79452 l_segment := AcctDerRule_14(
79453 p_application_id => p_application_id
79454 , p_ae_header_id => l_ae_header_id
79455 , p_source_34 => p_source_34
79456 , x_transaction_coa_id => l_adr_transaction_coa_id
79457 , x_accounting_coa_id => l_adr_accounting_coa_id
79458 , x_flexfield_segment_code => l_adr_flexfield_segment_code
79459 , x_flex_value_set_id => l_adr_flex_value_set_id
79460 , x_value_type_code => l_adr_value_type_code
79461 , x_value_combination_id => l_adr_value_combination_id
79462 , x_value_segment_code => l_adr_value_segment_code
79463 , p_side => 'NA'
79464 , p_override_seg_flag => 'Y'
79465 );
79466
79467 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
79468
79469 xla_ae_lines_pkg.set_segment(
79470 p_to_segment_code => 'GL_ACCOUNT'
79471 , p_segment_value => l_segment
79472 , p_from_segment_code => l_adr_value_segment_code
79473 , p_from_combination_id => l_adr_value_combination_id
79474 , p_value_type_code => l_adr_value_type_code
79475 , p_transaction_coa_id => l_adr_transaction_coa_id
79476 , p_accounting_coa_id => l_adr_accounting_coa_id
79477 , p_flexfield_segment_code => l_adr_flexfield_segment_code
79478 , p_flex_value_set_id => l_adr_flex_value_set_id
79479 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
79480 , p_adr_type_code => 'S'
79481 , p_component_type => l_component_type
79482 , p_component_code => l_component_code
79483 , p_component_type_code => l_component_type_code
79484 , p_component_appl_id => l_component_appl_id
79485 , p_amb_context_code => l_amb_context_code
79486 , p_entity_code => 'AP_PAYMENTS'
79487 , p_event_class_code => 'PAYMENTS'
79488 , p_side => 'NA'
79489 );
79490
79491 END IF;
79492
79493 l_segment := AcctDerRule_18(
79494 p_application_id => p_application_id
79495 , p_ae_header_id => l_ae_header_id
79496 , p_source_16 => p_source_16
79497 , p_source_16_meaning => p_source_16_meaning
79498 , p_source_35 => p_source_35
79499 , x_transaction_coa_id => l_adr_transaction_coa_id
79500 , x_accounting_coa_id => l_adr_accounting_coa_id
79501 , x_flexfield_segment_code => l_adr_flexfield_segment_code
79502 , x_flex_value_set_id => l_adr_flex_value_set_id
79503 , x_value_type_code => l_adr_value_type_code
79504 , x_value_combination_id => l_adr_value_combination_id
79505 , x_value_segment_code => l_adr_value_segment_code
79506 , p_side => 'NA'
79507 , p_override_seg_flag => 'Y'
79508 );
79509
79510 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
79511
79512 xla_ae_lines_pkg.set_segment(
79513 p_to_segment_code => 'GL_BALANCING'
79514 , p_segment_value => l_segment
79515 , p_from_segment_code => l_adr_value_segment_code
79516 , p_from_combination_id => l_adr_value_combination_id
79517 , p_value_type_code => l_adr_value_type_code
79518 , p_transaction_coa_id => l_adr_transaction_coa_id
79519 , p_accounting_coa_id => l_adr_accounting_coa_id
79520 , p_flexfield_segment_code => l_adr_flexfield_segment_code
79521 , p_flex_value_set_id => l_adr_flex_value_set_id
79522 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
79523 , p_adr_type_code => 'S'
79524 , p_component_type => l_component_type
79525 , p_component_code => l_component_code
79526 , p_component_type_code => l_component_type_code
79527 , p_component_appl_id => l_component_appl_id
79528 , p_amb_context_code => l_amb_context_code
79529 , p_entity_code => 'AP_PAYMENTS'
79530 , p_event_class_code => 'PAYMENTS'
79531 , p_side => 'NA'
79532 );
79533
79534 END IF;
79535
79536 --
79537 --
79538 END IF;
79539
79540 --
79544 p_header_num => 1);
79541 -- Update the line information that should be overwritten
79542 --
79543 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79545 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
79546
79547 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79548
79549 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
79550 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79551 END IF;
79552
79553 --
79554 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79555 --
79556 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79557 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
79558 ELSE
79559 ---------------------------------------------------------------------------------------------------
79560 -- 4262811a Switch Sign
79561 ---------------------------------------------------------------------------------------------------
79562 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
79563 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79564 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79565 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79566 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79567 -- 5132302
79568 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79569 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79570
79571 END IF;
79572
79573 -- 4955764
79574 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79575 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79576
79577
79578 XLA_AE_LINES_PKG.ValidateCurrentLine;
79579 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79580
79581 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79582 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79583 ,p_balance_type_code => l_balance_type_code);
79584
79585 END IF;
79586
79587 -----------------------------------------------------------------------------------------
79588 -- 4262811 Multiperiod Accounting
79589 -----------------------------------------------------------------------------------------
79590 -- No MPA option is assigned.
79591
79592
79593 END IF;
79594 END IF;
79595 --
79596
79597 --
79598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79599 trace
79600 (p_msg => 'END of AcctLineType_142'
79601 ,p_level => C_LEVEL_PROCEDURE
79602 ,p_module => l_log_module);
79603 END IF;
79604 --
79605 EXCEPTION
79606 WHEN xla_exceptions_pkg.application_exception THEN
79607 RAISE;
79608 WHEN OTHERS THEN
79609 xla_exceptions_pkg.raise_message
79610 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_142');
79611 END AcctLineType_142;
79612 --
79613
79614 ---------------------------------------
79615 --
79616 -- PRIVATE FUNCTION
79617 -- AcctLineType_143
79618 --
79619 ---------------------------------------
79620 PROCEDURE AcctLineType_143 (
79621 p_application_id IN NUMBER
79622 ,p_event_id IN NUMBER
79623 ,p_calculate_acctd_flag IN VARCHAR2
79624 ,p_calculate_g_l_flag IN VARCHAR2
79625 ,p_actual_flag IN OUT VARCHAR2
79626 ,p_balance_type_code OUT VARCHAR2
79627 ,p_gain_or_loss_ref OUT VARCHAR2
79628
79629 --Automatic Offsets Value
79630 , p_source_16 IN VARCHAR2
79631 , p_source_16_meaning IN VARCHAR2
79632 --Invoice Distribution Account
79633 , p_source_29 IN NUMBER
79634 --Retainage Account
79635 , p_source_34 IN NUMBER
79636 --Retainage Related Item Distribution Account
79637 , p_source_35 IN NUMBER
79638 --When to Account for Payment Option
79639 , p_source_50 IN VARCHAR2
79640 --Accounting Reversal Indicator
79641 , p_source_52 IN VARCHAR2
79642 --Business Flow Accounts Payable Application Identifier
79643 , p_source_54 IN NUMBER
79644 --Distribution Link Type
79645 , p_source_60 IN VARCHAR2
79646 --Override Accounted Amount Indicator
79647 , p_source_64 IN VARCHAR2
79648 , p_source_64_meaning IN VARCHAR2
79649 --Third Party Type
79650 , p_source_67 IN VARCHAR2
79651 --Invoice Distribution Tax Line Identifier
79652 , p_source_69 IN NUMBER
79653 --Invoice Distribution Summary Tax Line Identifier
79654 , p_source_70 IN NUMBER
79655 --Business Flow Invoice Distribution Type
79656 , p_source_73 IN VARCHAR2
79657 --Business Flow Invoice Entity Code
79658 , p_source_74 IN VARCHAR2
79662 , p_source_78 IN VARCHAR2
79659 --Invoice Distribution Tax Distribution Identifier from Tax
79660 , p_source_77 IN NUMBER
79661 --Prepayment Distribution Type
79663 --Recipient Invoice Distribution Type
79664 , p_source_79 IN VARCHAR2
79665 , p_source_79_meaning IN VARCHAR2
79666 --Prepayment Application Distribution Identifier
79667 , p_source_82 IN NUMBER
79668 --Invoice Identifier
79669 , p_source_83 IN NUMBER
79670 --Upgrade Encumbrance Credit Account Class
79671 , p_source_88 IN VARCHAR2
79672 --Payables Encumbrance Upgrade Credit Account
79673 , p_source_89 IN NUMBER
79674 --Payables Encumbrance Upgrade Credit Amount
79675 , p_source_90 IN NUMBER
79676 --Invoice Currency Code
79677 , p_source_91 IN VARCHAR2
79678 --Payables Encumbrance Upgrade Credit Base Amount
79679 , p_source_92 IN NUMBER
79680 --Upgrade Encumbrance Debit Account Class
79681 , p_source_93 IN VARCHAR2
79682 --Payables Encumbrance Upgrade Debit Account
79683 , p_source_94 IN NUMBER
79684 --Payables Encumbrance Upgrade Debit Amount
79685 , p_source_95 IN NUMBER
79686 --Payables Encumbrance Upgrade Debit Base Amount
79687 , p_source_96 IN NUMBER
79688 --Payables Encumbrance Upgrade Option
79689 , p_source_97 IN VARCHAR2
79690 --Prepayment Distribution Amount
79691 , p_source_98 IN NUMBER
79692 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
79693 , p_source_100 IN NUMBER
79694 --Deferred Accounting End Date
79695 , p_source_101 IN DATE
79696 --Deferred Accounting Option
79697 , p_source_102 IN VARCHAR2
79698 --Deferred Accounting Start Date
79699 , p_source_103 IN DATE
79700 --Invoice Supplier Identifier
79701 , p_source_104 IN NUMBER
79702 --Invoice Supplier Site Identifier
79703 , p_source_105 IN NUMBER
79704 --Identifier of the Prepayment Application Reversed
79705 , p_source_106 IN NUMBER
79706 --Payables Upgrade Credit Encumbrance Type Identifier
79707 , p_source_107 IN NUMBER
79708 --Payables Upgrade Debit Encumbrance Type Identifier
79709 , p_source_108 IN NUMBER
79710 --Invoice Exchange Date
79711 , p_source_131 IN DATE
79712 --Invoice Exchange Rate
79713 , p_source_132 IN NUMBER
79714 --Invoice Exchange Rate Type
79715 , p_source_133 IN VARCHAR2
79716 --Prepayment Application Recipient Invoice Type
79717 , p_source_148 IN VARCHAR2
79718 , p_source_148_meaning IN VARCHAR2
79719 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
79720 , p_source_149 IN NUMBER
79721 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
79722 , p_source_150 IN NUMBER
79723 )
79724 IS
79725
79726 l_component_type VARCHAR2(80);
79727 l_component_code VARCHAR2(30);
79728 l_component_type_code VARCHAR2(1);
79729 l_component_appl_id INTEGER;
79730 l_amb_context_code VARCHAR2(30);
79731 l_entity_code VARCHAR2(30);
79732 l_event_class_code VARCHAR2(30);
79733 l_ae_header_id NUMBER;
79734 l_event_type_code VARCHAR2(30);
79735 l_line_definition_code VARCHAR2(30);
79736 l_line_definition_owner_code VARCHAR2(1);
79737 --
79738 -- adr variables
79739 l_segment VARCHAR2(30);
79740 l_ccid NUMBER;
79741 l_adr_transaction_coa_id NUMBER;
79742 l_adr_accounting_coa_id NUMBER;
79743 l_adr_flexfield_segment_code VARCHAR2(30);
79744 l_adr_flex_value_set_id NUMBER;
79745 l_adr_value_type_code VARCHAR2(30);
79746 l_adr_value_combination_id NUMBER;
79747 l_adr_value_segment_code VARCHAR2(30);
79748
79749 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
79750 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
79751 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
79752 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
79753
79754 -- 4262811 Variables ------------------------------------------------------------------------------------------
79755 l_entered_amt_idx NUMBER;
79756 l_accted_amt_idx NUMBER;
79757 l_acc_rev_flag VARCHAR2(1);
79758 l_accrual_line_num NUMBER;
79759 l_tmp_amt NUMBER;
79760 l_acc_rev_natural_side_code VARCHAR2(1);
79761
79762 l_num_entries NUMBER;
79763 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
79764 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
79765 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
79766 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
79767 l_recog_line_1 NUMBER;
79768 l_recog_line_2 NUMBER;
79769
79770 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
79771 l_bflow_applied_to_amt NUMBER; -- 5132302
79772 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
79773
79774 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79775
79776 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
79777 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
79778
79782 --
79779 ---------------------------------------------------------------------------------------------------------------
79780
79781
79783 -- bulk performance
79784 --
79785 l_balance_type_code VARCHAR2(1);
79786 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79787 l_log_module VARCHAR2(240);
79788
79789 --
79790 -- Upgrade strategy
79791 --
79792 l_actual_upg_option VARCHAR2(1);
79793 l_enc_upg_option VARCHAR2(1);
79794
79795 --
79796 BEGIN
79797 --
79798 IF g_log_enabled THEN
79799 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
79800 END IF;
79801 --
79802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79803
79804 trace
79805 (p_msg => 'BEGIN of AcctLineType_143'
79806 ,p_level => C_LEVEL_PROCEDURE
79807 ,p_module => l_log_module);
79808
79809 END IF;
79810 --
79811 l_component_type := 'AMB_JLT';
79812 l_component_code := 'AP_RET_CASH_CLR_XRATE';
79813 l_component_type_code := 'S';
79814 l_component_appl_id := 200;
79815 l_amb_context_code := 'DEFAULT';
79816 l_entity_code := 'AP_INVOICES';
79817 l_event_class_code := 'PREPAYMENT APPLICATIONS';
79818 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
79819 l_line_definition_owner_code := 'S';
79820 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
79821 --
79822 l_balance_type_code := 'A';
79823 l_segment := NULL;
79824 l_ccid := NULL;
79825 l_adr_transaction_coa_id := NULL;
79826 l_adr_accounting_coa_id := NULL;
79827 l_adr_flexfield_segment_code := NULL;
79828 l_adr_flex_value_set_id := NULL;
79829 l_adr_value_type_code := NULL;
79830 l_adr_value_combination_id := NULL;
79831 l_adr_value_segment_code := NULL;
79832
79833 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
79834 l_bflow_class_code := ''; -- 4219869 Business Flow
79835 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
79836 l_budgetary_control_flag := 'N';
79837
79838 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79839 l_bflow_applied_to_amt := NULL; -- 5132302
79840 l_entered_amt_idx := NULL; -- 4262811
79841 l_accted_amt_idx := NULL; -- 4262811
79842 l_acc_rev_flag := NULL; -- 4262811
79843 l_accrual_line_num := NULL; -- 4262811
79844 l_tmp_amt := NULL; -- 4262811
79845 --
79846
79847 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79848 l_balance_type_code <> 'B' THEN
79849 IF NVL(p_source_50,'
79850 ') = 'CLEAR_CLEAR' AND
79851 NVL(p_source_79,'
79852 ') = 'RETAINAGE' AND
79853 NVL(p_source_148,'
79854 ') <> 'RETAINAGE RELEASE' AND
79855 (NVL(p_source_78,'
79856 ') = 'PREPAY APPL' OR
79857 NVL(p_source_78,'
79858 ') = 'PREPAY APPL NONREC TAX' OR
79859 NVL(p_source_78,'
79860 ') = 'PREPAY APPL REC TAX')
79861 THEN
79862
79863 --
79864 XLA_AE_LINES_PKG.SetNewLine;
79865
79866 p_balance_type_code := l_balance_type_code;
79867 -- set the flag so later we will know whether the gain loss line needs to be created
79868
79869 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79870 p_actual_flag :='A';
79871 END IF;
79872
79873 --
79874 -- bulk performance
79875 --
79876 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79877 p_header_num => 0); -- 4262811
79878 --
79879 -- set accounting line options
79880 --
79881 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79882 p_natural_side_code => 'C'
79883 , p_gain_or_loss_flag => 'N'
79884 , p_gl_transfer_mode_code => 'S'
79885 , p_acct_entry_type_code => 'A'
79886 , p_switch_side_flag => 'Y'
79887 , p_merge_duplicate_code => 'A'
79888 );
79889 --
79890 l_acc_rev_natural_side_code := 'D'; -- 4262811
79891 --
79892 --
79893 -- set accounting line type info
79894 --
79895 xla_ae_lines_pkg.SetAcctLineType
79896 (p_component_type => l_component_type
79897 ,p_event_type_code => l_event_type_code
79898 ,p_line_definition_owner_code => l_line_definition_owner_code
79899 ,p_line_definition_code => l_line_definition_code
79900 ,p_accounting_line_code => l_component_code
79901 ,p_accounting_line_type_code => l_component_type_code
79902 ,p_accounting_line_appl_id => l_component_appl_id
79903 ,p_amb_context_code => l_amb_context_code
79904 ,p_entity_code => l_entity_code
79905 ,p_event_class_code => l_event_class_code);
79906 --
79907 -- set accounting class
79908 --
79909 xla_ae_lines_pkg.SetAcctClass(
79910 p_accounting_class_code => 'RETAINAGE'
79911 , p_ae_header_id => l_ae_header_id
79912 );
79913
79914 --
79915 -- set rounding class
79916 --
79917 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79918 'RETAINAGE';
79922 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79919
79920 --
79921 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79923 --
79924 -- bulk performance
79925 --
79926 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79927
79928 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79929 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79930
79931 -- 4955764
79932 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79933 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79934
79935 -- 4458381 Public Sector Enh
79936
79937 --
79938 -- set accounting attributes for the line type
79939 --
79940 l_entered_amt_idx := 25;
79941 l_accted_amt_idx := 30;
79942 l_bflow_applied_to_amt_idx := NULL; -- 5132302
79943 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79944 l_rec_acct_attrs.array_char_value(1) := p_source_52;
79945 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79946 l_rec_acct_attrs.array_num_value(2) :=
79947 xla_ae_sources_pkg.GetSystemSourceNum(
79948 p_source_code => 'XLA_EVENT_APPL_ID'
79949 , p_source_type_code => 'Y'
79950 , p_source_application_id => 602
79951 );
79952 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79953 l_rec_acct_attrs.array_char_value(3) := p_source_60;
79954 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79955 l_rec_acct_attrs.array_char_value(4) :=
79956 xla_ae_sources_pkg.GetSystemSourceChar(
79957 p_source_code => 'XLA_ENTITY_CODE'
79958 , p_source_type_code => 'Y'
79959 , p_source_application_id => 602
79960 );
79961 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79962 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
79963 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79964 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
79965 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79966 l_rec_acct_attrs.array_num_value(7) := p_source_54;
79967 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79968 l_rec_acct_attrs.array_char_value(8) := p_source_73;
79969 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79970 l_rec_acct_attrs.array_char_value(9) := p_source_74;
79971 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79972 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_149);
79973 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79974 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_150);
79975 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79976 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
79977 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79978 l_rec_acct_attrs.array_char_value(13) := p_source_60;
79979 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79980 l_rec_acct_attrs.array_char_value(14) := p_source_88;
79981 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79982 l_rec_acct_attrs.array_num_value(15) := p_source_89;
79983 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79984 l_rec_acct_attrs.array_num_value(16) := p_source_90;
79985 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79986 l_rec_acct_attrs.array_char_value(17) := p_source_91;
79987 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79988 l_rec_acct_attrs.array_num_value(18) := p_source_92;
79989 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79990 l_rec_acct_attrs.array_char_value(19) := p_source_93;
79991 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79992 l_rec_acct_attrs.array_num_value(20) := p_source_94;
79993 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79994 l_rec_acct_attrs.array_num_value(21) := p_source_95;
79995 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79996 l_rec_acct_attrs.array_char_value(22) := p_source_91;
79997 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79998 l_rec_acct_attrs.array_num_value(23) := p_source_96;
79999 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80000 l_rec_acct_attrs.array_char_value(24) := p_source_97;
80001 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80002 l_rec_acct_attrs.array_num_value(25) := p_source_98;
80003 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80004 l_rec_acct_attrs.array_char_value(26) := p_source_91;
80005 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80006 l_rec_acct_attrs.array_date_value(27) := p_source_131;
80007 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80008 l_rec_acct_attrs.array_num_value(28) := p_source_132;
80009 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80010 l_rec_acct_attrs.array_char_value(29) := p_source_133;
80011 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80012 l_rec_acct_attrs.array_num_value(30) := p_source_100;
80013 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80017 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80014 l_rec_acct_attrs.array_date_value(31) := p_source_101;
80015 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80016 l_rec_acct_attrs.array_char_value(32) := p_source_102;
80018 l_rec_acct_attrs.array_date_value(33) := p_source_103;
80019 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80020 l_rec_acct_attrs.array_char_value(34) := p_source_64;
80021 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80022 l_rec_acct_attrs.array_num_value(35) := p_source_104;
80023 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80024 l_rec_acct_attrs.array_num_value(36) := p_source_105;
80025 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80026 l_rec_acct_attrs.array_char_value(37) := p_source_67;
80027 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80028 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
80029 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80030 l_rec_acct_attrs.array_char_value(39) := p_source_60;
80031 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80032 l_rec_acct_attrs.array_num_value(40) := p_source_69;
80033 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80034 l_rec_acct_attrs.array_num_value(41) := p_source_77;
80035 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80036 l_rec_acct_attrs.array_num_value(42) := p_source_70;
80037 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80038 l_rec_acct_attrs.array_num_value(43) := p_source_107;
80039 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80040 l_rec_acct_attrs.array_num_value(44) := p_source_108;
80041
80042 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80043 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80044
80045 ---------------------------------------------------------------------------------------------------------------
80046 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80047 ---------------------------------------------------------------------------------------------------------------
80048 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80049
80050 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80051 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80052
80053 IF xla_accounting_cache_pkg.GetValueChar
80054 (p_source_code => 'LEDGER_CATEGORY_CODE'
80055 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80056 AND l_bflow_method_code = 'PRIOR_ENTRY'
80057 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80058 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80059 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80060 )
80061 THEN
80062 xla_ae_lines_pkg.BflowUpgEntry
80063 (p_business_method_code => l_bflow_method_code
80064 ,p_business_class_code => l_bflow_class_code
80065 ,p_balance_type => l_balance_type_code);
80066 ELSE
80067 NULL;
80068 -- No business flow processing for business flow method of NONE.
80069 END IF;
80070
80071 --
80072 -- call analytical criteria
80073 --
80074
80075 --
80076 -- call description
80077 --
80078 -- No description or it is inherited.
80079 --
80080 -- call ADRs
80081 -- Bug 4922099
80082 --
80083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80084 (NVL(l_actual_upg_option, 'N') = 'O') OR
80085 (NVL(l_enc_upg_option, 'N') = 'O')
80086 )
80087 THEN
80088 NULL;
80089 --
80090 --
80091
80092 l_ccid := AcctDerRule_36(
80093 p_application_id => p_application_id
80094 , p_ae_header_id => l_ae_header_id
80095 , p_source_16 => p_source_16
80096 , p_source_16_meaning => p_source_16_meaning
80097 , p_source_29 => p_source_29
80098 , p_source_35 => p_source_35
80099 , x_transaction_coa_id => l_adr_transaction_coa_id
80100 , x_accounting_coa_id => l_adr_accounting_coa_id
80101 , x_value_type_code => l_adr_value_type_code
80102 , p_side => 'NA'
80103 );
80104
80105 xla_ae_lines_pkg.set_ccid(
80106 p_code_combination_id => l_ccid
80107 , p_value_type_code => l_adr_value_type_code
80108 , p_transaction_coa_id => l_adr_transaction_coa_id
80109 , p_accounting_coa_id => l_adr_accounting_coa_id
80110 , p_adr_code => 'AP_RETAINAGE'
80111 , p_adr_type_code => 'S'
80112 , p_component_type => l_component_type
80113 , p_component_code => l_component_code
80114 , p_component_type_code => l_component_type_code
80115 , p_component_appl_id => l_component_appl_id
80116 , p_amb_context_code => l_amb_context_code
80117 , p_side => 'NA'
80118 );
80119
80120
80121 l_segment := AcctDerRule_14(
80125 , x_transaction_coa_id => l_adr_transaction_coa_id
80122 p_application_id => p_application_id
80123 , p_ae_header_id => l_ae_header_id
80124 , p_source_34 => p_source_34
80126 , x_accounting_coa_id => l_adr_accounting_coa_id
80127 , x_flexfield_segment_code => l_adr_flexfield_segment_code
80128 , x_flex_value_set_id => l_adr_flex_value_set_id
80129 , x_value_type_code => l_adr_value_type_code
80130 , x_value_combination_id => l_adr_value_combination_id
80131 , x_value_segment_code => l_adr_value_segment_code
80132 , p_side => 'NA'
80133 , p_override_seg_flag => 'Y'
80134 );
80135
80136 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
80137
80138 xla_ae_lines_pkg.set_segment(
80139 p_to_segment_code => 'GL_ACCOUNT'
80140 , p_segment_value => l_segment
80141 , p_from_segment_code => l_adr_value_segment_code
80142 , p_from_combination_id => l_adr_value_combination_id
80143 , p_value_type_code => l_adr_value_type_code
80144 , p_transaction_coa_id => l_adr_transaction_coa_id
80145 , p_accounting_coa_id => l_adr_accounting_coa_id
80146 , p_flexfield_segment_code => l_adr_flexfield_segment_code
80147 , p_flex_value_set_id => l_adr_flex_value_set_id
80148 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
80149 , p_adr_type_code => 'S'
80150 , p_component_type => l_component_type
80151 , p_component_code => l_component_code
80152 , p_component_type_code => l_component_type_code
80153 , p_component_appl_id => l_component_appl_id
80154 , p_amb_context_code => l_amb_context_code
80155 , p_entity_code => 'AP_INVOICES'
80156 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
80157 , p_side => 'NA'
80158 );
80159
80160 END IF;
80161
80162 l_segment := AcctDerRule_18(
80163 p_application_id => p_application_id
80164 , p_ae_header_id => l_ae_header_id
80165 , p_source_16 => p_source_16
80166 , p_source_16_meaning => p_source_16_meaning
80167 , p_source_35 => p_source_35
80168 , x_transaction_coa_id => l_adr_transaction_coa_id
80169 , x_accounting_coa_id => l_adr_accounting_coa_id
80170 , x_flexfield_segment_code => l_adr_flexfield_segment_code
80171 , x_flex_value_set_id => l_adr_flex_value_set_id
80172 , x_value_type_code => l_adr_value_type_code
80173 , x_value_combination_id => l_adr_value_combination_id
80174 , x_value_segment_code => l_adr_value_segment_code
80175 , p_side => 'NA'
80176 , p_override_seg_flag => 'Y'
80177 );
80178
80179 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
80180
80181 xla_ae_lines_pkg.set_segment(
80182 p_to_segment_code => 'GL_BALANCING'
80183 , p_segment_value => l_segment
80184 , p_from_segment_code => l_adr_value_segment_code
80185 , p_from_combination_id => l_adr_value_combination_id
80186 , p_value_type_code => l_adr_value_type_code
80187 , p_transaction_coa_id => l_adr_transaction_coa_id
80188 , p_accounting_coa_id => l_adr_accounting_coa_id
80189 , p_flexfield_segment_code => l_adr_flexfield_segment_code
80190 , p_flex_value_set_id => l_adr_flex_value_set_id
80191 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
80192 , p_adr_type_code => 'S'
80193 , p_component_type => l_component_type
80194 , p_component_code => l_component_code
80195 , p_component_type_code => l_component_type_code
80196 , p_component_appl_id => l_component_appl_id
80197 , p_amb_context_code => l_amb_context_code
80198 , p_entity_code => 'AP_INVOICES'
80199 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
80200 , p_side => 'NA'
80201 );
80202
80203 END IF;
80204
80205 --
80206 --
80207 END IF;
80208 --
80209 -- Bug 4922099
80210 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80211 (NVL(l_enc_upg_option, 'N') = 'O')
80212 ) AND
80213 (l_bflow_method_code = 'PRIOR_ENTRY')
80214 )
80215 THEN
80216 IF
80217 --
80218 1 = 2
80219 --
80220 THEN
80221 xla_accounting_err_pkg.build_message
80222 (p_appli_s_name => 'XLA'
80223 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80224 ,p_token_1 => 'LINE_NUMBER'
80225 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
80226 ,p_token_2 => 'LINE_TYPE_NAME'
80227 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
80228 l_component_type
80232 ,l_amb_context_code
80229 ,l_component_code
80230 ,l_component_type_code
80231 ,l_component_appl_id
80233 ,l_entity_code
80234 ,l_event_class_code
80235 )
80236 ,p_token_3 => 'OWNER'
80237 ,p_value_3 => xla_lookups_pkg.get_meaning(
80238 p_lookup_type => 'XLA_OWNER_TYPE'
80239 ,p_lookup_code => l_component_type_code
80240 )
80241 ,p_token_4 => 'PRODUCT_NAME'
80242 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80243 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80244 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80245 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80246 ,p_ae_header_id => NULL
80247 );
80248
80249 IF (C_LEVEL_ERROR>= g_log_level) THEN
80250 trace
80251 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80252 ,p_level => C_LEVEL_ERROR
80253 ,p_module => l_log_module);
80254 END IF;
80255 END IF;
80256 END IF;
80257 --
80258 --
80259 ------------------------------------------------------------------------------------------------
80260 -- 4219869 Business Flow
80261 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80262 -- Prior Entry. Currently, the following code is always generated.
80263 ------------------------------------------------------------------------------------------------
80264 XLA_AE_LINES_PKG.ValidateCurrentLine;
80265
80266 ------------------------------------------------------------------------------------
80267 -- 4219869 Business Flow
80268 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80269 ------------------------------------------------------------------------------------
80270 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80271
80272 ----------------------------------------------------------------------------------
80273 -- 4219869 Business Flow
80274 -- Update journal entry status -- Need to generate this within IF <condition>
80275 ----------------------------------------------------------------------------------
80276 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80277 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80278 ,p_balance_type_code => l_balance_type_code
80279 );
80280
80281 -------------------------------------------------------------------------------------------
80282 -- 4262811 - Generate the Accrual Reversal lines
80283 -------------------------------------------------------------------------------------------
80284 BEGIN
80285 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80286 (g_array_event(p_event_id).array_value_num('header_index'));
80287 IF l_acc_rev_flag IS NULL THEN
80288 l_acc_rev_flag := 'N';
80289 END IF;
80290 EXCEPTION
80291 WHEN OTHERS THEN
80292 l_acc_rev_flag := 'N';
80293 END;
80294 --
80295 IF (l_acc_rev_flag = 'Y') THEN
80296
80297 -- 4645092 ------------------------------------------------------------------------------
80298 -- To allow MPA report to determine if it should generate report process
80299 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80300 ------------------------------------------------------------------------------------------
80301
80302 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80303 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80304 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
80305 -- call ADRs
80306 -- Bug 4922099
80307 --
80308 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80309 (NVL(l_actual_upg_option, 'N') = 'O') OR
80310 (NVL(l_enc_upg_option, 'N') = 'O')
80311 )
80312 THEN
80313 NULL;
80314 --
80315 --
80316
80317 l_ccid := AcctDerRule_36(
80318 p_application_id => p_application_id
80319 , p_ae_header_id => l_ae_header_id
80320 , p_source_16 => p_source_16
80321 , p_source_16_meaning => p_source_16_meaning
80322 , p_source_29 => p_source_29
80323 , p_source_35 => p_source_35
80324 , x_transaction_coa_id => l_adr_transaction_coa_id
80325 , x_accounting_coa_id => l_adr_accounting_coa_id
80326 , x_value_type_code => l_adr_value_type_code
80330 xla_ae_lines_pkg.set_ccid(
80327 , p_side => 'NA'
80328 );
80329
80331 p_code_combination_id => l_ccid
80332 , p_value_type_code => l_adr_value_type_code
80333 , p_transaction_coa_id => l_adr_transaction_coa_id
80334 , p_accounting_coa_id => l_adr_accounting_coa_id
80335 , p_adr_code => 'AP_RETAINAGE'
80336 , p_adr_type_code => 'S'
80337 , p_component_type => l_component_type
80338 , p_component_code => l_component_code
80339 , p_component_type_code => l_component_type_code
80340 , p_component_appl_id => l_component_appl_id
80341 , p_amb_context_code => l_amb_context_code
80342 , p_side => 'NA'
80343 );
80344
80345
80346 l_segment := AcctDerRule_14(
80347 p_application_id => p_application_id
80348 , p_ae_header_id => l_ae_header_id
80349 , p_source_34 => p_source_34
80350 , x_transaction_coa_id => l_adr_transaction_coa_id
80351 , x_accounting_coa_id => l_adr_accounting_coa_id
80352 , x_flexfield_segment_code => l_adr_flexfield_segment_code
80353 , x_flex_value_set_id => l_adr_flex_value_set_id
80354 , x_value_type_code => l_adr_value_type_code
80355 , x_value_combination_id => l_adr_value_combination_id
80356 , x_value_segment_code => l_adr_value_segment_code
80357 , p_side => 'NA'
80358 , p_override_seg_flag => 'Y'
80359 );
80360
80361 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
80362
80363 xla_ae_lines_pkg.set_segment(
80364 p_to_segment_code => 'GL_ACCOUNT'
80365 , p_segment_value => l_segment
80366 , p_from_segment_code => l_adr_value_segment_code
80367 , p_from_combination_id => l_adr_value_combination_id
80368 , p_value_type_code => l_adr_value_type_code
80369 , p_transaction_coa_id => l_adr_transaction_coa_id
80370 , p_accounting_coa_id => l_adr_accounting_coa_id
80371 , p_flexfield_segment_code => l_adr_flexfield_segment_code
80372 , p_flex_value_set_id => l_adr_flex_value_set_id
80373 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
80374 , p_adr_type_code => 'S'
80375 , p_component_type => l_component_type
80376 , p_component_code => l_component_code
80377 , p_component_type_code => l_component_type_code
80378 , p_component_appl_id => l_component_appl_id
80379 , p_amb_context_code => l_amb_context_code
80380 , p_entity_code => 'AP_INVOICES'
80381 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
80382 , p_side => 'NA'
80383 );
80384
80385 END IF;
80386
80387 l_segment := AcctDerRule_18(
80388 p_application_id => p_application_id
80389 , p_ae_header_id => l_ae_header_id
80390 , p_source_16 => p_source_16
80391 , p_source_16_meaning => p_source_16_meaning
80392 , p_source_35 => p_source_35
80393 , x_transaction_coa_id => l_adr_transaction_coa_id
80394 , x_accounting_coa_id => l_adr_accounting_coa_id
80395 , x_flexfield_segment_code => l_adr_flexfield_segment_code
80396 , x_flex_value_set_id => l_adr_flex_value_set_id
80397 , x_value_type_code => l_adr_value_type_code
80398 , x_value_combination_id => l_adr_value_combination_id
80399 , x_value_segment_code => l_adr_value_segment_code
80400 , p_side => 'NA'
80401 , p_override_seg_flag => 'Y'
80402 );
80403
80404 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
80405
80406 xla_ae_lines_pkg.set_segment(
80407 p_to_segment_code => 'GL_BALANCING'
80408 , p_segment_value => l_segment
80409 , p_from_segment_code => l_adr_value_segment_code
80410 , p_from_combination_id => l_adr_value_combination_id
80411 , p_value_type_code => l_adr_value_type_code
80412 , p_transaction_coa_id => l_adr_transaction_coa_id
80413 , p_accounting_coa_id => l_adr_accounting_coa_id
80414 , p_flexfield_segment_code => l_adr_flexfield_segment_code
80415 , p_flex_value_set_id => l_adr_flex_value_set_id
80416 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
80417 , p_adr_type_code => 'S'
80418 , p_component_type => l_component_type
80419 , p_component_code => l_component_code
80420 , p_component_type_code => l_component_type_code
80421 , p_component_appl_id => l_component_appl_id
80422 , p_amb_context_code => l_amb_context_code
80423 , p_entity_code => 'AP_INVOICES'
80424 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
80425 , p_side => 'NA'
80426 );
80427
80428 END IF;
80429
80430 --
80431 --
80432 END IF;
80433
80434 --
80435 -- Update the line information that should be overwritten
80436 --
80437 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80438 p_header_num => 1);
80442
80439 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
80440
80441 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80443 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
80444 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80445 END IF;
80446
80447 --
80448 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80449 --
80450 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80451 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
80452 ELSE
80453 ---------------------------------------------------------------------------------------------------
80454 -- 4262811a Switch Sign
80455 ---------------------------------------------------------------------------------------------------
80456 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
80457 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80459 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80461 -- 5132302
80462 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80464
80465 END IF;
80466
80467 -- 4955764
80468 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80469 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80470
80471
80472 XLA_AE_LINES_PKG.ValidateCurrentLine;
80473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80474
80475 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80476 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80477 ,p_balance_type_code => l_balance_type_code);
80478
80479 END IF;
80480
80481 -----------------------------------------------------------------------------------------
80482 -- 4262811 Multiperiod Accounting
80483 -----------------------------------------------------------------------------------------
80484 -- No MPA option is assigned.
80485
80486
80487 END IF;
80488 END IF;
80489 --
80490
80491 --
80492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80493 trace
80494 (p_msg => 'END of AcctLineType_143'
80495 ,p_level => C_LEVEL_PROCEDURE
80496 ,p_module => l_log_module);
80497 END IF;
80498 --
80499 EXCEPTION
80500 WHEN xla_exceptions_pkg.application_exception THEN
80501 RAISE;
80502 WHEN OTHERS THEN
80503 xla_exceptions_pkg.raise_message
80504 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_143');
80505 END AcctLineType_143;
80506 --
80507
80508 ---------------------------------------
80509 --
80510 -- PRIVATE FUNCTION
80511 -- AcctLineType_144
80512 --
80513 ---------------------------------------
80514 PROCEDURE AcctLineType_144 (
80515 p_application_id IN NUMBER
80516 ,p_event_id IN NUMBER
80517 ,p_calculate_acctd_flag IN VARCHAR2
80518 ,p_calculate_g_l_flag IN VARCHAR2
80519 ,p_actual_flag IN OUT VARCHAR2
80520 ,p_balance_type_code OUT VARCHAR2
80521 ,p_gain_or_loss_ref OUT VARCHAR2
80522
80523 --Automatic Offsets Value
80524 , p_source_16 IN VARCHAR2
80525 , p_source_16_meaning IN VARCHAR2
80526 --Invoice Distribution Account
80527 , p_source_29 IN NUMBER
80528 --Retainage Account
80529 , p_source_34 IN NUMBER
80530 --Retainage Related Item Distribution Account
80531 , p_source_35 IN NUMBER
80532 --When to Account for Payment Option
80533 , p_source_50 IN VARCHAR2
80534 --Accounting Reversal Indicator
80535 , p_source_52 IN VARCHAR2
80536 --Business Flow Accounts Payable Application Identifier
80537 , p_source_54 IN NUMBER
80538 --Distribution Link Type
80539 , p_source_60 IN VARCHAR2
80540 --Override Accounted Amount Indicator
80541 , p_source_64 IN VARCHAR2
80542 , p_source_64_meaning IN VARCHAR2
80543 --Third Party Type
80544 , p_source_67 IN VARCHAR2
80545 --Invoice Distribution Tax Line Identifier
80546 , p_source_69 IN NUMBER
80547 --Invoice Distribution Summary Tax Line Identifier
80548 , p_source_70 IN NUMBER
80549 --Business Flow Invoice Distribution Type
80550 , p_source_73 IN VARCHAR2
80551 --Business Flow Invoice Entity Code
80552 , p_source_74 IN VARCHAR2
80553 --Invoice Distribution Tax Distribution Identifier from Tax
80554 , p_source_77 IN NUMBER
80555 --Prepayment Distribution Type
80556 , p_source_78 IN VARCHAR2
80557 --Recipient Invoice Distribution Type
80558 , p_source_79 IN VARCHAR2
80559 , p_source_79_meaning IN VARCHAR2
80560 --Prepayment Application Distribution Identifier
80561 , p_source_82 IN NUMBER
80565 , p_source_88 IN VARCHAR2
80562 --Invoice Identifier
80563 , p_source_83 IN NUMBER
80564 --Upgrade Encumbrance Credit Account Class
80566 --Payables Encumbrance Upgrade Credit Account
80567 , p_source_89 IN NUMBER
80568 --Payables Encumbrance Upgrade Credit Amount
80569 , p_source_90 IN NUMBER
80570 --Invoice Currency Code
80571 , p_source_91 IN VARCHAR2
80572 --Payables Encumbrance Upgrade Credit Base Amount
80573 , p_source_92 IN NUMBER
80574 --Upgrade Encumbrance Debit Account Class
80575 , p_source_93 IN VARCHAR2
80576 --Payables Encumbrance Upgrade Debit Account
80577 , p_source_94 IN NUMBER
80578 --Payables Encumbrance Upgrade Debit Amount
80579 , p_source_95 IN NUMBER
80580 --Payables Encumbrance Upgrade Debit Base Amount
80581 , p_source_96 IN NUMBER
80582 --Payables Encumbrance Upgrade Option
80583 , p_source_97 IN VARCHAR2
80584 --Prepayment Distribution Amount
80585 , p_source_98 IN NUMBER
80586 --Deferred Accounting End Date
80587 , p_source_101 IN DATE
80588 --Deferred Accounting Option
80589 , p_source_102 IN VARCHAR2
80590 --Deferred Accounting Start Date
80591 , p_source_103 IN DATE
80592 --Invoice Supplier Identifier
80593 , p_source_104 IN NUMBER
80594 --Invoice Supplier Site Identifier
80595 , p_source_105 IN NUMBER
80596 --Identifier of the Prepayment Application Reversed
80597 , p_source_106 IN NUMBER
80598 --Payables Upgrade Credit Encumbrance Type Identifier
80599 , p_source_107 IN NUMBER
80600 --Payables Upgrade Debit Encumbrance Type Identifier
80601 , p_source_108 IN NUMBER
80602 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
80603 , p_source_110 IN NUMBER
80604 --Invoice Exchange Date
80605 , p_source_131 IN DATE
80606 --Invoice Exchange Rate
80607 , p_source_132 IN NUMBER
80608 --Invoice Exchange Rate Type
80609 , p_source_133 IN VARCHAR2
80610 --Prepayment Application Recipient Invoice Type
80611 , p_source_148 IN VARCHAR2
80612 , p_source_148_meaning IN VARCHAR2
80613 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
80614 , p_source_149 IN NUMBER
80615 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
80616 , p_source_150 IN NUMBER
80617 )
80618 IS
80619
80620 l_component_type VARCHAR2(80);
80621 l_component_code VARCHAR2(30);
80622 l_component_type_code VARCHAR2(1);
80623 l_component_appl_id INTEGER;
80624 l_amb_context_code VARCHAR2(30);
80625 l_entity_code VARCHAR2(30);
80626 l_event_class_code VARCHAR2(30);
80627 l_ae_header_id NUMBER;
80628 l_event_type_code VARCHAR2(30);
80629 l_line_definition_code VARCHAR2(30);
80630 l_line_definition_owner_code VARCHAR2(1);
80631 --
80632 -- adr variables
80633 l_segment VARCHAR2(30);
80634 l_ccid NUMBER;
80635 l_adr_transaction_coa_id NUMBER;
80636 l_adr_accounting_coa_id NUMBER;
80637 l_adr_flexfield_segment_code VARCHAR2(30);
80638 l_adr_flex_value_set_id NUMBER;
80639 l_adr_value_type_code VARCHAR2(30);
80640 l_adr_value_combination_id NUMBER;
80641 l_adr_value_segment_code VARCHAR2(30);
80642
80643 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
80644 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
80645 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
80646 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
80647
80648 -- 4262811 Variables ------------------------------------------------------------------------------------------
80649 l_entered_amt_idx NUMBER;
80650 l_accted_amt_idx NUMBER;
80651 l_acc_rev_flag VARCHAR2(1);
80652 l_accrual_line_num NUMBER;
80653 l_tmp_amt NUMBER;
80654 l_acc_rev_natural_side_code VARCHAR2(1);
80655
80656 l_num_entries NUMBER;
80657 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
80658 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
80659 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
80660 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
80661 l_recog_line_1 NUMBER;
80662 l_recog_line_2 NUMBER;
80663
80664 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
80665 l_bflow_applied_to_amt NUMBER; -- 5132302
80666 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
80667
80668 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80669
80670 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
80671 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
80672
80673 ---------------------------------------------------------------------------------------------------------------
80674
80675
80676 --
80677 -- bulk performance
80678 --
80679 l_balance_type_code VARCHAR2(1);
80680 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
80684 -- Upgrade strategy
80681 l_log_module VARCHAR2(240);
80682
80683 --
80685 --
80686 l_actual_upg_option VARCHAR2(1);
80687 l_enc_upg_option VARCHAR2(1);
80688
80689 --
80690 BEGIN
80691 --
80692 IF g_log_enabled THEN
80693 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
80694 END IF;
80695 --
80696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80697
80698 trace
80699 (p_msg => 'BEGIN of AcctLineType_144'
80700 ,p_level => C_LEVEL_PROCEDURE
80701 ,p_module => l_log_module);
80702
80703 END IF;
80704 --
80705 l_component_type := 'AMB_JLT';
80706 l_component_code := 'AP_RET_CASH_PAY_XRATE';
80707 l_component_type_code := 'S';
80708 l_component_appl_id := 200;
80709 l_amb_context_code := 'DEFAULT';
80710 l_entity_code := 'AP_INVOICES';
80711 l_event_class_code := 'PREPAYMENT APPLICATIONS';
80712 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
80713 l_line_definition_owner_code := 'S';
80714 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
80715 --
80716 l_balance_type_code := 'A';
80717 l_segment := NULL;
80718 l_ccid := NULL;
80719 l_adr_transaction_coa_id := NULL;
80720 l_adr_accounting_coa_id := NULL;
80721 l_adr_flexfield_segment_code := NULL;
80722 l_adr_flex_value_set_id := NULL;
80723 l_adr_value_type_code := NULL;
80724 l_adr_value_combination_id := NULL;
80725 l_adr_value_segment_code := NULL;
80726
80727 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
80728 l_bflow_class_code := ''; -- 4219869 Business Flow
80729 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
80730 l_budgetary_control_flag := 'N';
80731
80732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
80733 l_bflow_applied_to_amt := NULL; -- 5132302
80734 l_entered_amt_idx := NULL; -- 4262811
80735 l_accted_amt_idx := NULL; -- 4262811
80736 l_acc_rev_flag := NULL; -- 4262811
80737 l_accrual_line_num := NULL; -- 4262811
80738 l_tmp_amt := NULL; -- 4262811
80739 --
80740
80741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80742 l_balance_type_code <> 'B' THEN
80743 IF NVL(p_source_50,'
80744 ') <> 'CLEAR_CLEAR' AND
80745 NVL(p_source_79,'
80746 ') = 'RETAINAGE' AND
80747 NVL(p_source_148,'
80748 ') <> 'RETAINAGE RELEASE' AND
80749 (NVL(p_source_78,'
80750 ') = 'PREPAY APPL' OR
80751 NVL(p_source_78,'
80752 ') = 'PREPAY APPL NONREC TAX' OR
80753 NVL(p_source_78,'
80754 ') = 'PREPAY APPL REC TAX')
80755 THEN
80756
80757 --
80758 XLA_AE_LINES_PKG.SetNewLine;
80759
80760 p_balance_type_code := l_balance_type_code;
80761 -- set the flag so later we will know whether the gain loss line needs to be created
80762
80763 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80764 p_actual_flag :='A';
80765 END IF;
80766
80767 --
80768 -- bulk performance
80769 --
80770 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80771 p_header_num => 0); -- 4262811
80772 --
80773 -- set accounting line options
80774 --
80775 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80776 p_natural_side_code => 'C'
80777 , p_gain_or_loss_flag => 'N'
80778 , p_gl_transfer_mode_code => 'S'
80779 , p_acct_entry_type_code => 'A'
80780 , p_switch_side_flag => 'Y'
80781 , p_merge_duplicate_code => 'A'
80782 );
80783 --
80784 l_acc_rev_natural_side_code := 'D'; -- 4262811
80785 --
80786 --
80787 -- set accounting line type info
80788 --
80789 xla_ae_lines_pkg.SetAcctLineType
80790 (p_component_type => l_component_type
80791 ,p_event_type_code => l_event_type_code
80792 ,p_line_definition_owner_code => l_line_definition_owner_code
80793 ,p_line_definition_code => l_line_definition_code
80794 ,p_accounting_line_code => l_component_code
80795 ,p_accounting_line_type_code => l_component_type_code
80796 ,p_accounting_line_appl_id => l_component_appl_id
80797 ,p_amb_context_code => l_amb_context_code
80798 ,p_entity_code => l_entity_code
80799 ,p_event_class_code => l_event_class_code);
80800 --
80801 -- set accounting class
80802 --
80803 xla_ae_lines_pkg.SetAcctClass(
80804 p_accounting_class_code => 'RETAINAGE'
80805 , p_ae_header_id => l_ae_header_id
80806 );
80807
80808 --
80809 -- set rounding class
80810 --
80811 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80812 'RETAINAGE';
80813
80814 --
80815 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80816 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80820 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80817 --
80818 -- bulk performance
80819 --
80821
80822 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80823 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80824
80825 -- 4955764
80826 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80827 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80828
80829 -- 4458381 Public Sector Enh
80830
80831 --
80832 -- set accounting attributes for the line type
80833 --
80834 l_entered_amt_idx := 25;
80835 l_accted_amt_idx := 30;
80836 l_bflow_applied_to_amt_idx := NULL; -- 5132302
80837 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80838 l_rec_acct_attrs.array_char_value(1) := p_source_52;
80839 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80840 l_rec_acct_attrs.array_num_value(2) :=
80841 xla_ae_sources_pkg.GetSystemSourceNum(
80842 p_source_code => 'XLA_EVENT_APPL_ID'
80843 , p_source_type_code => 'Y'
80844 , p_source_application_id => 602
80845 );
80846 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80847 l_rec_acct_attrs.array_char_value(3) := p_source_60;
80848 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80849 l_rec_acct_attrs.array_char_value(4) :=
80850 xla_ae_sources_pkg.GetSystemSourceChar(
80851 p_source_code => 'XLA_ENTITY_CODE'
80852 , p_source_type_code => 'Y'
80853 , p_source_application_id => 602
80854 );
80855 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80856 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
80857 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80858 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
80859 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
80860 l_rec_acct_attrs.array_num_value(7) := p_source_54;
80861 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80862 l_rec_acct_attrs.array_char_value(8) := p_source_73;
80863 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
80864 l_rec_acct_attrs.array_char_value(9) := p_source_74;
80865 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
80866 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_149);
80867 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80868 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_150);
80869 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
80870 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
80871 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
80872 l_rec_acct_attrs.array_char_value(13) := p_source_60;
80873 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
80874 l_rec_acct_attrs.array_char_value(14) := p_source_88;
80875 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
80876 l_rec_acct_attrs.array_num_value(15) := p_source_89;
80877 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
80878 l_rec_acct_attrs.array_num_value(16) := p_source_90;
80879 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
80880 l_rec_acct_attrs.array_char_value(17) := p_source_91;
80881 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
80882 l_rec_acct_attrs.array_num_value(18) := p_source_92;
80883 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
80884 l_rec_acct_attrs.array_char_value(19) := p_source_93;
80885 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
80886 l_rec_acct_attrs.array_num_value(20) := p_source_94;
80887 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
80888 l_rec_acct_attrs.array_num_value(21) := p_source_95;
80889 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
80890 l_rec_acct_attrs.array_char_value(22) := p_source_91;
80891 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
80892 l_rec_acct_attrs.array_num_value(23) := p_source_96;
80893 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80894 l_rec_acct_attrs.array_char_value(24) := p_source_97;
80895 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80896 l_rec_acct_attrs.array_num_value(25) := p_source_98;
80897 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80898 l_rec_acct_attrs.array_char_value(26) := p_source_91;
80899 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80900 l_rec_acct_attrs.array_date_value(27) := p_source_131;
80901 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80902 l_rec_acct_attrs.array_num_value(28) := p_source_132;
80903 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80904 l_rec_acct_attrs.array_char_value(29) := p_source_133;
80905 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80906 l_rec_acct_attrs.array_num_value(30) := p_source_110;
80907 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80908 l_rec_acct_attrs.array_date_value(31) := p_source_101;
80909 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80910 l_rec_acct_attrs.array_char_value(32) := p_source_102;
80914 l_rec_acct_attrs.array_char_value(34) := p_source_64;
80911 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80912 l_rec_acct_attrs.array_date_value(33) := p_source_103;
80913 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80915 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80916 l_rec_acct_attrs.array_num_value(35) := p_source_104;
80917 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80918 l_rec_acct_attrs.array_num_value(36) := p_source_105;
80919 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80920 l_rec_acct_attrs.array_char_value(37) := p_source_67;
80921 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80922 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
80923 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80924 l_rec_acct_attrs.array_char_value(39) := p_source_60;
80925 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80926 l_rec_acct_attrs.array_num_value(40) := p_source_69;
80927 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80928 l_rec_acct_attrs.array_num_value(41) := p_source_77;
80929 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80930 l_rec_acct_attrs.array_num_value(42) := p_source_70;
80931 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80932 l_rec_acct_attrs.array_num_value(43) := p_source_107;
80933 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80934 l_rec_acct_attrs.array_num_value(44) := p_source_108;
80935
80936 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80937 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80938
80939 ---------------------------------------------------------------------------------------------------------------
80940 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80941 ---------------------------------------------------------------------------------------------------------------
80942 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80943
80944 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80945 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80946
80947 IF xla_accounting_cache_pkg.GetValueChar
80948 (p_source_code => 'LEDGER_CATEGORY_CODE'
80949 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80950 AND l_bflow_method_code = 'PRIOR_ENTRY'
80951 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80952 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80953 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80954 )
80955 THEN
80956 xla_ae_lines_pkg.BflowUpgEntry
80957 (p_business_method_code => l_bflow_method_code
80958 ,p_business_class_code => l_bflow_class_code
80959 ,p_balance_type => l_balance_type_code);
80960 ELSE
80961 NULL;
80962 -- No business flow processing for business flow method of NONE.
80963 END IF;
80964
80965 --
80966 -- call analytical criteria
80967 --
80968
80969 --
80970 -- call description
80971 --
80972 -- No description or it is inherited.
80973 --
80974 -- call ADRs
80975 -- Bug 4922099
80976 --
80977 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80978 (NVL(l_actual_upg_option, 'N') = 'O') OR
80979 (NVL(l_enc_upg_option, 'N') = 'O')
80980 )
80981 THEN
80982 NULL;
80983 --
80984 --
80985
80986 l_ccid := AcctDerRule_36(
80987 p_application_id => p_application_id
80988 , p_ae_header_id => l_ae_header_id
80989 , p_source_16 => p_source_16
80990 , p_source_16_meaning => p_source_16_meaning
80991 , p_source_29 => p_source_29
80992 , p_source_35 => p_source_35
80993 , x_transaction_coa_id => l_adr_transaction_coa_id
80994 , x_accounting_coa_id => l_adr_accounting_coa_id
80995 , x_value_type_code => l_adr_value_type_code
80996 , p_side => 'NA'
80997 );
80998
80999 xla_ae_lines_pkg.set_ccid(
81000 p_code_combination_id => l_ccid
81001 , p_value_type_code => l_adr_value_type_code
81002 , p_transaction_coa_id => l_adr_transaction_coa_id
81003 , p_accounting_coa_id => l_adr_accounting_coa_id
81004 , p_adr_code => 'AP_RETAINAGE'
81005 , p_adr_type_code => 'S'
81006 , p_component_type => l_component_type
81007 , p_component_code => l_component_code
81008 , p_component_type_code => l_component_type_code
81009 , p_component_appl_id => l_component_appl_id
81010 , p_amb_context_code => l_amb_context_code
81011 , p_side => 'NA'
81012 );
81013
81014
81015 l_segment := AcctDerRule_14(
81016 p_application_id => p_application_id
81017 , p_ae_header_id => l_ae_header_id
81018 , p_source_34 => p_source_34
81019 , x_transaction_coa_id => l_adr_transaction_coa_id
81020 , x_accounting_coa_id => l_adr_accounting_coa_id
81024 , x_value_combination_id => l_adr_value_combination_id
81021 , x_flexfield_segment_code => l_adr_flexfield_segment_code
81022 , x_flex_value_set_id => l_adr_flex_value_set_id
81023 , x_value_type_code => l_adr_value_type_code
81025 , x_value_segment_code => l_adr_value_segment_code
81026 , p_side => 'NA'
81027 , p_override_seg_flag => 'Y'
81028 );
81029
81030 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
81031
81032 xla_ae_lines_pkg.set_segment(
81033 p_to_segment_code => 'GL_ACCOUNT'
81034 , p_segment_value => l_segment
81035 , p_from_segment_code => l_adr_value_segment_code
81036 , p_from_combination_id => l_adr_value_combination_id
81037 , p_value_type_code => l_adr_value_type_code
81038 , p_transaction_coa_id => l_adr_transaction_coa_id
81039 , p_accounting_coa_id => l_adr_accounting_coa_id
81040 , p_flexfield_segment_code => l_adr_flexfield_segment_code
81041 , p_flex_value_set_id => l_adr_flex_value_set_id
81042 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
81043 , p_adr_type_code => 'S'
81044 , p_component_type => l_component_type
81045 , p_component_code => l_component_code
81046 , p_component_type_code => l_component_type_code
81047 , p_component_appl_id => l_component_appl_id
81048 , p_amb_context_code => l_amb_context_code
81049 , p_entity_code => 'AP_INVOICES'
81050 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
81051 , p_side => 'NA'
81052 );
81053
81054 END IF;
81055
81056 l_segment := AcctDerRule_18(
81057 p_application_id => p_application_id
81058 , p_ae_header_id => l_ae_header_id
81059 , p_source_16 => p_source_16
81060 , p_source_16_meaning => p_source_16_meaning
81061 , p_source_35 => p_source_35
81062 , x_transaction_coa_id => l_adr_transaction_coa_id
81063 , x_accounting_coa_id => l_adr_accounting_coa_id
81064 , x_flexfield_segment_code => l_adr_flexfield_segment_code
81065 , x_flex_value_set_id => l_adr_flex_value_set_id
81066 , x_value_type_code => l_adr_value_type_code
81067 , x_value_combination_id => l_adr_value_combination_id
81068 , x_value_segment_code => l_adr_value_segment_code
81069 , p_side => 'NA'
81070 , p_override_seg_flag => 'Y'
81071 );
81072
81073 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
81074
81075 xla_ae_lines_pkg.set_segment(
81076 p_to_segment_code => 'GL_BALANCING'
81077 , p_segment_value => l_segment
81078 , p_from_segment_code => l_adr_value_segment_code
81079 , p_from_combination_id => l_adr_value_combination_id
81080 , p_value_type_code => l_adr_value_type_code
81081 , p_transaction_coa_id => l_adr_transaction_coa_id
81082 , p_accounting_coa_id => l_adr_accounting_coa_id
81083 , p_flexfield_segment_code => l_adr_flexfield_segment_code
81084 , p_flex_value_set_id => l_adr_flex_value_set_id
81085 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
81086 , p_adr_type_code => 'S'
81087 , p_component_type => l_component_type
81088 , p_component_code => l_component_code
81089 , p_component_type_code => l_component_type_code
81090 , p_component_appl_id => l_component_appl_id
81091 , p_amb_context_code => l_amb_context_code
81092 , p_entity_code => 'AP_INVOICES'
81093 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
81094 , p_side => 'NA'
81095 );
81096
81097 END IF;
81098
81099 --
81100 --
81101 END IF;
81102 --
81103 -- Bug 4922099
81104 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81105 (NVL(l_enc_upg_option, 'N') = 'O')
81106 ) AND
81107 (l_bflow_method_code = 'PRIOR_ENTRY')
81108 )
81109 THEN
81110 IF
81111 --
81112 1 = 2
81113 --
81114 THEN
81115 xla_accounting_err_pkg.build_message
81116 (p_appli_s_name => 'XLA'
81117 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81118 ,p_token_1 => 'LINE_NUMBER'
81119 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
81120 ,p_token_2 => 'LINE_TYPE_NAME'
81121 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
81122 l_component_type
81123 ,l_component_code
81124 ,l_component_type_code
81125 ,l_component_appl_id
81126 ,l_amb_context_code
81127 ,l_entity_code
81131 ,p_value_3 => xla_lookups_pkg.get_meaning(
81128 ,l_event_class_code
81129 )
81130 ,p_token_3 => 'OWNER'
81132 p_lookup_type => 'XLA_OWNER_TYPE'
81133 ,p_lookup_code => l_component_type_code
81134 )
81135 ,p_token_4 => 'PRODUCT_NAME'
81136 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81137 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81138 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81139 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81140 ,p_ae_header_id => NULL
81141 );
81142
81143 IF (C_LEVEL_ERROR>= g_log_level) THEN
81144 trace
81145 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81146 ,p_level => C_LEVEL_ERROR
81147 ,p_module => l_log_module);
81148 END IF;
81149 END IF;
81150 END IF;
81151 --
81152 --
81153 ------------------------------------------------------------------------------------------------
81154 -- 4219869 Business Flow
81155 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81156 -- Prior Entry. Currently, the following code is always generated.
81157 ------------------------------------------------------------------------------------------------
81158 XLA_AE_LINES_PKG.ValidateCurrentLine;
81159
81160 ------------------------------------------------------------------------------------
81161 -- 4219869 Business Flow
81162 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81163 ------------------------------------------------------------------------------------
81164 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81165
81166 ----------------------------------------------------------------------------------
81167 -- 4219869 Business Flow
81168 -- Update journal entry status -- Need to generate this within IF <condition>
81169 ----------------------------------------------------------------------------------
81170 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81171 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81172 ,p_balance_type_code => l_balance_type_code
81173 );
81174
81175 -------------------------------------------------------------------------------------------
81176 -- 4262811 - Generate the Accrual Reversal lines
81177 -------------------------------------------------------------------------------------------
81178 BEGIN
81179 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81180 (g_array_event(p_event_id).array_value_num('header_index'));
81181 IF l_acc_rev_flag IS NULL THEN
81182 l_acc_rev_flag := 'N';
81183 END IF;
81184 EXCEPTION
81185 WHEN OTHERS THEN
81186 l_acc_rev_flag := 'N';
81187 END;
81188 --
81189 IF (l_acc_rev_flag = 'Y') THEN
81190
81191 -- 4645092 ------------------------------------------------------------------------------
81192 -- To allow MPA report to determine if it should generate report process
81193 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81194 ------------------------------------------------------------------------------------------
81195
81196 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81197 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81198 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
81199 -- call ADRs
81200 -- Bug 4922099
81201 --
81202 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81203 (NVL(l_actual_upg_option, 'N') = 'O') OR
81204 (NVL(l_enc_upg_option, 'N') = 'O')
81205 )
81206 THEN
81207 NULL;
81208 --
81209 --
81210
81211 l_ccid := AcctDerRule_36(
81212 p_application_id => p_application_id
81213 , p_ae_header_id => l_ae_header_id
81214 , p_source_16 => p_source_16
81215 , p_source_16_meaning => p_source_16_meaning
81216 , p_source_29 => p_source_29
81217 , p_source_35 => p_source_35
81218 , x_transaction_coa_id => l_adr_transaction_coa_id
81219 , x_accounting_coa_id => l_adr_accounting_coa_id
81220 , x_value_type_code => l_adr_value_type_code
81221 , p_side => 'NA'
81222 );
81223
81224 xla_ae_lines_pkg.set_ccid(
81225 p_code_combination_id => l_ccid
81226 , p_value_type_code => l_adr_value_type_code
81227 , p_transaction_coa_id => l_adr_transaction_coa_id
81228 , p_accounting_coa_id => l_adr_accounting_coa_id
81229 , p_adr_code => 'AP_RETAINAGE'
81230 , p_adr_type_code => 'S'
81231 , p_component_type => l_component_type
81235 , p_amb_context_code => l_amb_context_code
81232 , p_component_code => l_component_code
81233 , p_component_type_code => l_component_type_code
81234 , p_component_appl_id => l_component_appl_id
81236 , p_side => 'NA'
81237 );
81238
81239
81240 l_segment := AcctDerRule_14(
81241 p_application_id => p_application_id
81242 , p_ae_header_id => l_ae_header_id
81243 , p_source_34 => p_source_34
81244 , x_transaction_coa_id => l_adr_transaction_coa_id
81245 , x_accounting_coa_id => l_adr_accounting_coa_id
81246 , x_flexfield_segment_code => l_adr_flexfield_segment_code
81247 , x_flex_value_set_id => l_adr_flex_value_set_id
81248 , x_value_type_code => l_adr_value_type_code
81249 , x_value_combination_id => l_adr_value_combination_id
81250 , x_value_segment_code => l_adr_value_segment_code
81251 , p_side => 'NA'
81252 , p_override_seg_flag => 'Y'
81253 );
81254
81255 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
81256
81257 xla_ae_lines_pkg.set_segment(
81258 p_to_segment_code => 'GL_ACCOUNT'
81259 , p_segment_value => l_segment
81260 , p_from_segment_code => l_adr_value_segment_code
81261 , p_from_combination_id => l_adr_value_combination_id
81262 , p_value_type_code => l_adr_value_type_code
81263 , p_transaction_coa_id => l_adr_transaction_coa_id
81264 , p_accounting_coa_id => l_adr_accounting_coa_id
81265 , p_flexfield_segment_code => l_adr_flexfield_segment_code
81266 , p_flex_value_set_id => l_adr_flex_value_set_id
81267 , p_adr_code => 'AP_RETAIN_NAT_ACCT_SEG'
81268 , p_adr_type_code => 'S'
81269 , p_component_type => l_component_type
81270 , p_component_code => l_component_code
81271 , p_component_type_code => l_component_type_code
81272 , p_component_appl_id => l_component_appl_id
81273 , p_amb_context_code => l_amb_context_code
81274 , p_entity_code => 'AP_INVOICES'
81275 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
81276 , p_side => 'NA'
81277 );
81278
81279 END IF;
81280
81281 l_segment := AcctDerRule_18(
81282 p_application_id => p_application_id
81283 , p_ae_header_id => l_ae_header_id
81284 , p_source_16 => p_source_16
81285 , p_source_16_meaning => p_source_16_meaning
81286 , p_source_35 => p_source_35
81287 , x_transaction_coa_id => l_adr_transaction_coa_id
81288 , x_accounting_coa_id => l_adr_accounting_coa_id
81289 , x_flexfield_segment_code => l_adr_flexfield_segment_code
81290 , x_flex_value_set_id => l_adr_flex_value_set_id
81291 , x_value_type_code => l_adr_value_type_code
81292 , x_value_combination_id => l_adr_value_combination_id
81293 , x_value_segment_code => l_adr_value_segment_code
81294 , p_side => 'NA'
81295 , p_override_seg_flag => 'Y'
81296 );
81297
81298 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
81299
81300 xla_ae_lines_pkg.set_segment(
81301 p_to_segment_code => 'GL_BALANCING'
81302 , p_segment_value => l_segment
81303 , p_from_segment_code => l_adr_value_segment_code
81304 , p_from_combination_id => l_adr_value_combination_id
81305 , p_value_type_code => l_adr_value_type_code
81306 , p_transaction_coa_id => l_adr_transaction_coa_id
81307 , p_accounting_coa_id => l_adr_accounting_coa_id
81308 , p_flexfield_segment_code => l_adr_flexfield_segment_code
81309 , p_flex_value_set_id => l_adr_flex_value_set_id
81310 , p_adr_code => 'AP_RETAIN_RELATED_BAL_SEG'
81311 , p_adr_type_code => 'S'
81312 , p_component_type => l_component_type
81313 , p_component_code => l_component_code
81314 , p_component_type_code => l_component_type_code
81315 , p_component_appl_id => l_component_appl_id
81316 , p_amb_context_code => l_amb_context_code
81317 , p_entity_code => 'AP_INVOICES'
81318 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
81319 , p_side => 'NA'
81320 );
81321
81322 END IF;
81323
81324 --
81325 --
81326 END IF;
81327
81328 --
81329 -- Update the line information that should be overwritten
81330 --
81331 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81332 p_header_num => 1);
81333 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
81334
81335 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81336
81337 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
81338 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81339 END IF;
81340
81344 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81341 --
81342 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81343 --
81345 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
81346 ELSE
81347 ---------------------------------------------------------------------------------------------------
81348 -- 4262811a Switch Sign
81349 ---------------------------------------------------------------------------------------------------
81350 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
81351 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81352 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81353 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81354 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81355 -- 5132302
81356 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81357 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81358
81359 END IF;
81360
81361 -- 4955764
81362 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81363 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81364
81365
81366 XLA_AE_LINES_PKG.ValidateCurrentLine;
81367 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81368
81369 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81370 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81371 ,p_balance_type_code => l_balance_type_code);
81372
81373 END IF;
81374
81375 -----------------------------------------------------------------------------------------
81376 -- 4262811 Multiperiod Accounting
81377 -----------------------------------------------------------------------------------------
81378 -- No MPA option is assigned.
81379
81380
81381 END IF;
81382 END IF;
81383 --
81384
81385 --
81386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81387 trace
81388 (p_msg => 'END of AcctLineType_144'
81389 ,p_level => C_LEVEL_PROCEDURE
81390 ,p_module => l_log_module);
81391 END IF;
81392 --
81393 EXCEPTION
81394 WHEN xla_exceptions_pkg.application_exception THEN
81395 RAISE;
81396 WHEN OTHERS THEN
81397 xla_exceptions_pkg.raise_message
81398 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_144');
81399 END AcctLineType_144;
81400 --
81401
81402 ---------------------------------------
81403 --
81404 -- PRIVATE FUNCTION
81405 -- AcctLineType_145
81406 --
81407 ---------------------------------------
81408 PROCEDURE AcctLineType_145 (
81409 p_application_id IN NUMBER
81410 ,p_event_id IN NUMBER
81411 ,p_calculate_acctd_flag IN VARCHAR2
81412 ,p_calculate_g_l_flag IN VARCHAR2
81413 ,p_actual_flag IN OUT VARCHAR2
81414 ,p_balance_type_code OUT VARCHAR2
81415 ,p_gain_or_loss_ref OUT VARCHAR2
81416
81417 --When to Account for Payment Option
81418 , p_source_50 IN VARCHAR2
81419 --Accounting Reversal Indicator
81420 , p_source_52 IN VARCHAR2
81421 --Business Flow Accounts Payable Application Identifier
81422 , p_source_54 IN NUMBER
81423 --Distribution Link Type
81424 , p_source_60 IN VARCHAR2
81425 --Override Accounted Amount Indicator
81426 , p_source_64 IN VARCHAR2
81427 , p_source_64_meaning IN VARCHAR2
81428 --Third Party Type
81429 , p_source_67 IN VARCHAR2
81430 --Invoice Distribution Tax Line Identifier
81431 , p_source_69 IN NUMBER
81432 --Invoice Distribution Summary Tax Line Identifier
81433 , p_source_70 IN NUMBER
81434 --Business Flow Invoice Distribution Type
81435 , p_source_73 IN VARCHAR2
81436 --Business Flow Invoice Entity Code
81437 , p_source_74 IN VARCHAR2
81438 --Invoice Distribution Tax Distribution Identifier from Tax
81439 , p_source_77 IN NUMBER
81440 --Prepayment Distribution Type
81441 , p_source_78 IN VARCHAR2
81442 --Recipient Invoice Distribution Type
81443 , p_source_79 IN VARCHAR2
81444 , p_source_79_meaning IN VARCHAR2
81445 --Prepayment Application Distribution Identifier
81446 , p_source_82 IN NUMBER
81447 --Invoice Identifier
81448 , p_source_83 IN NUMBER
81449 --Upgrade Encumbrance Credit Account Class
81450 , p_source_88 IN VARCHAR2
81451 --Payables Encumbrance Upgrade Credit Account
81452 , p_source_89 IN NUMBER
81453 --Payables Encumbrance Upgrade Credit Amount
81454 , p_source_90 IN NUMBER
81455 --Invoice Currency Code
81456 , p_source_91 IN VARCHAR2
81457 --Payables Encumbrance Upgrade Credit Base Amount
81458 , p_source_92 IN NUMBER
81459 --Upgrade Encumbrance Debit Account Class
81460 , p_source_93 IN VARCHAR2
81461 --Payables Encumbrance Upgrade Debit Account
81465 --Payables Encumbrance Upgrade Debit Base Amount
81462 , p_source_94 IN NUMBER
81463 --Payables Encumbrance Upgrade Debit Amount
81464 , p_source_95 IN NUMBER
81466 , p_source_96 IN NUMBER
81467 --Payables Encumbrance Upgrade Option
81468 , p_source_97 IN VARCHAR2
81469 --Prepayment Distribution Amount
81470 , p_source_98 IN NUMBER
81471 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
81472 , p_source_100 IN NUMBER
81473 --Deferred Accounting End Date
81474 , p_source_101 IN DATE
81475 --Deferred Accounting Option
81476 , p_source_102 IN VARCHAR2
81477 --Deferred Accounting Start Date
81478 , p_source_103 IN DATE
81479 --Identifier of the Prepayment Application Reversed
81480 , p_source_106 IN NUMBER
81481 --Payables Upgrade Credit Encumbrance Type Identifier
81482 , p_source_107 IN NUMBER
81483 --Payables Upgrade Debit Encumbrance Type Identifier
81484 , p_source_108 IN NUMBER
81485 --Prepayment Application Recipient Invoice Type
81486 , p_source_148 IN VARCHAR2
81487 , p_source_148_meaning IN VARCHAR2
81488 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
81489 , p_source_149 IN NUMBER
81490 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
81491 , p_source_150 IN NUMBER
81492 )
81493 IS
81494
81495 l_component_type VARCHAR2(80);
81496 l_component_code VARCHAR2(30);
81497 l_component_type_code VARCHAR2(1);
81498 l_component_appl_id INTEGER;
81499 l_amb_context_code VARCHAR2(30);
81500 l_entity_code VARCHAR2(30);
81501 l_event_class_code VARCHAR2(30);
81502 l_ae_header_id NUMBER;
81503 l_event_type_code VARCHAR2(30);
81504 l_line_definition_code VARCHAR2(30);
81505 l_line_definition_owner_code VARCHAR2(1);
81506 --
81507 -- adr variables
81508 l_segment VARCHAR2(30);
81509 l_ccid NUMBER;
81510 l_adr_transaction_coa_id NUMBER;
81511 l_adr_accounting_coa_id NUMBER;
81512 l_adr_flexfield_segment_code VARCHAR2(30);
81513 l_adr_flex_value_set_id NUMBER;
81514 l_adr_value_type_code VARCHAR2(30);
81515 l_adr_value_combination_id NUMBER;
81516 l_adr_value_segment_code VARCHAR2(30);
81517
81518 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
81519 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
81520 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
81521 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
81522
81523 -- 4262811 Variables ------------------------------------------------------------------------------------------
81524 l_entered_amt_idx NUMBER;
81525 l_accted_amt_idx NUMBER;
81526 l_acc_rev_flag VARCHAR2(1);
81527 l_accrual_line_num NUMBER;
81528 l_tmp_amt NUMBER;
81529 l_acc_rev_natural_side_code VARCHAR2(1);
81530
81531 l_num_entries NUMBER;
81532 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
81533 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
81534 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
81535 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
81536 l_recog_line_1 NUMBER;
81537 l_recog_line_2 NUMBER;
81538
81539 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
81540 l_bflow_applied_to_amt NUMBER; -- 5132302
81541 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
81542
81543 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81544
81545 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
81546 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
81547
81548 ---------------------------------------------------------------------------------------------------------------
81549
81550
81551 --
81552 -- bulk performance
81553 --
81554 l_balance_type_code VARCHAR2(1);
81555 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81556 l_log_module VARCHAR2(240);
81557
81558 --
81559 -- Upgrade strategy
81560 --
81561 l_actual_upg_option VARCHAR2(1);
81562 l_enc_upg_option VARCHAR2(1);
81563
81564 --
81565 BEGIN
81566 --
81567 IF g_log_enabled THEN
81568 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
81569 END IF;
81570 --
81571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81572
81573 trace
81574 (p_msg => 'BEGIN of AcctLineType_145'
81575 ,p_level => C_LEVEL_PROCEDURE
81576 ,p_module => l_log_module);
81577
81578 END IF;
81579 --
81580 l_component_type := 'AMB_JLT';
81581 l_component_code := 'AP_RET_REL_CASH_CLR_XRATE';
81582 l_component_type_code := 'S';
81583 l_component_appl_id := 200;
81584 l_amb_context_code := 'DEFAULT';
81585 l_entity_code := 'AP_INVOICES';
81586 l_event_class_code := 'PREPAYMENT APPLICATIONS';
81587 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
81588 l_line_definition_owner_code := 'S';
81592 l_segment := NULL;
81589 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
81590 --
81591 l_balance_type_code := 'A';
81593 l_ccid := NULL;
81594 l_adr_transaction_coa_id := NULL;
81595 l_adr_accounting_coa_id := NULL;
81596 l_adr_flexfield_segment_code := NULL;
81597 l_adr_flex_value_set_id := NULL;
81598 l_adr_value_type_code := NULL;
81599 l_adr_value_combination_id := NULL;
81600 l_adr_value_segment_code := NULL;
81601
81602 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
81603 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
81604 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
81605 l_budgetary_control_flag := 'N';
81606
81607 l_bflow_applied_to_amt_idx := NULL; -- 5132302
81608 l_bflow_applied_to_amt := NULL; -- 5132302
81609 l_entered_amt_idx := NULL; -- 4262811
81610 l_accted_amt_idx := NULL; -- 4262811
81611 l_acc_rev_flag := NULL; -- 4262811
81612 l_accrual_line_num := NULL; -- 4262811
81613 l_tmp_amt := NULL; -- 4262811
81614 --
81615
81616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81617 l_balance_type_code <> 'B' THEN
81618 IF NVL(p_source_50,'
81619 ') = 'CLEAR_CLEAR' AND
81620 NVL(p_source_79,'
81621 ') = 'RETAINAGE' AND
81622 NVL(p_source_148,'
81623 ') = 'RETAINAGE RELEASE' AND
81624 (NVL(p_source_78,'
81625 ') = 'PREPAY APPL' OR
81626 NVL(p_source_78,'
81627 ') = 'PREPAY APPL NONREC TAX' OR
81628 NVL(p_source_78,'
81629 ') = 'PREPAY APPL REC TAX')
81630 THEN
81631
81632 --
81633 XLA_AE_LINES_PKG.SetNewLine;
81634
81635 p_balance_type_code := l_balance_type_code;
81636 -- set the flag so later we will know whether the gain loss line needs to be created
81637
81638 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81639 p_actual_flag :='A';
81640 END IF;
81641
81642 --
81643 -- bulk performance
81644 --
81645 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81646 p_header_num => 0); -- 4262811
81647 --
81648 -- set accounting line options
81649 --
81650 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81651 p_natural_side_code => 'C'
81652 , p_gain_or_loss_flag => 'N'
81653 , p_gl_transfer_mode_code => 'S'
81654 , p_acct_entry_type_code => 'A'
81655 , p_switch_side_flag => 'Y'
81656 , p_merge_duplicate_code => 'A'
81657 );
81658 --
81659 l_acc_rev_natural_side_code := 'D'; -- 4262811
81660 --
81661 --
81662 -- set accounting line type info
81663 --
81664 xla_ae_lines_pkg.SetAcctLineType
81665 (p_component_type => l_component_type
81666 ,p_event_type_code => l_event_type_code
81667 ,p_line_definition_owner_code => l_line_definition_owner_code
81668 ,p_line_definition_code => l_line_definition_code
81669 ,p_accounting_line_code => l_component_code
81670 ,p_accounting_line_type_code => l_component_type_code
81671 ,p_accounting_line_appl_id => l_component_appl_id
81672 ,p_amb_context_code => l_amb_context_code
81673 ,p_entity_code => l_entity_code
81674 ,p_event_class_code => l_event_class_code);
81675 --
81676 -- set accounting class
81677 --
81678 xla_ae_lines_pkg.SetAcctClass(
81679 p_accounting_class_code => 'RETAINAGE'
81680 , p_ae_header_id => l_ae_header_id
81681 );
81682
81683 --
81684 -- set rounding class
81685 --
81686 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81687 'RETAINAGE';
81688
81689 --
81690 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81691 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81692 --
81693 -- bulk performance
81694 --
81695 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81696
81697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81698 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81699
81700 -- 4955764
81701 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81702 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81703
81704 -- 4458381 Public Sector Enh
81705
81706 --
81707 -- set accounting attributes for the line type
81708 --
81709 l_entered_amt_idx := 25;
81710 l_accted_amt_idx := 27;
81711 l_bflow_applied_to_amt_idx := NULL; -- 5132302
81712 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81713 l_rec_acct_attrs.array_char_value(1) := p_source_52;
81714 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
81715 l_rec_acct_attrs.array_num_value(2) :=
81716 xla_ae_sources_pkg.GetSystemSourceNum(
81720 );
81717 p_source_code => 'XLA_EVENT_APPL_ID'
81718 , p_source_type_code => 'Y'
81719 , p_source_application_id => 602
81721 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
81722 l_rec_acct_attrs.array_char_value(3) := p_source_60;
81723 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
81724 l_rec_acct_attrs.array_char_value(4) :=
81725 xla_ae_sources_pkg.GetSystemSourceChar(
81726 p_source_code => 'XLA_ENTITY_CODE'
81727 , p_source_type_code => 'Y'
81728 , p_source_application_id => 602
81729 );
81730 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
81731 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
81732 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
81733 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
81734 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
81735 l_rec_acct_attrs.array_num_value(7) := p_source_54;
81736 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81737 l_rec_acct_attrs.array_char_value(8) := p_source_73;
81738 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
81739 l_rec_acct_attrs.array_char_value(9) := p_source_74;
81740 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
81741 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_149);
81742 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81743 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_150);
81744 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
81745 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
81746 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
81747 l_rec_acct_attrs.array_char_value(13) := p_source_60;
81748 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
81749 l_rec_acct_attrs.array_char_value(14) := p_source_88;
81750 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
81751 l_rec_acct_attrs.array_num_value(15) := p_source_89;
81752 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
81753 l_rec_acct_attrs.array_num_value(16) := p_source_90;
81754 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
81755 l_rec_acct_attrs.array_char_value(17) := p_source_91;
81756 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
81757 l_rec_acct_attrs.array_num_value(18) := p_source_92;
81758 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
81759 l_rec_acct_attrs.array_char_value(19) := p_source_93;
81760 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
81761 l_rec_acct_attrs.array_num_value(20) := p_source_94;
81762 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
81763 l_rec_acct_attrs.array_num_value(21) := p_source_95;
81764 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
81765 l_rec_acct_attrs.array_char_value(22) := p_source_91;
81766 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
81767 l_rec_acct_attrs.array_num_value(23) := p_source_96;
81768 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
81769 l_rec_acct_attrs.array_char_value(24) := p_source_97;
81770 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
81771 l_rec_acct_attrs.array_num_value(25) := p_source_98;
81772 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
81773 l_rec_acct_attrs.array_char_value(26) := p_source_91;
81774 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
81775 l_rec_acct_attrs.array_num_value(27) := p_source_100;
81776 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
81777 l_rec_acct_attrs.array_date_value(28) := p_source_101;
81778 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
81779 l_rec_acct_attrs.array_char_value(29) := p_source_102;
81780 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
81781 l_rec_acct_attrs.array_date_value(30) := p_source_103;
81782 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
81783 l_rec_acct_attrs.array_char_value(31) := p_source_64;
81784 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
81785 l_rec_acct_attrs.array_char_value(32) := p_source_67;
81786 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
81787 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
81788 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
81789 l_rec_acct_attrs.array_char_value(34) := p_source_60;
81790 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
81791 l_rec_acct_attrs.array_num_value(35) := p_source_69;
81792 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
81793 l_rec_acct_attrs.array_num_value(36) := p_source_77;
81794 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
81795 l_rec_acct_attrs.array_num_value(37) := p_source_70;
81796 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
81797 l_rec_acct_attrs.array_num_value(38) := p_source_107;
81798 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
81799 l_rec_acct_attrs.array_num_value(39) := p_source_108;
81800
81801 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81802 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81803
81804 ---------------------------------------------------------------------------------------------------------------
81808
81805 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81806 ---------------------------------------------------------------------------------------------------------------
81807 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81809 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81810 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81811
81812 IF xla_accounting_cache_pkg.GetValueChar
81813 (p_source_code => 'LEDGER_CATEGORY_CODE'
81814 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81815 AND l_bflow_method_code = 'PRIOR_ENTRY'
81816 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81817 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81818 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81819 )
81820 THEN
81821 xla_ae_lines_pkg.BflowUpgEntry
81822 (p_business_method_code => l_bflow_method_code
81823 ,p_business_class_code => l_bflow_class_code
81824 ,p_balance_type => l_balance_type_code);
81825 ELSE
81826 NULL;
81827 XLA_AE_LINES_PKG.business_flow_validation(
81828 p_business_method_code => l_bflow_method_code
81829 ,p_business_class_code => l_bflow_class_code
81830 ,p_inherit_description_flag => l_inherit_desc_flag);
81831 END IF;
81832
81833 --
81834 -- call analytical criteria
81835 --
81836 -- Inherited Analytical Criteria for business flow method of Prior Entry.
81837 --
81838 -- call description
81839 --
81840 -- No description or it is inherited.
81841 --
81842 -- call ADRs
81843 -- Bug 4922099
81844 --
81845 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81846 (NVL(l_actual_upg_option, 'N') = 'O') OR
81847 (NVL(l_enc_upg_option, 'N') = 'O')
81848 )
81849 THEN
81850 NULL;
81851 --
81852 --
81853
81854 --
81855 --
81856 END IF;
81857 --
81858 -- Bug 4922099
81859 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81860 (NVL(l_enc_upg_option, 'N') = 'O')
81861 ) AND
81862 (l_bflow_method_code = 'PRIOR_ENTRY')
81863 )
81864 THEN
81865 IF
81866 --
81867 1 = 1
81868 --
81869 THEN
81870 xla_accounting_err_pkg.build_message
81871 (p_appli_s_name => 'XLA'
81872 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81873 ,p_token_1 => 'LINE_NUMBER'
81874 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
81875 ,p_token_2 => 'LINE_TYPE_NAME'
81876 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
81877 l_component_type
81878 ,l_component_code
81879 ,l_component_type_code
81880 ,l_component_appl_id
81881 ,l_amb_context_code
81882 ,l_entity_code
81883 ,l_event_class_code
81884 )
81885 ,p_token_3 => 'OWNER'
81886 ,p_value_3 => xla_lookups_pkg.get_meaning(
81887 p_lookup_type => 'XLA_OWNER_TYPE'
81888 ,p_lookup_code => l_component_type_code
81889 )
81890 ,p_token_4 => 'PRODUCT_NAME'
81891 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81892 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81893 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81894 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81895 ,p_ae_header_id => NULL
81896 );
81897
81898 IF (C_LEVEL_ERROR>= g_log_level) THEN
81899 trace
81900 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81901 ,p_level => C_LEVEL_ERROR
81902 ,p_module => l_log_module);
81903 END IF;
81904 END IF;
81905 END IF;
81906 --
81907 --
81911 -- Prior Entry. Currently, the following code is always generated.
81908 ------------------------------------------------------------------------------------------------
81909 -- 4219869 Business Flow
81910 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81912 ------------------------------------------------------------------------------------------------
81913 -- No ValidateCurrentLine for business flow method of Prior Entry
81914
81915 ------------------------------------------------------------------------------------
81916 -- 4219869 Business Flow
81917 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81918 ------------------------------------------------------------------------------------
81919 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81920
81921 ----------------------------------------------------------------------------------
81922 -- 4219869 Business Flow
81923 -- Update journal entry status -- Need to generate this within IF <condition>
81924 ----------------------------------------------------------------------------------
81925 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81926 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81927 ,p_balance_type_code => l_balance_type_code
81928 );
81929
81930 -------------------------------------------------------------------------------------------
81931 -- 4262811 - Generate the Accrual Reversal lines
81932 -------------------------------------------------------------------------------------------
81933 BEGIN
81934 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81935 (g_array_event(p_event_id).array_value_num('header_index'));
81936 IF l_acc_rev_flag IS NULL THEN
81937 l_acc_rev_flag := 'N';
81938 END IF;
81939 EXCEPTION
81940 WHEN OTHERS THEN
81941 l_acc_rev_flag := 'N';
81942 END;
81943 --
81944 IF (l_acc_rev_flag = 'Y') THEN
81945
81946 -- 4645092 ------------------------------------------------------------------------------
81947 -- To allow MPA report to determine if it should generate report process
81948 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81949 ------------------------------------------------------------------------------------------
81950
81951 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81952 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81953 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
81954 -- call ADRs
81955 -- Bug 4922099
81956 --
81957 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81958 (NVL(l_actual_upg_option, 'N') = 'O') OR
81959 (NVL(l_enc_upg_option, 'N') = 'O')
81960 )
81961 THEN
81962 NULL;
81963 --
81964 --
81965
81966 --
81967 --
81968 END IF;
81969
81970 --
81971 -- Update the line information that should be overwritten
81972 --
81973 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81974 p_header_num => 1);
81975 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
81976
81977 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81978
81979 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
81980 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81981 END IF;
81982
81983 --
81984 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81985 --
81986 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81987 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
81988 ELSE
81989 ---------------------------------------------------------------------------------------------------
81990 -- 4262811a Switch Sign
81991 ---------------------------------------------------------------------------------------------------
81992 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
81993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81995 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81996 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81997 -- 5132302
81998 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81999 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82000
82001 END IF;
82002
82003 -- 4955764
82004 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82005 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82006
82007
82008 XLA_AE_LINES_PKG.ValidateCurrentLine;
82009 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82010
82014
82011 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82012 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82013 ,p_balance_type_code => l_balance_type_code);
82015 END IF;
82016
82017 -----------------------------------------------------------------------------------------
82018 -- 4262811 Multiperiod Accounting
82019 -----------------------------------------------------------------------------------------
82020 -- No MPA option is assigned.
82021
82022
82023 END IF;
82024 END IF;
82025 --
82026
82027 --
82028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82029 trace
82030 (p_msg => 'END of AcctLineType_145'
82031 ,p_level => C_LEVEL_PROCEDURE
82032 ,p_module => l_log_module);
82033 END IF;
82034 --
82035 EXCEPTION
82036 WHEN xla_exceptions_pkg.application_exception THEN
82037 RAISE;
82038 WHEN OTHERS THEN
82039 xla_exceptions_pkg.raise_message
82040 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_145');
82041 END AcctLineType_145;
82042 --
82043
82044 ---------------------------------------
82045 --
82046 -- PRIVATE FUNCTION
82047 -- AcctLineType_146
82048 --
82049 ---------------------------------------
82050 PROCEDURE AcctLineType_146 (
82051 p_application_id IN NUMBER
82052 ,p_event_id IN NUMBER
82053 ,p_calculate_acctd_flag IN VARCHAR2
82054 ,p_calculate_g_l_flag IN VARCHAR2
82055 ,p_actual_flag IN OUT VARCHAR2
82056 ,p_balance_type_code OUT VARCHAR2
82057 ,p_gain_or_loss_ref OUT VARCHAR2
82058
82059 --When to Account for Payment Option
82060 , p_source_50 IN VARCHAR2
82061 --Accounting Reversal Indicator
82062 , p_source_52 IN VARCHAR2
82063 --Business Flow Accounts Payable Application Identifier
82064 , p_source_54 IN NUMBER
82065 --Distribution Link Type
82066 , p_source_60 IN VARCHAR2
82067 --Override Accounted Amount Indicator
82068 , p_source_64 IN VARCHAR2
82069 , p_source_64_meaning IN VARCHAR2
82070 --Third Party Type
82071 , p_source_67 IN VARCHAR2
82072 --Invoice Distribution Tax Line Identifier
82073 , p_source_69 IN NUMBER
82074 --Invoice Distribution Summary Tax Line Identifier
82075 , p_source_70 IN NUMBER
82076 --Business Flow Invoice Distribution Type
82077 , p_source_73 IN VARCHAR2
82078 --Business Flow Invoice Entity Code
82079 , p_source_74 IN VARCHAR2
82080 --Invoice Distribution Tax Distribution Identifier from Tax
82081 , p_source_77 IN NUMBER
82082 --Prepayment Distribution Type
82083 , p_source_78 IN VARCHAR2
82084 --Recipient Invoice Distribution Type
82085 , p_source_79 IN VARCHAR2
82086 , p_source_79_meaning IN VARCHAR2
82087 --Prepayment Application Distribution Identifier
82088 , p_source_82 IN NUMBER
82089 --Invoice Identifier
82090 , p_source_83 IN NUMBER
82091 --Upgrade Encumbrance Credit Account Class
82092 , p_source_88 IN VARCHAR2
82093 --Payables Encumbrance Upgrade Credit Account
82094 , p_source_89 IN NUMBER
82095 --Payables Encumbrance Upgrade Credit Amount
82096 , p_source_90 IN NUMBER
82097 --Invoice Currency Code
82098 , p_source_91 IN VARCHAR2
82099 --Payables Encumbrance Upgrade Credit Base Amount
82100 , p_source_92 IN NUMBER
82101 --Upgrade Encumbrance Debit Account Class
82102 , p_source_93 IN VARCHAR2
82103 --Payables Encumbrance Upgrade Debit Account
82104 , p_source_94 IN NUMBER
82105 --Payables Encumbrance Upgrade Debit Amount
82106 , p_source_95 IN NUMBER
82107 --Payables Encumbrance Upgrade Debit Base Amount
82108 , p_source_96 IN NUMBER
82109 --Payables Encumbrance Upgrade Option
82110 , p_source_97 IN VARCHAR2
82111 --Prepayment Distribution Amount
82112 , p_source_98 IN NUMBER
82113 --Deferred Accounting End Date
82114 , p_source_101 IN DATE
82115 --Deferred Accounting Option
82116 , p_source_102 IN VARCHAR2
82117 --Deferred Accounting Start Date
82118 , p_source_103 IN DATE
82119 --Identifier of the Prepayment Application Reversed
82120 , p_source_106 IN NUMBER
82121 --Payables Upgrade Credit Encumbrance Type Identifier
82122 , p_source_107 IN NUMBER
82123 --Payables Upgrade Debit Encumbrance Type Identifier
82124 , p_source_108 IN NUMBER
82125 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
82126 , p_source_110 IN NUMBER
82127 --Prepayment Application Recipient Invoice Type
82128 , p_source_148 IN VARCHAR2
82129 , p_source_148_meaning IN VARCHAR2
82130 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
82131 , p_source_149 IN NUMBER
82132 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
82133 , p_source_150 IN NUMBER
82134 )
82135 IS
82136
82137 l_component_type VARCHAR2(80);
82138 l_component_code VARCHAR2(30);
82139 l_component_type_code VARCHAR2(1);
82140 l_component_appl_id INTEGER;
82141 l_amb_context_code VARCHAR2(30);
82142 l_entity_code VARCHAR2(30);
82143 l_event_class_code VARCHAR2(30);
82147 l_line_definition_owner_code VARCHAR2(1);
82144 l_ae_header_id NUMBER;
82145 l_event_type_code VARCHAR2(30);
82146 l_line_definition_code VARCHAR2(30);
82148 --
82149 -- adr variables
82150 l_segment VARCHAR2(30);
82151 l_ccid NUMBER;
82152 l_adr_transaction_coa_id NUMBER;
82153 l_adr_accounting_coa_id NUMBER;
82154 l_adr_flexfield_segment_code VARCHAR2(30);
82155 l_adr_flex_value_set_id NUMBER;
82156 l_adr_value_type_code VARCHAR2(30);
82157 l_adr_value_combination_id NUMBER;
82158 l_adr_value_segment_code VARCHAR2(30);
82159
82160 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
82161 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
82162 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
82163 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
82164
82165 -- 4262811 Variables ------------------------------------------------------------------------------------------
82166 l_entered_amt_idx NUMBER;
82167 l_accted_amt_idx NUMBER;
82168 l_acc_rev_flag VARCHAR2(1);
82169 l_accrual_line_num NUMBER;
82170 l_tmp_amt NUMBER;
82171 l_acc_rev_natural_side_code VARCHAR2(1);
82172
82173 l_num_entries NUMBER;
82174 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
82175 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
82176 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
82177 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
82178 l_recog_line_1 NUMBER;
82179 l_recog_line_2 NUMBER;
82180
82181 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
82182 l_bflow_applied_to_amt NUMBER; -- 5132302
82183 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
82184
82185 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82186
82187 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
82188 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
82189
82190 ---------------------------------------------------------------------------------------------------------------
82191
82192
82193 --
82194 -- bulk performance
82195 --
82196 l_balance_type_code VARCHAR2(1);
82197 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
82198 l_log_module VARCHAR2(240);
82199
82200 --
82201 -- Upgrade strategy
82202 --
82203 l_actual_upg_option VARCHAR2(1);
82204 l_enc_upg_option VARCHAR2(1);
82205
82206 --
82207 BEGIN
82208 --
82209 IF g_log_enabled THEN
82210 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
82211 END IF;
82212 --
82213 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82214
82215 trace
82216 (p_msg => 'BEGIN of AcctLineType_146'
82217 ,p_level => C_LEVEL_PROCEDURE
82218 ,p_module => l_log_module);
82219
82220 END IF;
82221 --
82222 l_component_type := 'AMB_JLT';
82223 l_component_code := 'AP_RET_REL_CASH_PAY_XRATE';
82224 l_component_type_code := 'S';
82225 l_component_appl_id := 200;
82226 l_amb_context_code := 'DEFAULT';
82227 l_entity_code := 'AP_INVOICES';
82228 l_event_class_code := 'PREPAYMENT APPLICATIONS';
82229 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
82230 l_line_definition_owner_code := 'S';
82231 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
82232 --
82233 l_balance_type_code := 'A';
82234 l_segment := NULL;
82235 l_ccid := NULL;
82236 l_adr_transaction_coa_id := NULL;
82237 l_adr_accounting_coa_id := NULL;
82238 l_adr_flexfield_segment_code := NULL;
82239 l_adr_flex_value_set_id := NULL;
82240 l_adr_value_type_code := NULL;
82241 l_adr_value_combination_id := NULL;
82242 l_adr_value_segment_code := NULL;
82243
82244 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
82245 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
82246 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
82247 l_budgetary_control_flag := 'N';
82248
82249 l_bflow_applied_to_amt_idx := NULL; -- 5132302
82250 l_bflow_applied_to_amt := NULL; -- 5132302
82251 l_entered_amt_idx := NULL; -- 4262811
82252 l_accted_amt_idx := NULL; -- 4262811
82253 l_acc_rev_flag := NULL; -- 4262811
82254 l_accrual_line_num := NULL; -- 4262811
82255 l_tmp_amt := NULL; -- 4262811
82256 --
82257
82258 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82259 l_balance_type_code <> 'B' THEN
82260 IF NVL(p_source_50,'
82261 ') <> 'CLEAR_CLEAR' AND
82262 NVL(p_source_79,'
82263 ') = 'RETAINAGE' AND
82264 NVL(p_source_148,'
82265 ') = 'RETAINAGE RELEASE' AND
82266 (NVL(p_source_78,'
82267 ') = 'PREPAY APPL' OR
82268 NVL(p_source_78,'
82269 ') = 'PREPAY APPL NONREC TAX' OR
82270 NVL(p_source_78,'
82271 ') = 'PREPAY APPL REC TAX')
82272 THEN
82273
82277 p_balance_type_code := l_balance_type_code;
82274 --
82275 XLA_AE_LINES_PKG.SetNewLine;
82276
82278 -- set the flag so later we will know whether the gain loss line needs to be created
82279
82280 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82281 p_actual_flag :='A';
82282 END IF;
82283
82284 --
82285 -- bulk performance
82286 --
82287 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82288 p_header_num => 0); -- 4262811
82289 --
82290 -- set accounting line options
82291 --
82292 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82293 p_natural_side_code => 'C'
82294 , p_gain_or_loss_flag => 'N'
82295 , p_gl_transfer_mode_code => 'S'
82296 , p_acct_entry_type_code => 'A'
82297 , p_switch_side_flag => 'Y'
82298 , p_merge_duplicate_code => 'A'
82299 );
82300 --
82301 l_acc_rev_natural_side_code := 'D'; -- 4262811
82302 --
82303 --
82304 -- set accounting line type info
82305 --
82306 xla_ae_lines_pkg.SetAcctLineType
82307 (p_component_type => l_component_type
82308 ,p_event_type_code => l_event_type_code
82309 ,p_line_definition_owner_code => l_line_definition_owner_code
82310 ,p_line_definition_code => l_line_definition_code
82311 ,p_accounting_line_code => l_component_code
82312 ,p_accounting_line_type_code => l_component_type_code
82313 ,p_accounting_line_appl_id => l_component_appl_id
82314 ,p_amb_context_code => l_amb_context_code
82315 ,p_entity_code => l_entity_code
82316 ,p_event_class_code => l_event_class_code);
82317 --
82318 -- set accounting class
82319 --
82320 xla_ae_lines_pkg.SetAcctClass(
82321 p_accounting_class_code => 'RETAINAGE'
82322 , p_ae_header_id => l_ae_header_id
82323 );
82324
82325 --
82326 -- set rounding class
82327 --
82328 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82329 'RETAINAGE';
82330
82331 --
82332 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82333 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82334 --
82335 -- bulk performance
82336 --
82337 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82338
82339 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82340 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82341
82342 -- 4955764
82343 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82344 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82345
82346 -- 4458381 Public Sector Enh
82347
82348 --
82349 -- set accounting attributes for the line type
82350 --
82351 l_entered_amt_idx := 25;
82352 l_accted_amt_idx := 27;
82353 l_bflow_applied_to_amt_idx := NULL; -- 5132302
82354 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82355 l_rec_acct_attrs.array_char_value(1) := p_source_52;
82356 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82357 l_rec_acct_attrs.array_num_value(2) :=
82358 xla_ae_sources_pkg.GetSystemSourceNum(
82359 p_source_code => 'XLA_EVENT_APPL_ID'
82360 , p_source_type_code => 'Y'
82361 , p_source_application_id => 602
82362 );
82363 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82364 l_rec_acct_attrs.array_char_value(3) := p_source_60;
82365 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82366 l_rec_acct_attrs.array_char_value(4) :=
82367 xla_ae_sources_pkg.GetSystemSourceChar(
82368 p_source_code => 'XLA_ENTITY_CODE'
82369 , p_source_type_code => 'Y'
82370 , p_source_application_id => 602
82371 );
82372 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
82373 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
82374 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
82375 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
82376 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
82377 l_rec_acct_attrs.array_num_value(7) := p_source_54;
82378 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82379 l_rec_acct_attrs.array_char_value(8) := p_source_73;
82380 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
82381 l_rec_acct_attrs.array_char_value(9) := p_source_74;
82382 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
82383 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_149);
82384 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82385 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_150);
82386 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
82387 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
82388 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
82389 l_rec_acct_attrs.array_char_value(13) := p_source_60;
82393 l_rec_acct_attrs.array_num_value(15) := p_source_89;
82390 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
82391 l_rec_acct_attrs.array_char_value(14) := p_source_88;
82392 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
82394 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
82395 l_rec_acct_attrs.array_num_value(16) := p_source_90;
82396 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
82397 l_rec_acct_attrs.array_char_value(17) := p_source_91;
82398 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
82399 l_rec_acct_attrs.array_num_value(18) := p_source_92;
82400 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
82401 l_rec_acct_attrs.array_char_value(19) := p_source_93;
82402 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
82403 l_rec_acct_attrs.array_num_value(20) := p_source_94;
82404 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
82405 l_rec_acct_attrs.array_num_value(21) := p_source_95;
82406 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
82407 l_rec_acct_attrs.array_char_value(22) := p_source_91;
82408 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
82409 l_rec_acct_attrs.array_num_value(23) := p_source_96;
82410 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
82411 l_rec_acct_attrs.array_char_value(24) := p_source_97;
82412 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
82413 l_rec_acct_attrs.array_num_value(25) := p_source_98;
82414 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
82415 l_rec_acct_attrs.array_char_value(26) := p_source_91;
82416 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
82417 l_rec_acct_attrs.array_num_value(27) := p_source_110;
82418 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
82419 l_rec_acct_attrs.array_date_value(28) := p_source_101;
82420 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
82421 l_rec_acct_attrs.array_char_value(29) := p_source_102;
82422 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
82423 l_rec_acct_attrs.array_date_value(30) := p_source_103;
82424 l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
82425 l_rec_acct_attrs.array_char_value(31) := p_source_64;
82426 l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
82427 l_rec_acct_attrs.array_char_value(32) := p_source_67;
82428 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
82429 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_106);
82430 l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
82431 l_rec_acct_attrs.array_char_value(34) := p_source_60;
82432 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
82433 l_rec_acct_attrs.array_num_value(35) := p_source_69;
82434 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
82435 l_rec_acct_attrs.array_num_value(36) := p_source_77;
82436 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
82437 l_rec_acct_attrs.array_num_value(37) := p_source_70;
82438 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
82439 l_rec_acct_attrs.array_num_value(38) := p_source_107;
82440 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
82441 l_rec_acct_attrs.array_num_value(39) := p_source_108;
82442
82443 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82444 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82445
82446 ---------------------------------------------------------------------------------------------------------------
82447 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82448 ---------------------------------------------------------------------------------------------------------------
82449 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82450
82451 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82452 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82453
82454 IF xla_accounting_cache_pkg.GetValueChar
82455 (p_source_code => 'LEDGER_CATEGORY_CODE'
82456 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82457 AND l_bflow_method_code = 'PRIOR_ENTRY'
82458 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82459 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82460 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82461 )
82462 THEN
82463 xla_ae_lines_pkg.BflowUpgEntry
82464 (p_business_method_code => l_bflow_method_code
82465 ,p_business_class_code => l_bflow_class_code
82466 ,p_balance_type => l_balance_type_code);
82467 ELSE
82468 NULL;
82469 XLA_AE_LINES_PKG.business_flow_validation(
82470 p_business_method_code => l_bflow_method_code
82471 ,p_business_class_code => l_bflow_class_code
82472 ,p_inherit_description_flag => l_inherit_desc_flag);
82473 END IF;
82474
82475 --
82476 -- call analytical criteria
82477 --
82481 --
82478 -- Inherited Analytical Criteria for business flow method of Prior Entry.
82479 --
82480 -- call description
82482 -- No description or it is inherited.
82483 --
82484 -- call ADRs
82485 -- Bug 4922099
82486 --
82487 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82488 (NVL(l_actual_upg_option, 'N') = 'O') OR
82489 (NVL(l_enc_upg_option, 'N') = 'O')
82490 )
82491 THEN
82492 NULL;
82493 --
82494 --
82495
82496 --
82497 --
82498 END IF;
82499 --
82500 -- Bug 4922099
82501 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82502 (NVL(l_enc_upg_option, 'N') = 'O')
82503 ) AND
82504 (l_bflow_method_code = 'PRIOR_ENTRY')
82505 )
82506 THEN
82507 IF
82508 --
82509 1 = 1
82510 --
82511 THEN
82512 xla_accounting_err_pkg.build_message
82513 (p_appli_s_name => 'XLA'
82514 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82515 ,p_token_1 => 'LINE_NUMBER'
82516 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
82517 ,p_token_2 => 'LINE_TYPE_NAME'
82518 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
82519 l_component_type
82520 ,l_component_code
82521 ,l_component_type_code
82522 ,l_component_appl_id
82523 ,l_amb_context_code
82524 ,l_entity_code
82525 ,l_event_class_code
82526 )
82527 ,p_token_3 => 'OWNER'
82528 ,p_value_3 => xla_lookups_pkg.get_meaning(
82529 p_lookup_type => 'XLA_OWNER_TYPE'
82530 ,p_lookup_code => l_component_type_code
82531 )
82532 ,p_token_4 => 'PRODUCT_NAME'
82533 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82534 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82535 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82536 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82537 ,p_ae_header_id => NULL
82538 );
82539
82540 IF (C_LEVEL_ERROR>= g_log_level) THEN
82541 trace
82542 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82543 ,p_level => C_LEVEL_ERROR
82544 ,p_module => l_log_module);
82545 END IF;
82546 END IF;
82547 END IF;
82548 --
82549 --
82550 ------------------------------------------------------------------------------------------------
82551 -- 4219869 Business Flow
82552 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82553 -- Prior Entry. Currently, the following code is always generated.
82554 ------------------------------------------------------------------------------------------------
82555 -- No ValidateCurrentLine for business flow method of Prior Entry
82556
82557 ------------------------------------------------------------------------------------
82558 -- 4219869 Business Flow
82559 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82560 ------------------------------------------------------------------------------------
82561 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82562
82563 ----------------------------------------------------------------------------------
82564 -- 4219869 Business Flow
82565 -- Update journal entry status -- Need to generate this within IF <condition>
82566 ----------------------------------------------------------------------------------
82567 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82568 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82569 ,p_balance_type_code => l_balance_type_code
82570 );
82571
82572 -------------------------------------------------------------------------------------------
82573 -- 4262811 - Generate the Accrual Reversal lines
82574 -------------------------------------------------------------------------------------------
82575 BEGIN
82576 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82580 END IF;
82577 (g_array_event(p_event_id).array_value_num('header_index'));
82578 IF l_acc_rev_flag IS NULL THEN
82579 l_acc_rev_flag := 'N';
82581 EXCEPTION
82582 WHEN OTHERS THEN
82583 l_acc_rev_flag := 'N';
82584 END;
82585 --
82586 IF (l_acc_rev_flag = 'Y') THEN
82587
82588 -- 4645092 ------------------------------------------------------------------------------
82589 -- To allow MPA report to determine if it should generate report process
82590 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82591 ------------------------------------------------------------------------------------------
82592
82593 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82594 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82595 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
82596 -- call ADRs
82597 -- Bug 4922099
82598 --
82599 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82600 (NVL(l_actual_upg_option, 'N') = 'O') OR
82601 (NVL(l_enc_upg_option, 'N') = 'O')
82602 )
82603 THEN
82604 NULL;
82605 --
82606 --
82607
82608 --
82609 --
82610 END IF;
82611
82612 --
82613 -- Update the line information that should be overwritten
82614 --
82615 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82616 p_header_num => 1);
82617 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
82618
82619 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82620
82621 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
82622 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82623 END IF;
82624
82625 --
82626 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82627 --
82628 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82629 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
82630 ELSE
82631 ---------------------------------------------------------------------------------------------------
82632 -- 4262811a Switch Sign
82633 ---------------------------------------------------------------------------------------------------
82634 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
82635 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82636 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82637 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82638 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82639 -- 5132302
82640 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82641 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82642
82643 END IF;
82644
82645 -- 4955764
82646 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82647 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82648
82649
82650 XLA_AE_LINES_PKG.ValidateCurrentLine;
82651 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82652
82653 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82654 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82655 ,p_balance_type_code => l_balance_type_code);
82656
82657 END IF;
82658
82659 -----------------------------------------------------------------------------------------
82660 -- 4262811 Multiperiod Accounting
82661 -----------------------------------------------------------------------------------------
82662 -- No MPA option is assigned.
82663
82664
82665 END IF;
82666 END IF;
82667 --
82668
82669 --
82670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82671 trace
82672 (p_msg => 'END of AcctLineType_146'
82673 ,p_level => C_LEVEL_PROCEDURE
82674 ,p_module => l_log_module);
82675 END IF;
82676 --
82677 EXCEPTION
82678 WHEN xla_exceptions_pkg.application_exception THEN
82679 RAISE;
82680 WHEN OTHERS THEN
82681 xla_exceptions_pkg.raise_message
82682 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_146');
82683 END AcctLineType_146;
82684 --
82685
82686 ---------------------------------------
82687 --
82688 -- PRIVATE FUNCTION
82689 -- AcctLineType_147
82690 --
82691 ---------------------------------------
82692 PROCEDURE AcctLineType_147 (
82693 p_application_id IN NUMBER
82694 ,p_event_id IN NUMBER
82695 ,p_calculate_acctd_flag IN VARCHAR2
82696 ,p_calculate_g_l_flag IN VARCHAR2
82697 ,p_actual_flag IN OUT VARCHAR2
82698 ,p_balance_type_code OUT VARCHAR2
82699 ,p_gain_or_loss_ref OUT VARCHAR2
82700
82701 --Payment Currency Code
82705 --Invoice Distribution Type
82702 , p_source_12 IN VARCHAR2
82703 --Payment Distribution (Cleared Rate) Ledger Amount
82704 , p_source_22 IN NUMBER
82706 , p_source_32 IN VARCHAR2
82707 , p_source_32_meaning IN VARCHAR2
82708 --When to Account for Payment Option
82709 , p_source_50 IN VARCHAR2
82710 --Accounting Reversal Indicator
82711 , p_source_52 IN VARCHAR2
82712 --Payment Distribution Amount
82713 , p_source_53 IN NUMBER
82714 --Business Flow Accounts Payable Application Identifier
82715 , p_source_54 IN NUMBER
82716 --Business Flow Payment Distribution Type
82717 , p_source_55 IN VARCHAR2
82718 --Business Flow Payment Entity Code
82719 , p_source_56 IN VARCHAR2
82720 --Payment Distribution Identifier
82721 , p_source_59 IN NUMBER
82722 --Distribution Link Type
82723 , p_source_60 IN VARCHAR2
82724 --Override Accounted Amount Indicator
82725 , p_source_64 IN VARCHAR2
82726 , p_source_64_meaning IN VARCHAR2
82727 --Third Party Type
82728 , p_source_67 IN VARCHAR2
82729 --Payment Distribution Reversed Identifier
82730 , p_source_68 IN NUMBER
82731 --Invoice Distribution Tax Line Identifier
82732 , p_source_69 IN NUMBER
82733 --Invoice Distribution Summary Tax Line Identifier
82734 , p_source_70 IN NUMBER
82735 --Invoice Type Paid
82736 , p_source_112 IN VARCHAR2
82737 , p_source_112_meaning IN VARCHAR2
82738 --Business Flow Retained Invoice Distribution Associated with Payment Clearing
82739 , p_source_151 IN NUMBER
82740 --Business Flow Retained Invoice Associated with Payment Clearing
82741 , p_source_152 IN NUMBER
82742 )
82743 IS
82744
82745 l_component_type VARCHAR2(80);
82746 l_component_code VARCHAR2(30);
82747 l_component_type_code VARCHAR2(1);
82748 l_component_appl_id INTEGER;
82749 l_amb_context_code VARCHAR2(30);
82750 l_entity_code VARCHAR2(30);
82751 l_event_class_code VARCHAR2(30);
82752 l_ae_header_id NUMBER;
82753 l_event_type_code VARCHAR2(30);
82754 l_line_definition_code VARCHAR2(30);
82755 l_line_definition_owner_code VARCHAR2(1);
82756 --
82757 -- adr variables
82758 l_segment VARCHAR2(30);
82759 l_ccid NUMBER;
82760 l_adr_transaction_coa_id NUMBER;
82761 l_adr_accounting_coa_id NUMBER;
82762 l_adr_flexfield_segment_code VARCHAR2(30);
82763 l_adr_flex_value_set_id NUMBER;
82764 l_adr_value_type_code VARCHAR2(30);
82765 l_adr_value_combination_id NUMBER;
82766 l_adr_value_segment_code VARCHAR2(30);
82767
82768 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
82769 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
82770 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
82771 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
82772
82773 -- 4262811 Variables ------------------------------------------------------------------------------------------
82774 l_entered_amt_idx NUMBER;
82775 l_accted_amt_idx NUMBER;
82776 l_acc_rev_flag VARCHAR2(1);
82777 l_accrual_line_num NUMBER;
82778 l_tmp_amt NUMBER;
82779 l_acc_rev_natural_side_code VARCHAR2(1);
82780
82781 l_num_entries NUMBER;
82782 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
82783 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
82784 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
82785 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
82786 l_recog_line_1 NUMBER;
82787 l_recog_line_2 NUMBER;
82788
82789 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
82790 l_bflow_applied_to_amt NUMBER; -- 5132302
82791 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
82792
82793 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82794
82795 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
82796 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
82797
82798 ---------------------------------------------------------------------------------------------------------------
82799
82800
82801 --
82802 -- bulk performance
82803 --
82804 l_balance_type_code VARCHAR2(1);
82805 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
82806 l_log_module VARCHAR2(240);
82807
82808 --
82809 -- Upgrade strategy
82810 --
82811 l_actual_upg_option VARCHAR2(1);
82812 l_enc_upg_option VARCHAR2(1);
82813
82814 --
82815 BEGIN
82816 --
82817 IF g_log_enabled THEN
82818 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
82819 END IF;
82820 --
82821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82822
82823 trace
82824 (p_msg => 'BEGIN of AcctLineType_147'
82825 ,p_level => C_LEVEL_PROCEDURE
82826 ,p_module => l_log_module);
82827
82828 END IF;
82829 --
82830 l_component_type := 'AMB_JLT';
82831 l_component_code := 'AP_RET_REL_CLR_CASH';
82832 l_component_type_code := 'S';
82836 l_event_class_code := 'RECONCILED PAYMENTS';
82833 l_component_appl_id := 200;
82834 l_amb_context_code := 'DEFAULT';
82835 l_entity_code := 'AP_PAYMENTS';
82837 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
82838 l_line_definition_owner_code := 'S';
82839 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
82840 --
82841 l_balance_type_code := 'A';
82842 l_segment := NULL;
82843 l_ccid := NULL;
82844 l_adr_transaction_coa_id := NULL;
82845 l_adr_accounting_coa_id := NULL;
82846 l_adr_flexfield_segment_code := NULL;
82847 l_adr_flex_value_set_id := NULL;
82848 l_adr_value_type_code := NULL;
82849 l_adr_value_combination_id := NULL;
82850 l_adr_value_segment_code := NULL;
82851
82852 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
82853 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
82854 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
82855 l_budgetary_control_flag := 'N';
82856
82857 l_bflow_applied_to_amt_idx := NULL; -- 5132302
82858 l_bflow_applied_to_amt := NULL; -- 5132302
82859 l_entered_amt_idx := NULL; -- 4262811
82860 l_accted_amt_idx := NULL; -- 4262811
82861 l_acc_rev_flag := NULL; -- 4262811
82862 l_accrual_line_num := NULL; -- 4262811
82863 l_tmp_amt := NULL; -- 4262811
82864 --
82865
82866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82867 l_balance_type_code <> 'B' THEN
82868 IF NVL(p_source_50,'
82869 ') = 'CLEAR_CLEAR' AND
82870 NVL(p_source_112,'
82871 ') = 'RETAINAGE RELEASE' AND
82872 NVL(p_source_32,'
82873 ') = 'RETAINAGE'
82874 THEN
82875
82876 --
82877 XLA_AE_LINES_PKG.SetNewLine;
82878
82879 p_balance_type_code := l_balance_type_code;
82880 -- set the flag so later we will know whether the gain loss line needs to be created
82881
82882 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82883 p_actual_flag :='A';
82884 END IF;
82885
82886 --
82887 -- bulk performance
82888 --
82889 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82890 p_header_num => 0); -- 4262811
82891 --
82892 -- set accounting line options
82893 --
82894 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82895 p_natural_side_code => 'D'
82896 , p_gain_or_loss_flag => 'N'
82897 , p_gl_transfer_mode_code => 'S'
82898 , p_acct_entry_type_code => 'A'
82899 , p_switch_side_flag => 'Y'
82900 , p_merge_duplicate_code => 'A'
82901 );
82902 --
82903 l_acc_rev_natural_side_code := 'C'; -- 4262811
82904 --
82905 --
82906 -- set accounting line type info
82907 --
82908 xla_ae_lines_pkg.SetAcctLineType
82909 (p_component_type => l_component_type
82910 ,p_event_type_code => l_event_type_code
82911 ,p_line_definition_owner_code => l_line_definition_owner_code
82912 ,p_line_definition_code => l_line_definition_code
82913 ,p_accounting_line_code => l_component_code
82914 ,p_accounting_line_type_code => l_component_type_code
82915 ,p_accounting_line_appl_id => l_component_appl_id
82916 ,p_amb_context_code => l_amb_context_code
82917 ,p_entity_code => l_entity_code
82918 ,p_event_class_code => l_event_class_code);
82919 --
82920 -- set accounting class
82921 --
82922 xla_ae_lines_pkg.SetAcctClass(
82923 p_accounting_class_code => 'RETAINAGE'
82924 , p_ae_header_id => l_ae_header_id
82925 );
82926
82927 --
82928 -- set rounding class
82929 --
82930 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82931 'RETAINAGE';
82932
82933 --
82934 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82935 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82936 --
82937 -- bulk performance
82938 --
82939 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82940
82941 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82942 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82943
82944 -- 4955764
82945 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82946 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82947
82948 -- 4458381 Public Sector Enh
82949
82950 --
82951 -- set accounting attributes for the line type
82952 --
82953 l_entered_amt_idx := 10;
82954 l_accted_amt_idx := 12;
82955 l_bflow_applied_to_amt_idx := 2; -- 5132302
82956 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82957 l_rec_acct_attrs.array_char_value(1) := p_source_52;
82958 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82959 l_rec_acct_attrs.array_num_value(2) := p_source_53;
82963 l_rec_acct_attrs.array_char_value(4) := p_source_55;
82960 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82961 l_rec_acct_attrs.array_num_value(3) := p_source_54;
82962 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82964 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82965 l_rec_acct_attrs.array_char_value(5) := p_source_56;
82966 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82967 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_151);
82968 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82969 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_152);
82970 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82971 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
82972 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82973 l_rec_acct_attrs.array_char_value(9) := p_source_60;
82974 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82975 l_rec_acct_attrs.array_num_value(10) := p_source_53;
82976 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82977 l_rec_acct_attrs.array_char_value(11) := p_source_12;
82978 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
82979 l_rec_acct_attrs.array_num_value(12) := p_source_22;
82980 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
82981 l_rec_acct_attrs.array_char_value(13) := p_source_64;
82982 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
82983 l_rec_acct_attrs.array_char_value(14) := p_source_67;
82984 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
82985 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
82986 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
82987 l_rec_acct_attrs.array_char_value(16) := p_source_60;
82988 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
82989 l_rec_acct_attrs.array_num_value(17) := p_source_69;
82990 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
82991 l_rec_acct_attrs.array_num_value(18) := p_source_69;
82992 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
82993 l_rec_acct_attrs.array_num_value(19) := p_source_70;
82994
82995 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82996 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82997
82998 ---------------------------------------------------------------------------------------------------------------
82999 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83000 ---------------------------------------------------------------------------------------------------------------
83001 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83002
83003 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83004 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83005
83006 IF xla_accounting_cache_pkg.GetValueChar
83007 (p_source_code => 'LEDGER_CATEGORY_CODE'
83008 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83009 AND l_bflow_method_code = 'PRIOR_ENTRY'
83010 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83011 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83012 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83013 )
83014 THEN
83015 xla_ae_lines_pkg.BflowUpgEntry
83016 (p_business_method_code => l_bflow_method_code
83017 ,p_business_class_code => l_bflow_class_code
83018 ,p_balance_type => l_balance_type_code);
83019 ELSE
83020 NULL;
83021 XLA_AE_LINES_PKG.business_flow_validation(
83022 p_business_method_code => l_bflow_method_code
83023 ,p_business_class_code => l_bflow_class_code
83024 ,p_inherit_description_flag => l_inherit_desc_flag);
83025 END IF;
83026
83027 --
83028 -- call analytical criteria
83029 --
83030 -- Inherited Analytical Criteria for business flow method of Prior Entry.
83031 --
83032 -- call description
83033 --
83034 -- No description or it is inherited.
83035 --
83036 -- call ADRs
83037 -- Bug 4922099
83038 --
83039 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83040 (NVL(l_actual_upg_option, 'N') = 'O') OR
83041 (NVL(l_enc_upg_option, 'N') = 'O')
83042 )
83043 THEN
83044 NULL;
83045 --
83046 --
83047
83048 --
83049 --
83050 END IF;
83051 --
83052 -- Bug 4922099
83053 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83054 (NVL(l_enc_upg_option, 'N') = 'O')
83055 ) AND
83056 (l_bflow_method_code = 'PRIOR_ENTRY')
83057 )
83058 THEN
83059 IF
83060 --
83061 1 = 1
83062 --
83063 THEN
83064 xla_accounting_err_pkg.build_message
83065 (p_appli_s_name => 'XLA'
83066 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83067 ,p_token_1 => 'LINE_NUMBER'
83071 l_component_type
83068 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
83069 ,p_token_2 => 'LINE_TYPE_NAME'
83070 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
83072 ,l_component_code
83073 ,l_component_type_code
83074 ,l_component_appl_id
83075 ,l_amb_context_code
83076 ,l_entity_code
83077 ,l_event_class_code
83078 )
83079 ,p_token_3 => 'OWNER'
83080 ,p_value_3 => xla_lookups_pkg.get_meaning(
83081 p_lookup_type => 'XLA_OWNER_TYPE'
83082 ,p_lookup_code => l_component_type_code
83083 )
83084 ,p_token_4 => 'PRODUCT_NAME'
83085 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83086 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83087 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83088 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83089 ,p_ae_header_id => NULL
83090 );
83091
83092 IF (C_LEVEL_ERROR>= g_log_level) THEN
83093 trace
83094 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83095 ,p_level => C_LEVEL_ERROR
83096 ,p_module => l_log_module);
83097 END IF;
83098 END IF;
83099 END IF;
83100 --
83101 --
83102 ------------------------------------------------------------------------------------------------
83103 -- 4219869 Business Flow
83104 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83105 -- Prior Entry. Currently, the following code is always generated.
83106 ------------------------------------------------------------------------------------------------
83107 -- No ValidateCurrentLine for business flow method of Prior Entry
83108
83109 ------------------------------------------------------------------------------------
83110 -- 4219869 Business Flow
83111 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83112 ------------------------------------------------------------------------------------
83113 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83114
83115 ----------------------------------------------------------------------------------
83116 -- 4219869 Business Flow
83117 -- Update journal entry status -- Need to generate this within IF <condition>
83118 ----------------------------------------------------------------------------------
83119 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83120 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83121 ,p_balance_type_code => l_balance_type_code
83122 );
83123
83124 -------------------------------------------------------------------------------------------
83125 -- 4262811 - Generate the Accrual Reversal lines
83126 -------------------------------------------------------------------------------------------
83127 BEGIN
83128 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83129 (g_array_event(p_event_id).array_value_num('header_index'));
83130 IF l_acc_rev_flag IS NULL THEN
83131 l_acc_rev_flag := 'N';
83132 END IF;
83133 EXCEPTION
83134 WHEN OTHERS THEN
83135 l_acc_rev_flag := 'N';
83136 END;
83137 --
83138 IF (l_acc_rev_flag = 'Y') THEN
83139
83140 -- 4645092 ------------------------------------------------------------------------------
83141 -- To allow MPA report to determine if it should generate report process
83142 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83143 ------------------------------------------------------------------------------------------
83144
83145 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83146 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83147 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
83148 -- call ADRs
83149 -- Bug 4922099
83150 --
83151 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83152 (NVL(l_actual_upg_option, 'N') = 'O') OR
83153 (NVL(l_enc_upg_option, 'N') = 'O')
83154 )
83155 THEN
83156 NULL;
83157 --
83158 --
83159
83160 --
83161 --
83162 END IF;
83166 --
83163
83164 --
83165 -- Update the line information that should be overwritten
83167 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83168 p_header_num => 1);
83169 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
83170
83171 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83172
83173 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
83174 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83175 END IF;
83176
83177 --
83178 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83179 --
83180 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83181 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
83182 ELSE
83183 ---------------------------------------------------------------------------------------------------
83184 -- 4262811a Switch Sign
83185 ---------------------------------------------------------------------------------------------------
83186 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
83187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83189 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83191 -- 5132302
83192 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83194
83195 END IF;
83196
83197 -- 4955764
83198 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83199 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83200
83201
83202 XLA_AE_LINES_PKG.ValidateCurrentLine;
83203 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83204
83205 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83206 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83207 ,p_balance_type_code => l_balance_type_code);
83208
83209 END IF;
83210
83211 -----------------------------------------------------------------------------------------
83212 -- 4262811 Multiperiod Accounting
83213 -----------------------------------------------------------------------------------------
83214 -- No MPA option is assigned.
83215
83216
83217 END IF;
83218 END IF;
83219 --
83220
83221 --
83222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83223 trace
83224 (p_msg => 'END of AcctLineType_147'
83225 ,p_level => C_LEVEL_PROCEDURE
83226 ,p_module => l_log_module);
83227 END IF;
83228 --
83229 EXCEPTION
83230 WHEN xla_exceptions_pkg.application_exception THEN
83231 RAISE;
83232 WHEN OTHERS THEN
83233 xla_exceptions_pkg.raise_message
83234 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_147');
83235 END AcctLineType_147;
83236 --
83237
83238 ---------------------------------------
83239 --
83240 -- PRIVATE FUNCTION
83241 -- AcctLineType_148
83242 --
83243 ---------------------------------------
83244 PROCEDURE AcctLineType_148 (
83245 p_application_id IN NUMBER
83246 ,p_event_id IN NUMBER
83247 ,p_calculate_acctd_flag IN VARCHAR2
83248 ,p_calculate_g_l_flag IN VARCHAR2
83249 ,p_actual_flag IN OUT VARCHAR2
83250 ,p_balance_type_code OUT VARCHAR2
83251 ,p_gain_or_loss_ref OUT VARCHAR2
83252
83253 --Payment Currency Code
83254 , p_source_12 IN VARCHAR2
83255 --Payment Distribution (Payment Rate) Ledger Amount
83256 , p_source_21 IN NUMBER
83257 --Invoice Distribution Type
83258 , p_source_32 IN VARCHAR2
83259 , p_source_32_meaning IN VARCHAR2
83260 --When to Account for Payment Option
83261 , p_source_50 IN VARCHAR2
83262 --Accounting Reversal Indicator
83263 , p_source_52 IN VARCHAR2
83264 --Payment Distribution Amount
83265 , p_source_53 IN NUMBER
83266 --Business Flow Accounts Payable Application Identifier
83267 , p_source_54 IN NUMBER
83268 --Payment Distribution Identifier
83269 , p_source_59 IN NUMBER
83270 --Distribution Link Type
83271 , p_source_60 IN VARCHAR2
83272 --Override Accounted Amount Indicator
83273 , p_source_64 IN VARCHAR2
83274 , p_source_64_meaning IN VARCHAR2
83275 --Third Party Type
83276 , p_source_67 IN VARCHAR2
83277 --Payment Distribution Reversed Identifier
83278 , p_source_68 IN NUMBER
83279 --Invoice Distribution Tax Line Identifier
83280 , p_source_69 IN NUMBER
83281 --Invoice Distribution Summary Tax Line Identifier
83282 , p_source_70 IN NUMBER
83286 , p_source_73 IN VARCHAR2
83283 --Invoice Distribution Amount of the Payment Distribution
83284 , p_source_72 IN NUMBER
83285 --Business Flow Invoice Distribution Type
83287 --Business Flow Invoice Entity Code
83288 , p_source_74 IN VARCHAR2
83289 --Invoice Distribution Tax Distribution Identifier from Tax
83290 , p_source_77 IN NUMBER
83291 --Invoice Type Paid
83292 , p_source_112 IN VARCHAR2
83293 , p_source_112_meaning IN VARCHAR2
83294 --Business Flow Retained Invoice Distribution Associated with Payment
83295 , p_source_153 IN NUMBER
83296 --Business Flow Retained Invoice Associated with Payment
83297 , p_source_154 IN NUMBER
83298 )
83299 IS
83300
83301 l_component_type VARCHAR2(80);
83302 l_component_code VARCHAR2(30);
83303 l_component_type_code VARCHAR2(1);
83304 l_component_appl_id INTEGER;
83305 l_amb_context_code VARCHAR2(30);
83306 l_entity_code VARCHAR2(30);
83307 l_event_class_code VARCHAR2(30);
83308 l_ae_header_id NUMBER;
83309 l_event_type_code VARCHAR2(30);
83310 l_line_definition_code VARCHAR2(30);
83311 l_line_definition_owner_code VARCHAR2(1);
83312 --
83313 -- adr variables
83314 l_segment VARCHAR2(30);
83315 l_ccid NUMBER;
83316 l_adr_transaction_coa_id NUMBER;
83317 l_adr_accounting_coa_id NUMBER;
83318 l_adr_flexfield_segment_code VARCHAR2(30);
83319 l_adr_flex_value_set_id NUMBER;
83320 l_adr_value_type_code VARCHAR2(30);
83321 l_adr_value_combination_id NUMBER;
83322 l_adr_value_segment_code VARCHAR2(30);
83323
83324 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
83325 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
83326 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
83327 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
83328
83329 -- 4262811 Variables ------------------------------------------------------------------------------------------
83330 l_entered_amt_idx NUMBER;
83331 l_accted_amt_idx NUMBER;
83332 l_acc_rev_flag VARCHAR2(1);
83333 l_accrual_line_num NUMBER;
83334 l_tmp_amt NUMBER;
83335 l_acc_rev_natural_side_code VARCHAR2(1);
83336
83337 l_num_entries NUMBER;
83338 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
83339 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
83340 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
83341 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
83342 l_recog_line_1 NUMBER;
83343 l_recog_line_2 NUMBER;
83344
83345 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
83346 l_bflow_applied_to_amt NUMBER; -- 5132302
83347 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
83348
83349 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83350
83351 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
83352 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
83353
83354 ---------------------------------------------------------------------------------------------------------------
83355
83356
83357 --
83358 -- bulk performance
83359 --
83360 l_balance_type_code VARCHAR2(1);
83361 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83362 l_log_module VARCHAR2(240);
83363
83364 --
83365 -- Upgrade strategy
83366 --
83367 l_actual_upg_option VARCHAR2(1);
83368 l_enc_upg_option VARCHAR2(1);
83369
83370 --
83371 BEGIN
83372 --
83373 IF g_log_enabled THEN
83374 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
83375 END IF;
83376 --
83377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83378
83379 trace
83380 (p_msg => 'BEGIN of AcctLineType_148'
83381 ,p_level => C_LEVEL_PROCEDURE
83382 ,p_module => l_log_module);
83383
83384 END IF;
83385 --
83386 l_component_type := 'AMB_JLT';
83387 l_component_code := 'AP_RET_REL_PMT_CASH';
83388 l_component_type_code := 'S';
83389 l_component_appl_id := 200;
83390 l_amb_context_code := 'DEFAULT';
83391 l_entity_code := 'AP_PAYMENTS';
83392 l_event_class_code := 'PAYMENTS';
83393 l_event_type_code := 'PAYMENTS_ALL';
83394 l_line_definition_owner_code := 'S';
83395 l_line_definition_code := 'CASH_PAYMENTS_ALL';
83396 --
83397 l_balance_type_code := 'A';
83398 l_segment := NULL;
83399 l_ccid := NULL;
83400 l_adr_transaction_coa_id := NULL;
83401 l_adr_accounting_coa_id := NULL;
83402 l_adr_flexfield_segment_code := NULL;
83403 l_adr_flex_value_set_id := NULL;
83404 l_adr_value_type_code := NULL;
83405 l_adr_value_combination_id := NULL;
83406 l_adr_value_segment_code := NULL;
83407
83408 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
83409 l_bflow_class_code := 'AP_RETAINAGE'; -- 4219869 Business Flow
83413 l_bflow_applied_to_amt_idx := NULL; -- 5132302
83410 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
83411 l_budgetary_control_flag := 'N';
83412
83414 l_bflow_applied_to_amt := NULL; -- 5132302
83415 l_entered_amt_idx := NULL; -- 4262811
83416 l_accted_amt_idx := NULL; -- 4262811
83417 l_acc_rev_flag := NULL; -- 4262811
83418 l_accrual_line_num := NULL; -- 4262811
83419 l_tmp_amt := NULL; -- 4262811
83420 --
83421
83422 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83423 l_balance_type_code <> 'B' THEN
83424 IF NVL(p_source_50,'
83425 ') <> 'CLEAR_CLEAR' AND
83426 NVL(p_source_112,'
83427 ') = 'RETAINAGE RELEASE' AND
83428 NVL(p_source_32,'
83429 ') = 'RETAINAGE'
83430 THEN
83431
83432 --
83433 XLA_AE_LINES_PKG.SetNewLine;
83434
83435 p_balance_type_code := l_balance_type_code;
83436 -- set the flag so later we will know whether the gain loss line needs to be created
83437
83438 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83439 p_actual_flag :='A';
83440 END IF;
83441
83442 --
83443 -- bulk performance
83444 --
83445 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83446 p_header_num => 0); -- 4262811
83447 --
83448 -- set accounting line options
83449 --
83450 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83451 p_natural_side_code => 'D'
83452 , p_gain_or_loss_flag => 'N'
83453 , p_gl_transfer_mode_code => 'S'
83454 , p_acct_entry_type_code => 'A'
83455 , p_switch_side_flag => 'Y'
83456 , p_merge_duplicate_code => 'A'
83457 );
83458 --
83459 l_acc_rev_natural_side_code := 'C'; -- 4262811
83460 --
83461 --
83462 -- set accounting line type info
83463 --
83464 xla_ae_lines_pkg.SetAcctLineType
83465 (p_component_type => l_component_type
83466 ,p_event_type_code => l_event_type_code
83467 ,p_line_definition_owner_code => l_line_definition_owner_code
83468 ,p_line_definition_code => l_line_definition_code
83469 ,p_accounting_line_code => l_component_code
83470 ,p_accounting_line_type_code => l_component_type_code
83471 ,p_accounting_line_appl_id => l_component_appl_id
83472 ,p_amb_context_code => l_amb_context_code
83473 ,p_entity_code => l_entity_code
83474 ,p_event_class_code => l_event_class_code);
83475 --
83476 -- set accounting class
83477 --
83478 xla_ae_lines_pkg.SetAcctClass(
83479 p_accounting_class_code => 'RETAINAGE'
83480 , p_ae_header_id => l_ae_header_id
83481 );
83482
83483 --
83484 -- set rounding class
83485 --
83486 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83487 'RETAINAGE';
83488
83489 --
83490 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83491 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83492 --
83493 -- bulk performance
83494 --
83495 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83496
83497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83498 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83499
83500 -- 4955764
83501 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83502 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83503
83504 -- 4458381 Public Sector Enh
83505
83506 --
83507 -- set accounting attributes for the line type
83508 --
83509 l_entered_amt_idx := 10;
83510 l_accted_amt_idx := 12;
83511 l_bflow_applied_to_amt_idx := 2; -- 5132302
83512 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83513 l_rec_acct_attrs.array_char_value(1) := p_source_52;
83514 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
83515 l_rec_acct_attrs.array_num_value(2) := p_source_72;
83516 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
83517 l_rec_acct_attrs.array_num_value(3) := p_source_54;
83518 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83519 l_rec_acct_attrs.array_char_value(4) := p_source_73;
83520 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
83521 l_rec_acct_attrs.array_char_value(5) := p_source_74;
83522 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
83523 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_153);
83524 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83525 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_154);
83526 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
83527 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
83528 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
83529 l_rec_acct_attrs.array_char_value(9) := p_source_60;
83530 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
83534 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
83531 l_rec_acct_attrs.array_num_value(10) := p_source_53;
83532 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
83533 l_rec_acct_attrs.array_char_value(11) := p_source_12;
83535 l_rec_acct_attrs.array_num_value(12) := p_source_21;
83536 l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
83537 l_rec_acct_attrs.array_char_value(13) := p_source_64;
83538 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
83539 l_rec_acct_attrs.array_char_value(14) := p_source_67;
83540 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
83541 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_68);
83542 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
83543 l_rec_acct_attrs.array_char_value(16) := p_source_60;
83544 l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
83545 l_rec_acct_attrs.array_num_value(17) := p_source_69;
83546 l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
83547 l_rec_acct_attrs.array_num_value(18) := p_source_77;
83548 l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
83549 l_rec_acct_attrs.array_num_value(19) := p_source_70;
83550
83551 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83552 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83553
83554 ---------------------------------------------------------------------------------------------------------------
83555 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83556 ---------------------------------------------------------------------------------------------------------------
83557 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83558
83559 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83560 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83561
83562 IF xla_accounting_cache_pkg.GetValueChar
83563 (p_source_code => 'LEDGER_CATEGORY_CODE'
83564 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83565 AND l_bflow_method_code = 'PRIOR_ENTRY'
83566 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83567 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83568 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83569 )
83570 THEN
83571 xla_ae_lines_pkg.BflowUpgEntry
83572 (p_business_method_code => l_bflow_method_code
83573 ,p_business_class_code => l_bflow_class_code
83574 ,p_balance_type => l_balance_type_code);
83575 ELSE
83576 NULL;
83577 XLA_AE_LINES_PKG.business_flow_validation(
83578 p_business_method_code => l_bflow_method_code
83579 ,p_business_class_code => l_bflow_class_code
83580 ,p_inherit_description_flag => l_inherit_desc_flag);
83581 END IF;
83582
83583 --
83584 -- call analytical criteria
83585 --
83586 -- Inherited Analytical Criteria for business flow method of Prior Entry.
83587 --
83588 -- call description
83589 --
83590 -- No description or it is inherited.
83591 --
83592 -- call ADRs
83593 -- Bug 4922099
83594 --
83595 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83596 (NVL(l_actual_upg_option, 'N') = 'O') OR
83597 (NVL(l_enc_upg_option, 'N') = 'O')
83598 )
83599 THEN
83600 NULL;
83601 --
83602 --
83603
83604 --
83605 --
83606 END IF;
83607 --
83608 -- Bug 4922099
83609 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83610 (NVL(l_enc_upg_option, 'N') = 'O')
83611 ) AND
83612 (l_bflow_method_code = 'PRIOR_ENTRY')
83613 )
83614 THEN
83615 IF
83616 --
83617 1 = 1
83618 --
83619 THEN
83620 xla_accounting_err_pkg.build_message
83621 (p_appli_s_name => 'XLA'
83622 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83623 ,p_token_1 => 'LINE_NUMBER'
83624 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
83625 ,p_token_2 => 'LINE_TYPE_NAME'
83626 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
83627 l_component_type
83628 ,l_component_code
83629 ,l_component_type_code
83630 ,l_component_appl_id
83631 ,l_amb_context_code
83632 ,l_entity_code
83633 ,l_event_class_code
83634 )
83638 ,p_lookup_code => l_component_type_code
83635 ,p_token_3 => 'OWNER'
83636 ,p_value_3 => xla_lookups_pkg.get_meaning(
83637 p_lookup_type => 'XLA_OWNER_TYPE'
83639 )
83640 ,p_token_4 => 'PRODUCT_NAME'
83641 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83642 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83643 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83644 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83645 ,p_ae_header_id => NULL
83646 );
83647
83648 IF (C_LEVEL_ERROR>= g_log_level) THEN
83649 trace
83650 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83651 ,p_level => C_LEVEL_ERROR
83652 ,p_module => l_log_module);
83653 END IF;
83654 END IF;
83655 END IF;
83656 --
83657 --
83658 ------------------------------------------------------------------------------------------------
83659 -- 4219869 Business Flow
83660 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83661 -- Prior Entry. Currently, the following code is always generated.
83662 ------------------------------------------------------------------------------------------------
83663 -- No ValidateCurrentLine for business flow method of Prior Entry
83664
83665 ------------------------------------------------------------------------------------
83666 -- 4219869 Business Flow
83667 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83668 ------------------------------------------------------------------------------------
83669 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83670
83671 ----------------------------------------------------------------------------------
83672 -- 4219869 Business Flow
83673 -- Update journal entry status -- Need to generate this within IF <condition>
83674 ----------------------------------------------------------------------------------
83675 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83676 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83677 ,p_balance_type_code => l_balance_type_code
83678 );
83679
83680 -------------------------------------------------------------------------------------------
83681 -- 4262811 - Generate the Accrual Reversal lines
83682 -------------------------------------------------------------------------------------------
83683 BEGIN
83684 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83685 (g_array_event(p_event_id).array_value_num('header_index'));
83686 IF l_acc_rev_flag IS NULL THEN
83687 l_acc_rev_flag := 'N';
83688 END IF;
83689 EXCEPTION
83690 WHEN OTHERS THEN
83691 l_acc_rev_flag := 'N';
83692 END;
83693 --
83694 IF (l_acc_rev_flag = 'Y') THEN
83695
83696 -- 4645092 ------------------------------------------------------------------------------
83697 -- To allow MPA report to determine if it should generate report process
83698 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83699 ------------------------------------------------------------------------------------------
83700
83701 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83702 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83703 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
83704 -- call ADRs
83705 -- Bug 4922099
83706 --
83707 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83708 (NVL(l_actual_upg_option, 'N') = 'O') OR
83709 (NVL(l_enc_upg_option, 'N') = 'O')
83710 )
83711 THEN
83712 NULL;
83713 --
83714 --
83715
83716 --
83717 --
83718 END IF;
83719
83720 --
83721 -- Update the line information that should be overwritten
83722 --
83723 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83724 p_header_num => 1);
83725 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
83726
83727 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83728
83729 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
83730 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83731 END IF;
83732
83733 --
83734 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83735 --
83736 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83740 -- 4262811a Switch Sign
83737 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
83738 ELSE
83739 ---------------------------------------------------------------------------------------------------
83741 ---------------------------------------------------------------------------------------------------
83742 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
83743 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83744 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83745 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83746 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83747 -- 5132302
83748 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83749 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83750
83751 END IF;
83752
83753 -- 4955764
83754 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83755 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83756
83757
83758 XLA_AE_LINES_PKG.ValidateCurrentLine;
83759 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83760
83761 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83762 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83763 ,p_balance_type_code => l_balance_type_code);
83764
83765 END IF;
83766
83767 -----------------------------------------------------------------------------------------
83768 -- 4262811 Multiperiod Accounting
83769 -----------------------------------------------------------------------------------------
83770 -- No MPA option is assigned.
83771
83772
83773 END IF;
83774 END IF;
83775 --
83776
83777 --
83778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83779 trace
83780 (p_msg => 'END of AcctLineType_148'
83781 ,p_level => C_LEVEL_PROCEDURE
83782 ,p_module => l_log_module);
83783 END IF;
83784 --
83785 EXCEPTION
83786 WHEN xla_exceptions_pkg.application_exception THEN
83787 RAISE;
83788 WHEN OTHERS THEN
83789 xla_exceptions_pkg.raise_message
83790 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_148');
83791 END AcctLineType_148;
83792 --
83793
83794 ---------------------------------------
83795 --
83796 -- PRIVATE FUNCTION
83797 -- AcctLineType_149
83798 --
83799 ---------------------------------------
83800 PROCEDURE AcctLineType_149 (
83801 p_application_id IN NUMBER
83802 ,p_event_id IN NUMBER
83803 ,p_calculate_acctd_flag IN VARCHAR2
83804 ,p_calculate_g_l_flag IN VARCHAR2
83805 ,p_actual_flag IN OUT VARCHAR2
83806 ,p_balance_type_code OUT VARCHAR2
83807 ,p_gain_or_loss_ref OUT VARCHAR2
83808
83809 --Payment Currency Code
83810 , p_source_12 IN VARCHAR2
83811 --Automatic Offsets Value
83812 , p_source_16 IN VARCHAR2
83813 , p_source_16_meaning IN VARCHAR2
83814 --Purchase Order Rate Variance Gain Account
83815 , p_source_17 IN NUMBER
83816 --Destination Type of the PO Distribution
83817 , p_source_19 IN VARCHAR2
83818 , p_source_19_meaning IN VARCHAR2
83819 --Purchase Order Rate Variance Loss Account
83820 , p_source_20 IN NUMBER
83821 --Payment Distribution (Payment Rate) Ledger Amount
83822 , p_source_21 IN NUMBER
83823 --Payment Distribution (Cleared Rate) Ledger Amount
83824 , p_source_22 IN NUMBER
83825 --Invoice Distribution Account
83826 , p_source_29 IN NUMBER
83827 --Automatic Offsets Flag
83828 , p_source_42 IN VARCHAR2
83829 , p_source_42_meaning IN VARCHAR2
83830 --When to Account for Payment Option
83831 , p_source_50 IN VARCHAR2
83832 --Payment Distribution Type
83833 , p_source_51 IN VARCHAR2
83834 , p_source_51_meaning IN VARCHAR2
83835 --Accounting Reversal Indicator
83836 , p_source_52 IN VARCHAR2
83837 --Payment Distribution Amount
83838 , p_source_53 IN NUMBER
83839 --Business Flow Accounts Payable Application Identifier
83840 , p_source_54 IN NUMBER
83841 --Business Flow Payment Distribution Type
83842 , p_source_55 IN VARCHAR2
83843 --Business Flow Payment Entity Code
83844 , p_source_56 IN VARCHAR2
83845 --Business Flow Payment Distribution Identifier
83846 , p_source_57 IN NUMBER
83847 --Business Flow Payment Identifier
83848 , p_source_58 IN NUMBER
83849 --Payment Distribution Identifier
83850 , p_source_59 IN NUMBER
83851 --Distribution Link Type
83852 , p_source_60 IN VARCHAR2
83853 --Override Accounted Amount Indicator
83854 , p_source_64 IN VARCHAR2
83855 , p_source_64_meaning IN VARCHAR2
83856 --Payment Supplier Identifier
83857 , p_source_65 IN NUMBER
83858 --Payment Supplier Site Identifier
83859 , p_source_66 IN NUMBER
83860 --Third Party Type
83864 --Invoice Distribution Tax Line Identifier
83861 , p_source_67 IN VARCHAR2
83862 --Payment Distribution Reversed Identifier
83863 , p_source_68 IN NUMBER
83865 , p_source_69 IN NUMBER
83866 --Invoice Distribution Summary Tax Line Identifier
83867 , p_source_70 IN NUMBER
83868 --Accrue on Receipt Option
83869 , p_source_111 IN VARCHAR2
83870 , p_source_111_meaning IN VARCHAR2
83871 --Cleared Exchange Date
83872 , p_source_114 IN DATE
83873 --Cleared Exchange Rate
83874 , p_source_115 IN NUMBER
83875 --Cleared Exchange Rate Type
83876 , p_source_116 IN VARCHAR2
83877 )
83878 IS
83879
83880 l_component_type VARCHAR2(80);
83881 l_component_code VARCHAR2(30);
83882 l_component_type_code VARCHAR2(1);
83883 l_component_appl_id INTEGER;
83884 l_amb_context_code VARCHAR2(30);
83885 l_entity_code VARCHAR2(30);
83886 l_event_class_code VARCHAR2(30);
83887 l_ae_header_id NUMBER;
83888 l_event_type_code VARCHAR2(30);
83889 l_line_definition_code VARCHAR2(30);
83890 l_line_definition_owner_code VARCHAR2(1);
83891 --
83892 -- adr variables
83893 l_segment VARCHAR2(30);
83894 l_ccid NUMBER;
83895 l_adr_transaction_coa_id NUMBER;
83896 l_adr_accounting_coa_id NUMBER;
83897 l_adr_flexfield_segment_code VARCHAR2(30);
83898 l_adr_flex_value_set_id NUMBER;
83899 l_adr_value_type_code VARCHAR2(30);
83900 l_adr_value_combination_id NUMBER;
83901 l_adr_value_segment_code VARCHAR2(30);
83902
83903 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
83904 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
83905 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
83906 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
83907
83908 -- 4262811 Variables ------------------------------------------------------------------------------------------
83909 l_entered_amt_idx NUMBER;
83910 l_accted_amt_idx NUMBER;
83911 l_acc_rev_flag VARCHAR2(1);
83912 l_accrual_line_num NUMBER;
83913 l_tmp_amt NUMBER;
83914 l_acc_rev_natural_side_code VARCHAR2(1);
83915
83916 l_num_entries NUMBER;
83917 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
83918 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
83919 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
83920 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
83921 l_recog_line_1 NUMBER;
83922 l_recog_line_2 NUMBER;
83923
83924 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
83925 l_bflow_applied_to_amt NUMBER; -- 5132302
83926 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
83927
83928 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83929
83930 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
83931 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
83932
83933 ---------------------------------------------------------------------------------------------------------------
83934
83935
83936 --
83937 -- bulk performance
83938 --
83939 l_balance_type_code VARCHAR2(1);
83940 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83941 l_log_module VARCHAR2(240);
83942
83943 --
83944 -- Upgrade strategy
83945 --
83946 l_actual_upg_option VARCHAR2(1);
83947 l_enc_upg_option VARCHAR2(1);
83948
83949 --
83950 BEGIN
83951 --
83952 IF g_log_enabled THEN
83953 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
83954 END IF;
83955 --
83956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83957
83958 trace
83959 (p_msg => 'BEGIN of AcctLineType_149'
83960 ,p_level => C_LEVEL_PROCEDURE
83961 ,p_module => l_log_module);
83962
83963 END IF;
83964 --
83965 l_component_type := 'AMB_JLT';
83966 l_component_code := 'AP_TAX_EX_RATE_VAR_CLEAR';
83967 l_component_type_code := 'S';
83968 l_component_appl_id := 200;
83969 l_amb_context_code := 'DEFAULT';
83970 l_entity_code := 'AP_PAYMENTS';
83971 l_event_class_code := 'RECONCILED PAYMENTS';
83972 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
83973 l_line_definition_owner_code := 'S';
83974 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
83975 --
83976 l_balance_type_code := 'A';
83977 l_segment := NULL;
83978 l_ccid := NULL;
83979 l_adr_transaction_coa_id := NULL;
83980 l_adr_accounting_coa_id := NULL;
83981 l_adr_flexfield_segment_code := NULL;
83982 l_adr_flex_value_set_id := NULL;
83983 l_adr_value_type_code := NULL;
83984 l_adr_value_combination_id := NULL;
83985 l_adr_value_segment_code := NULL;
83986
83987 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
83988 l_bflow_class_code := ''; -- 4219869 Business Flow
83992 l_bflow_applied_to_amt_idx := NULL; -- 5132302
83989 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
83990 l_budgetary_control_flag := 'N';
83991
83993 l_bflow_applied_to_amt := NULL; -- 5132302
83994 l_entered_amt_idx := NULL; -- 4262811
83995 l_accted_amt_idx := NULL; -- 4262811
83996 l_acc_rev_flag := NULL; -- 4262811
83997 l_accrual_line_num := NULL; -- 4262811
83998 l_tmp_amt := NULL; -- 4262811
83999 --
84000 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84001 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
84002 return;
84003 END IF;
84004
84005 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84006 l_balance_type_code <> 'B' THEN
84007 IF NVL(p_source_50,'
84008 ') = 'CLEAR_CLEAR' AND
84009 NVL(p_source_51,'
84010 ') = 'TAX EXCHANGE RATE VARIANCE' AND
84011 NVL(p_source_111,'
84012 ') = 'Y'
84013 THEN
84014
84015 --
84016 XLA_AE_LINES_PKG.SetNewLine;
84017
84018 p_balance_type_code := l_balance_type_code;
84019 -- set the flag so later we will know whether the gain loss line needs to be created
84020
84021 IF(l_balance_type_code = 'A' ) THEN
84022 p_actual_flag :='G';
84023 END IF;
84024
84025 --
84026 -- bulk performance
84027 --
84028 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84029 p_header_num => 0); -- 4262811
84030 --
84031 -- set accounting line options
84032 --
84033 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84034 p_natural_side_code => 'D'
84035 , p_gain_or_loss_flag => 'Y'
84036 , p_gl_transfer_mode_code => 'S'
84037 , p_acct_entry_type_code => 'A'
84038 , p_switch_side_flag => 'Y'
84039 , p_merge_duplicate_code => 'A'
84040 );
84041 --
84042 l_acc_rev_natural_side_code := 'C'; -- 4262811
84043 --
84044 --
84045 -- set accounting line type info
84046 --
84047 xla_ae_lines_pkg.SetAcctLineType
84048 (p_component_type => l_component_type
84049 ,p_event_type_code => l_event_type_code
84050 ,p_line_definition_owner_code => l_line_definition_owner_code
84051 ,p_line_definition_code => l_line_definition_code
84052 ,p_accounting_line_code => l_component_code
84053 ,p_accounting_line_type_code => l_component_type_code
84054 ,p_accounting_line_appl_id => l_component_appl_id
84055 ,p_amb_context_code => l_amb_context_code
84056 ,p_entity_code => l_entity_code
84057 ,p_event_class_code => l_event_class_code);
84058 --
84059 -- set accounting class
84060 --
84061 xla_ae_lines_pkg.SetAcctClass(
84062 p_accounting_class_code => 'TERV'
84063 , p_ae_header_id => l_ae_header_id
84064 );
84065
84066 --
84067 -- set rounding class
84068 --
84069 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84070 'TERV';
84071
84072 --
84073 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84074 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84075 --
84076 -- bulk performance
84077 --
84078 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84079
84080 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84081 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84082
84083 -- 4955764
84084 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84085 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84086
84087 -- 4458381 Public Sector Enh
84088
84089 --
84090 -- set accounting attributes for the line type
84091 --
84092 l_entered_amt_idx := 10;
84093 l_accted_amt_idx := 15;
84094 l_bflow_applied_to_amt_idx := 2; -- 5132302
84095 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84096 l_rec_acct_attrs.array_char_value(1) := p_source_52;
84097 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84098 l_rec_acct_attrs.array_num_value(2) := p_source_53;
84099 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84100 l_rec_acct_attrs.array_num_value(3) := p_source_54;
84101 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84102 l_rec_acct_attrs.array_char_value(4) := p_source_55;
84103 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84104 l_rec_acct_attrs.array_char_value(5) := p_source_56;
84105 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84106 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
84107 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84108 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
84112 l_rec_acct_attrs.array_char_value(9) := p_source_60;
84109 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84110 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
84111 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84113 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84114 l_rec_acct_attrs.array_num_value(10) := p_source_53;
84115 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84116 l_rec_acct_attrs.array_char_value(11) := p_source_12;
84117 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84118 l_rec_acct_attrs.array_date_value(12) := p_source_114;
84119 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84120 l_rec_acct_attrs.array_num_value(13) := p_source_115;
84121 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84122 l_rec_acct_attrs.array_char_value(14) := p_source_116;
84123 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84124 l_rec_acct_attrs.array_num_value(15) := p_source_22;
84125 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84126 l_rec_acct_attrs.array_char_value(16) := p_source_64;
84127 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84128 l_rec_acct_attrs.array_num_value(17) := p_source_65;
84129 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84130 l_rec_acct_attrs.array_num_value(18) := p_source_66;
84131 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84132 l_rec_acct_attrs.array_char_value(19) := p_source_67;
84133 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84134 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
84135 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84136 l_rec_acct_attrs.array_char_value(21) := p_source_60;
84137 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
84138 l_rec_acct_attrs.array_num_value(22) := p_source_69;
84139 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
84140 l_rec_acct_attrs.array_num_value(23) := p_source_69;
84141 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
84142 l_rec_acct_attrs.array_num_value(24) := p_source_70;
84143
84144 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84145 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84146
84147 ---------------------------------------------------------------------------------------------------------------
84148 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84149 ---------------------------------------------------------------------------------------------------------------
84150 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84151
84152 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84153 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84154
84155 IF xla_accounting_cache_pkg.GetValueChar
84156 (p_source_code => 'LEDGER_CATEGORY_CODE'
84157 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84158 AND l_bflow_method_code = 'PRIOR_ENTRY'
84159 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84160 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84161 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84162 )
84163 THEN
84164 xla_ae_lines_pkg.BflowUpgEntry
84165 (p_business_method_code => l_bflow_method_code
84166 ,p_business_class_code => l_bflow_class_code
84167 ,p_balance_type => l_balance_type_code);
84168 ELSE
84169 NULL;
84170 -- No business flow processing for business flow method of NONE.
84171 END IF;
84172
84173 --
84174 -- call analytical criteria
84175 --
84176
84177 --
84178 -- call description
84179 --
84180 -- No description or it is inherited.
84181 --
84182 -- call ADRs
84183 -- Bug 4922099
84184 --
84185 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84186 (NVL(l_actual_upg_option, 'N') = 'O') OR
84187 (NVL(l_enc_upg_option, 'N') = 'O')
84188 )
84189 THEN
84190 NULL;
84191 --
84192 --
84193
84194 l_ccid := AcctDerRule_24(
84195 p_application_id => p_application_id
84196 , p_ae_header_id => l_ae_header_id
84197 , p_source_16 => p_source_16
84198 , p_source_16_meaning => p_source_16_meaning
84199 , p_source_17 => p_source_17
84200 , p_source_19 => p_source_19
84201 , p_source_19_meaning => p_source_19_meaning
84202 , p_source_20 => p_source_20
84203 , p_source_21 => p_source_21
84204 , p_source_22 => p_source_22
84205 , p_source_29 => p_source_29
84206 , p_source_42 => p_source_42
84207 , p_source_42_meaning => p_source_42_meaning
84208 , x_transaction_coa_id => l_adr_transaction_coa_id
84209 , x_accounting_coa_id => l_adr_accounting_coa_id
84210 , x_value_type_code => l_adr_value_type_code
84211 , p_side => 'NA'
84212 );
84213
84214 xla_ae_lines_pkg.set_ccid(
84215 p_code_combination_id => l_ccid
84216 , p_value_type_code => l_adr_value_type_code
84220 , p_adr_type_code => 'S'
84217 , p_transaction_coa_id => l_adr_transaction_coa_id
84218 , p_accounting_coa_id => l_adr_accounting_coa_id
84219 , p_adr_code => 'AP_ERV_TAXERV_CASH'
84221 , p_component_type => l_component_type
84222 , p_component_code => l_component_code
84223 , p_component_type_code => l_component_type_code
84224 , p_component_appl_id => l_component_appl_id
84225 , p_amb_context_code => l_amb_context_code
84226 , p_side => 'NA'
84227 );
84228
84229
84230 l_segment := AcctDerRule_6(
84231 p_application_id => p_application_id
84232 , p_ae_header_id => l_ae_header_id
84233 , p_source_16 => p_source_16
84234 , p_source_16_meaning => p_source_16_meaning
84235 , p_source_17 => p_source_17
84236 , p_source_19 => p_source_19
84237 , p_source_19_meaning => p_source_19_meaning
84238 , p_source_20 => p_source_20
84239 , p_source_21 => p_source_21
84240 , p_source_22 => p_source_22
84241 , x_transaction_coa_id => l_adr_transaction_coa_id
84242 , x_accounting_coa_id => l_adr_accounting_coa_id
84243 , x_flexfield_segment_code => l_adr_flexfield_segment_code
84244 , x_flex_value_set_id => l_adr_flex_value_set_id
84245 , x_value_type_code => l_adr_value_type_code
84246 , x_value_combination_id => l_adr_value_combination_id
84247 , x_value_segment_code => l_adr_value_segment_code
84248 , p_side => 'NA'
84249 , p_override_seg_flag => 'Y'
84250 );
84251
84252 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
84253
84254 xla_ae_lines_pkg.set_segment(
84255 p_to_segment_code => 'GL_ACCOUNT'
84256 , p_segment_value => l_segment
84257 , p_from_segment_code => l_adr_value_segment_code
84258 , p_from_combination_id => l_adr_value_combination_id
84259 , p_value_type_code => l_adr_value_type_code
84260 , p_transaction_coa_id => l_adr_transaction_coa_id
84261 , p_accounting_coa_id => l_adr_accounting_coa_id
84262 , p_flexfield_segment_code => l_adr_flexfield_segment_code
84263 , p_flex_value_set_id => l_adr_flex_value_set_id
84264 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
84265 , p_adr_type_code => 'S'
84266 , p_component_type => l_component_type
84267 , p_component_code => l_component_code
84268 , p_component_type_code => l_component_type_code
84269 , p_component_appl_id => l_component_appl_id
84270 , p_amb_context_code => l_amb_context_code
84271 , p_entity_code => 'AP_PAYMENTS'
84272 , p_event_class_code => 'RECONCILED PAYMENTS'
84273 , p_side => 'NA'
84274 );
84275
84276 END IF;
84277
84278 l_segment := AcctDerRule_17(
84279 p_application_id => p_application_id
84280 , p_ae_header_id => l_ae_header_id
84281 , p_source_16 => p_source_16
84282 , p_source_16_meaning => p_source_16_meaning
84283 , p_source_19 => p_source_19
84284 , p_source_19_meaning => p_source_19_meaning
84285 , p_source_29 => p_source_29
84286 , x_transaction_coa_id => l_adr_transaction_coa_id
84287 , x_accounting_coa_id => l_adr_accounting_coa_id
84288 , x_flexfield_segment_code => l_adr_flexfield_segment_code
84289 , x_flex_value_set_id => l_adr_flex_value_set_id
84290 , x_value_type_code => l_adr_value_type_code
84291 , x_value_combination_id => l_adr_value_combination_id
84292 , x_value_segment_code => l_adr_value_segment_code
84293 , p_side => 'NA'
84294 , p_override_seg_flag => 'Y'
84295 );
84296
84297 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
84298
84299 xla_ae_lines_pkg.set_segment(
84300 p_to_segment_code => 'GL_BALANCING'
84301 , p_segment_value => l_segment
84302 , p_from_segment_code => l_adr_value_segment_code
84303 , p_from_combination_id => l_adr_value_combination_id
84304 , p_value_type_code => l_adr_value_type_code
84305 , p_transaction_coa_id => l_adr_transaction_coa_id
84306 , p_accounting_coa_id => l_adr_accounting_coa_id
84307 , p_flexfield_segment_code => l_adr_flexfield_segment_code
84308 , p_flex_value_set_id => l_adr_flex_value_set_id
84309 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
84310 , p_adr_type_code => 'S'
84311 , p_component_type => l_component_type
84312 , p_component_code => l_component_code
84313 , p_component_type_code => l_component_type_code
84314 , p_component_appl_id => l_component_appl_id
84315 , p_amb_context_code => l_amb_context_code
84316 , p_entity_code => 'AP_PAYMENTS'
84317 , p_event_class_code => 'RECONCILED PAYMENTS'
84318 , p_side => 'NA'
84319 );
84320
84321 END IF;
84322
84323 --
84324 --
84325 END IF;
84326 --
84327 -- Bug 4922099
84331 (l_bflow_method_code = 'PRIOR_ENTRY')
84328 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84329 (NVL(l_enc_upg_option, 'N') = 'O')
84330 ) AND
84332 )
84333 THEN
84334 IF
84335 --
84336 1 = 2
84337 --
84338 THEN
84339 xla_accounting_err_pkg.build_message
84340 (p_appli_s_name => 'XLA'
84341 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84342 ,p_token_1 => 'LINE_NUMBER'
84343 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
84344 ,p_token_2 => 'LINE_TYPE_NAME'
84345 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
84346 l_component_type
84347 ,l_component_code
84348 ,l_component_type_code
84349 ,l_component_appl_id
84350 ,l_amb_context_code
84351 ,l_entity_code
84352 ,l_event_class_code
84353 )
84354 ,p_token_3 => 'OWNER'
84355 ,p_value_3 => xla_lookups_pkg.get_meaning(
84356 p_lookup_type => 'XLA_OWNER_TYPE'
84357 ,p_lookup_code => l_component_type_code
84358 )
84359 ,p_token_4 => 'PRODUCT_NAME'
84360 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84361 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84362 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84363 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84364 ,p_ae_header_id => NULL
84365 );
84366
84367 IF (C_LEVEL_ERROR>= g_log_level) THEN
84368 trace
84369 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84370 ,p_level => C_LEVEL_ERROR
84371 ,p_module => l_log_module);
84372 END IF;
84373 END IF;
84374 END IF;
84375 --
84376 --
84377 ------------------------------------------------------------------------------------------------
84378 -- 4219869 Business Flow
84379 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84380 -- Prior Entry. Currently, the following code is always generated.
84381 ------------------------------------------------------------------------------------------------
84382 XLA_AE_LINES_PKG.ValidateCurrentLine;
84383
84384 ------------------------------------------------------------------------------------
84385 -- 4219869 Business Flow
84386 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84387 ------------------------------------------------------------------------------------
84388 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84389
84390 ----------------------------------------------------------------------------------
84391 -- 4219869 Business Flow
84392 -- Update journal entry status -- Need to generate this within IF <condition>
84393 ----------------------------------------------------------------------------------
84394 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84395 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84396 ,p_balance_type_code => l_balance_type_code
84397 );
84398
84399 -------------------------------------------------------------------------------------------
84400 -- 4262811 - Generate the Accrual Reversal lines
84401 -------------------------------------------------------------------------------------------
84402 BEGIN
84403 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84404 (g_array_event(p_event_id).array_value_num('header_index'));
84405 IF l_acc_rev_flag IS NULL THEN
84406 l_acc_rev_flag := 'N';
84407 END IF;
84408 EXCEPTION
84409 WHEN OTHERS THEN
84410 l_acc_rev_flag := 'N';
84411 END;
84412 --
84413 IF (l_acc_rev_flag = 'Y') THEN
84414
84415 -- 4645092 ------------------------------------------------------------------------------
84416 -- To allow MPA report to determine if it should generate report process
84417 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84418 ------------------------------------------------------------------------------------------
84419
84423 -- call ADRs
84420 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84421 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84422 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
84424 -- Bug 4922099
84425 --
84426 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84427 (NVL(l_actual_upg_option, 'N') = 'O') OR
84428 (NVL(l_enc_upg_option, 'N') = 'O')
84429 )
84430 THEN
84431 NULL;
84432 --
84433 --
84434
84435 l_ccid := AcctDerRule_24(
84436 p_application_id => p_application_id
84437 , p_ae_header_id => l_ae_header_id
84438 , p_source_16 => p_source_16
84439 , p_source_16_meaning => p_source_16_meaning
84440 , p_source_17 => p_source_17
84441 , p_source_19 => p_source_19
84442 , p_source_19_meaning => p_source_19_meaning
84443 , p_source_20 => p_source_20
84444 , p_source_21 => p_source_21
84445 , p_source_22 => p_source_22
84446 , p_source_29 => p_source_29
84447 , p_source_42 => p_source_42
84448 , p_source_42_meaning => p_source_42_meaning
84449 , x_transaction_coa_id => l_adr_transaction_coa_id
84450 , x_accounting_coa_id => l_adr_accounting_coa_id
84451 , x_value_type_code => l_adr_value_type_code
84452 , p_side => 'NA'
84453 );
84454
84455 xla_ae_lines_pkg.set_ccid(
84456 p_code_combination_id => l_ccid
84457 , p_value_type_code => l_adr_value_type_code
84458 , p_transaction_coa_id => l_adr_transaction_coa_id
84459 , p_accounting_coa_id => l_adr_accounting_coa_id
84460 , p_adr_code => 'AP_ERV_TAXERV_CASH'
84461 , p_adr_type_code => 'S'
84462 , p_component_type => l_component_type
84463 , p_component_code => l_component_code
84464 , p_component_type_code => l_component_type_code
84465 , p_component_appl_id => l_component_appl_id
84466 , p_amb_context_code => l_amb_context_code
84467 , p_side => 'NA'
84468 );
84469
84470
84471 l_segment := AcctDerRule_6(
84472 p_application_id => p_application_id
84473 , p_ae_header_id => l_ae_header_id
84474 , p_source_16 => p_source_16
84475 , p_source_16_meaning => p_source_16_meaning
84476 , p_source_17 => p_source_17
84477 , p_source_19 => p_source_19
84478 , p_source_19_meaning => p_source_19_meaning
84479 , p_source_20 => p_source_20
84480 , p_source_21 => p_source_21
84481 , p_source_22 => p_source_22
84482 , x_transaction_coa_id => l_adr_transaction_coa_id
84483 , x_accounting_coa_id => l_adr_accounting_coa_id
84484 , x_flexfield_segment_code => l_adr_flexfield_segment_code
84485 , x_flex_value_set_id => l_adr_flex_value_set_id
84486 , x_value_type_code => l_adr_value_type_code
84487 , x_value_combination_id => l_adr_value_combination_id
84488 , x_value_segment_code => l_adr_value_segment_code
84489 , p_side => 'NA'
84490 , p_override_seg_flag => 'Y'
84491 );
84492
84493 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
84494
84495 xla_ae_lines_pkg.set_segment(
84496 p_to_segment_code => 'GL_ACCOUNT'
84497 , p_segment_value => l_segment
84498 , p_from_segment_code => l_adr_value_segment_code
84499 , p_from_combination_id => l_adr_value_combination_id
84500 , p_value_type_code => l_adr_value_type_code
84501 , p_transaction_coa_id => l_adr_transaction_coa_id
84502 , p_accounting_coa_id => l_adr_accounting_coa_id
84503 , p_flexfield_segment_code => l_adr_flexfield_segment_code
84504 , p_flex_value_set_id => l_adr_flex_value_set_id
84505 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
84506 , p_adr_type_code => 'S'
84507 , p_component_type => l_component_type
84508 , p_component_code => l_component_code
84509 , p_component_type_code => l_component_type_code
84510 , p_component_appl_id => l_component_appl_id
84511 , p_amb_context_code => l_amb_context_code
84512 , p_entity_code => 'AP_PAYMENTS'
84513 , p_event_class_code => 'RECONCILED PAYMENTS'
84514 , p_side => 'NA'
84515 );
84516
84517 END IF;
84518
84519 l_segment := AcctDerRule_17(
84520 p_application_id => p_application_id
84521 , p_ae_header_id => l_ae_header_id
84522 , p_source_16 => p_source_16
84523 , p_source_16_meaning => p_source_16_meaning
84524 , p_source_19 => p_source_19
84525 , p_source_19_meaning => p_source_19_meaning
84526 , p_source_29 => p_source_29
84527 , x_transaction_coa_id => l_adr_transaction_coa_id
84528 , x_accounting_coa_id => l_adr_accounting_coa_id
84529 , x_flexfield_segment_code => l_adr_flexfield_segment_code
84530 , x_flex_value_set_id => l_adr_flex_value_set_id
84531 , x_value_type_code => l_adr_value_type_code
84532 , x_value_combination_id => l_adr_value_combination_id
84533 , x_value_segment_code => l_adr_value_segment_code
84534 , p_side => 'NA'
84538 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
84535 , p_override_seg_flag => 'Y'
84536 );
84537
84539
84540 xla_ae_lines_pkg.set_segment(
84541 p_to_segment_code => 'GL_BALANCING'
84542 , p_segment_value => l_segment
84543 , p_from_segment_code => l_adr_value_segment_code
84544 , p_from_combination_id => l_adr_value_combination_id
84545 , p_value_type_code => l_adr_value_type_code
84546 , p_transaction_coa_id => l_adr_transaction_coa_id
84547 , p_accounting_coa_id => l_adr_accounting_coa_id
84548 , p_flexfield_segment_code => l_adr_flexfield_segment_code
84549 , p_flex_value_set_id => l_adr_flex_value_set_id
84550 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
84551 , p_adr_type_code => 'S'
84552 , p_component_type => l_component_type
84553 , p_component_code => l_component_code
84554 , p_component_type_code => l_component_type_code
84555 , p_component_appl_id => l_component_appl_id
84556 , p_amb_context_code => l_amb_context_code
84557 , p_entity_code => 'AP_PAYMENTS'
84558 , p_event_class_code => 'RECONCILED PAYMENTS'
84559 , p_side => 'NA'
84560 );
84561
84562 END IF;
84563
84564 --
84565 --
84566 END IF;
84567
84568 --
84569 -- Update the line information that should be overwritten
84570 --
84571 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84572 p_header_num => 1);
84573 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
84574
84575 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84576
84577 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
84578 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84579 END IF;
84580
84581 --
84582 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84583 --
84584 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84585 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
84586 ELSE
84587 ---------------------------------------------------------------------------------------------------
84588 -- 4262811a Switch Sign
84589 ---------------------------------------------------------------------------------------------------
84590 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
84591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84592 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84593 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84594 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84595 -- 5132302
84596 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84597 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84598
84599 END IF;
84600
84601 -- 4955764
84602 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84603 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84604
84605
84606 XLA_AE_LINES_PKG.ValidateCurrentLine;
84607 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84608
84609 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84610 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84611 ,p_balance_type_code => l_balance_type_code);
84612
84613 END IF;
84614
84615 -----------------------------------------------------------------------------------------
84616 -- 4262811 Multiperiod Accounting
84617 -----------------------------------------------------------------------------------------
84618 -- No MPA option is assigned.
84619
84620
84621 END IF;
84622 END IF;
84623 --
84624
84625 --
84626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84627 trace
84628 (p_msg => 'END of AcctLineType_149'
84629 ,p_level => C_LEVEL_PROCEDURE
84630 ,p_module => l_log_module);
84631 END IF;
84632 --
84633 EXCEPTION
84634 WHEN xla_exceptions_pkg.application_exception THEN
84635 RAISE;
84636 WHEN OTHERS THEN
84637 xla_exceptions_pkg.raise_message
84638 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_149');
84639 END AcctLineType_149;
84640 --
84641
84642 ---------------------------------------
84643 --
84644 -- PRIVATE FUNCTION
84645 -- AcctLineType_150
84646 --
84647 ---------------------------------------
84648 PROCEDURE AcctLineType_150 (
84649 p_application_id IN NUMBER
84650 ,p_event_id IN NUMBER
84651 ,p_calculate_acctd_flag IN VARCHAR2
84652 ,p_calculate_g_l_flag IN VARCHAR2
84653 ,p_actual_flag IN OUT VARCHAR2
84654 ,p_balance_type_code OUT VARCHAR2
84658 , p_source_12 IN VARCHAR2
84655 ,p_gain_or_loss_ref OUT VARCHAR2
84656
84657 --Payment Currency Code
84659 --Automatic Offsets Value
84660 , p_source_16 IN VARCHAR2
84661 , p_source_16_meaning IN VARCHAR2
84662 --Purchase Order Rate Variance Gain Account
84663 , p_source_17 IN NUMBER
84664 --Destination Type of the PO Distribution
84665 , p_source_19 IN VARCHAR2
84666 , p_source_19_meaning IN VARCHAR2
84667 --Purchase Order Rate Variance Loss Account
84668 , p_source_20 IN NUMBER
84669 --Payment Distribution (Payment Rate) Ledger Amount
84670 , p_source_21 IN NUMBER
84671 --Payment Distribution (Cleared Rate) Ledger Amount
84672 , p_source_22 IN NUMBER
84673 --Invoice Distribution Account
84674 , p_source_29 IN NUMBER
84675 --Automatic Offsets Flag
84676 , p_source_42 IN VARCHAR2
84677 , p_source_42_meaning IN VARCHAR2
84678 --When to Account for Payment Option
84679 , p_source_50 IN VARCHAR2
84680 --Payment Distribution Type
84681 , p_source_51 IN VARCHAR2
84682 , p_source_51_meaning IN VARCHAR2
84683 --Accounting Reversal Indicator
84684 , p_source_52 IN VARCHAR2
84685 --Payment Distribution Amount
84686 , p_source_53 IN NUMBER
84687 --Business Flow Accounts Payable Application Identifier
84688 , p_source_54 IN NUMBER
84689 --Payment Distribution Identifier
84690 , p_source_59 IN NUMBER
84691 --Distribution Link Type
84692 , p_source_60 IN VARCHAR2
84693 --Override Accounted Amount Indicator
84694 , p_source_64 IN VARCHAR2
84695 , p_source_64_meaning IN VARCHAR2
84696 --Payment Supplier Identifier
84697 , p_source_65 IN NUMBER
84698 --Payment Supplier Site Identifier
84699 , p_source_66 IN NUMBER
84700 --Third Party Type
84701 , p_source_67 IN VARCHAR2
84702 --Payment Distribution Reversed Identifier
84703 , p_source_68 IN NUMBER
84704 --Invoice Distribution Tax Line Identifier
84705 , p_source_69 IN NUMBER
84706 --Invoice Distribution Summary Tax Line Identifier
84707 , p_source_70 IN NUMBER
84708 --Payment Type
84709 , p_source_71 IN VARCHAR2
84710 , p_source_71_meaning IN VARCHAR2
84711 --Invoice Distribution Amount of the Payment Distribution
84712 , p_source_72 IN NUMBER
84713 --Business Flow Invoice Distribution Type
84714 , p_source_73 IN VARCHAR2
84715 --Business Flow Invoice Entity Code
84716 , p_source_74 IN VARCHAR2
84717 --Business Flow Invoice Distribution Identifier
84718 , p_source_75 IN NUMBER
84719 --Business Flow Invoice Identifier
84720 , p_source_76 IN NUMBER
84721 --Invoice Distribution Tax Distribution Identifier from Tax
84722 , p_source_77 IN NUMBER
84723 --Accrue on Receipt Option
84724 , p_source_111 IN VARCHAR2
84725 , p_source_111_meaning IN VARCHAR2
84726 --Invoice Type Paid
84727 , p_source_112 IN VARCHAR2
84728 , p_source_112_meaning IN VARCHAR2
84729 --Payment Exchange Date
84730 , p_source_121 IN DATE
84731 --Payment Exchange Rate
84732 , p_source_122 IN NUMBER
84733 --Payment Exchange Rate Type
84734 , p_source_123 IN VARCHAR2
84735 )
84736 IS
84737
84738 l_component_type VARCHAR2(80);
84739 l_component_code VARCHAR2(30);
84740 l_component_type_code VARCHAR2(1);
84741 l_component_appl_id INTEGER;
84742 l_amb_context_code VARCHAR2(30);
84743 l_entity_code VARCHAR2(30);
84744 l_event_class_code VARCHAR2(30);
84745 l_ae_header_id NUMBER;
84746 l_event_type_code VARCHAR2(30);
84747 l_line_definition_code VARCHAR2(30);
84748 l_line_definition_owner_code VARCHAR2(1);
84749 --
84750 -- adr variables
84751 l_segment VARCHAR2(30);
84752 l_ccid NUMBER;
84753 l_adr_transaction_coa_id NUMBER;
84754 l_adr_accounting_coa_id NUMBER;
84755 l_adr_flexfield_segment_code VARCHAR2(30);
84756 l_adr_flex_value_set_id NUMBER;
84757 l_adr_value_type_code VARCHAR2(30);
84758 l_adr_value_combination_id NUMBER;
84759 l_adr_value_segment_code VARCHAR2(30);
84760
84761 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
84762 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
84763 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
84764 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
84765
84766 -- 4262811 Variables ------------------------------------------------------------------------------------------
84767 l_entered_amt_idx NUMBER;
84768 l_accted_amt_idx NUMBER;
84769 l_acc_rev_flag VARCHAR2(1);
84770 l_accrual_line_num NUMBER;
84771 l_tmp_amt NUMBER;
84772 l_acc_rev_natural_side_code VARCHAR2(1);
84773
84774 l_num_entries NUMBER;
84775 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
84776 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
84777 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
84778 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
84779 l_recog_line_1 NUMBER;
84780 l_recog_line_2 NUMBER;
84781
84785
84782 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
84783 l_bflow_applied_to_amt NUMBER; -- 5132302
84784 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
84786 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84787
84788 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
84789 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
84790
84791 ---------------------------------------------------------------------------------------------------------------
84792
84793
84794 --
84795 -- bulk performance
84796 --
84797 l_balance_type_code VARCHAR2(1);
84798 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
84799 l_log_module VARCHAR2(240);
84800
84801 --
84802 -- Upgrade strategy
84803 --
84804 l_actual_upg_option VARCHAR2(1);
84805 l_enc_upg_option VARCHAR2(1);
84806
84807 --
84808 BEGIN
84809 --
84810 IF g_log_enabled THEN
84811 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
84812 END IF;
84813 --
84814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84815
84816 trace
84817 (p_msg => 'BEGIN of AcctLineType_150'
84818 ,p_level => C_LEVEL_PROCEDURE
84819 ,p_module => l_log_module);
84820
84821 END IF;
84822 --
84823 l_component_type := 'AMB_JLT';
84824 l_component_code := 'AP_TAX_EX_RATE_VAR_PMT';
84825 l_component_type_code := 'S';
84826 l_component_appl_id := 200;
84827 l_amb_context_code := 'DEFAULT';
84828 l_entity_code := 'AP_PAYMENTS';
84829 l_event_class_code := 'PAYMENTS';
84830 l_event_type_code := 'PAYMENTS_ALL';
84831 l_line_definition_owner_code := 'S';
84832 l_line_definition_code := 'CASH_PAYMENTS_ALL';
84833 --
84834 l_balance_type_code := 'A';
84835 l_segment := NULL;
84836 l_ccid := NULL;
84837 l_adr_transaction_coa_id := NULL;
84838 l_adr_accounting_coa_id := NULL;
84839 l_adr_flexfield_segment_code := NULL;
84840 l_adr_flex_value_set_id := NULL;
84841 l_adr_value_type_code := NULL;
84842 l_adr_value_combination_id := NULL;
84843 l_adr_value_segment_code := NULL;
84844
84845 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
84846 l_bflow_class_code := ''; -- 4219869 Business Flow
84847 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
84848 l_budgetary_control_flag := 'N';
84849
84850 l_bflow_applied_to_amt_idx := NULL; -- 5132302
84851 l_bflow_applied_to_amt := NULL; -- 5132302
84852 l_entered_amt_idx := NULL; -- 4262811
84853 l_accted_amt_idx := NULL; -- 4262811
84854 l_acc_rev_flag := NULL; -- 4262811
84855 l_accrual_line_num := NULL; -- 4262811
84856 l_tmp_amt := NULL; -- 4262811
84857 --
84858 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84859 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
84860 return;
84861 END IF;
84862
84863 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84864 l_balance_type_code <> 'B' THEN
84865 IF NVL(p_source_50,'
84866 ') <> 'CLEAR_CLEAR' AND
84867 NVL(p_source_51,'
84868 ') = 'TAX EXCHANGE RATE VARIANCE' AND
84869 NVL(p_source_111,'
84870 ') = 'Y' AND
84871 NVL(p_source_112,'
84872 ') <> 'INTEREST' AND
84873 NVL(p_source_71,'
84874 ') <> 'R'
84875 THEN
84876
84877 --
84878 XLA_AE_LINES_PKG.SetNewLine;
84879
84880 p_balance_type_code := l_balance_type_code;
84881 -- set the flag so later we will know whether the gain loss line needs to be created
84882
84883 IF(l_balance_type_code = 'A' ) THEN
84884 p_actual_flag :='G';
84885 END IF;
84886
84887 --
84888 -- bulk performance
84889 --
84890 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84891 p_header_num => 0); -- 4262811
84892 --
84893 -- set accounting line options
84894 --
84895 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84896 p_natural_side_code => 'D'
84897 , p_gain_or_loss_flag => 'Y'
84898 , p_gl_transfer_mode_code => 'S'
84899 , p_acct_entry_type_code => 'A'
84900 , p_switch_side_flag => 'Y'
84901 , p_merge_duplicate_code => 'A'
84902 );
84903 --
84904 l_acc_rev_natural_side_code := 'C'; -- 4262811
84905 --
84906 --
84907 -- set accounting line type info
84908 --
84909 xla_ae_lines_pkg.SetAcctLineType
84910 (p_component_type => l_component_type
84911 ,p_event_type_code => l_event_type_code
84912 ,p_line_definition_owner_code => l_line_definition_owner_code
84913 ,p_line_definition_code => l_line_definition_code
84917 ,p_amb_context_code => l_amb_context_code
84914 ,p_accounting_line_code => l_component_code
84915 ,p_accounting_line_type_code => l_component_type_code
84916 ,p_accounting_line_appl_id => l_component_appl_id
84918 ,p_entity_code => l_entity_code
84919 ,p_event_class_code => l_event_class_code);
84920 --
84921 -- set accounting class
84922 --
84923 xla_ae_lines_pkg.SetAcctClass(
84924 p_accounting_class_code => 'TERV'
84925 , p_ae_header_id => l_ae_header_id
84926 );
84927
84928 --
84929 -- set rounding class
84930 --
84931 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84932 'TERV';
84933
84934 --
84935 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84936 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84937 --
84938 -- bulk performance
84939 --
84940 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84941
84942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84943 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84944
84945 -- 4955764
84946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84948
84949 -- 4458381 Public Sector Enh
84950
84951 --
84952 -- set accounting attributes for the line type
84953 --
84954 l_entered_amt_idx := 10;
84955 l_accted_amt_idx := 15;
84956 l_bflow_applied_to_amt_idx := 2; -- 5132302
84957 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84958 l_rec_acct_attrs.array_char_value(1) := p_source_52;
84959 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84960 l_rec_acct_attrs.array_num_value(2) := p_source_72;
84961 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84962 l_rec_acct_attrs.array_num_value(3) := p_source_54;
84963 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84964 l_rec_acct_attrs.array_char_value(4) := p_source_73;
84965 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84966 l_rec_acct_attrs.array_char_value(5) := p_source_74;
84967 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84968 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
84969 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84970 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
84971 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84972 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
84973 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84974 l_rec_acct_attrs.array_char_value(9) := p_source_60;
84975 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84976 l_rec_acct_attrs.array_num_value(10) := p_source_53;
84977 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84978 l_rec_acct_attrs.array_char_value(11) := p_source_12;
84979 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84980 l_rec_acct_attrs.array_date_value(12) := p_source_121;
84981 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84982 l_rec_acct_attrs.array_num_value(13) := p_source_122;
84983 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84984 l_rec_acct_attrs.array_char_value(14) := p_source_123;
84985 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84986 l_rec_acct_attrs.array_num_value(15) := p_source_21;
84987 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84988 l_rec_acct_attrs.array_char_value(16) := p_source_64;
84989 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84990 l_rec_acct_attrs.array_num_value(17) := p_source_65;
84991 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84992 l_rec_acct_attrs.array_num_value(18) := p_source_66;
84993 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84994 l_rec_acct_attrs.array_char_value(19) := p_source_67;
84995 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84996 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
84997 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84998 l_rec_acct_attrs.array_char_value(21) := p_source_60;
84999 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
85000 l_rec_acct_attrs.array_num_value(22) := p_source_69;
85001 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
85002 l_rec_acct_attrs.array_num_value(23) := p_source_77;
85003 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
85004 l_rec_acct_attrs.array_num_value(24) := p_source_70;
85005
85006 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85007 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85008
85009 ---------------------------------------------------------------------------------------------------------------
85010 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85014 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85011 ---------------------------------------------------------------------------------------------------------------
85012 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85013
85015 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85016
85017 IF xla_accounting_cache_pkg.GetValueChar
85018 (p_source_code => 'LEDGER_CATEGORY_CODE'
85019 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85020 AND l_bflow_method_code = 'PRIOR_ENTRY'
85021 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85022 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85023 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85024 )
85025 THEN
85026 xla_ae_lines_pkg.BflowUpgEntry
85027 (p_business_method_code => l_bflow_method_code
85028 ,p_business_class_code => l_bflow_class_code
85029 ,p_balance_type => l_balance_type_code);
85030 ELSE
85031 NULL;
85032 -- No business flow processing for business flow method of NONE.
85033 END IF;
85034
85035 --
85036 -- call analytical criteria
85037 --
85038
85039 --
85040 -- call description
85041 --
85042 -- No description or it is inherited.
85043 --
85044 -- call ADRs
85045 -- Bug 4922099
85046 --
85047 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85048 (NVL(l_actual_upg_option, 'N') = 'O') OR
85049 (NVL(l_enc_upg_option, 'N') = 'O')
85050 )
85051 THEN
85052 NULL;
85053 --
85054 --
85055
85056 l_ccid := AcctDerRule_24(
85057 p_application_id => p_application_id
85058 , p_ae_header_id => l_ae_header_id
85059 , p_source_16 => p_source_16
85060 , p_source_16_meaning => p_source_16_meaning
85061 , p_source_17 => p_source_17
85062 , p_source_19 => p_source_19
85063 , p_source_19_meaning => p_source_19_meaning
85064 , p_source_20 => p_source_20
85065 , p_source_21 => p_source_21
85066 , p_source_22 => p_source_22
85067 , p_source_29 => p_source_29
85068 , p_source_42 => p_source_42
85069 , p_source_42_meaning => p_source_42_meaning
85070 , x_transaction_coa_id => l_adr_transaction_coa_id
85071 , x_accounting_coa_id => l_adr_accounting_coa_id
85072 , x_value_type_code => l_adr_value_type_code
85073 , p_side => 'NA'
85074 );
85075
85076 xla_ae_lines_pkg.set_ccid(
85077 p_code_combination_id => l_ccid
85078 , p_value_type_code => l_adr_value_type_code
85079 , p_transaction_coa_id => l_adr_transaction_coa_id
85080 , p_accounting_coa_id => l_adr_accounting_coa_id
85081 , p_adr_code => 'AP_ERV_TAXERV_CASH'
85082 , p_adr_type_code => 'S'
85083 , p_component_type => l_component_type
85084 , p_component_code => l_component_code
85085 , p_component_type_code => l_component_type_code
85086 , p_component_appl_id => l_component_appl_id
85087 , p_amb_context_code => l_amb_context_code
85088 , p_side => 'NA'
85089 );
85090
85091
85092 l_segment := AcctDerRule_6(
85093 p_application_id => p_application_id
85094 , p_ae_header_id => l_ae_header_id
85095 , p_source_16 => p_source_16
85096 , p_source_16_meaning => p_source_16_meaning
85097 , p_source_17 => p_source_17
85098 , p_source_19 => p_source_19
85099 , p_source_19_meaning => p_source_19_meaning
85100 , p_source_20 => p_source_20
85101 , p_source_21 => p_source_21
85102 , p_source_22 => p_source_22
85103 , x_transaction_coa_id => l_adr_transaction_coa_id
85104 , x_accounting_coa_id => l_adr_accounting_coa_id
85105 , x_flexfield_segment_code => l_adr_flexfield_segment_code
85106 , x_flex_value_set_id => l_adr_flex_value_set_id
85107 , x_value_type_code => l_adr_value_type_code
85108 , x_value_combination_id => l_adr_value_combination_id
85109 , x_value_segment_code => l_adr_value_segment_code
85110 , p_side => 'NA'
85111 , p_override_seg_flag => 'Y'
85112 );
85113
85114 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
85115
85116 xla_ae_lines_pkg.set_segment(
85117 p_to_segment_code => 'GL_ACCOUNT'
85118 , p_segment_value => l_segment
85119 , p_from_segment_code => l_adr_value_segment_code
85120 , p_from_combination_id => l_adr_value_combination_id
85121 , p_value_type_code => l_adr_value_type_code
85122 , p_transaction_coa_id => l_adr_transaction_coa_id
85123 , p_accounting_coa_id => l_adr_accounting_coa_id
85124 , p_flexfield_segment_code => l_adr_flexfield_segment_code
85125 , p_flex_value_set_id => l_adr_flex_value_set_id
85126 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85127 , p_adr_type_code => 'S'
85128 , p_component_type => l_component_type
85132 , p_amb_context_code => l_amb_context_code
85129 , p_component_code => l_component_code
85130 , p_component_type_code => l_component_type_code
85131 , p_component_appl_id => l_component_appl_id
85133 , p_entity_code => 'AP_PAYMENTS'
85134 , p_event_class_code => 'PAYMENTS'
85135 , p_side => 'NA'
85136 );
85137
85138 END IF;
85139
85140 l_segment := AcctDerRule_17(
85141 p_application_id => p_application_id
85142 , p_ae_header_id => l_ae_header_id
85143 , p_source_16 => p_source_16
85144 , p_source_16_meaning => p_source_16_meaning
85145 , p_source_19 => p_source_19
85146 , p_source_19_meaning => p_source_19_meaning
85147 , p_source_29 => p_source_29
85148 , x_transaction_coa_id => l_adr_transaction_coa_id
85149 , x_accounting_coa_id => l_adr_accounting_coa_id
85150 , x_flexfield_segment_code => l_adr_flexfield_segment_code
85151 , x_flex_value_set_id => l_adr_flex_value_set_id
85152 , x_value_type_code => l_adr_value_type_code
85153 , x_value_combination_id => l_adr_value_combination_id
85154 , x_value_segment_code => l_adr_value_segment_code
85155 , p_side => 'NA'
85156 , p_override_seg_flag => 'Y'
85157 );
85158
85159 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
85160
85161 xla_ae_lines_pkg.set_segment(
85162 p_to_segment_code => 'GL_BALANCING'
85163 , p_segment_value => l_segment
85164 , p_from_segment_code => l_adr_value_segment_code
85165 , p_from_combination_id => l_adr_value_combination_id
85166 , p_value_type_code => l_adr_value_type_code
85167 , p_transaction_coa_id => l_adr_transaction_coa_id
85168 , p_accounting_coa_id => l_adr_accounting_coa_id
85169 , p_flexfield_segment_code => l_adr_flexfield_segment_code
85170 , p_flex_value_set_id => l_adr_flex_value_set_id
85171 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
85172 , p_adr_type_code => 'S'
85173 , p_component_type => l_component_type
85174 , p_component_code => l_component_code
85175 , p_component_type_code => l_component_type_code
85176 , p_component_appl_id => l_component_appl_id
85177 , p_amb_context_code => l_amb_context_code
85178 , p_entity_code => 'AP_PAYMENTS'
85179 , p_event_class_code => 'PAYMENTS'
85180 , p_side => 'NA'
85181 );
85182
85183 END IF;
85184
85185 --
85186 --
85187 END IF;
85188 --
85189 -- Bug 4922099
85190 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85191 (NVL(l_enc_upg_option, 'N') = 'O')
85192 ) AND
85193 (l_bflow_method_code = 'PRIOR_ENTRY')
85194 )
85195 THEN
85196 IF
85197 --
85198 1 = 2
85199 --
85200 THEN
85201 xla_accounting_err_pkg.build_message
85202 (p_appli_s_name => 'XLA'
85203 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85204 ,p_token_1 => 'LINE_NUMBER'
85205 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
85206 ,p_token_2 => 'LINE_TYPE_NAME'
85207 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
85208 l_component_type
85209 ,l_component_code
85210 ,l_component_type_code
85211 ,l_component_appl_id
85212 ,l_amb_context_code
85213 ,l_entity_code
85214 ,l_event_class_code
85215 )
85216 ,p_token_3 => 'OWNER'
85217 ,p_value_3 => xla_lookups_pkg.get_meaning(
85218 p_lookup_type => 'XLA_OWNER_TYPE'
85219 ,p_lookup_code => l_component_type_code
85220 )
85221 ,p_token_4 => 'PRODUCT_NAME'
85222 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85223 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85224 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85225 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85226 ,p_ae_header_id => NULL
85227 );
85228
85229 IF (C_LEVEL_ERROR>= g_log_level) THEN
85233 ,p_module => l_log_module);
85230 trace
85231 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85232 ,p_level => C_LEVEL_ERROR
85234 END IF;
85235 END IF;
85236 END IF;
85237 --
85238 --
85239 ------------------------------------------------------------------------------------------------
85240 -- 4219869 Business Flow
85241 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85242 -- Prior Entry. Currently, the following code is always generated.
85243 ------------------------------------------------------------------------------------------------
85244 XLA_AE_LINES_PKG.ValidateCurrentLine;
85245
85246 ------------------------------------------------------------------------------------
85247 -- 4219869 Business Flow
85248 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85249 ------------------------------------------------------------------------------------
85250 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85251
85252 ----------------------------------------------------------------------------------
85253 -- 4219869 Business Flow
85254 -- Update journal entry status -- Need to generate this within IF <condition>
85255 ----------------------------------------------------------------------------------
85256 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85257 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85258 ,p_balance_type_code => l_balance_type_code
85259 );
85260
85261 -------------------------------------------------------------------------------------------
85262 -- 4262811 - Generate the Accrual Reversal lines
85263 -------------------------------------------------------------------------------------------
85264 BEGIN
85265 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85266 (g_array_event(p_event_id).array_value_num('header_index'));
85267 IF l_acc_rev_flag IS NULL THEN
85268 l_acc_rev_flag := 'N';
85269 END IF;
85270 EXCEPTION
85271 WHEN OTHERS THEN
85272 l_acc_rev_flag := 'N';
85273 END;
85274 --
85275 IF (l_acc_rev_flag = 'Y') THEN
85276
85277 -- 4645092 ------------------------------------------------------------------------------
85278 -- To allow MPA report to determine if it should generate report process
85279 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85280 ------------------------------------------------------------------------------------------
85281
85282 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85283 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85284 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
85285 -- call ADRs
85286 -- Bug 4922099
85287 --
85288 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85289 (NVL(l_actual_upg_option, 'N') = 'O') OR
85290 (NVL(l_enc_upg_option, 'N') = 'O')
85291 )
85292 THEN
85293 NULL;
85294 --
85295 --
85296
85297 l_ccid := AcctDerRule_24(
85298 p_application_id => p_application_id
85299 , p_ae_header_id => l_ae_header_id
85300 , p_source_16 => p_source_16
85301 , p_source_16_meaning => p_source_16_meaning
85302 , p_source_17 => p_source_17
85303 , p_source_19 => p_source_19
85304 , p_source_19_meaning => p_source_19_meaning
85305 , p_source_20 => p_source_20
85306 , p_source_21 => p_source_21
85307 , p_source_22 => p_source_22
85308 , p_source_29 => p_source_29
85309 , p_source_42 => p_source_42
85310 , p_source_42_meaning => p_source_42_meaning
85311 , x_transaction_coa_id => l_adr_transaction_coa_id
85312 , x_accounting_coa_id => l_adr_accounting_coa_id
85313 , x_value_type_code => l_adr_value_type_code
85314 , p_side => 'NA'
85315 );
85316
85317 xla_ae_lines_pkg.set_ccid(
85318 p_code_combination_id => l_ccid
85319 , p_value_type_code => l_adr_value_type_code
85320 , p_transaction_coa_id => l_adr_transaction_coa_id
85321 , p_accounting_coa_id => l_adr_accounting_coa_id
85322 , p_adr_code => 'AP_ERV_TAXERV_CASH'
85323 , p_adr_type_code => 'S'
85324 , p_component_type => l_component_type
85325 , p_component_code => l_component_code
85326 , p_component_type_code => l_component_type_code
85327 , p_component_appl_id => l_component_appl_id
85328 , p_amb_context_code => l_amb_context_code
85329 , p_side => 'NA'
85330 );
85331
85332
85333 l_segment := AcctDerRule_6(
85334 p_application_id => p_application_id
85335 , p_ae_header_id => l_ae_header_id
85336 , p_source_16 => p_source_16
85337 , p_source_16_meaning => p_source_16_meaning
85338 , p_source_17 => p_source_17
85339 , p_source_19 => p_source_19
85340 , p_source_19_meaning => p_source_19_meaning
85341 , p_source_20 => p_source_20
85342 , p_source_21 => p_source_21
85343 , p_source_22 => p_source_22
85344 , x_transaction_coa_id => l_adr_transaction_coa_id
85345 , x_accounting_coa_id => l_adr_accounting_coa_id
85349 , x_value_combination_id => l_adr_value_combination_id
85346 , x_flexfield_segment_code => l_adr_flexfield_segment_code
85347 , x_flex_value_set_id => l_adr_flex_value_set_id
85348 , x_value_type_code => l_adr_value_type_code
85350 , x_value_segment_code => l_adr_value_segment_code
85351 , p_side => 'NA'
85352 , p_override_seg_flag => 'Y'
85353 );
85354
85355 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
85356
85357 xla_ae_lines_pkg.set_segment(
85358 p_to_segment_code => 'GL_ACCOUNT'
85359 , p_segment_value => l_segment
85360 , p_from_segment_code => l_adr_value_segment_code
85361 , p_from_combination_id => l_adr_value_combination_id
85362 , p_value_type_code => l_adr_value_type_code
85363 , p_transaction_coa_id => l_adr_transaction_coa_id
85364 , p_accounting_coa_id => l_adr_accounting_coa_id
85365 , p_flexfield_segment_code => l_adr_flexfield_segment_code
85366 , p_flex_value_set_id => l_adr_flex_value_set_id
85367 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85368 , p_adr_type_code => 'S'
85369 , p_component_type => l_component_type
85370 , p_component_code => l_component_code
85371 , p_component_type_code => l_component_type_code
85372 , p_component_appl_id => l_component_appl_id
85373 , p_amb_context_code => l_amb_context_code
85374 , p_entity_code => 'AP_PAYMENTS'
85375 , p_event_class_code => 'PAYMENTS'
85376 , p_side => 'NA'
85377 );
85378
85379 END IF;
85380
85381 l_segment := AcctDerRule_17(
85382 p_application_id => p_application_id
85383 , p_ae_header_id => l_ae_header_id
85384 , p_source_16 => p_source_16
85385 , p_source_16_meaning => p_source_16_meaning
85386 , p_source_19 => p_source_19
85387 , p_source_19_meaning => p_source_19_meaning
85388 , p_source_29 => p_source_29
85389 , x_transaction_coa_id => l_adr_transaction_coa_id
85390 , x_accounting_coa_id => l_adr_accounting_coa_id
85391 , x_flexfield_segment_code => l_adr_flexfield_segment_code
85392 , x_flex_value_set_id => l_adr_flex_value_set_id
85393 , x_value_type_code => l_adr_value_type_code
85394 , x_value_combination_id => l_adr_value_combination_id
85395 , x_value_segment_code => l_adr_value_segment_code
85396 , p_side => 'NA'
85397 , p_override_seg_flag => 'Y'
85398 );
85399
85400 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
85401
85402 xla_ae_lines_pkg.set_segment(
85403 p_to_segment_code => 'GL_BALANCING'
85404 , p_segment_value => l_segment
85405 , p_from_segment_code => l_adr_value_segment_code
85406 , p_from_combination_id => l_adr_value_combination_id
85407 , p_value_type_code => l_adr_value_type_code
85408 , p_transaction_coa_id => l_adr_transaction_coa_id
85409 , p_accounting_coa_id => l_adr_accounting_coa_id
85410 , p_flexfield_segment_code => l_adr_flexfield_segment_code
85411 , p_flex_value_set_id => l_adr_flex_value_set_id
85412 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
85413 , p_adr_type_code => 'S'
85414 , p_component_type => l_component_type
85415 , p_component_code => l_component_code
85416 , p_component_type_code => l_component_type_code
85417 , p_component_appl_id => l_component_appl_id
85418 , p_amb_context_code => l_amb_context_code
85419 , p_entity_code => 'AP_PAYMENTS'
85420 , p_event_class_code => 'PAYMENTS'
85421 , p_side => 'NA'
85422 );
85423
85424 END IF;
85425
85426 --
85427 --
85428 END IF;
85429
85430 --
85431 -- Update the line information that should be overwritten
85432 --
85433 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85434 p_header_num => 1);
85435 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
85436
85437 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85438
85439 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
85440 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85441 END IF;
85442
85443 --
85444 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85445 --
85446 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85447 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
85448 ELSE
85449 ---------------------------------------------------------------------------------------------------
85450 -- 4262811a Switch Sign
85451 ---------------------------------------------------------------------------------------------------
85455 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85452 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
85453 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85454 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85456 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85457 -- 5132302
85458 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85459 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85460
85461 END IF;
85462
85463 -- 4955764
85464 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85465 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85466
85467
85468 XLA_AE_LINES_PKG.ValidateCurrentLine;
85469 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85470
85471 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85472 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85473 ,p_balance_type_code => l_balance_type_code);
85474
85475 END IF;
85476
85477 -----------------------------------------------------------------------------------------
85478 -- 4262811 Multiperiod Accounting
85479 -----------------------------------------------------------------------------------------
85480 -- No MPA option is assigned.
85481
85482
85483 END IF;
85484 END IF;
85485 --
85486
85487 --
85488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85489 trace
85490 (p_msg => 'END of AcctLineType_150'
85491 ,p_level => C_LEVEL_PROCEDURE
85492 ,p_module => l_log_module);
85493 END IF;
85494 --
85495 EXCEPTION
85496 WHEN xla_exceptions_pkg.application_exception THEN
85497 RAISE;
85498 WHEN OTHERS THEN
85499 xla_exceptions_pkg.raise_message
85500 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_150');
85501 END AcctLineType_150;
85502 --
85503
85504 ---------------------------------------
85505 --
85506 -- PRIVATE FUNCTION
85507 -- AcctLineType_151
85508 --
85509 ---------------------------------------
85510 PROCEDURE AcctLineType_151 (
85511 p_application_id IN NUMBER
85512 ,p_event_id IN NUMBER
85513 ,p_calculate_acctd_flag IN VARCHAR2
85514 ,p_calculate_g_l_flag IN VARCHAR2
85515 ,p_actual_flag IN OUT VARCHAR2
85516 ,p_balance_type_code OUT VARCHAR2
85517 ,p_gain_or_loss_ref OUT VARCHAR2
85518
85519 --Payment Currency Code
85520 , p_source_12 IN VARCHAR2
85521 --Automatic Offsets Value
85522 , p_source_16 IN VARCHAR2
85523 , p_source_16_meaning IN VARCHAR2
85524 --Purchase Order Rate Variance Gain Account
85525 , p_source_17 IN NUMBER
85526 --Destination Type of the PO Distribution
85527 , p_source_19 IN VARCHAR2
85528 , p_source_19_meaning IN VARCHAR2
85529 --Purchase Order Rate Variance Loss Account
85530 , p_source_20 IN NUMBER
85531 --Payment Distribution (Payment Rate) Ledger Amount
85532 , p_source_21 IN NUMBER
85533 --Payment Distribution (Cleared Rate) Ledger Amount
85534 , p_source_22 IN NUMBER
85535 --Invoice Distribution Account
85536 , p_source_29 IN NUMBER
85537 --Automatic Offsets Flag
85538 , p_source_42 IN VARCHAR2
85539 , p_source_42_meaning IN VARCHAR2
85540 --When to Account for Payment Option
85541 , p_source_50 IN VARCHAR2
85542 --Payment Distribution Type
85543 , p_source_51 IN VARCHAR2
85544 , p_source_51_meaning IN VARCHAR2
85545 --Accounting Reversal Indicator
85546 , p_source_52 IN VARCHAR2
85547 --Payment Distribution Amount
85548 , p_source_53 IN NUMBER
85549 --Business Flow Accounts Payable Application Identifier
85550 , p_source_54 IN NUMBER
85551 --Payment Distribution Identifier
85552 , p_source_59 IN NUMBER
85553 --Distribution Link Type
85554 , p_source_60 IN VARCHAR2
85555 --Override Accounted Amount Indicator
85556 , p_source_64 IN VARCHAR2
85557 , p_source_64_meaning IN VARCHAR2
85558 --Payment Supplier Identifier
85559 , p_source_65 IN NUMBER
85560 --Payment Supplier Site Identifier
85561 , p_source_66 IN NUMBER
85562 --Third Party Type
85563 , p_source_67 IN VARCHAR2
85564 --Payment Distribution Reversed Identifier
85565 , p_source_68 IN NUMBER
85566 --Invoice Distribution Tax Line Identifier
85567 , p_source_69 IN NUMBER
85568 --Invoice Distribution Summary Tax Line Identifier
85569 , p_source_70 IN NUMBER
85570 --Payment Type
85571 , p_source_71 IN VARCHAR2
85572 , p_source_71_meaning IN VARCHAR2
85573 --Business Flow Invoice Distribution Type
85574 , p_source_73 IN VARCHAR2
85575 --Business Flow Invoice Entity Code
85576 , p_source_74 IN VARCHAR2
85577 --Business Flow Invoice Distribution Identifier
85578 , p_source_75 IN NUMBER
85579 --Business Flow Invoice Identifier
85583 --Accrue on Receipt Option
85580 , p_source_76 IN NUMBER
85581 --Invoice Distribution Tax Distribution Identifier from Tax
85582 , p_source_77 IN NUMBER
85584 , p_source_111 IN VARCHAR2
85585 , p_source_111_meaning IN VARCHAR2
85586 --Payment Exchange Date
85587 , p_source_121 IN DATE
85588 --Payment Exchange Rate
85589 , p_source_122 IN NUMBER
85590 --Payment Exchange Rate Type
85591 , p_source_123 IN VARCHAR2
85592 )
85593 IS
85594
85595 l_component_type VARCHAR2(80);
85596 l_component_code VARCHAR2(30);
85597 l_component_type_code VARCHAR2(1);
85598 l_component_appl_id INTEGER;
85599 l_amb_context_code VARCHAR2(30);
85600 l_entity_code VARCHAR2(30);
85601 l_event_class_code VARCHAR2(30);
85602 l_ae_header_id NUMBER;
85603 l_event_type_code VARCHAR2(30);
85604 l_line_definition_code VARCHAR2(30);
85605 l_line_definition_owner_code VARCHAR2(1);
85606 --
85607 -- adr variables
85608 l_segment VARCHAR2(30);
85609 l_ccid NUMBER;
85610 l_adr_transaction_coa_id NUMBER;
85611 l_adr_accounting_coa_id NUMBER;
85612 l_adr_flexfield_segment_code VARCHAR2(30);
85613 l_adr_flex_value_set_id NUMBER;
85614 l_adr_value_type_code VARCHAR2(30);
85615 l_adr_value_combination_id NUMBER;
85616 l_adr_value_segment_code VARCHAR2(30);
85617
85618 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
85619 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
85620 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
85621 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
85622
85623 -- 4262811 Variables ------------------------------------------------------------------------------------------
85624 l_entered_amt_idx NUMBER;
85625 l_accted_amt_idx NUMBER;
85626 l_acc_rev_flag VARCHAR2(1);
85627 l_accrual_line_num NUMBER;
85628 l_tmp_amt NUMBER;
85629 l_acc_rev_natural_side_code VARCHAR2(1);
85630
85631 l_num_entries NUMBER;
85632 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
85633 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
85634 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
85635 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
85636 l_recog_line_1 NUMBER;
85637 l_recog_line_2 NUMBER;
85638
85639 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
85640 l_bflow_applied_to_amt NUMBER; -- 5132302
85641 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
85642
85643 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85644
85645 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
85646 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
85647
85648 ---------------------------------------------------------------------------------------------------------------
85649
85650
85651 --
85652 -- bulk performance
85653 --
85654 l_balance_type_code VARCHAR2(1);
85655 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
85656 l_log_module VARCHAR2(240);
85657
85658 --
85659 -- Upgrade strategy
85660 --
85661 l_actual_upg_option VARCHAR2(1);
85662 l_enc_upg_option VARCHAR2(1);
85663
85664 --
85665 BEGIN
85666 --
85667 IF g_log_enabled THEN
85668 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
85669 END IF;
85670 --
85671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85672
85673 trace
85674 (p_msg => 'BEGIN of AcctLineType_151'
85675 ,p_level => C_LEVEL_PROCEDURE
85676 ,p_module => l_log_module);
85677
85678 END IF;
85679 --
85680 l_component_type := 'AMB_JLT';
85681 l_component_code := 'AP_TAX_EX_RATE_VAR_REF';
85682 l_component_type_code := 'S';
85683 l_component_appl_id := 200;
85684 l_amb_context_code := 'DEFAULT';
85685 l_entity_code := 'AP_PAYMENTS';
85686 l_event_class_code := 'REFUNDS';
85687 l_event_type_code := 'REFUNDS_ALL';
85688 l_line_definition_owner_code := 'S';
85689 l_line_definition_code := 'CASH_REFUNDS_ALL';
85690 --
85691 l_balance_type_code := 'A';
85692 l_segment := NULL;
85693 l_ccid := NULL;
85694 l_adr_transaction_coa_id := NULL;
85695 l_adr_accounting_coa_id := NULL;
85696 l_adr_flexfield_segment_code := NULL;
85697 l_adr_flex_value_set_id := NULL;
85698 l_adr_value_type_code := NULL;
85699 l_adr_value_combination_id := NULL;
85700 l_adr_value_segment_code := NULL;
85701
85702 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
85703 l_bflow_class_code := ''; -- 4219869 Business Flow
85704 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
85705 l_budgetary_control_flag := 'N';
85706
85707 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85711 l_acc_rev_flag := NULL; -- 4262811
85708 l_bflow_applied_to_amt := NULL; -- 5132302
85709 l_entered_amt_idx := NULL; -- 4262811
85710 l_accted_amt_idx := NULL; -- 4262811
85712 l_accrual_line_num := NULL; -- 4262811
85713 l_tmp_amt := NULL; -- 4262811
85714 --
85715 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85716 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
85717 return;
85718 END IF;
85719
85720 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85721 l_balance_type_code <> 'B' THEN
85722 IF NVL(p_source_50,'
85723 ') <> 'CLEAR_CLEAR' AND
85724 NVL(p_source_51,'
85725 ') = 'TAX EXCHANGE RATE VARIANCE' AND
85726 NVL(p_source_111,'
85727 ') = 'Y' AND
85728 NVL(p_source_71,'
85729 ') = 'R'
85730 THEN
85731
85732 --
85733 XLA_AE_LINES_PKG.SetNewLine;
85734
85735 p_balance_type_code := l_balance_type_code;
85736 -- set the flag so later we will know whether the gain loss line needs to be created
85737
85738 IF(l_balance_type_code = 'A' ) THEN
85739 p_actual_flag :='G';
85740 END IF;
85741
85742 --
85743 -- bulk performance
85744 --
85745 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85746 p_header_num => 0); -- 4262811
85747 --
85748 -- set accounting line options
85749 --
85750 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85751 p_natural_side_code => 'D'
85752 , p_gain_or_loss_flag => 'Y'
85753 , p_gl_transfer_mode_code => 'S'
85754 , p_acct_entry_type_code => 'A'
85755 , p_switch_side_flag => 'Y'
85756 , p_merge_duplicate_code => 'A'
85757 );
85758 --
85759 l_acc_rev_natural_side_code := 'C'; -- 4262811
85760 --
85761 --
85762 -- set accounting line type info
85763 --
85764 xla_ae_lines_pkg.SetAcctLineType
85765 (p_component_type => l_component_type
85766 ,p_event_type_code => l_event_type_code
85767 ,p_line_definition_owner_code => l_line_definition_owner_code
85768 ,p_line_definition_code => l_line_definition_code
85769 ,p_accounting_line_code => l_component_code
85770 ,p_accounting_line_type_code => l_component_type_code
85771 ,p_accounting_line_appl_id => l_component_appl_id
85772 ,p_amb_context_code => l_amb_context_code
85773 ,p_entity_code => l_entity_code
85774 ,p_event_class_code => l_event_class_code);
85775 --
85776 -- set accounting class
85777 --
85778 xla_ae_lines_pkg.SetAcctClass(
85779 p_accounting_class_code => 'TERV'
85780 , p_ae_header_id => l_ae_header_id
85781 );
85782
85783 --
85784 -- set rounding class
85785 --
85786 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85787 'TERV';
85788
85789 --
85790 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85791 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85792 --
85793 -- bulk performance
85794 --
85795 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85796
85797 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85798 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85799
85800 -- 4955764
85801 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85802 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85803
85804 -- 4458381 Public Sector Enh
85805
85806 --
85807 -- set accounting attributes for the line type
85808 --
85809 l_entered_amt_idx := 9;
85810 l_accted_amt_idx := 14;
85811 l_bflow_applied_to_amt_idx := NULL; -- 5132302
85812 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85813 l_rec_acct_attrs.array_char_value(1) := p_source_52;
85814 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
85815 l_rec_acct_attrs.array_num_value(2) := p_source_54;
85816 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85817 l_rec_acct_attrs.array_char_value(3) := p_source_73;
85818 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
85819 l_rec_acct_attrs.array_char_value(4) := p_source_74;
85820 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
85821 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
85822 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85823 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
85824 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
85825 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
85826 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
85827 l_rec_acct_attrs.array_char_value(8) := p_source_60;
85831 l_rec_acct_attrs.array_char_value(10) := p_source_12;
85828 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
85829 l_rec_acct_attrs.array_num_value(9) := p_source_53;
85830 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
85832 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
85833 l_rec_acct_attrs.array_date_value(11) := p_source_121;
85834 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
85835 l_rec_acct_attrs.array_num_value(12) := p_source_122;
85836 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
85837 l_rec_acct_attrs.array_char_value(13) := p_source_123;
85838 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
85839 l_rec_acct_attrs.array_num_value(14) := p_source_21;
85840 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
85841 l_rec_acct_attrs.array_char_value(15) := p_source_64;
85842 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
85843 l_rec_acct_attrs.array_num_value(16) := p_source_65;
85844 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
85845 l_rec_acct_attrs.array_num_value(17) := p_source_66;
85846 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
85847 l_rec_acct_attrs.array_char_value(18) := p_source_67;
85848 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
85849 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
85850 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
85851 l_rec_acct_attrs.array_char_value(20) := p_source_60;
85852 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
85853 l_rec_acct_attrs.array_num_value(21) := p_source_69;
85854 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
85855 l_rec_acct_attrs.array_num_value(22) := p_source_77;
85856 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
85857 l_rec_acct_attrs.array_num_value(23) := p_source_70;
85858
85859 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85860 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85861
85862 ---------------------------------------------------------------------------------------------------------------
85863 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85864 ---------------------------------------------------------------------------------------------------------------
85865 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85866
85867 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85868 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85869
85870 IF xla_accounting_cache_pkg.GetValueChar
85871 (p_source_code => 'LEDGER_CATEGORY_CODE'
85872 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85873 AND l_bflow_method_code = 'PRIOR_ENTRY'
85874 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85875 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85876 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85877 )
85878 THEN
85879 xla_ae_lines_pkg.BflowUpgEntry
85880 (p_business_method_code => l_bflow_method_code
85881 ,p_business_class_code => l_bflow_class_code
85882 ,p_balance_type => l_balance_type_code);
85883 ELSE
85884 NULL;
85885 -- No business flow processing for business flow method of NONE.
85886 END IF;
85887
85888 --
85889 -- call analytical criteria
85890 --
85891
85892 --
85893 -- call description
85894 --
85895 -- No description or it is inherited.
85896 --
85897 -- call ADRs
85898 -- Bug 4922099
85899 --
85900 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85901 (NVL(l_actual_upg_option, 'N') = 'O') OR
85902 (NVL(l_enc_upg_option, 'N') = 'O')
85903 )
85904 THEN
85905 NULL;
85906 --
85907 --
85908
85909 l_ccid := AcctDerRule_24(
85910 p_application_id => p_application_id
85911 , p_ae_header_id => l_ae_header_id
85912 , p_source_16 => p_source_16
85913 , p_source_16_meaning => p_source_16_meaning
85914 , p_source_17 => p_source_17
85915 , p_source_19 => p_source_19
85916 , p_source_19_meaning => p_source_19_meaning
85917 , p_source_20 => p_source_20
85918 , p_source_21 => p_source_21
85919 , p_source_22 => p_source_22
85920 , p_source_29 => p_source_29
85921 , p_source_42 => p_source_42
85922 , p_source_42_meaning => p_source_42_meaning
85923 , x_transaction_coa_id => l_adr_transaction_coa_id
85924 , x_accounting_coa_id => l_adr_accounting_coa_id
85925 , x_value_type_code => l_adr_value_type_code
85926 , p_side => 'NA'
85927 );
85928
85929 xla_ae_lines_pkg.set_ccid(
85930 p_code_combination_id => l_ccid
85931 , p_value_type_code => l_adr_value_type_code
85932 , p_transaction_coa_id => l_adr_transaction_coa_id
85933 , p_accounting_coa_id => l_adr_accounting_coa_id
85934 , p_adr_code => 'AP_ERV_TAXERV_CASH'
85935 , p_adr_type_code => 'S'
85936 , p_component_type => l_component_type
85937 , p_component_code => l_component_code
85941 , p_side => 'NA'
85938 , p_component_type_code => l_component_type_code
85939 , p_component_appl_id => l_component_appl_id
85940 , p_amb_context_code => l_amb_context_code
85942 );
85943
85944
85945 l_segment := AcctDerRule_6(
85946 p_application_id => p_application_id
85947 , p_ae_header_id => l_ae_header_id
85948 , p_source_16 => p_source_16
85949 , p_source_16_meaning => p_source_16_meaning
85950 , p_source_17 => p_source_17
85951 , p_source_19 => p_source_19
85952 , p_source_19_meaning => p_source_19_meaning
85953 , p_source_20 => p_source_20
85954 , p_source_21 => p_source_21
85955 , p_source_22 => p_source_22
85956 , x_transaction_coa_id => l_adr_transaction_coa_id
85957 , x_accounting_coa_id => l_adr_accounting_coa_id
85958 , x_flexfield_segment_code => l_adr_flexfield_segment_code
85959 , x_flex_value_set_id => l_adr_flex_value_set_id
85960 , x_value_type_code => l_adr_value_type_code
85961 , x_value_combination_id => l_adr_value_combination_id
85962 , x_value_segment_code => l_adr_value_segment_code
85963 , p_side => 'NA'
85964 , p_override_seg_flag => 'Y'
85965 );
85966
85967 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
85968
85969 xla_ae_lines_pkg.set_segment(
85970 p_to_segment_code => 'GL_ACCOUNT'
85971 , p_segment_value => l_segment
85972 , p_from_segment_code => l_adr_value_segment_code
85973 , p_from_combination_id => l_adr_value_combination_id
85974 , p_value_type_code => l_adr_value_type_code
85975 , p_transaction_coa_id => l_adr_transaction_coa_id
85976 , p_accounting_coa_id => l_adr_accounting_coa_id
85977 , p_flexfield_segment_code => l_adr_flexfield_segment_code
85978 , p_flex_value_set_id => l_adr_flex_value_set_id
85979 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
85980 , p_adr_type_code => 'S'
85981 , p_component_type => l_component_type
85982 , p_component_code => l_component_code
85983 , p_component_type_code => l_component_type_code
85984 , p_component_appl_id => l_component_appl_id
85985 , p_amb_context_code => l_amb_context_code
85986 , p_entity_code => 'AP_PAYMENTS'
85987 , p_event_class_code => 'REFUNDS'
85988 , p_side => 'NA'
85989 );
85990
85991 END IF;
85992
85993 l_segment := AcctDerRule_17(
85994 p_application_id => p_application_id
85995 , p_ae_header_id => l_ae_header_id
85996 , p_source_16 => p_source_16
85997 , p_source_16_meaning => p_source_16_meaning
85998 , p_source_19 => p_source_19
85999 , p_source_19_meaning => p_source_19_meaning
86000 , p_source_29 => p_source_29
86001 , x_transaction_coa_id => l_adr_transaction_coa_id
86002 , x_accounting_coa_id => l_adr_accounting_coa_id
86003 , x_flexfield_segment_code => l_adr_flexfield_segment_code
86004 , x_flex_value_set_id => l_adr_flex_value_set_id
86005 , x_value_type_code => l_adr_value_type_code
86006 , x_value_combination_id => l_adr_value_combination_id
86007 , x_value_segment_code => l_adr_value_segment_code
86008 , p_side => 'NA'
86009 , p_override_seg_flag => 'Y'
86010 );
86011
86012 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
86013
86014 xla_ae_lines_pkg.set_segment(
86015 p_to_segment_code => 'GL_BALANCING'
86016 , p_segment_value => l_segment
86017 , p_from_segment_code => l_adr_value_segment_code
86018 , p_from_combination_id => l_adr_value_combination_id
86019 , p_value_type_code => l_adr_value_type_code
86020 , p_transaction_coa_id => l_adr_transaction_coa_id
86021 , p_accounting_coa_id => l_adr_accounting_coa_id
86022 , p_flexfield_segment_code => l_adr_flexfield_segment_code
86023 , p_flex_value_set_id => l_adr_flex_value_set_id
86024 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
86025 , p_adr_type_code => 'S'
86026 , p_component_type => l_component_type
86027 , p_component_code => l_component_code
86028 , p_component_type_code => l_component_type_code
86029 , p_component_appl_id => l_component_appl_id
86030 , p_amb_context_code => l_amb_context_code
86031 , p_entity_code => 'AP_PAYMENTS'
86032 , p_event_class_code => 'REFUNDS'
86033 , p_side => 'NA'
86034 );
86035
86036 END IF;
86037
86038 --
86039 --
86040 END IF;
86041 --
86042 -- Bug 4922099
86043 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86044 (NVL(l_enc_upg_option, 'N') = 'O')
86045 ) AND
86046 (l_bflow_method_code = 'PRIOR_ENTRY')
86047 )
86048 THEN
86049 IF
86050 --
86051 1 = 2
86052 --
86053 THEN
86054 xla_accounting_err_pkg.build_message
86055 (p_appli_s_name => 'XLA'
86059 ,p_token_2 => 'LINE_TYPE_NAME'
86056 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86057 ,p_token_1 => 'LINE_NUMBER'
86058 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
86060 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
86061 l_component_type
86062 ,l_component_code
86063 ,l_component_type_code
86064 ,l_component_appl_id
86065 ,l_amb_context_code
86066 ,l_entity_code
86067 ,l_event_class_code
86068 )
86069 ,p_token_3 => 'OWNER'
86070 ,p_value_3 => xla_lookups_pkg.get_meaning(
86071 p_lookup_type => 'XLA_OWNER_TYPE'
86072 ,p_lookup_code => l_component_type_code
86073 )
86074 ,p_token_4 => 'PRODUCT_NAME'
86075 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86076 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86077 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86078 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86079 ,p_ae_header_id => NULL
86080 );
86081
86082 IF (C_LEVEL_ERROR>= g_log_level) THEN
86083 trace
86084 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86085 ,p_level => C_LEVEL_ERROR
86086 ,p_module => l_log_module);
86087 END IF;
86088 END IF;
86089 END IF;
86090 --
86091 --
86092 ------------------------------------------------------------------------------------------------
86093 -- 4219869 Business Flow
86094 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86095 -- Prior Entry. Currently, the following code is always generated.
86096 ------------------------------------------------------------------------------------------------
86097 XLA_AE_LINES_PKG.ValidateCurrentLine;
86098
86099 ------------------------------------------------------------------------------------
86100 -- 4219869 Business Flow
86101 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86102 ------------------------------------------------------------------------------------
86103 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86104
86105 ----------------------------------------------------------------------------------
86106 -- 4219869 Business Flow
86107 -- Update journal entry status -- Need to generate this within IF <condition>
86108 ----------------------------------------------------------------------------------
86109 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86110 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86111 ,p_balance_type_code => l_balance_type_code
86112 );
86113
86114 -------------------------------------------------------------------------------------------
86115 -- 4262811 - Generate the Accrual Reversal lines
86116 -------------------------------------------------------------------------------------------
86117 BEGIN
86118 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86119 (g_array_event(p_event_id).array_value_num('header_index'));
86120 IF l_acc_rev_flag IS NULL THEN
86121 l_acc_rev_flag := 'N';
86122 END IF;
86123 EXCEPTION
86124 WHEN OTHERS THEN
86125 l_acc_rev_flag := 'N';
86126 END;
86127 --
86128 IF (l_acc_rev_flag = 'Y') THEN
86129
86130 -- 4645092 ------------------------------------------------------------------------------
86131 -- To allow MPA report to determine if it should generate report process
86132 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86133 ------------------------------------------------------------------------------------------
86134
86135 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86136 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86137 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
86138 -- call ADRs
86139 -- Bug 4922099
86140 --
86141 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86142 (NVL(l_actual_upg_option, 'N') = 'O') OR
86143 (NVL(l_enc_upg_option, 'N') = 'O')
86144 )
86145 THEN
86146 NULL;
86150 l_ccid := AcctDerRule_24(
86147 --
86148 --
86149
86151 p_application_id => p_application_id
86152 , p_ae_header_id => l_ae_header_id
86153 , p_source_16 => p_source_16
86154 , p_source_16_meaning => p_source_16_meaning
86155 , p_source_17 => p_source_17
86156 , p_source_19 => p_source_19
86157 , p_source_19_meaning => p_source_19_meaning
86158 , p_source_20 => p_source_20
86159 , p_source_21 => p_source_21
86160 , p_source_22 => p_source_22
86161 , p_source_29 => p_source_29
86162 , p_source_42 => p_source_42
86163 , p_source_42_meaning => p_source_42_meaning
86164 , x_transaction_coa_id => l_adr_transaction_coa_id
86165 , x_accounting_coa_id => l_adr_accounting_coa_id
86166 , x_value_type_code => l_adr_value_type_code
86167 , p_side => 'NA'
86168 );
86169
86170 xla_ae_lines_pkg.set_ccid(
86171 p_code_combination_id => l_ccid
86172 , p_value_type_code => l_adr_value_type_code
86173 , p_transaction_coa_id => l_adr_transaction_coa_id
86174 , p_accounting_coa_id => l_adr_accounting_coa_id
86175 , p_adr_code => 'AP_ERV_TAXERV_CASH'
86176 , p_adr_type_code => 'S'
86177 , p_component_type => l_component_type
86178 , p_component_code => l_component_code
86179 , p_component_type_code => l_component_type_code
86180 , p_component_appl_id => l_component_appl_id
86181 , p_amb_context_code => l_amb_context_code
86182 , p_side => 'NA'
86183 );
86184
86185
86186 l_segment := AcctDerRule_6(
86187 p_application_id => p_application_id
86188 , p_ae_header_id => l_ae_header_id
86189 , p_source_16 => p_source_16
86190 , p_source_16_meaning => p_source_16_meaning
86191 , p_source_17 => p_source_17
86192 , p_source_19 => p_source_19
86193 , p_source_19_meaning => p_source_19_meaning
86194 , p_source_20 => p_source_20
86195 , p_source_21 => p_source_21
86196 , p_source_22 => p_source_22
86197 , x_transaction_coa_id => l_adr_transaction_coa_id
86198 , x_accounting_coa_id => l_adr_accounting_coa_id
86199 , x_flexfield_segment_code => l_adr_flexfield_segment_code
86200 , x_flex_value_set_id => l_adr_flex_value_set_id
86201 , x_value_type_code => l_adr_value_type_code
86202 , x_value_combination_id => l_adr_value_combination_id
86203 , x_value_segment_code => l_adr_value_segment_code
86204 , p_side => 'NA'
86205 , p_override_seg_flag => 'Y'
86206 );
86207
86208 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
86209
86210 xla_ae_lines_pkg.set_segment(
86211 p_to_segment_code => 'GL_ACCOUNT'
86212 , p_segment_value => l_segment
86213 , p_from_segment_code => l_adr_value_segment_code
86214 , p_from_combination_id => l_adr_value_combination_id
86215 , p_value_type_code => l_adr_value_type_code
86216 , p_transaction_coa_id => l_adr_transaction_coa_id
86217 , p_accounting_coa_id => l_adr_accounting_coa_id
86218 , p_flexfield_segment_code => l_adr_flexfield_segment_code
86219 , p_flex_value_set_id => l_adr_flex_value_set_id
86220 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
86221 , p_adr_type_code => 'S'
86222 , p_component_type => l_component_type
86223 , p_component_code => l_component_code
86224 , p_component_type_code => l_component_type_code
86225 , p_component_appl_id => l_component_appl_id
86226 , p_amb_context_code => l_amb_context_code
86227 , p_entity_code => 'AP_PAYMENTS'
86228 , p_event_class_code => 'REFUNDS'
86229 , p_side => 'NA'
86230 );
86231
86232 END IF;
86233
86234 l_segment := AcctDerRule_17(
86235 p_application_id => p_application_id
86236 , p_ae_header_id => l_ae_header_id
86237 , p_source_16 => p_source_16
86238 , p_source_16_meaning => p_source_16_meaning
86239 , p_source_19 => p_source_19
86240 , p_source_19_meaning => p_source_19_meaning
86241 , p_source_29 => p_source_29
86242 , x_transaction_coa_id => l_adr_transaction_coa_id
86243 , x_accounting_coa_id => l_adr_accounting_coa_id
86244 , x_flexfield_segment_code => l_adr_flexfield_segment_code
86245 , x_flex_value_set_id => l_adr_flex_value_set_id
86246 , x_value_type_code => l_adr_value_type_code
86247 , x_value_combination_id => l_adr_value_combination_id
86248 , x_value_segment_code => l_adr_value_segment_code
86249 , p_side => 'NA'
86250 , p_override_seg_flag => 'Y'
86251 );
86252
86253 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
86254
86255 xla_ae_lines_pkg.set_segment(
86256 p_to_segment_code => 'GL_BALANCING'
86257 , p_segment_value => l_segment
86258 , p_from_segment_code => l_adr_value_segment_code
86259 , p_from_combination_id => l_adr_value_combination_id
86263 , p_flexfield_segment_code => l_adr_flexfield_segment_code
86260 , p_value_type_code => l_adr_value_type_code
86261 , p_transaction_coa_id => l_adr_transaction_coa_id
86262 , p_accounting_coa_id => l_adr_accounting_coa_id
86264 , p_flex_value_set_id => l_adr_flex_value_set_id
86265 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
86266 , p_adr_type_code => 'S'
86267 , p_component_type => l_component_type
86268 , p_component_code => l_component_code
86269 , p_component_type_code => l_component_type_code
86270 , p_component_appl_id => l_component_appl_id
86271 , p_amb_context_code => l_amb_context_code
86272 , p_entity_code => 'AP_PAYMENTS'
86273 , p_event_class_code => 'REFUNDS'
86274 , p_side => 'NA'
86275 );
86276
86277 END IF;
86278
86279 --
86280 --
86281 END IF;
86282
86283 --
86284 -- Update the line information that should be overwritten
86285 --
86286 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86287 p_header_num => 1);
86288 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
86289
86290 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86291
86292 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
86293 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86294 END IF;
86295
86296 --
86297 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86298 --
86299 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86300 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
86301 ELSE
86302 ---------------------------------------------------------------------------------------------------
86303 -- 4262811a Switch Sign
86304 ---------------------------------------------------------------------------------------------------
86305 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
86306 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86307 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86308 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86309 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86310 -- 5132302
86311 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86312 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86313
86314 END IF;
86315
86316 -- 4955764
86317 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86318 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86319
86320
86321 XLA_AE_LINES_PKG.ValidateCurrentLine;
86322 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86323
86324 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86325 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86326 ,p_balance_type_code => l_balance_type_code);
86327
86328 END IF;
86329
86330 -----------------------------------------------------------------------------------------
86331 -- 4262811 Multiperiod Accounting
86332 -----------------------------------------------------------------------------------------
86333 -- No MPA option is assigned.
86334
86335
86336 END IF;
86337 END IF;
86338 --
86339
86340 --
86341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86342 trace
86343 (p_msg => 'END of AcctLineType_151'
86344 ,p_level => C_LEVEL_PROCEDURE
86345 ,p_module => l_log_module);
86346 END IF;
86347 --
86348 EXCEPTION
86349 WHEN xla_exceptions_pkg.application_exception THEN
86350 RAISE;
86351 WHEN OTHERS THEN
86352 xla_exceptions_pkg.raise_message
86353 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_151');
86354 END AcctLineType_151;
86355 --
86356
86357 ---------------------------------------
86358 --
86359 -- PRIVATE FUNCTION
86360 -- AcctLineType_152
86361 --
86362 ---------------------------------------
86363 PROCEDURE AcctLineType_152 (
86364 p_application_id IN NUMBER
86365 ,p_event_id IN NUMBER
86366 ,p_calculate_acctd_flag IN VARCHAR2
86367 ,p_calculate_g_l_flag IN VARCHAR2
86368 ,p_actual_flag IN OUT VARCHAR2
86369 ,p_balance_type_code OUT VARCHAR2
86370 ,p_gain_or_loss_ref OUT VARCHAR2
86371
86372 --Payment Currency Code
86373 , p_source_12 IN VARCHAR2
86374 --Payment Distribution (Cleared Rate) Ledger Amount
86375 , p_source_22 IN NUMBER
86376 --Invoice Distribution Account
86377 , p_source_29 IN NUMBER
86378 --Invoice Distribution Type
86382 , p_source_50 IN VARCHAR2
86379 , p_source_32 IN VARCHAR2
86380 , p_source_32_meaning IN VARCHAR2
86381 --When to Account for Payment Option
86383 --Payment Distribution Type
86384 , p_source_51 IN VARCHAR2
86385 , p_source_51_meaning IN VARCHAR2
86386 --Accounting Reversal Indicator
86387 , p_source_52 IN VARCHAR2
86388 --Payment Distribution Amount
86389 , p_source_53 IN NUMBER
86390 --Business Flow Accounts Payable Application Identifier
86391 , p_source_54 IN NUMBER
86392 --Business Flow Payment Distribution Type
86393 , p_source_55 IN VARCHAR2
86394 --Business Flow Payment Entity Code
86395 , p_source_56 IN VARCHAR2
86396 --Business Flow Payment Distribution Identifier
86397 , p_source_57 IN NUMBER
86398 --Business Flow Payment Identifier
86399 , p_source_58 IN NUMBER
86400 --Payment Distribution Identifier
86401 , p_source_59 IN NUMBER
86402 --Distribution Link Type
86403 , p_source_60 IN VARCHAR2
86404 --Override Accounted Amount Indicator
86405 , p_source_64 IN VARCHAR2
86406 , p_source_64_meaning IN VARCHAR2
86407 --Payment Supplier Identifier
86408 , p_source_65 IN NUMBER
86409 --Payment Supplier Site Identifier
86410 , p_source_66 IN NUMBER
86411 --Third Party Type
86412 , p_source_67 IN VARCHAR2
86413 --Payment Distribution Reversed Identifier
86414 , p_source_68 IN NUMBER
86415 --Invoice Distribution Tax Line Identifier
86416 , p_source_69 IN NUMBER
86417 --Invoice Distribution Summary Tax Line Identifier
86418 , p_source_70 IN NUMBER
86419 --Accrue on Receipt Option
86420 , p_source_111 IN VARCHAR2
86421 , p_source_111_meaning IN VARCHAR2
86422 --Cleared Exchange Date
86423 , p_source_114 IN DATE
86424 --Cleared Exchange Rate
86425 , p_source_115 IN NUMBER
86426 --Cleared Exchange Rate Type
86427 , p_source_116 IN VARCHAR2
86428 )
86429 IS
86430
86431 l_component_type VARCHAR2(80);
86432 l_component_code VARCHAR2(30);
86433 l_component_type_code VARCHAR2(1);
86434 l_component_appl_id INTEGER;
86435 l_amb_context_code VARCHAR2(30);
86436 l_entity_code VARCHAR2(30);
86437 l_event_class_code VARCHAR2(30);
86438 l_ae_header_id NUMBER;
86439 l_event_type_code VARCHAR2(30);
86440 l_line_definition_code VARCHAR2(30);
86441 l_line_definition_owner_code VARCHAR2(1);
86442 --
86443 -- adr variables
86444 l_segment VARCHAR2(30);
86445 l_ccid NUMBER;
86446 l_adr_transaction_coa_id NUMBER;
86447 l_adr_accounting_coa_id NUMBER;
86448 l_adr_flexfield_segment_code VARCHAR2(30);
86449 l_adr_flex_value_set_id NUMBER;
86450 l_adr_value_type_code VARCHAR2(30);
86451 l_adr_value_combination_id NUMBER;
86452 l_adr_value_segment_code VARCHAR2(30);
86453
86454 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
86455 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
86456 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
86457 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
86458
86459 -- 4262811 Variables ------------------------------------------------------------------------------------------
86460 l_entered_amt_idx NUMBER;
86461 l_accted_amt_idx NUMBER;
86462 l_acc_rev_flag VARCHAR2(1);
86463 l_accrual_line_num NUMBER;
86464 l_tmp_amt NUMBER;
86465 l_acc_rev_natural_side_code VARCHAR2(1);
86466
86467 l_num_entries NUMBER;
86468 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
86469 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
86470 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
86471 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
86472 l_recog_line_1 NUMBER;
86473 l_recog_line_2 NUMBER;
86474
86475 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
86476 l_bflow_applied_to_amt NUMBER; -- 5132302
86477 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
86478
86479 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86480
86481 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
86482 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
86483
86484 ---------------------------------------------------------------------------------------------------------------
86485
86486
86487 --
86488 -- bulk performance
86489 --
86490 l_balance_type_code VARCHAR2(1);
86491 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
86492 l_log_module VARCHAR2(240);
86493
86494 --
86495 -- Upgrade strategy
86496 --
86497 l_actual_upg_option VARCHAR2(1);
86498 l_enc_upg_option VARCHAR2(1);
86499
86500 --
86501 BEGIN
86502 --
86503 IF g_log_enabled THEN
86504 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
86505 END IF;
86506 --
86507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86508
86509 trace
86510 (p_msg => 'BEGIN of AcctLineType_152'
86514 END IF;
86511 ,p_level => C_LEVEL_PROCEDURE
86512 ,p_module => l_log_module);
86513
86515 --
86516 l_component_type := 'AMB_JLT';
86517 l_component_code := 'AP_TAX_INV_PRICE_VAR_CLEAR';
86518 l_component_type_code := 'S';
86519 l_component_appl_id := 200;
86520 l_amb_context_code := 'DEFAULT';
86521 l_entity_code := 'AP_PAYMENTS';
86522 l_event_class_code := 'RECONCILED PAYMENTS';
86523 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
86524 l_line_definition_owner_code := 'S';
86525 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
86526 --
86527 l_balance_type_code := 'A';
86528 l_segment := NULL;
86529 l_ccid := NULL;
86530 l_adr_transaction_coa_id := NULL;
86531 l_adr_accounting_coa_id := NULL;
86532 l_adr_flexfield_segment_code := NULL;
86533 l_adr_flex_value_set_id := NULL;
86534 l_adr_value_type_code := NULL;
86535 l_adr_value_combination_id := NULL;
86536 l_adr_value_segment_code := NULL;
86537
86538 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
86539 l_bflow_class_code := ''; -- 4219869 Business Flow
86540 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
86541 l_budgetary_control_flag := 'N';
86542
86543 l_bflow_applied_to_amt_idx := NULL; -- 5132302
86544 l_bflow_applied_to_amt := NULL; -- 5132302
86545 l_entered_amt_idx := NULL; -- 4262811
86546 l_accted_amt_idx := NULL; -- 4262811
86547 l_acc_rev_flag := NULL; -- 4262811
86548 l_accrual_line_num := NULL; -- 4262811
86549 l_tmp_amt := NULL; -- 4262811
86550 --
86551
86552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86553 l_balance_type_code <> 'B' THEN
86554 IF NVL(p_source_50,'
86555 ') = 'CLEAR_CLEAR' AND
86556 NVL(p_source_32,'
86557 ') = 'TIPV' AND
86558 (NVL(p_source_51,'
86559 ') = 'CASH' OR
86560 NVL(p_source_51,'
86561 ') = 'AWT' OR
86562 NVL(p_source_51,'
86563 ') = 'DISCOUNT') AND
86564 NVL(p_source_111,'
86565 ') = 'Y'
86566 THEN
86567
86568 --
86569 XLA_AE_LINES_PKG.SetNewLine;
86570
86571 p_balance_type_code := l_balance_type_code;
86572 -- set the flag so later we will know whether the gain loss line needs to be created
86573
86574 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86575 p_actual_flag :='A';
86576 END IF;
86577
86578 --
86579 -- bulk performance
86580 --
86581 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86582 p_header_num => 0); -- 4262811
86583 --
86584 -- set accounting line options
86585 --
86586 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86587 p_natural_side_code => 'D'
86588 , p_gain_or_loss_flag => 'N'
86589 , p_gl_transfer_mode_code => 'S'
86590 , p_acct_entry_type_code => 'A'
86591 , p_switch_side_flag => 'Y'
86592 , p_merge_duplicate_code => 'A'
86593 );
86594 --
86595 l_acc_rev_natural_side_code := 'C'; -- 4262811
86596 --
86597 --
86598 -- set accounting line type info
86599 --
86600 xla_ae_lines_pkg.SetAcctLineType
86601 (p_component_type => l_component_type
86602 ,p_event_type_code => l_event_type_code
86603 ,p_line_definition_owner_code => l_line_definition_owner_code
86604 ,p_line_definition_code => l_line_definition_code
86605 ,p_accounting_line_code => l_component_code
86606 ,p_accounting_line_type_code => l_component_type_code
86607 ,p_accounting_line_appl_id => l_component_appl_id
86608 ,p_amb_context_code => l_amb_context_code
86609 ,p_entity_code => l_entity_code
86610 ,p_event_class_code => l_event_class_code);
86611 --
86612 -- set accounting class
86613 --
86614 xla_ae_lines_pkg.SetAcctClass(
86615 p_accounting_class_code => 'TIPV'
86616 , p_ae_header_id => l_ae_header_id
86617 );
86618
86619 --
86620 -- set rounding class
86621 --
86622 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86623 'TIPV';
86624
86625 --
86626 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86627 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86628 --
86629 -- bulk performance
86630 --
86631 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86632
86633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86634 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86635
86636 -- 4955764
86637 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86638 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86639
86640 -- 4458381 Public Sector Enh
86641
86642 --
86643 -- set accounting attributes for the line type
86644 --
86648 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86645 l_entered_amt_idx := 10;
86646 l_accted_amt_idx := 15;
86647 l_bflow_applied_to_amt_idx := 2; -- 5132302
86649 l_rec_acct_attrs.array_char_value(1) := p_source_52;
86650 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
86651 l_rec_acct_attrs.array_num_value(2) := p_source_53;
86652 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
86653 l_rec_acct_attrs.array_num_value(3) := p_source_54;
86654 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86655 l_rec_acct_attrs.array_char_value(4) := p_source_55;
86656 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
86657 l_rec_acct_attrs.array_char_value(5) := p_source_56;
86658 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
86659 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
86660 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86661 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
86662 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
86663 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
86664 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
86665 l_rec_acct_attrs.array_char_value(9) := p_source_60;
86666 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
86667 l_rec_acct_attrs.array_num_value(10) := p_source_53;
86668 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
86669 l_rec_acct_attrs.array_char_value(11) := p_source_12;
86670 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
86671 l_rec_acct_attrs.array_date_value(12) := p_source_114;
86672 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
86673 l_rec_acct_attrs.array_num_value(13) := p_source_115;
86674 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
86675 l_rec_acct_attrs.array_char_value(14) := p_source_116;
86676 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
86677 l_rec_acct_attrs.array_num_value(15) := p_source_22;
86678 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
86679 l_rec_acct_attrs.array_char_value(16) := p_source_64;
86680 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
86681 l_rec_acct_attrs.array_num_value(17) := p_source_65;
86682 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
86683 l_rec_acct_attrs.array_num_value(18) := p_source_66;
86684 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
86685 l_rec_acct_attrs.array_char_value(19) := p_source_67;
86686 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
86687 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
86688 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
86689 l_rec_acct_attrs.array_char_value(21) := p_source_60;
86690 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
86691 l_rec_acct_attrs.array_num_value(22) := p_source_69;
86692 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
86693 l_rec_acct_attrs.array_num_value(23) := p_source_69;
86694 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
86695 l_rec_acct_attrs.array_num_value(24) := p_source_70;
86696
86697 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86698 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86699
86700 ---------------------------------------------------------------------------------------------------------------
86701 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86702 ---------------------------------------------------------------------------------------------------------------
86703 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86704
86705 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86706 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86707
86708 IF xla_accounting_cache_pkg.GetValueChar
86709 (p_source_code => 'LEDGER_CATEGORY_CODE'
86710 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86711 AND l_bflow_method_code = 'PRIOR_ENTRY'
86712 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86713 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86714 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86715 )
86716 THEN
86717 xla_ae_lines_pkg.BflowUpgEntry
86718 (p_business_method_code => l_bflow_method_code
86719 ,p_business_class_code => l_bflow_class_code
86720 ,p_balance_type => l_balance_type_code);
86721 ELSE
86722 NULL;
86723 -- No business flow processing for business flow method of NONE.
86724 END IF;
86725
86726 --
86727 -- call analytical criteria
86728 --
86729
86730 --
86731 -- call description
86732 --
86733 -- No description or it is inherited.
86734 --
86735 -- call ADRs
86736 -- Bug 4922099
86737 --
86738 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86739 (NVL(l_actual_upg_option, 'N') = 'O') OR
86740 (NVL(l_enc_upg_option, 'N') = 'O')
86741 )
86742 THEN
86743 NULL;
86744 --
86745 --
86749 , p_ae_header_id => l_ae_header_id
86746
86747 l_ccid := AcctDerRule_28(
86748 p_application_id => p_application_id
86750 , p_source_29 => p_source_29
86751 , x_transaction_coa_id => l_adr_transaction_coa_id
86752 , x_accounting_coa_id => l_adr_accounting_coa_id
86753 , x_value_type_code => l_adr_value_type_code
86754 , p_side => 'NA'
86755 );
86756
86757 xla_ae_lines_pkg.set_ccid(
86758 p_code_combination_id => l_ccid
86759 , p_value_type_code => l_adr_value_type_code
86760 , p_transaction_coa_id => l_adr_transaction_coa_id
86761 , p_accounting_coa_id => l_adr_accounting_coa_id
86762 , p_adr_code => 'AP_INVOICE_DIST'
86763 , p_adr_type_code => 'S'
86764 , p_component_type => l_component_type
86765 , p_component_code => l_component_code
86766 , p_component_type_code => l_component_type_code
86767 , p_component_appl_id => l_component_appl_id
86768 , p_amb_context_code => l_amb_context_code
86769 , p_side => 'NA'
86770 );
86771
86772
86773 --
86774 --
86775 END IF;
86776 --
86777 -- Bug 4922099
86778 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86779 (NVL(l_enc_upg_option, 'N') = 'O')
86780 ) AND
86781 (l_bflow_method_code = 'PRIOR_ENTRY')
86782 )
86783 THEN
86784 IF
86785 --
86786 1 = 2
86787 --
86788 THEN
86789 xla_accounting_err_pkg.build_message
86790 (p_appli_s_name => 'XLA'
86791 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86792 ,p_token_1 => 'LINE_NUMBER'
86793 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
86794 ,p_token_2 => 'LINE_TYPE_NAME'
86795 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
86796 l_component_type
86797 ,l_component_code
86798 ,l_component_type_code
86799 ,l_component_appl_id
86800 ,l_amb_context_code
86801 ,l_entity_code
86802 ,l_event_class_code
86803 )
86804 ,p_token_3 => 'OWNER'
86805 ,p_value_3 => xla_lookups_pkg.get_meaning(
86806 p_lookup_type => 'XLA_OWNER_TYPE'
86807 ,p_lookup_code => l_component_type_code
86808 )
86809 ,p_token_4 => 'PRODUCT_NAME'
86810 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86811 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86812 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86813 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86814 ,p_ae_header_id => NULL
86815 );
86816
86817 IF (C_LEVEL_ERROR>= g_log_level) THEN
86818 trace
86819 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86820 ,p_level => C_LEVEL_ERROR
86821 ,p_module => l_log_module);
86822 END IF;
86823 END IF;
86824 END IF;
86825 --
86826 --
86827 ------------------------------------------------------------------------------------------------
86828 -- 4219869 Business Flow
86829 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86830 -- Prior Entry. Currently, the following code is always generated.
86831 ------------------------------------------------------------------------------------------------
86832 XLA_AE_LINES_PKG.ValidateCurrentLine;
86833
86834 ------------------------------------------------------------------------------------
86835 -- 4219869 Business Flow
86836 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86837 ------------------------------------------------------------------------------------
86838 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86839
86840 ----------------------------------------------------------------------------------
86841 -- 4219869 Business Flow
86842 -- Update journal entry status -- Need to generate this within IF <condition>
86843 ----------------------------------------------------------------------------------
86847 );
86844 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86845 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86846 ,p_balance_type_code => l_balance_type_code
86848
86849 -------------------------------------------------------------------------------------------
86850 -- 4262811 - Generate the Accrual Reversal lines
86851 -------------------------------------------------------------------------------------------
86852 BEGIN
86853 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86854 (g_array_event(p_event_id).array_value_num('header_index'));
86855 IF l_acc_rev_flag IS NULL THEN
86856 l_acc_rev_flag := 'N';
86857 END IF;
86858 EXCEPTION
86859 WHEN OTHERS THEN
86860 l_acc_rev_flag := 'N';
86861 END;
86862 --
86863 IF (l_acc_rev_flag = 'Y') THEN
86864
86865 -- 4645092 ------------------------------------------------------------------------------
86866 -- To allow MPA report to determine if it should generate report process
86867 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86868 ------------------------------------------------------------------------------------------
86869
86870 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86871 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86872 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
86873 -- call ADRs
86874 -- Bug 4922099
86875 --
86876 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86877 (NVL(l_actual_upg_option, 'N') = 'O') OR
86878 (NVL(l_enc_upg_option, 'N') = 'O')
86879 )
86880 THEN
86881 NULL;
86882 --
86883 --
86884
86885 l_ccid := AcctDerRule_28(
86886 p_application_id => p_application_id
86887 , p_ae_header_id => l_ae_header_id
86888 , p_source_29 => p_source_29
86889 , x_transaction_coa_id => l_adr_transaction_coa_id
86890 , x_accounting_coa_id => l_adr_accounting_coa_id
86891 , x_value_type_code => l_adr_value_type_code
86892 , p_side => 'NA'
86893 );
86894
86895 xla_ae_lines_pkg.set_ccid(
86896 p_code_combination_id => l_ccid
86897 , p_value_type_code => l_adr_value_type_code
86898 , p_transaction_coa_id => l_adr_transaction_coa_id
86899 , p_accounting_coa_id => l_adr_accounting_coa_id
86900 , p_adr_code => 'AP_INVOICE_DIST'
86901 , p_adr_type_code => 'S'
86902 , p_component_type => l_component_type
86903 , p_component_code => l_component_code
86904 , p_component_type_code => l_component_type_code
86905 , p_component_appl_id => l_component_appl_id
86906 , p_amb_context_code => l_amb_context_code
86907 , p_side => 'NA'
86908 );
86909
86910
86911 --
86912 --
86913 END IF;
86914
86915 --
86916 -- Update the line information that should be overwritten
86917 --
86918 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86919 p_header_num => 1);
86920 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
86921
86922 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86923
86924 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
86925 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86926 END IF;
86927
86928 --
86929 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86930 --
86931 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86932 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
86933 ELSE
86934 ---------------------------------------------------------------------------------------------------
86935 -- 4262811a Switch Sign
86936 ---------------------------------------------------------------------------------------------------
86937 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
86938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86939 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86941 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86942 -- 5132302
86943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86944 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86945
86946 END IF;
86947
86948 -- 4955764
86949 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86950 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86951
86952
86956 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86953 XLA_AE_LINES_PKG.ValidateCurrentLine;
86954 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86955
86957 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86958 ,p_balance_type_code => l_balance_type_code);
86959
86960 END IF;
86961
86962 -----------------------------------------------------------------------------------------
86963 -- 4262811 Multiperiod Accounting
86964 -----------------------------------------------------------------------------------------
86965 -- No MPA option is assigned.
86966
86967
86968 END IF;
86969 END IF;
86970 --
86971
86972 --
86973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86974 trace
86975 (p_msg => 'END of AcctLineType_152'
86976 ,p_level => C_LEVEL_PROCEDURE
86977 ,p_module => l_log_module);
86978 END IF;
86979 --
86980 EXCEPTION
86981 WHEN xla_exceptions_pkg.application_exception THEN
86982 RAISE;
86983 WHEN OTHERS THEN
86984 xla_exceptions_pkg.raise_message
86985 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_152');
86986 END AcctLineType_152;
86987 --
86988
86989 ---------------------------------------
86990 --
86991 -- PRIVATE FUNCTION
86992 -- AcctLineType_153
86993 --
86994 ---------------------------------------
86995 PROCEDURE AcctLineType_153 (
86996 p_application_id IN NUMBER
86997 ,p_event_id IN NUMBER
86998 ,p_calculate_acctd_flag IN VARCHAR2
86999 ,p_calculate_g_l_flag IN VARCHAR2
87000 ,p_actual_flag IN OUT VARCHAR2
87001 ,p_balance_type_code OUT VARCHAR2
87002 ,p_gain_or_loss_ref OUT VARCHAR2
87003
87004 --Payment Currency Code
87005 , p_source_12 IN VARCHAR2
87006 --Payment Distribution (Payment Rate) Ledger Amount
87007 , p_source_21 IN NUMBER
87008 --Invoice Distribution Account
87009 , p_source_29 IN NUMBER
87010 --Invoice Distribution Type
87011 , p_source_32 IN VARCHAR2
87012 , p_source_32_meaning IN VARCHAR2
87013 --When to Account for Payment Option
87014 , p_source_50 IN VARCHAR2
87015 --Payment Distribution Type
87016 , p_source_51 IN VARCHAR2
87017 , p_source_51_meaning IN VARCHAR2
87018 --Accounting Reversal Indicator
87019 , p_source_52 IN VARCHAR2
87020 --Payment Distribution Amount
87021 , p_source_53 IN NUMBER
87022 --Business Flow Accounts Payable Application Identifier
87023 , p_source_54 IN NUMBER
87024 --Payment Distribution Identifier
87025 , p_source_59 IN NUMBER
87026 --Distribution Link Type
87027 , p_source_60 IN VARCHAR2
87028 --Override Accounted Amount Indicator
87029 , p_source_64 IN VARCHAR2
87030 , p_source_64_meaning IN VARCHAR2
87031 --Payment Supplier Identifier
87032 , p_source_65 IN NUMBER
87033 --Payment Supplier Site Identifier
87034 , p_source_66 IN NUMBER
87035 --Third Party Type
87036 , p_source_67 IN VARCHAR2
87037 --Payment Distribution Reversed Identifier
87038 , p_source_68 IN NUMBER
87039 --Invoice Distribution Tax Line Identifier
87040 , p_source_69 IN NUMBER
87041 --Invoice Distribution Summary Tax Line Identifier
87042 , p_source_70 IN NUMBER
87043 --Payment Type
87044 , p_source_71 IN VARCHAR2
87045 , p_source_71_meaning IN VARCHAR2
87046 --Invoice Distribution Amount of the Payment Distribution
87047 , p_source_72 IN NUMBER
87048 --Business Flow Invoice Distribution Type
87049 , p_source_73 IN VARCHAR2
87050 --Business Flow Invoice Entity Code
87051 , p_source_74 IN VARCHAR2
87052 --Business Flow Invoice Distribution Identifier
87053 , p_source_75 IN NUMBER
87054 --Business Flow Invoice Identifier
87055 , p_source_76 IN NUMBER
87056 --Invoice Distribution Tax Distribution Identifier from Tax
87057 , p_source_77 IN NUMBER
87058 --Accrue on Receipt Option
87059 , p_source_111 IN VARCHAR2
87060 , p_source_111_meaning IN VARCHAR2
87061 --Invoice Type Paid
87062 , p_source_112 IN VARCHAR2
87063 , p_source_112_meaning IN VARCHAR2
87064 --Payment Exchange Date
87065 , p_source_121 IN DATE
87066 --Payment Exchange Rate
87067 , p_source_122 IN NUMBER
87068 --Payment Exchange Rate Type
87069 , p_source_123 IN VARCHAR2
87070 )
87071 IS
87072
87073 l_component_type VARCHAR2(80);
87074 l_component_code VARCHAR2(30);
87075 l_component_type_code VARCHAR2(1);
87076 l_component_appl_id INTEGER;
87077 l_amb_context_code VARCHAR2(30);
87078 l_entity_code VARCHAR2(30);
87079 l_event_class_code VARCHAR2(30);
87080 l_ae_header_id NUMBER;
87081 l_event_type_code VARCHAR2(30);
87082 l_line_definition_code VARCHAR2(30);
87083 l_line_definition_owner_code VARCHAR2(1);
87084 --
87085 -- adr variables
87086 l_segment VARCHAR2(30);
87087 l_ccid NUMBER;
87088 l_adr_transaction_coa_id NUMBER;
87089 l_adr_accounting_coa_id NUMBER;
87090 l_adr_flexfield_segment_code VARCHAR2(30);
87094 l_adr_value_segment_code VARCHAR2(30);
87091 l_adr_flex_value_set_id NUMBER;
87092 l_adr_value_type_code VARCHAR2(30);
87093 l_adr_value_combination_id NUMBER;
87095
87096 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
87097 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
87098 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
87099 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
87100
87101 -- 4262811 Variables ------------------------------------------------------------------------------------------
87102 l_entered_amt_idx NUMBER;
87103 l_accted_amt_idx NUMBER;
87104 l_acc_rev_flag VARCHAR2(1);
87105 l_accrual_line_num NUMBER;
87106 l_tmp_amt NUMBER;
87107 l_acc_rev_natural_side_code VARCHAR2(1);
87108
87109 l_num_entries NUMBER;
87110 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
87111 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
87112 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
87113 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
87114 l_recog_line_1 NUMBER;
87115 l_recog_line_2 NUMBER;
87116
87117 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
87118 l_bflow_applied_to_amt NUMBER; -- 5132302
87119 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
87120
87121 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87122
87123 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
87124 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
87125
87126 ---------------------------------------------------------------------------------------------------------------
87127
87128
87129 --
87130 -- bulk performance
87131 --
87132 l_balance_type_code VARCHAR2(1);
87133 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87134 l_log_module VARCHAR2(240);
87135
87136 --
87137 -- Upgrade strategy
87138 --
87139 l_actual_upg_option VARCHAR2(1);
87140 l_enc_upg_option VARCHAR2(1);
87141
87142 --
87143 BEGIN
87144 --
87145 IF g_log_enabled THEN
87146 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
87147 END IF;
87148 --
87149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87150
87151 trace
87152 (p_msg => 'BEGIN of AcctLineType_153'
87153 ,p_level => C_LEVEL_PROCEDURE
87154 ,p_module => l_log_module);
87155
87156 END IF;
87157 --
87158 l_component_type := 'AMB_JLT';
87159 l_component_code := 'AP_TAX_INV_PRICE_VAR_PMT';
87160 l_component_type_code := 'S';
87161 l_component_appl_id := 200;
87162 l_amb_context_code := 'DEFAULT';
87163 l_entity_code := 'AP_PAYMENTS';
87164 l_event_class_code := 'PAYMENTS';
87165 l_event_type_code := 'PAYMENTS_ALL';
87166 l_line_definition_owner_code := 'S';
87167 l_line_definition_code := 'CASH_PAYMENTS_ALL';
87168 --
87169 l_balance_type_code := 'A';
87170 l_segment := NULL;
87171 l_ccid := NULL;
87172 l_adr_transaction_coa_id := NULL;
87173 l_adr_accounting_coa_id := NULL;
87174 l_adr_flexfield_segment_code := NULL;
87175 l_adr_flex_value_set_id := NULL;
87176 l_adr_value_type_code := NULL;
87177 l_adr_value_combination_id := NULL;
87178 l_adr_value_segment_code := NULL;
87179
87180 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
87181 l_bflow_class_code := ''; -- 4219869 Business Flow
87182 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
87183 l_budgetary_control_flag := 'N';
87184
87185 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87186 l_bflow_applied_to_amt := NULL; -- 5132302
87187 l_entered_amt_idx := NULL; -- 4262811
87188 l_accted_amt_idx := NULL; -- 4262811
87189 l_acc_rev_flag := NULL; -- 4262811
87190 l_accrual_line_num := NULL; -- 4262811
87191 l_tmp_amt := NULL; -- 4262811
87192 --
87193
87194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87195 l_balance_type_code <> 'B' THEN
87196 IF NVL(p_source_50,'
87197 ') <> 'CLEAR_CLEAR' AND
87198 NVL(p_source_32,'
87199 ') = 'TIPV' AND
87200 NVL(p_source_112,'
87201 ') <> 'INTEREST' AND
87202 (NVL(p_source_51,'
87203 ') = 'CASH' OR
87204 NVL(p_source_51,'
87205 ') = 'AWT' OR
87206 NVL(p_source_51,'
87207 ') = 'DISCOUNT') AND
87208 NVL(p_source_71,'
87209 ') <> 'R' AND
87210 NVL(p_source_111,'
87211 ') = 'Y'
87212 THEN
87213
87214 --
87215 XLA_AE_LINES_PKG.SetNewLine;
87216
87217 p_balance_type_code := l_balance_type_code;
87218 -- set the flag so later we will know whether the gain loss line needs to be created
87219
87220 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87221 p_actual_flag :='A';
87222 END IF;
87223
87224 --
87225 -- bulk performance
87226 --
87230 -- set accounting line options
87227 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87228 p_header_num => 0); -- 4262811
87229 --
87231 --
87232 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87233 p_natural_side_code => 'D'
87234 , p_gain_or_loss_flag => 'N'
87235 , p_gl_transfer_mode_code => 'S'
87236 , p_acct_entry_type_code => 'A'
87237 , p_switch_side_flag => 'Y'
87238 , p_merge_duplicate_code => 'A'
87239 );
87240 --
87241 l_acc_rev_natural_side_code := 'C'; -- 4262811
87242 --
87243 --
87244 -- set accounting line type info
87245 --
87246 xla_ae_lines_pkg.SetAcctLineType
87247 (p_component_type => l_component_type
87248 ,p_event_type_code => l_event_type_code
87249 ,p_line_definition_owner_code => l_line_definition_owner_code
87250 ,p_line_definition_code => l_line_definition_code
87251 ,p_accounting_line_code => l_component_code
87252 ,p_accounting_line_type_code => l_component_type_code
87253 ,p_accounting_line_appl_id => l_component_appl_id
87254 ,p_amb_context_code => l_amb_context_code
87255 ,p_entity_code => l_entity_code
87256 ,p_event_class_code => l_event_class_code);
87257 --
87258 -- set accounting class
87259 --
87260 xla_ae_lines_pkg.SetAcctClass(
87261 p_accounting_class_code => 'TIPV'
87262 , p_ae_header_id => l_ae_header_id
87263 );
87264
87265 --
87266 -- set rounding class
87267 --
87268 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87269 'TIPV';
87270
87271 --
87272 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87273 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87274 --
87275 -- bulk performance
87276 --
87277 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87278
87279 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87280 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87281
87282 -- 4955764
87283 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87284 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87285
87286 -- 4458381 Public Sector Enh
87287
87288 --
87289 -- set accounting attributes for the line type
87290 --
87291 l_entered_amt_idx := 10;
87292 l_accted_amt_idx := 15;
87293 l_bflow_applied_to_amt_idx := 2; -- 5132302
87294 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87295 l_rec_acct_attrs.array_char_value(1) := p_source_52;
87296 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
87297 l_rec_acct_attrs.array_num_value(2) := p_source_72;
87298 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
87299 l_rec_acct_attrs.array_num_value(3) := p_source_54;
87300 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87301 l_rec_acct_attrs.array_char_value(4) := p_source_73;
87302 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
87303 l_rec_acct_attrs.array_char_value(5) := p_source_74;
87304 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
87305 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
87306 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87307 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
87308 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
87309 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
87310 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
87311 l_rec_acct_attrs.array_char_value(9) := p_source_60;
87312 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
87313 l_rec_acct_attrs.array_num_value(10) := p_source_53;
87314 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
87315 l_rec_acct_attrs.array_char_value(11) := p_source_12;
87316 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
87317 l_rec_acct_attrs.array_date_value(12) := p_source_121;
87318 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
87319 l_rec_acct_attrs.array_num_value(13) := p_source_122;
87320 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
87321 l_rec_acct_attrs.array_char_value(14) := p_source_123;
87322 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
87323 l_rec_acct_attrs.array_num_value(15) := p_source_21;
87324 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
87325 l_rec_acct_attrs.array_char_value(16) := p_source_64;
87326 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
87327 l_rec_acct_attrs.array_num_value(17) := p_source_65;
87328 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
87329 l_rec_acct_attrs.array_num_value(18) := p_source_66;
87330 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
87331 l_rec_acct_attrs.array_char_value(19) := p_source_67;
87335 l_rec_acct_attrs.array_char_value(21) := p_source_60;
87332 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
87333 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
87334 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
87336 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
87337 l_rec_acct_attrs.array_num_value(22) := p_source_69;
87338 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
87339 l_rec_acct_attrs.array_num_value(23) := p_source_77;
87340 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
87341 l_rec_acct_attrs.array_num_value(24) := p_source_70;
87342
87343 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87344 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87345
87346 ---------------------------------------------------------------------------------------------------------------
87347 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87348 ---------------------------------------------------------------------------------------------------------------
87349 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87350
87351 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87352 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87353
87354 IF xla_accounting_cache_pkg.GetValueChar
87355 (p_source_code => 'LEDGER_CATEGORY_CODE'
87356 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87357 AND l_bflow_method_code = 'PRIOR_ENTRY'
87358 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87359 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87360 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87361 )
87362 THEN
87363 xla_ae_lines_pkg.BflowUpgEntry
87364 (p_business_method_code => l_bflow_method_code
87365 ,p_business_class_code => l_bflow_class_code
87366 ,p_balance_type => l_balance_type_code);
87367 ELSE
87368 NULL;
87369 -- No business flow processing for business flow method of NONE.
87370 END IF;
87371
87372 --
87373 -- call analytical criteria
87374 --
87375
87376 --
87377 -- call description
87378 --
87379 -- No description or it is inherited.
87380 --
87381 -- call ADRs
87382 -- Bug 4922099
87383 --
87384 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87385 (NVL(l_actual_upg_option, 'N') = 'O') OR
87386 (NVL(l_enc_upg_option, 'N') = 'O')
87387 )
87388 THEN
87389 NULL;
87390 --
87391 --
87392
87393 l_ccid := AcctDerRule_28(
87394 p_application_id => p_application_id
87395 , p_ae_header_id => l_ae_header_id
87396 , p_source_29 => p_source_29
87397 , x_transaction_coa_id => l_adr_transaction_coa_id
87398 , x_accounting_coa_id => l_adr_accounting_coa_id
87399 , x_value_type_code => l_adr_value_type_code
87400 , p_side => 'NA'
87401 );
87402
87403 xla_ae_lines_pkg.set_ccid(
87404 p_code_combination_id => l_ccid
87405 , p_value_type_code => l_adr_value_type_code
87406 , p_transaction_coa_id => l_adr_transaction_coa_id
87407 , p_accounting_coa_id => l_adr_accounting_coa_id
87408 , p_adr_code => 'AP_INVOICE_DIST'
87409 , p_adr_type_code => 'S'
87410 , p_component_type => l_component_type
87411 , p_component_code => l_component_code
87412 , p_component_type_code => l_component_type_code
87413 , p_component_appl_id => l_component_appl_id
87414 , p_amb_context_code => l_amb_context_code
87415 , p_side => 'NA'
87416 );
87417
87418
87419 --
87420 --
87421 END IF;
87422 --
87423 -- Bug 4922099
87424 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87425 (NVL(l_enc_upg_option, 'N') = 'O')
87426 ) AND
87427 (l_bflow_method_code = 'PRIOR_ENTRY')
87428 )
87429 THEN
87430 IF
87431 --
87432 1 = 2
87433 --
87434 THEN
87435 xla_accounting_err_pkg.build_message
87436 (p_appli_s_name => 'XLA'
87437 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87438 ,p_token_1 => 'LINE_NUMBER'
87439 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
87440 ,p_token_2 => 'LINE_TYPE_NAME'
87441 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
87442 l_component_type
87443 ,l_component_code
87444 ,l_component_type_code
87445 ,l_component_appl_id
87449 )
87446 ,l_amb_context_code
87447 ,l_entity_code
87448 ,l_event_class_code
87450 ,p_token_3 => 'OWNER'
87451 ,p_value_3 => xla_lookups_pkg.get_meaning(
87452 p_lookup_type => 'XLA_OWNER_TYPE'
87453 ,p_lookup_code => l_component_type_code
87454 )
87455 ,p_token_4 => 'PRODUCT_NAME'
87456 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87457 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87458 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87459 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87460 ,p_ae_header_id => NULL
87461 );
87462
87463 IF (C_LEVEL_ERROR>= g_log_level) THEN
87464 trace
87465 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87466 ,p_level => C_LEVEL_ERROR
87467 ,p_module => l_log_module);
87468 END IF;
87469 END IF;
87470 END IF;
87471 --
87472 --
87473 ------------------------------------------------------------------------------------------------
87474 -- 4219869 Business Flow
87475 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87476 -- Prior Entry. Currently, the following code is always generated.
87477 ------------------------------------------------------------------------------------------------
87478 XLA_AE_LINES_PKG.ValidateCurrentLine;
87479
87480 ------------------------------------------------------------------------------------
87481 -- 4219869 Business Flow
87482 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87483 ------------------------------------------------------------------------------------
87484 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87485
87486 ----------------------------------------------------------------------------------
87487 -- 4219869 Business Flow
87488 -- Update journal entry status -- Need to generate this within IF <condition>
87489 ----------------------------------------------------------------------------------
87490 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87491 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87492 ,p_balance_type_code => l_balance_type_code
87493 );
87494
87495 -------------------------------------------------------------------------------------------
87496 -- 4262811 - Generate the Accrual Reversal lines
87497 -------------------------------------------------------------------------------------------
87498 BEGIN
87499 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87500 (g_array_event(p_event_id).array_value_num('header_index'));
87501 IF l_acc_rev_flag IS NULL THEN
87502 l_acc_rev_flag := 'N';
87503 END IF;
87504 EXCEPTION
87505 WHEN OTHERS THEN
87506 l_acc_rev_flag := 'N';
87507 END;
87508 --
87509 IF (l_acc_rev_flag = 'Y') THEN
87510
87511 -- 4645092 ------------------------------------------------------------------------------
87512 -- To allow MPA report to determine if it should generate report process
87513 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87514 ------------------------------------------------------------------------------------------
87515
87516 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87517 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87518 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
87519 -- call ADRs
87520 -- Bug 4922099
87521 --
87522 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87523 (NVL(l_actual_upg_option, 'N') = 'O') OR
87524 (NVL(l_enc_upg_option, 'N') = 'O')
87525 )
87526 THEN
87527 NULL;
87528 --
87529 --
87530
87531 l_ccid := AcctDerRule_28(
87532 p_application_id => p_application_id
87533 , p_ae_header_id => l_ae_header_id
87534 , p_source_29 => p_source_29
87535 , x_transaction_coa_id => l_adr_transaction_coa_id
87536 , x_accounting_coa_id => l_adr_accounting_coa_id
87537 , x_value_type_code => l_adr_value_type_code
87538 , p_side => 'NA'
87539 );
87540
87541 xla_ae_lines_pkg.set_ccid(
87542 p_code_combination_id => l_ccid
87543 , p_value_type_code => l_adr_value_type_code
87544 , p_transaction_coa_id => l_adr_transaction_coa_id
87548 , p_component_type => l_component_type
87545 , p_accounting_coa_id => l_adr_accounting_coa_id
87546 , p_adr_code => 'AP_INVOICE_DIST'
87547 , p_adr_type_code => 'S'
87549 , p_component_code => l_component_code
87550 , p_component_type_code => l_component_type_code
87551 , p_component_appl_id => l_component_appl_id
87552 , p_amb_context_code => l_amb_context_code
87553 , p_side => 'NA'
87554 );
87555
87556
87557 --
87558 --
87559 END IF;
87560
87561 --
87562 -- Update the line information that should be overwritten
87563 --
87564 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87565 p_header_num => 1);
87566 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
87567
87568 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87569
87570 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
87571 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87572 END IF;
87573
87574 --
87575 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87576 --
87577 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87578 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
87579 ELSE
87580 ---------------------------------------------------------------------------------------------------
87581 -- 4262811a Switch Sign
87582 ---------------------------------------------------------------------------------------------------
87583 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
87584 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87585 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87586 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87587 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87588 -- 5132302
87589 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87590 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87591
87592 END IF;
87593
87594 -- 4955764
87595 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87596 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87597
87598
87599 XLA_AE_LINES_PKG.ValidateCurrentLine;
87600 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87601
87602 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87603 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87604 ,p_balance_type_code => l_balance_type_code);
87605
87606 END IF;
87607
87608 -----------------------------------------------------------------------------------------
87609 -- 4262811 Multiperiod Accounting
87610 -----------------------------------------------------------------------------------------
87611 -- No MPA option is assigned.
87612
87613
87614 END IF;
87615 END IF;
87616 --
87617
87618 --
87619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87620 trace
87621 (p_msg => 'END of AcctLineType_153'
87622 ,p_level => C_LEVEL_PROCEDURE
87623 ,p_module => l_log_module);
87624 END IF;
87625 --
87626 EXCEPTION
87627 WHEN xla_exceptions_pkg.application_exception THEN
87628 RAISE;
87629 WHEN OTHERS THEN
87630 xla_exceptions_pkg.raise_message
87631 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_153');
87632 END AcctLineType_153;
87633 --
87634
87635 ---------------------------------------
87636 --
87637 -- PRIVATE FUNCTION
87638 -- AcctLineType_154
87639 --
87640 ---------------------------------------
87641 PROCEDURE AcctLineType_154 (
87642 p_application_id IN NUMBER
87643 ,p_event_id IN NUMBER
87644 ,p_calculate_acctd_flag IN VARCHAR2
87645 ,p_calculate_g_l_flag IN VARCHAR2
87646 ,p_actual_flag IN OUT VARCHAR2
87647 ,p_balance_type_code OUT VARCHAR2
87648 ,p_gain_or_loss_ref OUT VARCHAR2
87649
87650 --Payment Currency Code
87651 , p_source_12 IN VARCHAR2
87652 --Payment Distribution (Payment Rate) Ledger Amount
87653 , p_source_21 IN NUMBER
87654 --Invoice Distribution Account
87655 , p_source_29 IN NUMBER
87656 --Invoice Distribution Type
87657 , p_source_32 IN VARCHAR2
87658 , p_source_32_meaning IN VARCHAR2
87659 --When to Account for Payment Option
87660 , p_source_50 IN VARCHAR2
87661 --Payment Distribution Type
87662 , p_source_51 IN VARCHAR2
87663 , p_source_51_meaning IN VARCHAR2
87664 --Accounting Reversal Indicator
87665 , p_source_52 IN VARCHAR2
87669 , p_source_54 IN NUMBER
87666 --Payment Distribution Amount
87667 , p_source_53 IN NUMBER
87668 --Business Flow Accounts Payable Application Identifier
87670 --Payment Distribution Identifier
87671 , p_source_59 IN NUMBER
87672 --Distribution Link Type
87673 , p_source_60 IN VARCHAR2
87674 --Override Accounted Amount Indicator
87675 , p_source_64 IN VARCHAR2
87676 , p_source_64_meaning IN VARCHAR2
87677 --Payment Supplier Identifier
87678 , p_source_65 IN NUMBER
87679 --Payment Supplier Site Identifier
87680 , p_source_66 IN NUMBER
87681 --Third Party Type
87682 , p_source_67 IN VARCHAR2
87683 --Payment Distribution Reversed Identifier
87684 , p_source_68 IN NUMBER
87685 --Invoice Distribution Tax Line Identifier
87686 , p_source_69 IN NUMBER
87687 --Invoice Distribution Summary Tax Line Identifier
87688 , p_source_70 IN NUMBER
87689 --Payment Type
87690 , p_source_71 IN VARCHAR2
87691 , p_source_71_meaning IN VARCHAR2
87692 --Business Flow Invoice Distribution Type
87693 , p_source_73 IN VARCHAR2
87694 --Business Flow Invoice Entity Code
87695 , p_source_74 IN VARCHAR2
87696 --Business Flow Invoice Distribution Identifier
87697 , p_source_75 IN NUMBER
87698 --Business Flow Invoice Identifier
87699 , p_source_76 IN NUMBER
87700 --Invoice Distribution Tax Distribution Identifier from Tax
87701 , p_source_77 IN NUMBER
87702 --Accrue on Receipt Option
87703 , p_source_111 IN VARCHAR2
87704 , p_source_111_meaning IN VARCHAR2
87705 --Payment Exchange Date
87706 , p_source_121 IN DATE
87707 --Payment Exchange Rate
87708 , p_source_122 IN NUMBER
87709 --Payment Exchange Rate Type
87710 , p_source_123 IN VARCHAR2
87711 )
87712 IS
87713
87714 l_component_type VARCHAR2(80);
87715 l_component_code VARCHAR2(30);
87716 l_component_type_code VARCHAR2(1);
87717 l_component_appl_id INTEGER;
87718 l_amb_context_code VARCHAR2(30);
87719 l_entity_code VARCHAR2(30);
87720 l_event_class_code VARCHAR2(30);
87721 l_ae_header_id NUMBER;
87722 l_event_type_code VARCHAR2(30);
87723 l_line_definition_code VARCHAR2(30);
87724 l_line_definition_owner_code VARCHAR2(1);
87725 --
87726 -- adr variables
87727 l_segment VARCHAR2(30);
87728 l_ccid NUMBER;
87729 l_adr_transaction_coa_id NUMBER;
87730 l_adr_accounting_coa_id NUMBER;
87731 l_adr_flexfield_segment_code VARCHAR2(30);
87732 l_adr_flex_value_set_id NUMBER;
87733 l_adr_value_type_code VARCHAR2(30);
87734 l_adr_value_combination_id NUMBER;
87735 l_adr_value_segment_code VARCHAR2(30);
87736
87737 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
87738 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
87739 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
87740 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
87741
87742 -- 4262811 Variables ------------------------------------------------------------------------------------------
87743 l_entered_amt_idx NUMBER;
87744 l_accted_amt_idx NUMBER;
87745 l_acc_rev_flag VARCHAR2(1);
87746 l_accrual_line_num NUMBER;
87747 l_tmp_amt NUMBER;
87748 l_acc_rev_natural_side_code VARCHAR2(1);
87749
87750 l_num_entries NUMBER;
87751 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
87752 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
87753 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
87754 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
87755 l_recog_line_1 NUMBER;
87756 l_recog_line_2 NUMBER;
87757
87758 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
87759 l_bflow_applied_to_amt NUMBER; -- 5132302
87760 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
87761
87762 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87763
87764 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
87765 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
87766
87767 ---------------------------------------------------------------------------------------------------------------
87768
87769
87770 --
87771 -- bulk performance
87772 --
87773 l_balance_type_code VARCHAR2(1);
87774 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87775 l_log_module VARCHAR2(240);
87776
87777 --
87778 -- Upgrade strategy
87779 --
87780 l_actual_upg_option VARCHAR2(1);
87781 l_enc_upg_option VARCHAR2(1);
87782
87783 --
87784 BEGIN
87785 --
87786 IF g_log_enabled THEN
87787 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
87788 END IF;
87789 --
87790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87791
87792 trace
87793 (p_msg => 'BEGIN of AcctLineType_154'
87794 ,p_level => C_LEVEL_PROCEDURE
87795 ,p_module => l_log_module);
87796
87797 END IF;
87798 --
87802 l_component_appl_id := 200;
87799 l_component_type := 'AMB_JLT';
87800 l_component_code := 'AP_TAX_INV_PRICE_VAR_REF';
87801 l_component_type_code := 'S';
87803 l_amb_context_code := 'DEFAULT';
87804 l_entity_code := 'AP_PAYMENTS';
87805 l_event_class_code := 'REFUNDS';
87806 l_event_type_code := 'REFUNDS_ALL';
87807 l_line_definition_owner_code := 'S';
87808 l_line_definition_code := 'CASH_REFUNDS_ALL';
87809 --
87810 l_balance_type_code := 'A';
87811 l_segment := NULL;
87812 l_ccid := NULL;
87813 l_adr_transaction_coa_id := NULL;
87814 l_adr_accounting_coa_id := NULL;
87815 l_adr_flexfield_segment_code := NULL;
87816 l_adr_flex_value_set_id := NULL;
87817 l_adr_value_type_code := NULL;
87818 l_adr_value_combination_id := NULL;
87819 l_adr_value_segment_code := NULL;
87820
87821 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
87822 l_bflow_class_code := ''; -- 4219869 Business Flow
87823 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
87824 l_budgetary_control_flag := 'N';
87825
87826 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87827 l_bflow_applied_to_amt := NULL; -- 5132302
87828 l_entered_amt_idx := NULL; -- 4262811
87829 l_accted_amt_idx := NULL; -- 4262811
87830 l_acc_rev_flag := NULL; -- 4262811
87831 l_accrual_line_num := NULL; -- 4262811
87832 l_tmp_amt := NULL; -- 4262811
87833 --
87834
87835 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87836 l_balance_type_code <> 'B' THEN
87837 IF NVL(p_source_50,'
87838 ') <> 'CLEAR_CLEAR' AND
87839 NVL(p_source_32,'
87840 ') = 'TIPV' AND
87841 (NVL(p_source_51,'
87842 ') = 'CASH' OR
87843 NVL(p_source_51,'
87844 ') = 'DISCOUNT') AND
87845 NVL(p_source_71,'
87846 ') = 'R' AND
87847 NVL(p_source_111,'
87848 ') = 'Y'
87849 THEN
87850
87851 --
87852 XLA_AE_LINES_PKG.SetNewLine;
87853
87854 p_balance_type_code := l_balance_type_code;
87855 -- set the flag so later we will know whether the gain loss line needs to be created
87856
87857 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87858 p_actual_flag :='A';
87859 END IF;
87860
87861 --
87862 -- bulk performance
87863 --
87864 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87865 p_header_num => 0); -- 4262811
87866 --
87867 -- set accounting line options
87868 --
87869 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87870 p_natural_side_code => 'D'
87871 , p_gain_or_loss_flag => 'N'
87872 , p_gl_transfer_mode_code => 'S'
87873 , p_acct_entry_type_code => 'A'
87874 , p_switch_side_flag => 'Y'
87875 , p_merge_duplicate_code => 'A'
87876 );
87877 --
87878 l_acc_rev_natural_side_code := 'C'; -- 4262811
87879 --
87880 --
87881 -- set accounting line type info
87882 --
87883 xla_ae_lines_pkg.SetAcctLineType
87884 (p_component_type => l_component_type
87885 ,p_event_type_code => l_event_type_code
87886 ,p_line_definition_owner_code => l_line_definition_owner_code
87887 ,p_line_definition_code => l_line_definition_code
87888 ,p_accounting_line_code => l_component_code
87889 ,p_accounting_line_type_code => l_component_type_code
87890 ,p_accounting_line_appl_id => l_component_appl_id
87891 ,p_amb_context_code => l_amb_context_code
87892 ,p_entity_code => l_entity_code
87893 ,p_event_class_code => l_event_class_code);
87894 --
87895 -- set accounting class
87896 --
87897 xla_ae_lines_pkg.SetAcctClass(
87898 p_accounting_class_code => 'TIPV'
87899 , p_ae_header_id => l_ae_header_id
87900 );
87901
87902 --
87903 -- set rounding class
87904 --
87905 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87906 'TIPV';
87907
87908 --
87909 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87910 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87911 --
87912 -- bulk performance
87913 --
87914 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87915
87916 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87917 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87918
87919 -- 4955764
87920 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87921 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87922
87923 -- 4458381 Public Sector Enh
87924
87925 --
87926 -- set accounting attributes for the line type
87927 --
87928 l_entered_amt_idx := 9;
87929 l_accted_amt_idx := 14;
87933 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
87930 l_bflow_applied_to_amt_idx := NULL; -- 5132302
87931 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87932 l_rec_acct_attrs.array_char_value(1) := p_source_52;
87934 l_rec_acct_attrs.array_num_value(2) := p_source_54;
87935 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87936 l_rec_acct_attrs.array_char_value(3) := p_source_73;
87937 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
87938 l_rec_acct_attrs.array_char_value(4) := p_source_74;
87939 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
87940 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
87941 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87942 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
87943 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
87944 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
87945 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
87946 l_rec_acct_attrs.array_char_value(8) := p_source_60;
87947 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
87948 l_rec_acct_attrs.array_num_value(9) := p_source_53;
87949 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
87950 l_rec_acct_attrs.array_char_value(10) := p_source_12;
87951 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
87952 l_rec_acct_attrs.array_date_value(11) := p_source_121;
87953 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
87954 l_rec_acct_attrs.array_num_value(12) := p_source_122;
87955 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
87956 l_rec_acct_attrs.array_char_value(13) := p_source_123;
87957 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
87958 l_rec_acct_attrs.array_num_value(14) := p_source_21;
87959 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
87960 l_rec_acct_attrs.array_char_value(15) := p_source_64;
87961 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
87962 l_rec_acct_attrs.array_num_value(16) := p_source_65;
87963 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
87964 l_rec_acct_attrs.array_num_value(17) := p_source_66;
87965 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
87966 l_rec_acct_attrs.array_char_value(18) := p_source_67;
87967 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
87968 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
87969 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
87970 l_rec_acct_attrs.array_char_value(20) := p_source_60;
87971 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
87972 l_rec_acct_attrs.array_num_value(21) := p_source_69;
87973 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
87974 l_rec_acct_attrs.array_num_value(22) := p_source_77;
87975 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
87976 l_rec_acct_attrs.array_num_value(23) := p_source_70;
87977
87978 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87979 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87980
87981 ---------------------------------------------------------------------------------------------------------------
87982 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87983 ---------------------------------------------------------------------------------------------------------------
87984 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87985
87986 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87987 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87988
87989 IF xla_accounting_cache_pkg.GetValueChar
87990 (p_source_code => 'LEDGER_CATEGORY_CODE'
87991 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87992 AND l_bflow_method_code = 'PRIOR_ENTRY'
87993 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87994 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87995 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87996 )
87997 THEN
87998 xla_ae_lines_pkg.BflowUpgEntry
87999 (p_business_method_code => l_bflow_method_code
88000 ,p_business_class_code => l_bflow_class_code
88001 ,p_balance_type => l_balance_type_code);
88002 ELSE
88003 NULL;
88004 -- No business flow processing for business flow method of NONE.
88005 END IF;
88006
88007 --
88008 -- call analytical criteria
88009 --
88010
88011 --
88012 -- call description
88013 --
88014 -- No description or it is inherited.
88015 --
88016 -- call ADRs
88017 -- Bug 4922099
88018 --
88019 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88020 (NVL(l_actual_upg_option, 'N') = 'O') OR
88021 (NVL(l_enc_upg_option, 'N') = 'O')
88022 )
88023 THEN
88024 NULL;
88025 --
88026 --
88027
88028 l_ccid := AcctDerRule_28(
88029 p_application_id => p_application_id
88030 , p_ae_header_id => l_ae_header_id
88034 , x_value_type_code => l_adr_value_type_code
88031 , p_source_29 => p_source_29
88032 , x_transaction_coa_id => l_adr_transaction_coa_id
88033 , x_accounting_coa_id => l_adr_accounting_coa_id
88035 , p_side => 'NA'
88036 );
88037
88038 xla_ae_lines_pkg.set_ccid(
88039 p_code_combination_id => l_ccid
88040 , p_value_type_code => l_adr_value_type_code
88041 , p_transaction_coa_id => l_adr_transaction_coa_id
88042 , p_accounting_coa_id => l_adr_accounting_coa_id
88043 , p_adr_code => 'AP_INVOICE_DIST'
88044 , p_adr_type_code => 'S'
88045 , p_component_type => l_component_type
88046 , p_component_code => l_component_code
88047 , p_component_type_code => l_component_type_code
88048 , p_component_appl_id => l_component_appl_id
88049 , p_amb_context_code => l_amb_context_code
88050 , p_side => 'NA'
88051 );
88052
88053
88054 --
88055 --
88056 END IF;
88057 --
88058 -- Bug 4922099
88059 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88060 (NVL(l_enc_upg_option, 'N') = 'O')
88061 ) AND
88062 (l_bflow_method_code = 'PRIOR_ENTRY')
88063 )
88064 THEN
88065 IF
88066 --
88067 1 = 2
88068 --
88069 THEN
88070 xla_accounting_err_pkg.build_message
88071 (p_appli_s_name => 'XLA'
88072 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88073 ,p_token_1 => 'LINE_NUMBER'
88074 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
88075 ,p_token_2 => 'LINE_TYPE_NAME'
88076 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
88077 l_component_type
88078 ,l_component_code
88079 ,l_component_type_code
88080 ,l_component_appl_id
88081 ,l_amb_context_code
88082 ,l_entity_code
88083 ,l_event_class_code
88084 )
88085 ,p_token_3 => 'OWNER'
88086 ,p_value_3 => xla_lookups_pkg.get_meaning(
88087 p_lookup_type => 'XLA_OWNER_TYPE'
88088 ,p_lookup_code => l_component_type_code
88089 )
88090 ,p_token_4 => 'PRODUCT_NAME'
88091 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88092 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88093 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88094 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88095 ,p_ae_header_id => NULL
88096 );
88097
88098 IF (C_LEVEL_ERROR>= g_log_level) THEN
88099 trace
88100 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88101 ,p_level => C_LEVEL_ERROR
88102 ,p_module => l_log_module);
88103 END IF;
88104 END IF;
88105 END IF;
88106 --
88107 --
88108 ------------------------------------------------------------------------------------------------
88109 -- 4219869 Business Flow
88110 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88111 -- Prior Entry. Currently, the following code is always generated.
88112 ------------------------------------------------------------------------------------------------
88113 XLA_AE_LINES_PKG.ValidateCurrentLine;
88114
88115 ------------------------------------------------------------------------------------
88116 -- 4219869 Business Flow
88117 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88118 ------------------------------------------------------------------------------------
88119 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88120
88121 ----------------------------------------------------------------------------------
88122 -- 4219869 Business Flow
88123 -- Update journal entry status -- Need to generate this within IF <condition>
88124 ----------------------------------------------------------------------------------
88125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88130 -------------------------------------------------------------------------------------------
88127 ,p_balance_type_code => l_balance_type_code
88128 );
88129
88131 -- 4262811 - Generate the Accrual Reversal lines
88132 -------------------------------------------------------------------------------------------
88133 BEGIN
88134 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88135 (g_array_event(p_event_id).array_value_num('header_index'));
88136 IF l_acc_rev_flag IS NULL THEN
88137 l_acc_rev_flag := 'N';
88138 END IF;
88139 EXCEPTION
88140 WHEN OTHERS THEN
88141 l_acc_rev_flag := 'N';
88142 END;
88143 --
88144 IF (l_acc_rev_flag = 'Y') THEN
88145
88146 -- 4645092 ------------------------------------------------------------------------------
88147 -- To allow MPA report to determine if it should generate report process
88148 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88149 ------------------------------------------------------------------------------------------
88150
88151 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88152 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88153 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
88154 -- call ADRs
88155 -- Bug 4922099
88156 --
88157 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88158 (NVL(l_actual_upg_option, 'N') = 'O') OR
88159 (NVL(l_enc_upg_option, 'N') = 'O')
88160 )
88161 THEN
88162 NULL;
88163 --
88164 --
88165
88166 l_ccid := AcctDerRule_28(
88167 p_application_id => p_application_id
88168 , p_ae_header_id => l_ae_header_id
88169 , p_source_29 => p_source_29
88170 , x_transaction_coa_id => l_adr_transaction_coa_id
88171 , x_accounting_coa_id => l_adr_accounting_coa_id
88172 , x_value_type_code => l_adr_value_type_code
88173 , p_side => 'NA'
88174 );
88175
88176 xla_ae_lines_pkg.set_ccid(
88177 p_code_combination_id => l_ccid
88178 , p_value_type_code => l_adr_value_type_code
88179 , p_transaction_coa_id => l_adr_transaction_coa_id
88180 , p_accounting_coa_id => l_adr_accounting_coa_id
88181 , p_adr_code => 'AP_INVOICE_DIST'
88182 , p_adr_type_code => 'S'
88183 , p_component_type => l_component_type
88184 , p_component_code => l_component_code
88185 , p_component_type_code => l_component_type_code
88186 , p_component_appl_id => l_component_appl_id
88187 , p_amb_context_code => l_amb_context_code
88188 , p_side => 'NA'
88189 );
88190
88191
88192 --
88193 --
88194 END IF;
88195
88196 --
88197 -- Update the line information that should be overwritten
88198 --
88199 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88200 p_header_num => 1);
88201 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
88202
88203 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88204
88205 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
88206 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88207 END IF;
88208
88209 --
88210 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88211 --
88212 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88213 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
88214 ELSE
88215 ---------------------------------------------------------------------------------------------------
88216 -- 4262811a Switch Sign
88217 ---------------------------------------------------------------------------------------------------
88218 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
88219 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88220 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88221 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88222 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88223 -- 5132302
88224 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88225 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88226
88227 END IF;
88228
88229 -- 4955764
88230 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88231 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88232
88233
88234 XLA_AE_LINES_PKG.ValidateCurrentLine;
88235 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88236
88240
88237 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88238 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88239 ,p_balance_type_code => l_balance_type_code);
88241 END IF;
88242
88243 -----------------------------------------------------------------------------------------
88244 -- 4262811 Multiperiod Accounting
88245 -----------------------------------------------------------------------------------------
88246 -- No MPA option is assigned.
88247
88248
88249 END IF;
88250 END IF;
88251 --
88252
88253 --
88254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88255 trace
88256 (p_msg => 'END of AcctLineType_154'
88257 ,p_level => C_LEVEL_PROCEDURE
88258 ,p_module => l_log_module);
88259 END IF;
88260 --
88261 EXCEPTION
88262 WHEN xla_exceptions_pkg.application_exception THEN
88263 RAISE;
88264 WHEN OTHERS THEN
88265 xla_exceptions_pkg.raise_message
88266 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_154');
88267 END AcctLineType_154;
88268 --
88269
88270 ---------------------------------------
88271 --
88272 -- PRIVATE FUNCTION
88273 -- AcctLineType_155
88274 --
88275 ---------------------------------------
88276 PROCEDURE AcctLineType_155 (
88277 p_application_id IN NUMBER
88278 ,p_event_id IN NUMBER
88279 ,p_calculate_acctd_flag IN VARCHAR2
88280 ,p_calculate_g_l_flag IN VARCHAR2
88281 ,p_actual_flag IN OUT VARCHAR2
88282 ,p_balance_type_code OUT VARCHAR2
88283 ,p_gain_or_loss_ref OUT VARCHAR2
88284
88285 --Payment Currency Code
88286 , p_source_12 IN VARCHAR2
88287 --Payment Distribution (Cleared Rate) Ledger Amount
88288 , p_source_22 IN NUMBER
88289 --Invoice Distribution Account
88290 , p_source_29 IN NUMBER
88291 --Invoice Distribution Type
88292 , p_source_32 IN VARCHAR2
88293 , p_source_32_meaning IN VARCHAR2
88294 --When to Account for Payment Option
88295 , p_source_50 IN VARCHAR2
88296 --Payment Distribution Type
88297 , p_source_51 IN VARCHAR2
88298 , p_source_51_meaning IN VARCHAR2
88299 --Accounting Reversal Indicator
88300 , p_source_52 IN VARCHAR2
88301 --Payment Distribution Amount
88302 , p_source_53 IN NUMBER
88303 --Business Flow Accounts Payable Application Identifier
88304 , p_source_54 IN NUMBER
88305 --Business Flow Payment Distribution Type
88306 , p_source_55 IN VARCHAR2
88307 --Business Flow Payment Entity Code
88308 , p_source_56 IN VARCHAR2
88309 --Business Flow Payment Distribution Identifier
88310 , p_source_57 IN NUMBER
88311 --Business Flow Payment Identifier
88312 , p_source_58 IN NUMBER
88313 --Payment Distribution Identifier
88314 , p_source_59 IN NUMBER
88315 --Distribution Link Type
88316 , p_source_60 IN VARCHAR2
88317 --Override Accounted Amount Indicator
88318 , p_source_64 IN VARCHAR2
88319 , p_source_64_meaning IN VARCHAR2
88320 --Payment Supplier Identifier
88321 , p_source_65 IN NUMBER
88322 --Payment Supplier Site Identifier
88323 , p_source_66 IN NUMBER
88324 --Third Party Type
88325 , p_source_67 IN VARCHAR2
88326 --Payment Distribution Reversed Identifier
88327 , p_source_68 IN NUMBER
88328 --Invoice Distribution Tax Line Identifier
88329 , p_source_69 IN NUMBER
88330 --Invoice Distribution Summary Tax Line Identifier
88331 , p_source_70 IN NUMBER
88332 --Accrue on Receipt Option
88333 , p_source_111 IN VARCHAR2
88334 , p_source_111_meaning IN VARCHAR2
88335 --Cleared Exchange Date
88336 , p_source_114 IN DATE
88337 --Cleared Exchange Rate
88338 , p_source_115 IN NUMBER
88339 --Cleared Exchange Rate Type
88340 , p_source_116 IN VARCHAR2
88341 )
88342 IS
88343
88344 l_component_type VARCHAR2(80);
88345 l_component_code VARCHAR2(30);
88346 l_component_type_code VARCHAR2(1);
88347 l_component_appl_id INTEGER;
88348 l_amb_context_code VARCHAR2(30);
88349 l_entity_code VARCHAR2(30);
88350 l_event_class_code VARCHAR2(30);
88351 l_ae_header_id NUMBER;
88352 l_event_type_code VARCHAR2(30);
88353 l_line_definition_code VARCHAR2(30);
88354 l_line_definition_owner_code VARCHAR2(1);
88355 --
88356 -- adr variables
88357 l_segment VARCHAR2(30);
88358 l_ccid NUMBER;
88359 l_adr_transaction_coa_id NUMBER;
88360 l_adr_accounting_coa_id NUMBER;
88361 l_adr_flexfield_segment_code VARCHAR2(30);
88362 l_adr_flex_value_set_id NUMBER;
88363 l_adr_value_type_code VARCHAR2(30);
88364 l_adr_value_combination_id NUMBER;
88365 l_adr_value_segment_code VARCHAR2(30);
88366
88367 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
88368 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
88369 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
88370 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
88371
88372 -- 4262811 Variables ------------------------------------------------------------------------------------------
88373 l_entered_amt_idx NUMBER;
88377 l_tmp_amt NUMBER;
88374 l_accted_amt_idx NUMBER;
88375 l_acc_rev_flag VARCHAR2(1);
88376 l_accrual_line_num NUMBER;
88378 l_acc_rev_natural_side_code VARCHAR2(1);
88379
88380 l_num_entries NUMBER;
88381 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
88382 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
88383 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
88384 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
88385 l_recog_line_1 NUMBER;
88386 l_recog_line_2 NUMBER;
88387
88388 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
88389 l_bflow_applied_to_amt NUMBER; -- 5132302
88390 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
88391
88392 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88393
88394 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
88395 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
88396
88397 ---------------------------------------------------------------------------------------------------------------
88398
88399
88400 --
88401 -- bulk performance
88402 --
88403 l_balance_type_code VARCHAR2(1);
88404 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
88405 l_log_module VARCHAR2(240);
88406
88407 --
88408 -- Upgrade strategy
88409 --
88410 l_actual_upg_option VARCHAR2(1);
88411 l_enc_upg_option VARCHAR2(1);
88412
88413 --
88414 BEGIN
88415 --
88416 IF g_log_enabled THEN
88417 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
88418 END IF;
88419 --
88420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88421
88422 trace
88423 (p_msg => 'BEGIN of AcctLineType_155'
88424 ,p_level => C_LEVEL_PROCEDURE
88425 ,p_module => l_log_module);
88426
88427 END IF;
88428 --
88429 l_component_type := 'AMB_JLT';
88430 l_component_code := 'AP_TAX_RATE_VAR_CLEAR';
88431 l_component_type_code := 'S';
88432 l_component_appl_id := 200;
88433 l_amb_context_code := 'DEFAULT';
88434 l_entity_code := 'AP_PAYMENTS';
88435 l_event_class_code := 'RECONCILED PAYMENTS';
88436 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
88437 l_line_definition_owner_code := 'S';
88438 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
88439 --
88440 l_balance_type_code := 'A';
88441 l_segment := NULL;
88442 l_ccid := NULL;
88443 l_adr_transaction_coa_id := NULL;
88444 l_adr_accounting_coa_id := NULL;
88445 l_adr_flexfield_segment_code := NULL;
88446 l_adr_flex_value_set_id := NULL;
88447 l_adr_value_type_code := NULL;
88448 l_adr_value_combination_id := NULL;
88449 l_adr_value_segment_code := NULL;
88450
88451 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
88452 l_bflow_class_code := ''; -- 4219869 Business Flow
88453 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
88454 l_budgetary_control_flag := 'N';
88455
88456 l_bflow_applied_to_amt_idx := NULL; -- 5132302
88457 l_bflow_applied_to_amt := NULL; -- 5132302
88458 l_entered_amt_idx := NULL; -- 4262811
88459 l_accted_amt_idx := NULL; -- 4262811
88460 l_acc_rev_flag := NULL; -- 4262811
88461 l_accrual_line_num := NULL; -- 4262811
88462 l_tmp_amt := NULL; -- 4262811
88463 --
88464
88465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88466 l_balance_type_code <> 'B' THEN
88467 IF NVL(p_source_50,'
88468 ') = 'CLEAR_CLEAR' AND
88469 NVL(p_source_32,'
88470 ') = 'TRV' AND
88471 (NVL(p_source_51,'
88472 ') = 'CASH' OR
88473 NVL(p_source_51,'
88474 ') = 'AWT' OR
88475 NVL(p_source_51,'
88476 ') = 'DISCOUNT') AND
88477 NVL(p_source_111,'
88478 ') = 'Y'
88479 THEN
88480
88481 --
88482 XLA_AE_LINES_PKG.SetNewLine;
88483
88484 p_balance_type_code := l_balance_type_code;
88485 -- set the flag so later we will know whether the gain loss line needs to be created
88486
88487 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88488 p_actual_flag :='A';
88489 END IF;
88490
88491 --
88492 -- bulk performance
88493 --
88494 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88495 p_header_num => 0); -- 4262811
88496 --
88497 -- set accounting line options
88498 --
88499 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88500 p_natural_side_code => 'D'
88501 , p_gain_or_loss_flag => 'N'
88502 , p_gl_transfer_mode_code => 'S'
88503 , p_acct_entry_type_code => 'A'
88504 , p_switch_side_flag => 'Y'
88505 , p_merge_duplicate_code => 'A'
88506 );
88507 --
88508 l_acc_rev_natural_side_code := 'C'; -- 4262811
88509 --
88510 --
88511 -- set accounting line type info
88512 --
88516 ,p_line_definition_owner_code => l_line_definition_owner_code
88513 xla_ae_lines_pkg.SetAcctLineType
88514 (p_component_type => l_component_type
88515 ,p_event_type_code => l_event_type_code
88517 ,p_line_definition_code => l_line_definition_code
88518 ,p_accounting_line_code => l_component_code
88519 ,p_accounting_line_type_code => l_component_type_code
88520 ,p_accounting_line_appl_id => l_component_appl_id
88521 ,p_amb_context_code => l_amb_context_code
88522 ,p_entity_code => l_entity_code
88523 ,p_event_class_code => l_event_class_code);
88524 --
88525 -- set accounting class
88526 --
88527 xla_ae_lines_pkg.SetAcctClass(
88528 p_accounting_class_code => 'TRV'
88529 , p_ae_header_id => l_ae_header_id
88530 );
88531
88532 --
88533 -- set rounding class
88534 --
88535 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88536 'TRV';
88537
88538 --
88539 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88540 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88541 --
88542 -- bulk performance
88543 --
88544 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88545
88546 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88547 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88548
88549 -- 4955764
88550 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88551 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88552
88553 -- 4458381 Public Sector Enh
88554
88555 --
88556 -- set accounting attributes for the line type
88557 --
88558 l_entered_amt_idx := 10;
88559 l_accted_amt_idx := 15;
88560 l_bflow_applied_to_amt_idx := 2; -- 5132302
88561 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88562 l_rec_acct_attrs.array_char_value(1) := p_source_52;
88563 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
88564 l_rec_acct_attrs.array_num_value(2) := p_source_53;
88565 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
88566 l_rec_acct_attrs.array_num_value(3) := p_source_54;
88567 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88568 l_rec_acct_attrs.array_char_value(4) := p_source_55;
88569 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
88570 l_rec_acct_attrs.array_char_value(5) := p_source_56;
88571 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
88572 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
88573 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88574 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
88575 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
88576 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
88577 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
88578 l_rec_acct_attrs.array_char_value(9) := p_source_60;
88579 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
88580 l_rec_acct_attrs.array_num_value(10) := p_source_53;
88581 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
88582 l_rec_acct_attrs.array_char_value(11) := p_source_12;
88583 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
88584 l_rec_acct_attrs.array_date_value(12) := p_source_114;
88585 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
88586 l_rec_acct_attrs.array_num_value(13) := p_source_115;
88587 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
88588 l_rec_acct_attrs.array_char_value(14) := p_source_116;
88589 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
88590 l_rec_acct_attrs.array_num_value(15) := p_source_22;
88591 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
88592 l_rec_acct_attrs.array_char_value(16) := p_source_64;
88593 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
88594 l_rec_acct_attrs.array_num_value(17) := p_source_65;
88595 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
88596 l_rec_acct_attrs.array_num_value(18) := p_source_66;
88597 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
88598 l_rec_acct_attrs.array_char_value(19) := p_source_67;
88599 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
88600 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
88601 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
88602 l_rec_acct_attrs.array_char_value(21) := p_source_60;
88603 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
88604 l_rec_acct_attrs.array_num_value(22) := p_source_69;
88605 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
88606 l_rec_acct_attrs.array_num_value(23) := p_source_69;
88607 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
88608 l_rec_acct_attrs.array_num_value(24) := p_source_70;
88609
88610 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88614 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88611 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88612
88613 ---------------------------------------------------------------------------------------------------------------
88615 ---------------------------------------------------------------------------------------------------------------
88616 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88617
88618 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88619 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88620
88621 IF xla_accounting_cache_pkg.GetValueChar
88622 (p_source_code => 'LEDGER_CATEGORY_CODE'
88623 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88624 AND l_bflow_method_code = 'PRIOR_ENTRY'
88625 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88626 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88627 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88628 )
88629 THEN
88630 xla_ae_lines_pkg.BflowUpgEntry
88631 (p_business_method_code => l_bflow_method_code
88632 ,p_business_class_code => l_bflow_class_code
88633 ,p_balance_type => l_balance_type_code);
88634 ELSE
88635 NULL;
88636 -- No business flow processing for business flow method of NONE.
88637 END IF;
88638
88639 --
88640 -- call analytical criteria
88641 --
88642
88643 --
88644 -- call description
88645 --
88646 -- No description or it is inherited.
88647 --
88648 -- call ADRs
88649 -- Bug 4922099
88650 --
88651 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88652 (NVL(l_actual_upg_option, 'N') = 'O') OR
88653 (NVL(l_enc_upg_option, 'N') = 'O')
88654 )
88655 THEN
88656 NULL;
88657 --
88658 --
88659
88660 l_ccid := AcctDerRule_28(
88661 p_application_id => p_application_id
88662 , p_ae_header_id => l_ae_header_id
88663 , p_source_29 => p_source_29
88664 , x_transaction_coa_id => l_adr_transaction_coa_id
88665 , x_accounting_coa_id => l_adr_accounting_coa_id
88666 , x_value_type_code => l_adr_value_type_code
88667 , p_side => 'NA'
88668 );
88669
88670 xla_ae_lines_pkg.set_ccid(
88671 p_code_combination_id => l_ccid
88672 , p_value_type_code => l_adr_value_type_code
88673 , p_transaction_coa_id => l_adr_transaction_coa_id
88674 , p_accounting_coa_id => l_adr_accounting_coa_id
88675 , p_adr_code => 'AP_INVOICE_DIST'
88676 , p_adr_type_code => 'S'
88677 , p_component_type => l_component_type
88678 , p_component_code => l_component_code
88679 , p_component_type_code => l_component_type_code
88680 , p_component_appl_id => l_component_appl_id
88681 , p_amb_context_code => l_amb_context_code
88682 , p_side => 'NA'
88683 );
88684
88685
88686 --
88687 --
88688 END IF;
88689 --
88690 -- Bug 4922099
88691 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88692 (NVL(l_enc_upg_option, 'N') = 'O')
88693 ) AND
88694 (l_bflow_method_code = 'PRIOR_ENTRY')
88695 )
88696 THEN
88697 IF
88698 --
88699 1 = 2
88700 --
88701 THEN
88702 xla_accounting_err_pkg.build_message
88703 (p_appli_s_name => 'XLA'
88704 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88705 ,p_token_1 => 'LINE_NUMBER'
88706 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
88707 ,p_token_2 => 'LINE_TYPE_NAME'
88708 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
88709 l_component_type
88710 ,l_component_code
88711 ,l_component_type_code
88712 ,l_component_appl_id
88713 ,l_amb_context_code
88714 ,l_entity_code
88715 ,l_event_class_code
88716 )
88717 ,p_token_3 => 'OWNER'
88718 ,p_value_3 => xla_lookups_pkg.get_meaning(
88719 p_lookup_type => 'XLA_OWNER_TYPE'
88720 ,p_lookup_code => l_component_type_code
88724 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88721 )
88722 ,p_token_4 => 'PRODUCT_NAME'
88723 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88725 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88726 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88727 ,p_ae_header_id => NULL
88728 );
88729
88730 IF (C_LEVEL_ERROR>= g_log_level) THEN
88731 trace
88732 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88733 ,p_level => C_LEVEL_ERROR
88734 ,p_module => l_log_module);
88735 END IF;
88736 END IF;
88737 END IF;
88738 --
88739 --
88740 ------------------------------------------------------------------------------------------------
88741 -- 4219869 Business Flow
88742 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88743 -- Prior Entry. Currently, the following code is always generated.
88744 ------------------------------------------------------------------------------------------------
88745 XLA_AE_LINES_PKG.ValidateCurrentLine;
88746
88747 ------------------------------------------------------------------------------------
88748 -- 4219869 Business Flow
88749 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88750 ------------------------------------------------------------------------------------
88751 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88752
88753 ----------------------------------------------------------------------------------
88754 -- 4219869 Business Flow
88755 -- Update journal entry status -- Need to generate this within IF <condition>
88756 ----------------------------------------------------------------------------------
88757 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88758 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88759 ,p_balance_type_code => l_balance_type_code
88760 );
88761
88762 -------------------------------------------------------------------------------------------
88763 -- 4262811 - Generate the Accrual Reversal lines
88764 -------------------------------------------------------------------------------------------
88765 BEGIN
88766 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88767 (g_array_event(p_event_id).array_value_num('header_index'));
88768 IF l_acc_rev_flag IS NULL THEN
88769 l_acc_rev_flag := 'N';
88770 END IF;
88771 EXCEPTION
88772 WHEN OTHERS THEN
88773 l_acc_rev_flag := 'N';
88774 END;
88775 --
88776 IF (l_acc_rev_flag = 'Y') THEN
88777
88778 -- 4645092 ------------------------------------------------------------------------------
88779 -- To allow MPA report to determine if it should generate report process
88780 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88781 ------------------------------------------------------------------------------------------
88782
88783 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88784 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88785 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
88786 -- call ADRs
88787 -- Bug 4922099
88788 --
88789 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88790 (NVL(l_actual_upg_option, 'N') = 'O') OR
88791 (NVL(l_enc_upg_option, 'N') = 'O')
88792 )
88793 THEN
88794 NULL;
88795 --
88796 --
88797
88798 l_ccid := AcctDerRule_28(
88799 p_application_id => p_application_id
88800 , p_ae_header_id => l_ae_header_id
88801 , p_source_29 => p_source_29
88802 , x_transaction_coa_id => l_adr_transaction_coa_id
88803 , x_accounting_coa_id => l_adr_accounting_coa_id
88804 , x_value_type_code => l_adr_value_type_code
88805 , p_side => 'NA'
88806 );
88807
88808 xla_ae_lines_pkg.set_ccid(
88809 p_code_combination_id => l_ccid
88810 , p_value_type_code => l_adr_value_type_code
88811 , p_transaction_coa_id => l_adr_transaction_coa_id
88812 , p_accounting_coa_id => l_adr_accounting_coa_id
88813 , p_adr_code => 'AP_INVOICE_DIST'
88814 , p_adr_type_code => 'S'
88815 , p_component_type => l_component_type
88816 , p_component_code => l_component_code
88817 , p_component_type_code => l_component_type_code
88818 , p_component_appl_id => l_component_appl_id
88819 , p_amb_context_code => l_amb_context_code
88820 , p_side => 'NA'
88821 );
88822
88823
88824 --
88825 --
88826 END IF;
88827
88828 --
88829 -- Update the line information that should be overwritten
88830 --
88831 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88835 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88832 p_header_num => 1);
88833 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
88834
88836
88837 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
88838 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88839 END IF;
88840
88841 --
88842 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88843 --
88844 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88845 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
88846 ELSE
88847 ---------------------------------------------------------------------------------------------------
88848 -- 4262811a Switch Sign
88849 ---------------------------------------------------------------------------------------------------
88850 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
88851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88852 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88853 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88854 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88855 -- 5132302
88856 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88857 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88858
88859 END IF;
88860
88861 -- 4955764
88862 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88863 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88864
88865
88866 XLA_AE_LINES_PKG.ValidateCurrentLine;
88867 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88868
88869 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88870 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88871 ,p_balance_type_code => l_balance_type_code);
88872
88873 END IF;
88874
88875 -----------------------------------------------------------------------------------------
88876 -- 4262811 Multiperiod Accounting
88877 -----------------------------------------------------------------------------------------
88878 -- No MPA option is assigned.
88879
88880
88881 END IF;
88882 END IF;
88883 --
88884
88885 --
88886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88887 trace
88888 (p_msg => 'END of AcctLineType_155'
88889 ,p_level => C_LEVEL_PROCEDURE
88890 ,p_module => l_log_module);
88891 END IF;
88892 --
88893 EXCEPTION
88894 WHEN xla_exceptions_pkg.application_exception THEN
88895 RAISE;
88896 WHEN OTHERS THEN
88897 xla_exceptions_pkg.raise_message
88898 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_155');
88899 END AcctLineType_155;
88900 --
88901
88902 ---------------------------------------
88903 --
88904 -- PRIVATE FUNCTION
88905 -- AcctLineType_156
88906 --
88907 ---------------------------------------
88908 PROCEDURE AcctLineType_156 (
88909 p_application_id IN NUMBER
88910 ,p_event_id IN NUMBER
88911 ,p_calculate_acctd_flag IN VARCHAR2
88912 ,p_calculate_g_l_flag IN VARCHAR2
88913 ,p_actual_flag IN OUT VARCHAR2
88914 ,p_balance_type_code OUT VARCHAR2
88915 ,p_gain_or_loss_ref OUT VARCHAR2
88916
88917 --Payment Currency Code
88918 , p_source_12 IN VARCHAR2
88919 --Payment Distribution (Payment Rate) Ledger Amount
88920 , p_source_21 IN NUMBER
88921 --Invoice Distribution Account
88922 , p_source_29 IN NUMBER
88923 --Invoice Distribution Type
88924 , p_source_32 IN VARCHAR2
88925 , p_source_32_meaning IN VARCHAR2
88926 --When to Account for Payment Option
88927 , p_source_50 IN VARCHAR2
88928 --Payment Distribution Type
88929 , p_source_51 IN VARCHAR2
88930 , p_source_51_meaning IN VARCHAR2
88931 --Accounting Reversal Indicator
88932 , p_source_52 IN VARCHAR2
88933 --Payment Distribution Amount
88934 , p_source_53 IN NUMBER
88935 --Business Flow Accounts Payable Application Identifier
88936 , p_source_54 IN NUMBER
88937 --Payment Distribution Identifier
88938 , p_source_59 IN NUMBER
88939 --Distribution Link Type
88940 , p_source_60 IN VARCHAR2
88941 --Override Accounted Amount Indicator
88942 , p_source_64 IN VARCHAR2
88943 , p_source_64_meaning IN VARCHAR2
88944 --Payment Supplier Identifier
88945 , p_source_65 IN NUMBER
88946 --Payment Supplier Site Identifier
88947 , p_source_66 IN NUMBER
88948 --Third Party Type
88949 , p_source_67 IN VARCHAR2
88950 --Payment Distribution Reversed Identifier
88951 , p_source_68 IN NUMBER
88952 --Invoice Distribution Tax Line Identifier
88956 --Payment Type
88953 , p_source_69 IN NUMBER
88954 --Invoice Distribution Summary Tax Line Identifier
88955 , p_source_70 IN NUMBER
88957 , p_source_71 IN VARCHAR2
88958 , p_source_71_meaning IN VARCHAR2
88959 --Invoice Distribution Amount of the Payment Distribution
88960 , p_source_72 IN NUMBER
88961 --Business Flow Invoice Distribution Type
88962 , p_source_73 IN VARCHAR2
88963 --Business Flow Invoice Entity Code
88964 , p_source_74 IN VARCHAR2
88965 --Business Flow Invoice Distribution Identifier
88966 , p_source_75 IN NUMBER
88967 --Business Flow Invoice Identifier
88968 , p_source_76 IN NUMBER
88969 --Invoice Distribution Tax Distribution Identifier from Tax
88970 , p_source_77 IN NUMBER
88971 --Accrue on Receipt Option
88972 , p_source_111 IN VARCHAR2
88973 , p_source_111_meaning IN VARCHAR2
88974 --Invoice Type Paid
88975 , p_source_112 IN VARCHAR2
88976 , p_source_112_meaning IN VARCHAR2
88977 --Payment Exchange Date
88978 , p_source_121 IN DATE
88979 --Payment Exchange Rate
88980 , p_source_122 IN NUMBER
88981 --Payment Exchange Rate Type
88982 , p_source_123 IN VARCHAR2
88983 )
88984 IS
88985
88986 l_component_type VARCHAR2(80);
88987 l_component_code VARCHAR2(30);
88988 l_component_type_code VARCHAR2(1);
88989 l_component_appl_id INTEGER;
88990 l_amb_context_code VARCHAR2(30);
88991 l_entity_code VARCHAR2(30);
88992 l_event_class_code VARCHAR2(30);
88993 l_ae_header_id NUMBER;
88994 l_event_type_code VARCHAR2(30);
88995 l_line_definition_code VARCHAR2(30);
88996 l_line_definition_owner_code VARCHAR2(1);
88997 --
88998 -- adr variables
88999 l_segment VARCHAR2(30);
89000 l_ccid NUMBER;
89001 l_adr_transaction_coa_id NUMBER;
89002 l_adr_accounting_coa_id NUMBER;
89003 l_adr_flexfield_segment_code VARCHAR2(30);
89004 l_adr_flex_value_set_id NUMBER;
89005 l_adr_value_type_code VARCHAR2(30);
89006 l_adr_value_combination_id NUMBER;
89007 l_adr_value_segment_code VARCHAR2(30);
89008
89009 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
89010 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
89011 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
89012 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
89013
89014 -- 4262811 Variables ------------------------------------------------------------------------------------------
89015 l_entered_amt_idx NUMBER;
89016 l_accted_amt_idx NUMBER;
89017 l_acc_rev_flag VARCHAR2(1);
89018 l_accrual_line_num NUMBER;
89019 l_tmp_amt NUMBER;
89020 l_acc_rev_natural_side_code VARCHAR2(1);
89021
89022 l_num_entries NUMBER;
89023 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
89024 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
89025 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
89026 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
89027 l_recog_line_1 NUMBER;
89028 l_recog_line_2 NUMBER;
89029
89030 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
89031 l_bflow_applied_to_amt NUMBER; -- 5132302
89032 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
89033
89034 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89035
89036 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
89037 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
89038
89039 ---------------------------------------------------------------------------------------------------------------
89040
89041
89042 --
89043 -- bulk performance
89044 --
89045 l_balance_type_code VARCHAR2(1);
89046 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
89047 l_log_module VARCHAR2(240);
89048
89049 --
89050 -- Upgrade strategy
89051 --
89052 l_actual_upg_option VARCHAR2(1);
89053 l_enc_upg_option VARCHAR2(1);
89054
89055 --
89056 BEGIN
89057 --
89058 IF g_log_enabled THEN
89059 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
89060 END IF;
89061 --
89062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89063
89064 trace
89065 (p_msg => 'BEGIN of AcctLineType_156'
89066 ,p_level => C_LEVEL_PROCEDURE
89067 ,p_module => l_log_module);
89068
89069 END IF;
89070 --
89071 l_component_type := 'AMB_JLT';
89072 l_component_code := 'AP_TAX_RATE_VAR_PMT';
89073 l_component_type_code := 'S';
89074 l_component_appl_id := 200;
89075 l_amb_context_code := 'DEFAULT';
89076 l_entity_code := 'AP_PAYMENTS';
89077 l_event_class_code := 'PAYMENTS';
89078 l_event_type_code := 'PAYMENTS_ALL';
89079 l_line_definition_owner_code := 'S';
89080 l_line_definition_code := 'CASH_PAYMENTS_ALL';
89081 --
89085 l_adr_transaction_coa_id := NULL;
89082 l_balance_type_code := 'A';
89083 l_segment := NULL;
89084 l_ccid := NULL;
89086 l_adr_accounting_coa_id := NULL;
89087 l_adr_flexfield_segment_code := NULL;
89088 l_adr_flex_value_set_id := NULL;
89089 l_adr_value_type_code := NULL;
89090 l_adr_value_combination_id := NULL;
89091 l_adr_value_segment_code := NULL;
89092
89093 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
89094 l_bflow_class_code := ''; -- 4219869 Business Flow
89095 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
89096 l_budgetary_control_flag := 'N';
89097
89098 l_bflow_applied_to_amt_idx := NULL; -- 5132302
89099 l_bflow_applied_to_amt := NULL; -- 5132302
89100 l_entered_amt_idx := NULL; -- 4262811
89101 l_accted_amt_idx := NULL; -- 4262811
89102 l_acc_rev_flag := NULL; -- 4262811
89103 l_accrual_line_num := NULL; -- 4262811
89104 l_tmp_amt := NULL; -- 4262811
89105 --
89106
89107 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89108 l_balance_type_code <> 'B' THEN
89109 IF NVL(p_source_50,'
89110 ') <> 'CLEAR_CLEAR' AND
89111 NVL(p_source_32,'
89112 ') = 'TRV' AND
89113 NVL(p_source_112,'
89114 ') <> 'INTEREST' AND
89115 (NVL(p_source_51,'
89116 ') = 'CASH' OR
89117 NVL(p_source_51,'
89118 ') = 'AWT' OR
89119 NVL(p_source_51,'
89120 ') = 'DISCOUNT') AND
89121 NVL(p_source_71,'
89122 ') <> 'R' AND
89123 NVL(p_source_111,'
89124 ') = 'Y'
89125 THEN
89126
89127 --
89128 XLA_AE_LINES_PKG.SetNewLine;
89129
89130 p_balance_type_code := l_balance_type_code;
89131 -- set the flag so later we will know whether the gain loss line needs to be created
89132
89133 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89134 p_actual_flag :='A';
89135 END IF;
89136
89137 --
89138 -- bulk performance
89139 --
89140 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89141 p_header_num => 0); -- 4262811
89142 --
89143 -- set accounting line options
89144 --
89145 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89146 p_natural_side_code => 'D'
89147 , p_gain_or_loss_flag => 'N'
89148 , p_gl_transfer_mode_code => 'S'
89149 , p_acct_entry_type_code => 'A'
89150 , p_switch_side_flag => 'Y'
89151 , p_merge_duplicate_code => 'A'
89152 );
89153 --
89154 l_acc_rev_natural_side_code := 'C'; -- 4262811
89155 --
89156 --
89157 -- set accounting line type info
89158 --
89159 xla_ae_lines_pkg.SetAcctLineType
89160 (p_component_type => l_component_type
89161 ,p_event_type_code => l_event_type_code
89162 ,p_line_definition_owner_code => l_line_definition_owner_code
89163 ,p_line_definition_code => l_line_definition_code
89164 ,p_accounting_line_code => l_component_code
89165 ,p_accounting_line_type_code => l_component_type_code
89166 ,p_accounting_line_appl_id => l_component_appl_id
89167 ,p_amb_context_code => l_amb_context_code
89168 ,p_entity_code => l_entity_code
89169 ,p_event_class_code => l_event_class_code);
89170 --
89171 -- set accounting class
89172 --
89173 xla_ae_lines_pkg.SetAcctClass(
89174 p_accounting_class_code => 'TRV'
89175 , p_ae_header_id => l_ae_header_id
89176 );
89177
89178 --
89179 -- set rounding class
89180 --
89181 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89182 'TRV';
89183
89184 --
89185 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89186 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89187 --
89188 -- bulk performance
89189 --
89190 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89191
89192 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89193 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89194
89195 -- 4955764
89196 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89197 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89198
89199 -- 4458381 Public Sector Enh
89200
89201 --
89202 -- set accounting attributes for the line type
89203 --
89204 l_entered_amt_idx := 10;
89205 l_accted_amt_idx := 15;
89206 l_bflow_applied_to_amt_idx := 2; -- 5132302
89207 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89208 l_rec_acct_attrs.array_char_value(1) := p_source_52;
89209 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
89210 l_rec_acct_attrs.array_num_value(2) := p_source_72;
89211 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
89212 l_rec_acct_attrs.array_num_value(3) := p_source_54;
89216 l_rec_acct_attrs.array_char_value(5) := p_source_74;
89213 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89214 l_rec_acct_attrs.array_char_value(4) := p_source_73;
89215 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
89217 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
89218 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
89219 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89220 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
89221 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
89222 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
89223 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
89224 l_rec_acct_attrs.array_char_value(9) := p_source_60;
89225 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
89226 l_rec_acct_attrs.array_num_value(10) := p_source_53;
89227 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
89228 l_rec_acct_attrs.array_char_value(11) := p_source_12;
89229 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
89230 l_rec_acct_attrs.array_date_value(12) := p_source_121;
89231 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
89232 l_rec_acct_attrs.array_num_value(13) := p_source_122;
89233 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
89234 l_rec_acct_attrs.array_char_value(14) := p_source_123;
89235 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
89236 l_rec_acct_attrs.array_num_value(15) := p_source_21;
89237 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
89238 l_rec_acct_attrs.array_char_value(16) := p_source_64;
89239 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
89240 l_rec_acct_attrs.array_num_value(17) := p_source_65;
89241 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
89242 l_rec_acct_attrs.array_num_value(18) := p_source_66;
89243 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
89244 l_rec_acct_attrs.array_char_value(19) := p_source_67;
89245 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
89246 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
89247 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
89248 l_rec_acct_attrs.array_char_value(21) := p_source_60;
89249 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
89250 l_rec_acct_attrs.array_num_value(22) := p_source_69;
89251 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
89252 l_rec_acct_attrs.array_num_value(23) := p_source_77;
89253 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
89254 l_rec_acct_attrs.array_num_value(24) := p_source_70;
89255
89256 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89257 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89258
89259 ---------------------------------------------------------------------------------------------------------------
89260 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89261 ---------------------------------------------------------------------------------------------------------------
89262 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89263
89264 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89265 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89266
89267 IF xla_accounting_cache_pkg.GetValueChar
89268 (p_source_code => 'LEDGER_CATEGORY_CODE'
89269 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89270 AND l_bflow_method_code = 'PRIOR_ENTRY'
89271 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89272 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89273 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89274 )
89275 THEN
89276 xla_ae_lines_pkg.BflowUpgEntry
89277 (p_business_method_code => l_bflow_method_code
89278 ,p_business_class_code => l_bflow_class_code
89279 ,p_balance_type => l_balance_type_code);
89280 ELSE
89281 NULL;
89282 -- No business flow processing for business flow method of NONE.
89283 END IF;
89284
89285 --
89286 -- call analytical criteria
89287 --
89288
89289 --
89290 -- call description
89291 --
89292 -- No description or it is inherited.
89293 --
89294 -- call ADRs
89295 -- Bug 4922099
89296 --
89297 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89298 (NVL(l_actual_upg_option, 'N') = 'O') OR
89299 (NVL(l_enc_upg_option, 'N') = 'O')
89300 )
89301 THEN
89302 NULL;
89303 --
89304 --
89305
89306 l_ccid := AcctDerRule_28(
89307 p_application_id => p_application_id
89308 , p_ae_header_id => l_ae_header_id
89309 , p_source_29 => p_source_29
89310 , x_transaction_coa_id => l_adr_transaction_coa_id
89311 , x_accounting_coa_id => l_adr_accounting_coa_id
89312 , x_value_type_code => l_adr_value_type_code
89313 , p_side => 'NA'
89314 );
89315
89319 , p_transaction_coa_id => l_adr_transaction_coa_id
89316 xla_ae_lines_pkg.set_ccid(
89317 p_code_combination_id => l_ccid
89318 , p_value_type_code => l_adr_value_type_code
89320 , p_accounting_coa_id => l_adr_accounting_coa_id
89321 , p_adr_code => 'AP_INVOICE_DIST'
89322 , p_adr_type_code => 'S'
89323 , p_component_type => l_component_type
89324 , p_component_code => l_component_code
89325 , p_component_type_code => l_component_type_code
89326 , p_component_appl_id => l_component_appl_id
89327 , p_amb_context_code => l_amb_context_code
89328 , p_side => 'NA'
89329 );
89330
89331
89332 --
89333 --
89334 END IF;
89335 --
89336 -- Bug 4922099
89337 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89338 (NVL(l_enc_upg_option, 'N') = 'O')
89339 ) AND
89340 (l_bflow_method_code = 'PRIOR_ENTRY')
89341 )
89342 THEN
89343 IF
89344 --
89345 1 = 2
89346 --
89347 THEN
89348 xla_accounting_err_pkg.build_message
89349 (p_appli_s_name => 'XLA'
89350 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89351 ,p_token_1 => 'LINE_NUMBER'
89352 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
89353 ,p_token_2 => 'LINE_TYPE_NAME'
89354 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
89355 l_component_type
89356 ,l_component_code
89357 ,l_component_type_code
89358 ,l_component_appl_id
89359 ,l_amb_context_code
89360 ,l_entity_code
89361 ,l_event_class_code
89362 )
89363 ,p_token_3 => 'OWNER'
89364 ,p_value_3 => xla_lookups_pkg.get_meaning(
89365 p_lookup_type => 'XLA_OWNER_TYPE'
89366 ,p_lookup_code => l_component_type_code
89367 )
89368 ,p_token_4 => 'PRODUCT_NAME'
89369 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89370 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89371 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89372 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89373 ,p_ae_header_id => NULL
89374 );
89375
89376 IF (C_LEVEL_ERROR>= g_log_level) THEN
89377 trace
89378 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89379 ,p_level => C_LEVEL_ERROR
89380 ,p_module => l_log_module);
89381 END IF;
89382 END IF;
89383 END IF;
89384 --
89385 --
89386 ------------------------------------------------------------------------------------------------
89387 -- 4219869 Business Flow
89388 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89389 -- Prior Entry. Currently, the following code is always generated.
89390 ------------------------------------------------------------------------------------------------
89391 XLA_AE_LINES_PKG.ValidateCurrentLine;
89392
89393 ------------------------------------------------------------------------------------
89394 -- 4219869 Business Flow
89395 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89396 ------------------------------------------------------------------------------------
89397 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89398
89399 ----------------------------------------------------------------------------------
89400 -- 4219869 Business Flow
89401 -- Update journal entry status -- Need to generate this within IF <condition>
89402 ----------------------------------------------------------------------------------
89403 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89404 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89405 ,p_balance_type_code => l_balance_type_code
89406 );
89407
89408 -------------------------------------------------------------------------------------------
89409 -- 4262811 - Generate the Accrual Reversal lines
89410 -------------------------------------------------------------------------------------------
89411 BEGIN
89415 l_acc_rev_flag := 'N';
89412 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89413 (g_array_event(p_event_id).array_value_num('header_index'));
89414 IF l_acc_rev_flag IS NULL THEN
89416 END IF;
89417 EXCEPTION
89418 WHEN OTHERS THEN
89419 l_acc_rev_flag := 'N';
89420 END;
89421 --
89422 IF (l_acc_rev_flag = 'Y') THEN
89423
89424 -- 4645092 ------------------------------------------------------------------------------
89425 -- To allow MPA report to determine if it should generate report process
89426 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89427 ------------------------------------------------------------------------------------------
89428
89429 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89430 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89431 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
89432 -- call ADRs
89433 -- Bug 4922099
89434 --
89435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89436 (NVL(l_actual_upg_option, 'N') = 'O') OR
89437 (NVL(l_enc_upg_option, 'N') = 'O')
89438 )
89439 THEN
89440 NULL;
89441 --
89442 --
89443
89444 l_ccid := AcctDerRule_28(
89445 p_application_id => p_application_id
89446 , p_ae_header_id => l_ae_header_id
89447 , p_source_29 => p_source_29
89448 , x_transaction_coa_id => l_adr_transaction_coa_id
89449 , x_accounting_coa_id => l_adr_accounting_coa_id
89450 , x_value_type_code => l_adr_value_type_code
89451 , p_side => 'NA'
89452 );
89453
89454 xla_ae_lines_pkg.set_ccid(
89455 p_code_combination_id => l_ccid
89456 , p_value_type_code => l_adr_value_type_code
89457 , p_transaction_coa_id => l_adr_transaction_coa_id
89458 , p_accounting_coa_id => l_adr_accounting_coa_id
89459 , p_adr_code => 'AP_INVOICE_DIST'
89460 , p_adr_type_code => 'S'
89461 , p_component_type => l_component_type
89462 , p_component_code => l_component_code
89463 , p_component_type_code => l_component_type_code
89464 , p_component_appl_id => l_component_appl_id
89465 , p_amb_context_code => l_amb_context_code
89466 , p_side => 'NA'
89467 );
89468
89469
89470 --
89471 --
89472 END IF;
89473
89474 --
89475 -- Update the line information that should be overwritten
89476 --
89477 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89478 p_header_num => 1);
89479 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
89480
89481 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89482
89483 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
89484 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89485 END IF;
89486
89487 --
89488 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89489 --
89490 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89491 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
89492 ELSE
89493 ---------------------------------------------------------------------------------------------------
89494 -- 4262811a Switch Sign
89495 ---------------------------------------------------------------------------------------------------
89496 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
89497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89498 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89499 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89500 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89501 -- 5132302
89502 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89503 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89504
89505 END IF;
89506
89507 -- 4955764
89508 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89509 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89510
89511
89512 XLA_AE_LINES_PKG.ValidateCurrentLine;
89513 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89514
89515 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89516 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89517 ,p_balance_type_code => l_balance_type_code);
89518
89519 END IF;
89520
89521 -----------------------------------------------------------------------------------------
89522 -- 4262811 Multiperiod Accounting
89526
89523 -----------------------------------------------------------------------------------------
89524 -- No MPA option is assigned.
89525
89527 END IF;
89528 END IF;
89529 --
89530
89531 --
89532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89533 trace
89534 (p_msg => 'END of AcctLineType_156'
89535 ,p_level => C_LEVEL_PROCEDURE
89536 ,p_module => l_log_module);
89537 END IF;
89538 --
89539 EXCEPTION
89540 WHEN xla_exceptions_pkg.application_exception THEN
89541 RAISE;
89542 WHEN OTHERS THEN
89543 xla_exceptions_pkg.raise_message
89544 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_156');
89545 END AcctLineType_156;
89546 --
89547
89548 ---------------------------------------
89549 --
89550 -- PRIVATE FUNCTION
89551 -- AcctLineType_157
89552 --
89553 ---------------------------------------
89554 PROCEDURE AcctLineType_157 (
89555 p_application_id IN NUMBER
89556 ,p_event_id IN NUMBER
89557 ,p_calculate_acctd_flag IN VARCHAR2
89558 ,p_calculate_g_l_flag IN VARCHAR2
89559 ,p_actual_flag IN OUT VARCHAR2
89560 ,p_balance_type_code OUT VARCHAR2
89561 ,p_gain_or_loss_ref OUT VARCHAR2
89562
89563 --Payment Currency Code
89564 , p_source_12 IN VARCHAR2
89565 --Payment Distribution (Payment Rate) Ledger Amount
89566 , p_source_21 IN NUMBER
89567 --Invoice Distribution Account
89568 , p_source_29 IN NUMBER
89569 --Invoice Distribution Type
89570 , p_source_32 IN VARCHAR2
89571 , p_source_32_meaning IN VARCHAR2
89572 --When to Account for Payment Option
89573 , p_source_50 IN VARCHAR2
89574 --Payment Distribution Type
89575 , p_source_51 IN VARCHAR2
89576 , p_source_51_meaning IN VARCHAR2
89577 --Accounting Reversal Indicator
89578 , p_source_52 IN VARCHAR2
89579 --Payment Distribution Amount
89580 , p_source_53 IN NUMBER
89581 --Business Flow Accounts Payable Application Identifier
89582 , p_source_54 IN NUMBER
89583 --Payment Distribution Identifier
89584 , p_source_59 IN NUMBER
89585 --Distribution Link Type
89586 , p_source_60 IN VARCHAR2
89587 --Override Accounted Amount Indicator
89588 , p_source_64 IN VARCHAR2
89589 , p_source_64_meaning IN VARCHAR2
89590 --Payment Supplier Identifier
89591 , p_source_65 IN NUMBER
89592 --Payment Supplier Site Identifier
89593 , p_source_66 IN NUMBER
89594 --Third Party Type
89595 , p_source_67 IN VARCHAR2
89596 --Payment Distribution Reversed Identifier
89597 , p_source_68 IN NUMBER
89598 --Invoice Distribution Tax Line Identifier
89599 , p_source_69 IN NUMBER
89600 --Invoice Distribution Summary Tax Line Identifier
89601 , p_source_70 IN NUMBER
89602 --Payment Type
89603 , p_source_71 IN VARCHAR2
89604 , p_source_71_meaning IN VARCHAR2
89605 --Business Flow Invoice Distribution Type
89606 , p_source_73 IN VARCHAR2
89607 --Business Flow Invoice Entity Code
89608 , p_source_74 IN VARCHAR2
89609 --Business Flow Invoice Distribution Identifier
89610 , p_source_75 IN NUMBER
89611 --Business Flow Invoice Identifier
89612 , p_source_76 IN NUMBER
89613 --Invoice Distribution Tax Distribution Identifier from Tax
89614 , p_source_77 IN NUMBER
89615 --Accrue on Receipt Option
89616 , p_source_111 IN VARCHAR2
89617 , p_source_111_meaning IN VARCHAR2
89618 --Payment Exchange Date
89619 , p_source_121 IN DATE
89620 --Payment Exchange Rate
89621 , p_source_122 IN NUMBER
89622 --Payment Exchange Rate Type
89623 , p_source_123 IN VARCHAR2
89624 )
89625 IS
89626
89627 l_component_type VARCHAR2(80);
89628 l_component_code VARCHAR2(30);
89629 l_component_type_code VARCHAR2(1);
89630 l_component_appl_id INTEGER;
89631 l_amb_context_code VARCHAR2(30);
89632 l_entity_code VARCHAR2(30);
89633 l_event_class_code VARCHAR2(30);
89634 l_ae_header_id NUMBER;
89635 l_event_type_code VARCHAR2(30);
89636 l_line_definition_code VARCHAR2(30);
89637 l_line_definition_owner_code VARCHAR2(1);
89638 --
89639 -- adr variables
89640 l_segment VARCHAR2(30);
89641 l_ccid NUMBER;
89642 l_adr_transaction_coa_id NUMBER;
89643 l_adr_accounting_coa_id NUMBER;
89644 l_adr_flexfield_segment_code VARCHAR2(30);
89645 l_adr_flex_value_set_id NUMBER;
89646 l_adr_value_type_code VARCHAR2(30);
89647 l_adr_value_combination_id NUMBER;
89648 l_adr_value_segment_code VARCHAR2(30);
89649
89650 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
89651 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
89652 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
89653 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
89654
89655 -- 4262811 Variables ------------------------------------------------------------------------------------------
89656 l_entered_amt_idx NUMBER;
89657 l_accted_amt_idx NUMBER;
89658 l_acc_rev_flag VARCHAR2(1);
89662
89659 l_accrual_line_num NUMBER;
89660 l_tmp_amt NUMBER;
89661 l_acc_rev_natural_side_code VARCHAR2(1);
89663 l_num_entries NUMBER;
89664 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
89665 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
89666 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
89667 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
89668 l_recog_line_1 NUMBER;
89669 l_recog_line_2 NUMBER;
89670
89671 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
89672 l_bflow_applied_to_amt NUMBER; -- 5132302
89673 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
89674
89675 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89676
89677 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
89678 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
89679
89680 ---------------------------------------------------------------------------------------------------------------
89681
89682
89683 --
89684 -- bulk performance
89685 --
89686 l_balance_type_code VARCHAR2(1);
89687 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
89688 l_log_module VARCHAR2(240);
89689
89690 --
89691 -- Upgrade strategy
89692 --
89693 l_actual_upg_option VARCHAR2(1);
89694 l_enc_upg_option VARCHAR2(1);
89695
89696 --
89697 BEGIN
89698 --
89699 IF g_log_enabled THEN
89700 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
89701 END IF;
89702 --
89703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89704
89705 trace
89706 (p_msg => 'BEGIN of AcctLineType_157'
89707 ,p_level => C_LEVEL_PROCEDURE
89708 ,p_module => l_log_module);
89709
89710 END IF;
89711 --
89712 l_component_type := 'AMB_JLT';
89713 l_component_code := 'AP_TAX_RATE_VAR_REF';
89714 l_component_type_code := 'S';
89715 l_component_appl_id := 200;
89716 l_amb_context_code := 'DEFAULT';
89717 l_entity_code := 'AP_PAYMENTS';
89718 l_event_class_code := 'REFUNDS';
89719 l_event_type_code := 'REFUNDS_ALL';
89720 l_line_definition_owner_code := 'S';
89721 l_line_definition_code := 'CASH_REFUNDS_ALL';
89722 --
89723 l_balance_type_code := 'A';
89724 l_segment := NULL;
89725 l_ccid := NULL;
89726 l_adr_transaction_coa_id := NULL;
89727 l_adr_accounting_coa_id := NULL;
89728 l_adr_flexfield_segment_code := NULL;
89729 l_adr_flex_value_set_id := NULL;
89730 l_adr_value_type_code := NULL;
89731 l_adr_value_combination_id := NULL;
89732 l_adr_value_segment_code := NULL;
89733
89734 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
89735 l_bflow_class_code := ''; -- 4219869 Business Flow
89736 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
89737 l_budgetary_control_flag := 'N';
89738
89739 l_bflow_applied_to_amt_idx := NULL; -- 5132302
89740 l_bflow_applied_to_amt := NULL; -- 5132302
89741 l_entered_amt_idx := NULL; -- 4262811
89742 l_accted_amt_idx := NULL; -- 4262811
89743 l_acc_rev_flag := NULL; -- 4262811
89744 l_accrual_line_num := NULL; -- 4262811
89745 l_tmp_amt := NULL; -- 4262811
89746 --
89747
89748 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89749 l_balance_type_code <> 'B' THEN
89750 IF NVL(p_source_50,'
89751 ') <> 'CLEAR_CLEAR' AND
89752 NVL(p_source_32,'
89753 ') = 'TRV' AND
89754 (NVL(p_source_51,'
89755 ') = 'CASH' OR
89756 NVL(p_source_51,'
89757 ') = 'DISCOUNT') AND
89758 NVL(p_source_71,'
89759 ') = 'R' AND
89760 NVL(p_source_111,'
89761 ') = 'Y'
89762 THEN
89763
89764 --
89765 XLA_AE_LINES_PKG.SetNewLine;
89766
89767 p_balance_type_code := l_balance_type_code;
89768 -- set the flag so later we will know whether the gain loss line needs to be created
89769
89770 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89771 p_actual_flag :='A';
89772 END IF;
89773
89774 --
89775 -- bulk performance
89776 --
89777 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89778 p_header_num => 0); -- 4262811
89779 --
89780 -- set accounting line options
89781 --
89782 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89783 p_natural_side_code => 'D'
89784 , p_gain_or_loss_flag => 'N'
89785 , p_gl_transfer_mode_code => 'S'
89786 , p_acct_entry_type_code => 'A'
89787 , p_switch_side_flag => 'Y'
89788 , p_merge_duplicate_code => 'A'
89789 );
89790 --
89791 l_acc_rev_natural_side_code := 'C'; -- 4262811
89792 --
89793 --
89794 -- set accounting line type info
89795 --
89799 ,p_line_definition_owner_code => l_line_definition_owner_code
89796 xla_ae_lines_pkg.SetAcctLineType
89797 (p_component_type => l_component_type
89798 ,p_event_type_code => l_event_type_code
89800 ,p_line_definition_code => l_line_definition_code
89801 ,p_accounting_line_code => l_component_code
89802 ,p_accounting_line_type_code => l_component_type_code
89803 ,p_accounting_line_appl_id => l_component_appl_id
89804 ,p_amb_context_code => l_amb_context_code
89805 ,p_entity_code => l_entity_code
89806 ,p_event_class_code => l_event_class_code);
89807 --
89808 -- set accounting class
89809 --
89810 xla_ae_lines_pkg.SetAcctClass(
89811 p_accounting_class_code => 'TRV'
89812 , p_ae_header_id => l_ae_header_id
89813 );
89814
89815 --
89816 -- set rounding class
89817 --
89818 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89819 'TRV';
89820
89821 --
89822 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89823 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89824 --
89825 -- bulk performance
89826 --
89827 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89828
89829 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89830 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89831
89832 -- 4955764
89833 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89834 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89835
89836 -- 4458381 Public Sector Enh
89837
89838 --
89839 -- set accounting attributes for the line type
89840 --
89841 l_entered_amt_idx := 9;
89842 l_accted_amt_idx := 14;
89843 l_bflow_applied_to_amt_idx := NULL; -- 5132302
89844 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89845 l_rec_acct_attrs.array_char_value(1) := p_source_52;
89846 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
89847 l_rec_acct_attrs.array_num_value(2) := p_source_54;
89848 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89849 l_rec_acct_attrs.array_char_value(3) := p_source_73;
89850 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
89851 l_rec_acct_attrs.array_char_value(4) := p_source_74;
89852 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
89853 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_75);
89854 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89855 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
89856 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
89857 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_59);
89858 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
89859 l_rec_acct_attrs.array_char_value(8) := p_source_60;
89860 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
89861 l_rec_acct_attrs.array_num_value(9) := p_source_53;
89862 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
89863 l_rec_acct_attrs.array_char_value(10) := p_source_12;
89864 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
89865 l_rec_acct_attrs.array_date_value(11) := p_source_121;
89866 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
89867 l_rec_acct_attrs.array_num_value(12) := p_source_122;
89868 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
89869 l_rec_acct_attrs.array_char_value(13) := p_source_123;
89870 l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
89871 l_rec_acct_attrs.array_num_value(14) := p_source_21;
89872 l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
89873 l_rec_acct_attrs.array_char_value(15) := p_source_64;
89874 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
89875 l_rec_acct_attrs.array_num_value(16) := p_source_65;
89876 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
89877 l_rec_acct_attrs.array_num_value(17) := p_source_66;
89878 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
89879 l_rec_acct_attrs.array_char_value(18) := p_source_67;
89880 l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
89881 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_68);
89882 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
89883 l_rec_acct_attrs.array_char_value(20) := p_source_60;
89884 l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
89885 l_rec_acct_attrs.array_num_value(21) := p_source_69;
89886 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
89887 l_rec_acct_attrs.array_num_value(22) := p_source_77;
89888 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
89889 l_rec_acct_attrs.array_num_value(23) := p_source_70;
89890
89891 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89892 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89893
89897 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89894 ---------------------------------------------------------------------------------------------------------------
89895 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89896 ---------------------------------------------------------------------------------------------------------------
89898
89899 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89900 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89901
89902 IF xla_accounting_cache_pkg.GetValueChar
89903 (p_source_code => 'LEDGER_CATEGORY_CODE'
89904 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89905 AND l_bflow_method_code = 'PRIOR_ENTRY'
89906 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89907 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89908 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89909 )
89910 THEN
89911 xla_ae_lines_pkg.BflowUpgEntry
89912 (p_business_method_code => l_bflow_method_code
89913 ,p_business_class_code => l_bflow_class_code
89914 ,p_balance_type => l_balance_type_code);
89915 ELSE
89916 NULL;
89917 -- No business flow processing for business flow method of NONE.
89918 END IF;
89919
89920 --
89921 -- call analytical criteria
89922 --
89923
89924 --
89925 -- call description
89926 --
89927 -- No description or it is inherited.
89928 --
89929 -- call ADRs
89930 -- Bug 4922099
89931 --
89932 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89933 (NVL(l_actual_upg_option, 'N') = 'O') OR
89934 (NVL(l_enc_upg_option, 'N') = 'O')
89935 )
89936 THEN
89937 NULL;
89938 --
89939 --
89940
89941 l_ccid := AcctDerRule_28(
89942 p_application_id => p_application_id
89943 , p_ae_header_id => l_ae_header_id
89944 , p_source_29 => p_source_29
89945 , x_transaction_coa_id => l_adr_transaction_coa_id
89946 , x_accounting_coa_id => l_adr_accounting_coa_id
89947 , x_value_type_code => l_adr_value_type_code
89948 , p_side => 'NA'
89949 );
89950
89951 xla_ae_lines_pkg.set_ccid(
89952 p_code_combination_id => l_ccid
89953 , p_value_type_code => l_adr_value_type_code
89954 , p_transaction_coa_id => l_adr_transaction_coa_id
89955 , p_accounting_coa_id => l_adr_accounting_coa_id
89956 , p_adr_code => 'AP_INVOICE_DIST'
89957 , p_adr_type_code => 'S'
89958 , p_component_type => l_component_type
89959 , p_component_code => l_component_code
89960 , p_component_type_code => l_component_type_code
89961 , p_component_appl_id => l_component_appl_id
89962 , p_amb_context_code => l_amb_context_code
89963 , p_side => 'NA'
89964 );
89965
89966
89967 --
89968 --
89969 END IF;
89970 --
89971 -- Bug 4922099
89972 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89973 (NVL(l_enc_upg_option, 'N') = 'O')
89974 ) AND
89975 (l_bflow_method_code = 'PRIOR_ENTRY')
89976 )
89977 THEN
89978 IF
89979 --
89980 1 = 2
89981 --
89982 THEN
89983 xla_accounting_err_pkg.build_message
89984 (p_appli_s_name => 'XLA'
89985 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89986 ,p_token_1 => 'LINE_NUMBER'
89987 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
89988 ,p_token_2 => 'LINE_TYPE_NAME'
89989 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
89990 l_component_type
89991 ,l_component_code
89992 ,l_component_type_code
89993 ,l_component_appl_id
89994 ,l_amb_context_code
89995 ,l_entity_code
89996 ,l_event_class_code
89997 )
89998 ,p_token_3 => 'OWNER'
89999 ,p_value_3 => xla_lookups_pkg.get_meaning(
90000 p_lookup_type => 'XLA_OWNER_TYPE'
90001 ,p_lookup_code => l_component_type_code
90002 )
90003 ,p_token_4 => 'PRODUCT_NAME'
90007 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90004 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90005 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90006 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90008 ,p_ae_header_id => NULL
90009 );
90010
90011 IF (C_LEVEL_ERROR>= g_log_level) THEN
90012 trace
90013 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90014 ,p_level => C_LEVEL_ERROR
90015 ,p_module => l_log_module);
90016 END IF;
90017 END IF;
90018 END IF;
90019 --
90020 --
90021 ------------------------------------------------------------------------------------------------
90022 -- 4219869 Business Flow
90023 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90024 -- Prior Entry. Currently, the following code is always generated.
90025 ------------------------------------------------------------------------------------------------
90026 XLA_AE_LINES_PKG.ValidateCurrentLine;
90027
90028 ------------------------------------------------------------------------------------
90029 -- 4219869 Business Flow
90030 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90031 ------------------------------------------------------------------------------------
90032 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90033
90034 ----------------------------------------------------------------------------------
90035 -- 4219869 Business Flow
90036 -- Update journal entry status -- Need to generate this within IF <condition>
90037 ----------------------------------------------------------------------------------
90038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90039 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90040 ,p_balance_type_code => l_balance_type_code
90041 );
90042
90043 -------------------------------------------------------------------------------------------
90044 -- 4262811 - Generate the Accrual Reversal lines
90045 -------------------------------------------------------------------------------------------
90046 BEGIN
90047 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90048 (g_array_event(p_event_id).array_value_num('header_index'));
90049 IF l_acc_rev_flag IS NULL THEN
90050 l_acc_rev_flag := 'N';
90051 END IF;
90052 EXCEPTION
90053 WHEN OTHERS THEN
90054 l_acc_rev_flag := 'N';
90055 END;
90056 --
90057 IF (l_acc_rev_flag = 'Y') THEN
90058
90059 -- 4645092 ------------------------------------------------------------------------------
90060 -- To allow MPA report to determine if it should generate report process
90061 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90062 ------------------------------------------------------------------------------------------
90063
90064 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90065 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90066 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
90067 -- call ADRs
90068 -- Bug 4922099
90069 --
90070 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90071 (NVL(l_actual_upg_option, 'N') = 'O') OR
90072 (NVL(l_enc_upg_option, 'N') = 'O')
90073 )
90074 THEN
90075 NULL;
90076 --
90077 --
90078
90079 l_ccid := AcctDerRule_28(
90080 p_application_id => p_application_id
90081 , p_ae_header_id => l_ae_header_id
90082 , p_source_29 => p_source_29
90083 , x_transaction_coa_id => l_adr_transaction_coa_id
90084 , x_accounting_coa_id => l_adr_accounting_coa_id
90085 , x_value_type_code => l_adr_value_type_code
90086 , p_side => 'NA'
90087 );
90088
90089 xla_ae_lines_pkg.set_ccid(
90090 p_code_combination_id => l_ccid
90091 , p_value_type_code => l_adr_value_type_code
90092 , p_transaction_coa_id => l_adr_transaction_coa_id
90093 , p_accounting_coa_id => l_adr_accounting_coa_id
90094 , p_adr_code => 'AP_INVOICE_DIST'
90095 , p_adr_type_code => 'S'
90096 , p_component_type => l_component_type
90097 , p_component_code => l_component_code
90098 , p_component_type_code => l_component_type_code
90099 , p_component_appl_id => l_component_appl_id
90100 , p_amb_context_code => l_amb_context_code
90101 , p_side => 'NA'
90102 );
90103
90104
90105 --
90106 --
90107 END IF;
90108
90109 --
90110 -- Update the line information that should be overwritten
90111 --
90112 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90113 p_header_num => 1);
90114 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
90115
90119 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90116 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90117
90118 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
90120 END IF;
90121
90122 --
90123 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90124 --
90125 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90126 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
90127 ELSE
90128 ---------------------------------------------------------------------------------------------------
90129 -- 4262811a Switch Sign
90130 ---------------------------------------------------------------------------------------------------
90131 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
90132 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90133 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90134 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90135 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90136 -- 5132302
90137 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90138 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90139
90140 END IF;
90141
90142 -- 4955764
90143 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90144 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90145
90146
90147 XLA_AE_LINES_PKG.ValidateCurrentLine;
90148 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90149
90150 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90151 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90152 ,p_balance_type_code => l_balance_type_code);
90153
90154 END IF;
90155
90156 -----------------------------------------------------------------------------------------
90157 -- 4262811 Multiperiod Accounting
90158 -----------------------------------------------------------------------------------------
90159 -- No MPA option is assigned.
90160
90161
90162 END IF;
90163 END IF;
90164 --
90165
90166 --
90167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90168 trace
90169 (p_msg => 'END of AcctLineType_157'
90170 ,p_level => C_LEVEL_PROCEDURE
90171 ,p_module => l_log_module);
90172 END IF;
90173 --
90174 EXCEPTION
90175 WHEN xla_exceptions_pkg.application_exception THEN
90176 RAISE;
90177 WHEN OTHERS THEN
90178 xla_exceptions_pkg.raise_message
90179 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_157');
90180 END AcctLineType_157;
90181 --
90182
90183 ---------------------------------------
90184 --
90185 -- PRIVATE FUNCTION
90186 -- AcctLineType_158
90187 --
90188 ---------------------------------------
90189 PROCEDURE AcctLineType_158 (
90190 p_application_id IN NUMBER
90191 ,p_event_id IN NUMBER
90192 ,p_calculate_acctd_flag IN VARCHAR2
90193 ,p_calculate_g_l_flag IN VARCHAR2
90194 ,p_actual_flag IN OUT VARCHAR2
90195 ,p_balance_type_code OUT VARCHAR2
90196 ,p_gain_or_loss_ref OUT VARCHAR2
90197
90198 --Automatic Offsets Value
90199 , p_source_16 IN VARCHAR2
90200 , p_source_16_meaning IN VARCHAR2
90201 --Purchase Order Rate Variance Gain Account
90202 , p_source_17 IN NUMBER
90203 --Invoice Distribution Ledger Amount
90204 , p_source_18 IN NUMBER
90205 --Destination Type of the PO Distribution
90206 , p_source_19 IN VARCHAR2
90207 , p_source_19_meaning IN VARCHAR2
90208 --Purchase Order Rate Variance Loss Account
90209 , p_source_20 IN NUMBER
90210 --Invoice Distribution Account
90211 , p_source_29 IN NUMBER
90212 --Automatic Offsets Flag
90213 , p_source_42 IN VARCHAR2
90214 , p_source_42_meaning IN VARCHAR2
90215 --When to Account for Payment Option
90216 , p_source_50 IN VARCHAR2
90217 --Accounting Reversal Indicator
90218 , p_source_52 IN VARCHAR2
90219 --Business Flow Accounts Payable Application Identifier
90220 , p_source_54 IN NUMBER
90221 --Distribution Link Type
90222 , p_source_60 IN VARCHAR2
90223 --Override Accounted Amount Indicator
90224 , p_source_64 IN VARCHAR2
90225 , p_source_64_meaning IN VARCHAR2
90226 --Third Party Type
90227 , p_source_67 IN VARCHAR2
90228 --Invoice Distribution Tax Line Identifier
90229 , p_source_69 IN NUMBER
90230 --Invoice Distribution Summary Tax Line Identifier
90231 , p_source_70 IN NUMBER
90232 --Invoice Distribution Tax Distribution Identifier from Tax
90233 , p_source_77 IN NUMBER
90234 --Prepayment Distribution Type
90235 , p_source_78 IN VARCHAR2
90236 --Recipient Invoice Distribution Type
90240 , p_source_82 IN NUMBER
90237 , p_source_79 IN VARCHAR2
90238 , p_source_79_meaning IN VARCHAR2
90239 --Prepayment Application Distribution Identifier
90241 --Invoice Identifier
90242 , p_source_83 IN NUMBER
90243 --Business Flow Prepayment Invoice Distribution Type
90244 , p_source_84 IN VARCHAR2
90245 --Business Flow Prepayment Invoice Entity Code
90246 , p_source_85 IN VARCHAR2
90247 --Business Flow Prepayment Invoice Distribution Identifier
90248 , p_source_86 IN NUMBER
90249 --Business Flow Prepayment Invoice Identifier
90250 , p_source_87 IN NUMBER
90251 --Upgrade Encumbrance Credit Account Class
90252 , p_source_88 IN VARCHAR2
90253 --Payables Encumbrance Upgrade Credit Account
90254 , p_source_89 IN NUMBER
90255 --Payables Encumbrance Upgrade Credit Amount
90256 , p_source_90 IN NUMBER
90257 --Invoice Currency Code
90258 , p_source_91 IN VARCHAR2
90259 --Payables Encumbrance Upgrade Credit Base Amount
90260 , p_source_92 IN NUMBER
90261 --Upgrade Encumbrance Debit Account Class
90262 , p_source_93 IN VARCHAR2
90263 --Payables Encumbrance Upgrade Debit Account
90264 , p_source_94 IN NUMBER
90265 --Payables Encumbrance Upgrade Debit Amount
90266 , p_source_95 IN NUMBER
90267 --Payables Encumbrance Upgrade Debit Base Amount
90268 , p_source_96 IN NUMBER
90269 --Payables Encumbrance Upgrade Option
90270 , p_source_97 IN VARCHAR2
90271 --Prepayment Distribution Amount
90272 , p_source_98 IN NUMBER
90273 --Prepayment Clearing Currency Code
90274 , p_source_99 IN VARCHAR2
90275 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
90276 , p_source_100 IN NUMBER
90277 --Deferred Accounting End Date
90278 , p_source_101 IN DATE
90279 --Deferred Accounting Option
90280 , p_source_102 IN VARCHAR2
90281 --Deferred Accounting Start Date
90282 , p_source_103 IN DATE
90283 --Invoice Supplier Identifier
90284 , p_source_104 IN NUMBER
90285 --Invoice Supplier Site Identifier
90286 , p_source_105 IN NUMBER
90287 --Identifier of the Prepayment Application Reversed
90288 , p_source_106 IN NUMBER
90289 --Payables Upgrade Credit Encumbrance Type Identifier
90290 , p_source_107 IN NUMBER
90291 --Payables Upgrade Debit Encumbrance Type Identifier
90292 , p_source_108 IN NUMBER
90293 --Accrue on Receipt Option
90294 , p_source_111 IN VARCHAR2
90295 , p_source_111_meaning IN VARCHAR2
90296 --Prepayment Clearing Exchange Date
90297 , p_source_125 IN DATE
90298 --Prepayment Clearing Exchange Rate
90299 , p_source_126 IN NUMBER
90300 --Prepayment Clearing Exchange Rate Type
90301 , p_source_127 IN VARCHAR2
90302 )
90303 IS
90304
90305 l_component_type VARCHAR2(80);
90306 l_component_code VARCHAR2(30);
90307 l_component_type_code VARCHAR2(1);
90308 l_component_appl_id INTEGER;
90309 l_amb_context_code VARCHAR2(30);
90310 l_entity_code VARCHAR2(30);
90311 l_event_class_code VARCHAR2(30);
90312 l_ae_header_id NUMBER;
90313 l_event_type_code VARCHAR2(30);
90314 l_line_definition_code VARCHAR2(30);
90315 l_line_definition_owner_code VARCHAR2(1);
90316 --
90317 -- adr variables
90318 l_segment VARCHAR2(30);
90319 l_ccid NUMBER;
90320 l_adr_transaction_coa_id NUMBER;
90321 l_adr_accounting_coa_id NUMBER;
90322 l_adr_flexfield_segment_code VARCHAR2(30);
90323 l_adr_flex_value_set_id NUMBER;
90324 l_adr_value_type_code VARCHAR2(30);
90325 l_adr_value_combination_id NUMBER;
90326 l_adr_value_segment_code VARCHAR2(30);
90327
90328 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
90329 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
90330 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
90331 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
90332
90333 -- 4262811 Variables ------------------------------------------------------------------------------------------
90334 l_entered_amt_idx NUMBER;
90335 l_accted_amt_idx NUMBER;
90336 l_acc_rev_flag VARCHAR2(1);
90337 l_accrual_line_num NUMBER;
90338 l_tmp_amt NUMBER;
90339 l_acc_rev_natural_side_code VARCHAR2(1);
90340
90341 l_num_entries NUMBER;
90342 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
90343 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
90344 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
90345 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
90346 l_recog_line_1 NUMBER;
90347 l_recog_line_2 NUMBER;
90348
90349 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
90350 l_bflow_applied_to_amt NUMBER; -- 5132302
90351 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
90352
90353 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90354
90355 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
90359
90356 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
90357
90358 ---------------------------------------------------------------------------------------------------------------
90360
90361 --
90362 -- bulk performance
90363 --
90364 l_balance_type_code VARCHAR2(1);
90365 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
90366 l_log_module VARCHAR2(240);
90367
90368 --
90369 -- Upgrade strategy
90370 --
90371 l_actual_upg_option VARCHAR2(1);
90372 l_enc_upg_option VARCHAR2(1);
90373
90374 --
90375 BEGIN
90376 --
90377 IF g_log_enabled THEN
90378 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
90379 END IF;
90380 --
90381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90382
90383 trace
90384 (p_msg => 'BEGIN of AcctLineType_158'
90385 ,p_level => C_LEVEL_PROCEDURE
90386 ,p_module => l_log_module);
90387
90388 END IF;
90389 --
90390 l_component_type := 'AMB_JLT';
90391 l_component_code := 'AP_TERV_CLR_RATE_APP';
90392 l_component_type_code := 'S';
90393 l_component_appl_id := 200;
90394 l_amb_context_code := 'DEFAULT';
90395 l_entity_code := 'AP_INVOICES';
90396 l_event_class_code := 'PREPAYMENT APPLICATIONS';
90397 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
90398 l_line_definition_owner_code := 'S';
90399 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
90400 --
90401 l_balance_type_code := 'A';
90402 l_segment := NULL;
90403 l_ccid := NULL;
90404 l_adr_transaction_coa_id := NULL;
90405 l_adr_accounting_coa_id := NULL;
90406 l_adr_flexfield_segment_code := NULL;
90407 l_adr_flex_value_set_id := NULL;
90408 l_adr_value_type_code := NULL;
90409 l_adr_value_combination_id := NULL;
90410 l_adr_value_segment_code := NULL;
90411
90412 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
90413 l_bflow_class_code := ''; -- 4219869 Business Flow
90414 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
90415 l_budgetary_control_flag := 'N';
90416
90417 l_bflow_applied_to_amt_idx := NULL; -- 5132302
90418 l_bflow_applied_to_amt := NULL; -- 5132302
90419 l_entered_amt_idx := NULL; -- 4262811
90420 l_accted_amt_idx := NULL; -- 4262811
90421 l_acc_rev_flag := NULL; -- 4262811
90422 l_accrual_line_num := NULL; -- 4262811
90423 l_tmp_amt := NULL; -- 4262811
90424 --
90425 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
90426 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
90427 return;
90428 END IF;
90429
90430 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90431 l_balance_type_code <> 'B' THEN
90432 IF NVL(p_source_50,'
90433 ') = 'CLEAR_CLEAR' AND
90434 (NVL(p_source_78,'
90435 ') = 'PREPAY APPL' OR
90436 NVL(p_source_78,'
90437 ') = 'PREPAY APPL NONREC TAX' OR
90438 NVL(p_source_78,'
90439 ') = 'PREPAY APPL REC TAX') AND
90440 NVL(p_source_79,'
90441 ') = 'TERV' AND
90442 NVL(p_source_111,'
90443 ') = 'Y'
90444 THEN
90445
90446 --
90447 XLA_AE_LINES_PKG.SetNewLine;
90448
90449 p_balance_type_code := l_balance_type_code;
90450 -- set the flag so later we will know whether the gain loss line needs to be created
90451
90452 IF(l_balance_type_code = 'A' ) THEN
90453 p_actual_flag :='G';
90454 END IF;
90455
90456 --
90457 -- bulk performance
90458 --
90459 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90460 p_header_num => 0); -- 4262811
90461 --
90462 -- set accounting line options
90463 --
90464 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90465 p_natural_side_code => 'C'
90466 , p_gain_or_loss_flag => 'Y'
90467 , p_gl_transfer_mode_code => 'S'
90468 , p_acct_entry_type_code => 'A'
90469 , p_switch_side_flag => 'Y'
90470 , p_merge_duplicate_code => 'A'
90471 );
90472 --
90473 l_acc_rev_natural_side_code := 'D'; -- 4262811
90474 --
90475 --
90476 -- set accounting line type info
90477 --
90478 xla_ae_lines_pkg.SetAcctLineType
90479 (p_component_type => l_component_type
90480 ,p_event_type_code => l_event_type_code
90481 ,p_line_definition_owner_code => l_line_definition_owner_code
90482 ,p_line_definition_code => l_line_definition_code
90483 ,p_accounting_line_code => l_component_code
90484 ,p_accounting_line_type_code => l_component_type_code
90485 ,p_accounting_line_appl_id => l_component_appl_id
90486 ,p_amb_context_code => l_amb_context_code
90487 ,p_entity_code => l_entity_code
90488 ,p_event_class_code => l_event_class_code);
90492 xla_ae_lines_pkg.SetAcctClass(
90489 --
90490 -- set accounting class
90491 --
90493 p_accounting_class_code => 'TERV'
90494 , p_ae_header_id => l_ae_header_id
90495 );
90496
90497 --
90498 -- set rounding class
90499 --
90500 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90501 'TERV';
90502
90503 --
90504 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90505 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90506 --
90507 -- bulk performance
90508 --
90509 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90510
90511 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90512 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90513
90514 -- 4955764
90515 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90516 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90517
90518 -- 4458381 Public Sector Enh
90519
90520 --
90521 -- set accounting attributes for the line type
90522 --
90523 l_entered_amt_idx := 25;
90524 l_accted_amt_idx := 30;
90525 l_bflow_applied_to_amt_idx := NULL; -- 5132302
90526 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90527 l_rec_acct_attrs.array_char_value(1) := p_source_52;
90528 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90529 l_rec_acct_attrs.array_num_value(2) :=
90530 xla_ae_sources_pkg.GetSystemSourceNum(
90531 p_source_code => 'XLA_EVENT_APPL_ID'
90532 , p_source_type_code => 'Y'
90533 , p_source_application_id => 602
90534 );
90535 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90536 l_rec_acct_attrs.array_char_value(3) := p_source_60;
90537 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90538 l_rec_acct_attrs.array_char_value(4) :=
90539 xla_ae_sources_pkg.GetSystemSourceChar(
90540 p_source_code => 'XLA_ENTITY_CODE'
90541 , p_source_type_code => 'Y'
90542 , p_source_application_id => 602
90543 );
90544 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90545 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
90546 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90547 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
90548 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90549 l_rec_acct_attrs.array_num_value(7) := p_source_54;
90550 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90551 l_rec_acct_attrs.array_char_value(8) := p_source_84;
90552 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
90553 l_rec_acct_attrs.array_char_value(9) := p_source_85;
90554 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
90555 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
90556 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90557 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
90558 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
90559 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
90560 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
90561 l_rec_acct_attrs.array_char_value(13) := p_source_60;
90562 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
90563 l_rec_acct_attrs.array_char_value(14) := p_source_88;
90564 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
90565 l_rec_acct_attrs.array_num_value(15) := p_source_89;
90566 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
90567 l_rec_acct_attrs.array_num_value(16) := p_source_90;
90568 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
90569 l_rec_acct_attrs.array_char_value(17) := p_source_91;
90570 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
90571 l_rec_acct_attrs.array_num_value(18) := p_source_92;
90572 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
90573 l_rec_acct_attrs.array_char_value(19) := p_source_93;
90574 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
90575 l_rec_acct_attrs.array_num_value(20) := p_source_94;
90576 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
90577 l_rec_acct_attrs.array_num_value(21) := p_source_95;
90578 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
90579 l_rec_acct_attrs.array_char_value(22) := p_source_91;
90580 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
90581 l_rec_acct_attrs.array_num_value(23) := p_source_96;
90582 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
90583 l_rec_acct_attrs.array_char_value(24) := p_source_97;
90584 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
90585 l_rec_acct_attrs.array_num_value(25) := p_source_98;
90586 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
90587 l_rec_acct_attrs.array_char_value(26) := p_source_99;
90588 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
90592 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
90589 l_rec_acct_attrs.array_date_value(27) := p_source_125;
90590 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
90591 l_rec_acct_attrs.array_num_value(28) := p_source_126;
90593 l_rec_acct_attrs.array_char_value(29) := p_source_127;
90594 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
90595 l_rec_acct_attrs.array_num_value(30) := p_source_100;
90596 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
90597 l_rec_acct_attrs.array_date_value(31) := p_source_101;
90598 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
90599 l_rec_acct_attrs.array_char_value(32) := p_source_102;
90600 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
90601 l_rec_acct_attrs.array_date_value(33) := p_source_103;
90602 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
90603 l_rec_acct_attrs.array_char_value(34) := p_source_64;
90604 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
90605 l_rec_acct_attrs.array_num_value(35) := p_source_104;
90606 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
90607 l_rec_acct_attrs.array_num_value(36) := p_source_105;
90608 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
90609 l_rec_acct_attrs.array_char_value(37) := p_source_67;
90610 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
90611 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
90612 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
90613 l_rec_acct_attrs.array_char_value(39) := p_source_60;
90614 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
90615 l_rec_acct_attrs.array_num_value(40) := p_source_69;
90616 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
90617 l_rec_acct_attrs.array_num_value(41) := p_source_77;
90618 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
90619 l_rec_acct_attrs.array_num_value(42) := p_source_70;
90620 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
90621 l_rec_acct_attrs.array_num_value(43) := p_source_107;
90622 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
90623 l_rec_acct_attrs.array_num_value(44) := p_source_108;
90624
90625 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90626 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90627
90628 ---------------------------------------------------------------------------------------------------------------
90629 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90630 ---------------------------------------------------------------------------------------------------------------
90631 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90632
90633 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90634 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90635
90636 IF xla_accounting_cache_pkg.GetValueChar
90637 (p_source_code => 'LEDGER_CATEGORY_CODE'
90638 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90639 AND l_bflow_method_code = 'PRIOR_ENTRY'
90640 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90641 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90642 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90643 )
90644 THEN
90645 xla_ae_lines_pkg.BflowUpgEntry
90646 (p_business_method_code => l_bflow_method_code
90647 ,p_business_class_code => l_bflow_class_code
90648 ,p_balance_type => l_balance_type_code);
90649 ELSE
90650 NULL;
90651 -- No business flow processing for business flow method of NONE.
90652 END IF;
90653
90654 --
90655 -- call analytical criteria
90656 --
90657
90658 --
90659 -- call description
90660 --
90661 -- No description or it is inherited.
90662 --
90663 -- call ADRs
90664 -- Bug 4922099
90665 --
90666 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90667 (NVL(l_actual_upg_option, 'N') = 'O') OR
90668 (NVL(l_enc_upg_option, 'N') = 'O')
90669 )
90670 THEN
90671 NULL;
90672 --
90673 --
90674
90675 l_ccid := AcctDerRule_25(
90676 p_application_id => p_application_id
90677 , p_ae_header_id => l_ae_header_id
90678 , p_source_16 => p_source_16
90679 , p_source_16_meaning => p_source_16_meaning
90680 , p_source_17 => p_source_17
90681 , p_source_18 => p_source_18
90682 , p_source_19 => p_source_19
90683 , p_source_19_meaning => p_source_19_meaning
90684 , p_source_20 => p_source_20
90685 , p_source_29 => p_source_29
90686 , p_source_42 => p_source_42
90687 , p_source_42_meaning => p_source_42_meaning
90688 , x_transaction_coa_id => l_adr_transaction_coa_id
90689 , x_accounting_coa_id => l_adr_accounting_coa_id
90690 , x_value_type_code => l_adr_value_type_code
90691 , p_side => 'NA'
90692 );
90693
90694 xla_ae_lines_pkg.set_ccid(
90695 p_code_combination_id => l_ccid
90696 , p_value_type_code => l_adr_value_type_code
90700 , p_adr_type_code => 'S'
90697 , p_transaction_coa_id => l_adr_transaction_coa_id
90698 , p_accounting_coa_id => l_adr_accounting_coa_id
90699 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
90701 , p_component_type => l_component_type
90702 , p_component_code => l_component_code
90703 , p_component_type_code => l_component_type_code
90704 , p_component_appl_id => l_component_appl_id
90705 , p_amb_context_code => l_amb_context_code
90706 , p_side => 'NA'
90707 );
90708
90709
90710 l_segment := AcctDerRule_5(
90711 p_application_id => p_application_id
90712 , p_ae_header_id => l_ae_header_id
90713 , p_source_16 => p_source_16
90714 , p_source_16_meaning => p_source_16_meaning
90715 , p_source_17 => p_source_17
90716 , p_source_18 => p_source_18
90717 , p_source_19 => p_source_19
90718 , p_source_19_meaning => p_source_19_meaning
90719 , p_source_20 => p_source_20
90720 , x_transaction_coa_id => l_adr_transaction_coa_id
90721 , x_accounting_coa_id => l_adr_accounting_coa_id
90722 , x_flexfield_segment_code => l_adr_flexfield_segment_code
90723 , x_flex_value_set_id => l_adr_flex_value_set_id
90724 , x_value_type_code => l_adr_value_type_code
90725 , x_value_combination_id => l_adr_value_combination_id
90726 , x_value_segment_code => l_adr_value_segment_code
90727 , p_side => 'NA'
90728 , p_override_seg_flag => 'Y'
90729 );
90730
90731 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
90732
90733 xla_ae_lines_pkg.set_segment(
90734 p_to_segment_code => 'GL_ACCOUNT'
90735 , p_segment_value => l_segment
90736 , p_from_segment_code => l_adr_value_segment_code
90737 , p_from_combination_id => l_adr_value_combination_id
90738 , p_value_type_code => l_adr_value_type_code
90739 , p_transaction_coa_id => l_adr_transaction_coa_id
90740 , p_accounting_coa_id => l_adr_accounting_coa_id
90741 , p_flexfield_segment_code => l_adr_flexfield_segment_code
90742 , p_flex_value_set_id => l_adr_flex_value_set_id
90743 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
90744 , p_adr_type_code => 'S'
90745 , p_component_type => l_component_type
90746 , p_component_code => l_component_code
90747 , p_component_type_code => l_component_type_code
90748 , p_component_appl_id => l_component_appl_id
90749 , p_amb_context_code => l_amb_context_code
90750 , p_entity_code => 'AP_INVOICES'
90751 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
90752 , p_side => 'NA'
90753 );
90754
90755 END IF;
90756
90757 l_segment := AcctDerRule_17(
90758 p_application_id => p_application_id
90759 , p_ae_header_id => l_ae_header_id
90760 , p_source_16 => p_source_16
90761 , p_source_16_meaning => p_source_16_meaning
90762 , p_source_19 => p_source_19
90763 , p_source_19_meaning => p_source_19_meaning
90764 , p_source_29 => p_source_29
90765 , x_transaction_coa_id => l_adr_transaction_coa_id
90766 , x_accounting_coa_id => l_adr_accounting_coa_id
90767 , x_flexfield_segment_code => l_adr_flexfield_segment_code
90768 , x_flex_value_set_id => l_adr_flex_value_set_id
90769 , x_value_type_code => l_adr_value_type_code
90770 , x_value_combination_id => l_adr_value_combination_id
90771 , x_value_segment_code => l_adr_value_segment_code
90772 , p_side => 'NA'
90773 , p_override_seg_flag => 'Y'
90774 );
90775
90776 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
90777
90778 xla_ae_lines_pkg.set_segment(
90779 p_to_segment_code => 'GL_BALANCING'
90780 , p_segment_value => l_segment
90781 , p_from_segment_code => l_adr_value_segment_code
90782 , p_from_combination_id => l_adr_value_combination_id
90783 , p_value_type_code => l_adr_value_type_code
90784 , p_transaction_coa_id => l_adr_transaction_coa_id
90785 , p_accounting_coa_id => l_adr_accounting_coa_id
90786 , p_flexfield_segment_code => l_adr_flexfield_segment_code
90787 , p_flex_value_set_id => l_adr_flex_value_set_id
90788 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
90789 , p_adr_type_code => 'S'
90790 , p_component_type => l_component_type
90791 , p_component_code => l_component_code
90792 , p_component_type_code => l_component_type_code
90793 , p_component_appl_id => l_component_appl_id
90794 , p_amb_context_code => l_amb_context_code
90795 , p_entity_code => 'AP_INVOICES'
90796 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
90797 , p_side => 'NA'
90798 );
90799
90800 END IF;
90801
90802 --
90803 --
90804 END IF;
90805 --
90806 -- Bug 4922099
90807 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90808 (NVL(l_enc_upg_option, 'N') = 'O')
90809 ) AND
90810 (l_bflow_method_code = 'PRIOR_ENTRY')
90814 --
90811 )
90812 THEN
90813 IF
90815 1 = 2
90816 --
90817 THEN
90818 xla_accounting_err_pkg.build_message
90819 (p_appli_s_name => 'XLA'
90820 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90821 ,p_token_1 => 'LINE_NUMBER'
90822 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
90823 ,p_token_2 => 'LINE_TYPE_NAME'
90824 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
90825 l_component_type
90826 ,l_component_code
90827 ,l_component_type_code
90828 ,l_component_appl_id
90829 ,l_amb_context_code
90830 ,l_entity_code
90831 ,l_event_class_code
90832 )
90833 ,p_token_3 => 'OWNER'
90834 ,p_value_3 => xla_lookups_pkg.get_meaning(
90835 p_lookup_type => 'XLA_OWNER_TYPE'
90836 ,p_lookup_code => l_component_type_code
90837 )
90838 ,p_token_4 => 'PRODUCT_NAME'
90839 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90840 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90841 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90842 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90843 ,p_ae_header_id => NULL
90844 );
90845
90846 IF (C_LEVEL_ERROR>= g_log_level) THEN
90847 trace
90848 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90849 ,p_level => C_LEVEL_ERROR
90850 ,p_module => l_log_module);
90851 END IF;
90852 END IF;
90853 END IF;
90854 --
90855 --
90856 ------------------------------------------------------------------------------------------------
90857 -- 4219869 Business Flow
90858 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90859 -- Prior Entry. Currently, the following code is always generated.
90860 ------------------------------------------------------------------------------------------------
90861 XLA_AE_LINES_PKG.ValidateCurrentLine;
90862
90863 ------------------------------------------------------------------------------------
90864 -- 4219869 Business Flow
90865 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90866 ------------------------------------------------------------------------------------
90867 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90868
90869 ----------------------------------------------------------------------------------
90870 -- 4219869 Business Flow
90871 -- Update journal entry status -- Need to generate this within IF <condition>
90872 ----------------------------------------------------------------------------------
90873 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90874 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90875 ,p_balance_type_code => l_balance_type_code
90876 );
90877
90878 -------------------------------------------------------------------------------------------
90879 -- 4262811 - Generate the Accrual Reversal lines
90880 -------------------------------------------------------------------------------------------
90881 BEGIN
90882 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90883 (g_array_event(p_event_id).array_value_num('header_index'));
90884 IF l_acc_rev_flag IS NULL THEN
90885 l_acc_rev_flag := 'N';
90886 END IF;
90887 EXCEPTION
90888 WHEN OTHERS THEN
90889 l_acc_rev_flag := 'N';
90890 END;
90891 --
90892 IF (l_acc_rev_flag = 'Y') THEN
90893
90894 -- 4645092 ------------------------------------------------------------------------------
90895 -- To allow MPA report to determine if it should generate report process
90896 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90897 ------------------------------------------------------------------------------------------
90898
90899 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90900 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90901 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
90902 -- call ADRs
90903 -- Bug 4922099
90907 (NVL(l_enc_upg_option, 'N') = 'O')
90904 --
90905 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90906 (NVL(l_actual_upg_option, 'N') = 'O') OR
90908 )
90909 THEN
90910 NULL;
90911 --
90912 --
90913
90914 l_ccid := AcctDerRule_25(
90915 p_application_id => p_application_id
90916 , p_ae_header_id => l_ae_header_id
90917 , p_source_16 => p_source_16
90918 , p_source_16_meaning => p_source_16_meaning
90919 , p_source_17 => p_source_17
90920 , p_source_18 => p_source_18
90921 , p_source_19 => p_source_19
90922 , p_source_19_meaning => p_source_19_meaning
90923 , p_source_20 => p_source_20
90924 , p_source_29 => p_source_29
90925 , p_source_42 => p_source_42
90926 , p_source_42_meaning => p_source_42_meaning
90927 , x_transaction_coa_id => l_adr_transaction_coa_id
90928 , x_accounting_coa_id => l_adr_accounting_coa_id
90929 , x_value_type_code => l_adr_value_type_code
90930 , p_side => 'NA'
90931 );
90932
90933 xla_ae_lines_pkg.set_ccid(
90934 p_code_combination_id => l_ccid
90935 , p_value_type_code => l_adr_value_type_code
90936 , p_transaction_coa_id => l_adr_transaction_coa_id
90937 , p_accounting_coa_id => l_adr_accounting_coa_id
90938 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
90939 , p_adr_type_code => 'S'
90940 , p_component_type => l_component_type
90941 , p_component_code => l_component_code
90942 , p_component_type_code => l_component_type_code
90943 , p_component_appl_id => l_component_appl_id
90944 , p_amb_context_code => l_amb_context_code
90945 , p_side => 'NA'
90946 );
90947
90948
90949 l_segment := AcctDerRule_5(
90950 p_application_id => p_application_id
90951 , p_ae_header_id => l_ae_header_id
90952 , p_source_16 => p_source_16
90953 , p_source_16_meaning => p_source_16_meaning
90954 , p_source_17 => p_source_17
90955 , p_source_18 => p_source_18
90956 , p_source_19 => p_source_19
90957 , p_source_19_meaning => p_source_19_meaning
90958 , p_source_20 => p_source_20
90959 , x_transaction_coa_id => l_adr_transaction_coa_id
90960 , x_accounting_coa_id => l_adr_accounting_coa_id
90961 , x_flexfield_segment_code => l_adr_flexfield_segment_code
90962 , x_flex_value_set_id => l_adr_flex_value_set_id
90963 , x_value_type_code => l_adr_value_type_code
90964 , x_value_combination_id => l_adr_value_combination_id
90965 , x_value_segment_code => l_adr_value_segment_code
90966 , p_side => 'NA'
90967 , p_override_seg_flag => 'Y'
90968 );
90969
90970 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
90971
90972 xla_ae_lines_pkg.set_segment(
90973 p_to_segment_code => 'GL_ACCOUNT'
90974 , p_segment_value => l_segment
90975 , p_from_segment_code => l_adr_value_segment_code
90976 , p_from_combination_id => l_adr_value_combination_id
90977 , p_value_type_code => l_adr_value_type_code
90978 , p_transaction_coa_id => l_adr_transaction_coa_id
90979 , p_accounting_coa_id => l_adr_accounting_coa_id
90980 , p_flexfield_segment_code => l_adr_flexfield_segment_code
90981 , p_flex_value_set_id => l_adr_flex_value_set_id
90982 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
90983 , p_adr_type_code => 'S'
90984 , p_component_type => l_component_type
90985 , p_component_code => l_component_code
90986 , p_component_type_code => l_component_type_code
90987 , p_component_appl_id => l_component_appl_id
90988 , p_amb_context_code => l_amb_context_code
90989 , p_entity_code => 'AP_INVOICES'
90990 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
90991 , p_side => 'NA'
90992 );
90993
90994 END IF;
90995
90996 l_segment := AcctDerRule_17(
90997 p_application_id => p_application_id
90998 , p_ae_header_id => l_ae_header_id
90999 , p_source_16 => p_source_16
91000 , p_source_16_meaning => p_source_16_meaning
91001 , p_source_19 => p_source_19
91002 , p_source_19_meaning => p_source_19_meaning
91003 , p_source_29 => p_source_29
91004 , x_transaction_coa_id => l_adr_transaction_coa_id
91005 , x_accounting_coa_id => l_adr_accounting_coa_id
91006 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91007 , x_flex_value_set_id => l_adr_flex_value_set_id
91008 , x_value_type_code => l_adr_value_type_code
91009 , x_value_combination_id => l_adr_value_combination_id
91010 , x_value_segment_code => l_adr_value_segment_code
91011 , p_side => 'NA'
91012 , p_override_seg_flag => 'Y'
91013 );
91014
91015 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91016
91017 xla_ae_lines_pkg.set_segment(
91018 p_to_segment_code => 'GL_BALANCING'
91019 , p_segment_value => l_segment
91020 , p_from_segment_code => l_adr_value_segment_code
91024 , p_accounting_coa_id => l_adr_accounting_coa_id
91021 , p_from_combination_id => l_adr_value_combination_id
91022 , p_value_type_code => l_adr_value_type_code
91023 , p_transaction_coa_id => l_adr_transaction_coa_id
91025 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91026 , p_flex_value_set_id => l_adr_flex_value_set_id
91027 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
91028 , p_adr_type_code => 'S'
91029 , p_component_type => l_component_type
91030 , p_component_code => l_component_code
91031 , p_component_type_code => l_component_type_code
91032 , p_component_appl_id => l_component_appl_id
91033 , p_amb_context_code => l_amb_context_code
91034 , p_entity_code => 'AP_INVOICES'
91035 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
91036 , p_side => 'NA'
91037 );
91038
91039 END IF;
91040
91041 --
91042 --
91043 END IF;
91044
91045 --
91046 -- Update the line information that should be overwritten
91047 --
91048 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91049 p_header_num => 1);
91050 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
91051
91052 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91053
91054 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
91055 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91056 END IF;
91057
91058 --
91059 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91060 --
91061 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91062 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
91063 ELSE
91064 ---------------------------------------------------------------------------------------------------
91065 -- 4262811a Switch Sign
91066 ---------------------------------------------------------------------------------------------------
91067 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
91068 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91069 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91070 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91071 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91072 -- 5132302
91073 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91074 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91075
91076 END IF;
91077
91078 -- 4955764
91079 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91080 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91081
91082
91083 XLA_AE_LINES_PKG.ValidateCurrentLine;
91084 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91085
91086 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91087 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91088 ,p_balance_type_code => l_balance_type_code);
91089
91090 END IF;
91091
91092 -----------------------------------------------------------------------------------------
91093 -- 4262811 Multiperiod Accounting
91094 -----------------------------------------------------------------------------------------
91095 -- No MPA option is assigned.
91096
91097
91098 END IF;
91099 END IF;
91100 --
91101
91102 --
91103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91104 trace
91105 (p_msg => 'END of AcctLineType_158'
91106 ,p_level => C_LEVEL_PROCEDURE
91107 ,p_module => l_log_module);
91108 END IF;
91109 --
91110 EXCEPTION
91111 WHEN xla_exceptions_pkg.application_exception THEN
91112 RAISE;
91113 WHEN OTHERS THEN
91114 xla_exceptions_pkg.raise_message
91115 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_158');
91116 END AcctLineType_158;
91117 --
91118
91119 ---------------------------------------
91120 --
91121 -- PRIVATE FUNCTION
91122 -- AcctLineType_159
91123 --
91124 ---------------------------------------
91125 PROCEDURE AcctLineType_159 (
91126 p_application_id IN NUMBER
91127 ,p_event_id IN NUMBER
91128 ,p_calculate_acctd_flag IN VARCHAR2
91129 ,p_calculate_g_l_flag IN VARCHAR2
91130 ,p_actual_flag IN OUT VARCHAR2
91131 ,p_balance_type_code OUT VARCHAR2
91132 ,p_gain_or_loss_ref OUT VARCHAR2
91133
91134 --Automatic Offsets Value
91135 , p_source_16 IN VARCHAR2
91136 , p_source_16_meaning IN VARCHAR2
91137 --Purchase Order Rate Variance Gain Account
91138 , p_source_17 IN NUMBER
91142 , p_source_19 IN VARCHAR2
91139 --Invoice Distribution Ledger Amount
91140 , p_source_18 IN NUMBER
91141 --Destination Type of the PO Distribution
91143 , p_source_19_meaning IN VARCHAR2
91144 --Purchase Order Rate Variance Loss Account
91145 , p_source_20 IN NUMBER
91146 --Invoice Distribution Account
91147 , p_source_29 IN NUMBER
91148 --Automatic Offsets Flag
91149 , p_source_42 IN VARCHAR2
91150 , p_source_42_meaning IN VARCHAR2
91151 --When to Account for Payment Option
91152 , p_source_50 IN VARCHAR2
91153 --Accounting Reversal Indicator
91154 , p_source_52 IN VARCHAR2
91155 --Business Flow Accounts Payable Application Identifier
91156 , p_source_54 IN NUMBER
91157 --Distribution Link Type
91158 , p_source_60 IN VARCHAR2
91159 --Override Accounted Amount Indicator
91160 , p_source_64 IN VARCHAR2
91161 , p_source_64_meaning IN VARCHAR2
91162 --Third Party Type
91163 , p_source_67 IN VARCHAR2
91164 --Invoice Distribution Tax Line Identifier
91165 , p_source_69 IN NUMBER
91166 --Invoice Distribution Summary Tax Line Identifier
91167 , p_source_70 IN NUMBER
91168 --Invoice Distribution Tax Distribution Identifier from Tax
91169 , p_source_77 IN NUMBER
91170 --Prepayment Distribution Type
91171 , p_source_78 IN VARCHAR2
91172 --Recipient Invoice Distribution Type
91173 , p_source_79 IN VARCHAR2
91174 , p_source_79_meaning IN VARCHAR2
91175 --Prepayment Application Distribution Identifier
91176 , p_source_82 IN NUMBER
91177 --Invoice Identifier
91178 , p_source_83 IN NUMBER
91179 --Business Flow Prepayment Invoice Distribution Type
91180 , p_source_84 IN VARCHAR2
91181 --Business Flow Prepayment Invoice Entity Code
91182 , p_source_85 IN VARCHAR2
91183 --Business Flow Prepayment Invoice Distribution Identifier
91184 , p_source_86 IN NUMBER
91185 --Business Flow Prepayment Invoice Identifier
91186 , p_source_87 IN NUMBER
91187 --Upgrade Encumbrance Credit Account Class
91188 , p_source_88 IN VARCHAR2
91189 --Payables Encumbrance Upgrade Credit Account
91190 , p_source_89 IN NUMBER
91191 --Payables Encumbrance Upgrade Credit Amount
91192 , p_source_90 IN NUMBER
91193 --Invoice Currency Code
91194 , p_source_91 IN VARCHAR2
91195 --Payables Encumbrance Upgrade Credit Base Amount
91196 , p_source_92 IN NUMBER
91197 --Upgrade Encumbrance Debit Account Class
91198 , p_source_93 IN VARCHAR2
91199 --Payables Encumbrance Upgrade Debit Account
91200 , p_source_94 IN NUMBER
91201 --Payables Encumbrance Upgrade Debit Amount
91202 , p_source_95 IN NUMBER
91203 --Payables Encumbrance Upgrade Debit Base Amount
91204 , p_source_96 IN NUMBER
91205 --Payables Encumbrance Upgrade Option
91206 , p_source_97 IN VARCHAR2
91207 --Prepayment Distribution Amount
91208 , p_source_98 IN NUMBER
91209 --Deferred Accounting End Date
91210 , p_source_101 IN DATE
91211 --Deferred Accounting Option
91212 , p_source_102 IN VARCHAR2
91213 --Deferred Accounting Start Date
91214 , p_source_103 IN DATE
91215 --Invoice Supplier Identifier
91216 , p_source_104 IN NUMBER
91217 --Invoice Supplier Site Identifier
91218 , p_source_105 IN NUMBER
91219 --Identifier of the Prepayment Application Reversed
91220 , p_source_106 IN NUMBER
91221 --Payables Upgrade Credit Encumbrance Type Identifier
91222 , p_source_107 IN NUMBER
91223 --Payables Upgrade Debit Encumbrance Type Identifier
91224 , p_source_108 IN NUMBER
91225 --Prepayment Payment Currency Code
91226 , p_source_109 IN VARCHAR2
91227 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
91228 , p_source_110 IN NUMBER
91229 --Accrue on Receipt Option
91230 , p_source_111 IN VARCHAR2
91231 , p_source_111_meaning IN VARCHAR2
91232 --Prepayment Payment Exchange Date
91233 , p_source_128 IN DATE
91234 --Prepayment Payment Exchange Rate
91235 , p_source_129 IN NUMBER
91236 --Prepayment Payment Exchange Rate Type
91237 , p_source_130 IN VARCHAR2
91238 )
91239 IS
91240
91241 l_component_type VARCHAR2(80);
91242 l_component_code VARCHAR2(30);
91243 l_component_type_code VARCHAR2(1);
91244 l_component_appl_id INTEGER;
91245 l_amb_context_code VARCHAR2(30);
91246 l_entity_code VARCHAR2(30);
91247 l_event_class_code VARCHAR2(30);
91248 l_ae_header_id NUMBER;
91249 l_event_type_code VARCHAR2(30);
91250 l_line_definition_code VARCHAR2(30);
91251 l_line_definition_owner_code VARCHAR2(1);
91252 --
91253 -- adr variables
91254 l_segment VARCHAR2(30);
91255 l_ccid NUMBER;
91256 l_adr_transaction_coa_id NUMBER;
91257 l_adr_accounting_coa_id NUMBER;
91258 l_adr_flexfield_segment_code VARCHAR2(30);
91259 l_adr_flex_value_set_id NUMBER;
91260 l_adr_value_type_code VARCHAR2(30);
91261 l_adr_value_combination_id NUMBER;
91262 l_adr_value_segment_code VARCHAR2(30);
91263
91267 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
91264 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
91265 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
91266 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
91268
91269 -- 4262811 Variables ------------------------------------------------------------------------------------------
91270 l_entered_amt_idx NUMBER;
91271 l_accted_amt_idx NUMBER;
91272 l_acc_rev_flag VARCHAR2(1);
91273 l_accrual_line_num NUMBER;
91274 l_tmp_amt NUMBER;
91275 l_acc_rev_natural_side_code VARCHAR2(1);
91276
91277 l_num_entries NUMBER;
91278 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
91279 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
91280 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
91281 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
91282 l_recog_line_1 NUMBER;
91283 l_recog_line_2 NUMBER;
91284
91285 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
91286 l_bflow_applied_to_amt NUMBER; -- 5132302
91287 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
91288
91289 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91290
91291 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
91292 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
91293
91294 ---------------------------------------------------------------------------------------------------------------
91295
91296
91297 --
91298 -- bulk performance
91299 --
91300 l_balance_type_code VARCHAR2(1);
91301 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
91302 l_log_module VARCHAR2(240);
91303
91304 --
91305 -- Upgrade strategy
91306 --
91307 l_actual_upg_option VARCHAR2(1);
91308 l_enc_upg_option VARCHAR2(1);
91309
91310 --
91311 BEGIN
91312 --
91313 IF g_log_enabled THEN
91314 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
91315 END IF;
91316 --
91317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91318
91319 trace
91320 (p_msg => 'BEGIN of AcctLineType_159'
91321 ,p_level => C_LEVEL_PROCEDURE
91322 ,p_module => l_log_module);
91323
91324 END IF;
91325 --
91326 l_component_type := 'AMB_JLT';
91327 l_component_code := 'AP_TERV_PREPAY_PAY_RATE';
91328 l_component_type_code := 'S';
91329 l_component_appl_id := 200;
91330 l_amb_context_code := 'DEFAULT';
91331 l_entity_code := 'AP_INVOICES';
91332 l_event_class_code := 'PREPAYMENT APPLICATIONS';
91333 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
91334 l_line_definition_owner_code := 'S';
91335 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
91336 --
91337 l_balance_type_code := 'A';
91338 l_segment := NULL;
91339 l_ccid := NULL;
91340 l_adr_transaction_coa_id := NULL;
91341 l_adr_accounting_coa_id := NULL;
91342 l_adr_flexfield_segment_code := NULL;
91343 l_adr_flex_value_set_id := NULL;
91344 l_adr_value_type_code := NULL;
91345 l_adr_value_combination_id := NULL;
91346 l_adr_value_segment_code := NULL;
91347
91348 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
91349 l_bflow_class_code := ''; -- 4219869 Business Flow
91350 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
91351 l_budgetary_control_flag := 'N';
91352
91353 l_bflow_applied_to_amt_idx := NULL; -- 5132302
91354 l_bflow_applied_to_amt := NULL; -- 5132302
91355 l_entered_amt_idx := NULL; -- 4262811
91356 l_accted_amt_idx := NULL; -- 4262811
91357 l_acc_rev_flag := NULL; -- 4262811
91358 l_accrual_line_num := NULL; -- 4262811
91359 l_tmp_amt := NULL; -- 4262811
91360 --
91361 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
91362 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
91363 return;
91364 END IF;
91365
91366 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91367 l_balance_type_code <> 'B' THEN
91368 IF NVL(p_source_50,'
91369 ') <> 'CLEAR_CLEAR' AND
91370 (NVL(p_source_78,'
91371 ') = 'PREPAY APPL' OR
91372 NVL(p_source_78,'
91373 ') = 'PREPAY APPL NONREC TAX' OR
91374 NVL(p_source_78,'
91375 ') = 'PREPAY APPL REC TAX') AND
91376 NVL(p_source_79,'
91377 ') = 'TERV' AND
91378 NVL(p_source_111,'
91379 ') = 'Y'
91380 THEN
91381
91382 --
91383 XLA_AE_LINES_PKG.SetNewLine;
91384
91385 p_balance_type_code := l_balance_type_code;
91386 -- set the flag so later we will know whether the gain loss line needs to be created
91387
91388 IF(l_balance_type_code = 'A' ) THEN
91389 p_actual_flag :='G';
91393 -- bulk performance
91390 END IF;
91391
91392 --
91394 --
91395 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91396 p_header_num => 0); -- 4262811
91397 --
91398 -- set accounting line options
91399 --
91400 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91401 p_natural_side_code => 'C'
91402 , p_gain_or_loss_flag => 'Y'
91403 , p_gl_transfer_mode_code => 'S'
91404 , p_acct_entry_type_code => 'A'
91405 , p_switch_side_flag => 'Y'
91406 , p_merge_duplicate_code => 'A'
91407 );
91408 --
91409 l_acc_rev_natural_side_code := 'D'; -- 4262811
91410 --
91411 --
91412 -- set accounting line type info
91413 --
91414 xla_ae_lines_pkg.SetAcctLineType
91415 (p_component_type => l_component_type
91416 ,p_event_type_code => l_event_type_code
91417 ,p_line_definition_owner_code => l_line_definition_owner_code
91418 ,p_line_definition_code => l_line_definition_code
91419 ,p_accounting_line_code => l_component_code
91420 ,p_accounting_line_type_code => l_component_type_code
91421 ,p_accounting_line_appl_id => l_component_appl_id
91422 ,p_amb_context_code => l_amb_context_code
91423 ,p_entity_code => l_entity_code
91424 ,p_event_class_code => l_event_class_code);
91425 --
91426 -- set accounting class
91427 --
91428 xla_ae_lines_pkg.SetAcctClass(
91429 p_accounting_class_code => 'TERV'
91430 , p_ae_header_id => l_ae_header_id
91431 );
91432
91433 --
91434 -- set rounding class
91435 --
91436 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91437 'TERV';
91438
91439 --
91440 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91441 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91442 --
91443 -- bulk performance
91444 --
91445 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91446
91447 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91448 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91449
91450 -- 4955764
91451 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91452 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91453
91454 -- 4458381 Public Sector Enh
91455
91456 --
91457 -- set accounting attributes for the line type
91458 --
91459 l_entered_amt_idx := 25;
91460 l_accted_amt_idx := 30;
91461 l_bflow_applied_to_amt_idx := NULL; -- 5132302
91462 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91463 l_rec_acct_attrs.array_char_value(1) := p_source_52;
91464 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91465 l_rec_acct_attrs.array_num_value(2) :=
91466 xla_ae_sources_pkg.GetSystemSourceNum(
91467 p_source_code => 'XLA_EVENT_APPL_ID'
91468 , p_source_type_code => 'Y'
91469 , p_source_application_id => 602
91470 );
91471 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91472 l_rec_acct_attrs.array_char_value(3) := p_source_60;
91473 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91474 l_rec_acct_attrs.array_char_value(4) :=
91475 xla_ae_sources_pkg.GetSystemSourceChar(
91476 p_source_code => 'XLA_ENTITY_CODE'
91477 , p_source_type_code => 'Y'
91478 , p_source_application_id => 602
91479 );
91480 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91481 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
91482 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91483 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
91484 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
91485 l_rec_acct_attrs.array_num_value(7) := p_source_54;
91486 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91487 l_rec_acct_attrs.array_char_value(8) := p_source_84;
91488 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91489 l_rec_acct_attrs.array_char_value(9) := p_source_85;
91490 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91491 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
91492 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91493 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
91494 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91495 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
91496 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91497 l_rec_acct_attrs.array_char_value(13) := p_source_60;
91498 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
91499 l_rec_acct_attrs.array_char_value(14) := p_source_88;
91500 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
91501 l_rec_acct_attrs.array_num_value(15) := p_source_89;
91502 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
91506 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
91503 l_rec_acct_attrs.array_num_value(16) := p_source_90;
91504 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
91505 l_rec_acct_attrs.array_char_value(17) := p_source_91;
91507 l_rec_acct_attrs.array_num_value(18) := p_source_92;
91508 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
91509 l_rec_acct_attrs.array_char_value(19) := p_source_93;
91510 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
91511 l_rec_acct_attrs.array_num_value(20) := p_source_94;
91512 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
91513 l_rec_acct_attrs.array_num_value(21) := p_source_95;
91514 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
91515 l_rec_acct_attrs.array_char_value(22) := p_source_91;
91516 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
91517 l_rec_acct_attrs.array_num_value(23) := p_source_96;
91518 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
91519 l_rec_acct_attrs.array_char_value(24) := p_source_97;
91520 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
91521 l_rec_acct_attrs.array_num_value(25) := p_source_98;
91522 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
91523 l_rec_acct_attrs.array_char_value(26) := p_source_109;
91524 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
91525 l_rec_acct_attrs.array_date_value(27) := p_source_128;
91526 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
91527 l_rec_acct_attrs.array_num_value(28) := p_source_129;
91528 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
91529 l_rec_acct_attrs.array_char_value(29) := p_source_130;
91530 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
91531 l_rec_acct_attrs.array_num_value(30) := p_source_110;
91532 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
91533 l_rec_acct_attrs.array_date_value(31) := p_source_101;
91534 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
91535 l_rec_acct_attrs.array_char_value(32) := p_source_102;
91536 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
91537 l_rec_acct_attrs.array_date_value(33) := p_source_103;
91538 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
91539 l_rec_acct_attrs.array_char_value(34) := p_source_64;
91540 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
91541 l_rec_acct_attrs.array_num_value(35) := p_source_104;
91542 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
91543 l_rec_acct_attrs.array_num_value(36) := p_source_105;
91544 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
91545 l_rec_acct_attrs.array_char_value(37) := p_source_67;
91546 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
91547 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
91548 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
91549 l_rec_acct_attrs.array_char_value(39) := p_source_60;
91550 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
91551 l_rec_acct_attrs.array_num_value(40) := p_source_69;
91552 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
91553 l_rec_acct_attrs.array_num_value(41) := p_source_77;
91554 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
91555 l_rec_acct_attrs.array_num_value(42) := p_source_70;
91556 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
91557 l_rec_acct_attrs.array_num_value(43) := p_source_107;
91558 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
91559 l_rec_acct_attrs.array_num_value(44) := p_source_108;
91560
91561 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91562 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91563
91564 ---------------------------------------------------------------------------------------------------------------
91565 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91566 ---------------------------------------------------------------------------------------------------------------
91567 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91568
91569 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91570 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91571
91572 IF xla_accounting_cache_pkg.GetValueChar
91573 (p_source_code => 'LEDGER_CATEGORY_CODE'
91574 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91575 AND l_bflow_method_code = 'PRIOR_ENTRY'
91576 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91577 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91578 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91579 )
91580 THEN
91581 xla_ae_lines_pkg.BflowUpgEntry
91582 (p_business_method_code => l_bflow_method_code
91583 ,p_business_class_code => l_bflow_class_code
91584 ,p_balance_type => l_balance_type_code);
91585 ELSE
91586 NULL;
91587 -- No business flow processing for business flow method of NONE.
91588 END IF;
91589
91590 --
91591 -- call analytical criteria
91592 --
91593
91594 --
91598 --
91595 -- call description
91596 --
91597 -- No description or it is inherited.
91599 -- call ADRs
91600 -- Bug 4922099
91601 --
91602 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91603 (NVL(l_actual_upg_option, 'N') = 'O') OR
91604 (NVL(l_enc_upg_option, 'N') = 'O')
91605 )
91606 THEN
91607 NULL;
91608 --
91609 --
91610
91611 l_ccid := AcctDerRule_25(
91612 p_application_id => p_application_id
91613 , p_ae_header_id => l_ae_header_id
91614 , p_source_16 => p_source_16
91615 , p_source_16_meaning => p_source_16_meaning
91616 , p_source_17 => p_source_17
91617 , p_source_18 => p_source_18
91618 , p_source_19 => p_source_19
91619 , p_source_19_meaning => p_source_19_meaning
91620 , p_source_20 => p_source_20
91621 , p_source_29 => p_source_29
91622 , p_source_42 => p_source_42
91623 , p_source_42_meaning => p_source_42_meaning
91624 , x_transaction_coa_id => l_adr_transaction_coa_id
91625 , x_accounting_coa_id => l_adr_accounting_coa_id
91626 , x_value_type_code => l_adr_value_type_code
91627 , p_side => 'NA'
91628 );
91629
91630 xla_ae_lines_pkg.set_ccid(
91631 p_code_combination_id => l_ccid
91632 , p_value_type_code => l_adr_value_type_code
91633 , p_transaction_coa_id => l_adr_transaction_coa_id
91634 , p_accounting_coa_id => l_adr_accounting_coa_id
91635 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
91636 , p_adr_type_code => 'S'
91637 , p_component_type => l_component_type
91638 , p_component_code => l_component_code
91639 , p_component_type_code => l_component_type_code
91640 , p_component_appl_id => l_component_appl_id
91641 , p_amb_context_code => l_amb_context_code
91642 , p_side => 'NA'
91643 );
91644
91645
91646 l_segment := AcctDerRule_5(
91647 p_application_id => p_application_id
91648 , p_ae_header_id => l_ae_header_id
91649 , p_source_16 => p_source_16
91650 , p_source_16_meaning => p_source_16_meaning
91651 , p_source_17 => p_source_17
91652 , p_source_18 => p_source_18
91653 , p_source_19 => p_source_19
91654 , p_source_19_meaning => p_source_19_meaning
91655 , p_source_20 => p_source_20
91656 , x_transaction_coa_id => l_adr_transaction_coa_id
91657 , x_accounting_coa_id => l_adr_accounting_coa_id
91658 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91659 , x_flex_value_set_id => l_adr_flex_value_set_id
91660 , x_value_type_code => l_adr_value_type_code
91661 , x_value_combination_id => l_adr_value_combination_id
91662 , x_value_segment_code => l_adr_value_segment_code
91663 , p_side => 'NA'
91664 , p_override_seg_flag => 'Y'
91665 );
91666
91667 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91668
91669 xla_ae_lines_pkg.set_segment(
91670 p_to_segment_code => 'GL_ACCOUNT'
91671 , p_segment_value => l_segment
91672 , p_from_segment_code => l_adr_value_segment_code
91673 , p_from_combination_id => l_adr_value_combination_id
91674 , p_value_type_code => l_adr_value_type_code
91675 , p_transaction_coa_id => l_adr_transaction_coa_id
91676 , p_accounting_coa_id => l_adr_accounting_coa_id
91677 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91678 , p_flex_value_set_id => l_adr_flex_value_set_id
91679 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
91680 , p_adr_type_code => 'S'
91681 , p_component_type => l_component_type
91682 , p_component_code => l_component_code
91683 , p_component_type_code => l_component_type_code
91684 , p_component_appl_id => l_component_appl_id
91685 , p_amb_context_code => l_amb_context_code
91686 , p_entity_code => 'AP_INVOICES'
91687 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
91688 , p_side => 'NA'
91689 );
91690
91691 END IF;
91692
91693 l_segment := AcctDerRule_17(
91694 p_application_id => p_application_id
91695 , p_ae_header_id => l_ae_header_id
91696 , p_source_16 => p_source_16
91697 , p_source_16_meaning => p_source_16_meaning
91698 , p_source_19 => p_source_19
91699 , p_source_19_meaning => p_source_19_meaning
91700 , p_source_29 => p_source_29
91701 , x_transaction_coa_id => l_adr_transaction_coa_id
91702 , x_accounting_coa_id => l_adr_accounting_coa_id
91703 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91704 , x_flex_value_set_id => l_adr_flex_value_set_id
91705 , x_value_type_code => l_adr_value_type_code
91706 , x_value_combination_id => l_adr_value_combination_id
91707 , x_value_segment_code => l_adr_value_segment_code
91708 , p_side => 'NA'
91709 , p_override_seg_flag => 'Y'
91710 );
91711
91712 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91713
91717 , p_from_segment_code => l_adr_value_segment_code
91714 xla_ae_lines_pkg.set_segment(
91715 p_to_segment_code => 'GL_BALANCING'
91716 , p_segment_value => l_segment
91718 , p_from_combination_id => l_adr_value_combination_id
91719 , p_value_type_code => l_adr_value_type_code
91720 , p_transaction_coa_id => l_adr_transaction_coa_id
91721 , p_accounting_coa_id => l_adr_accounting_coa_id
91722 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91723 , p_flex_value_set_id => l_adr_flex_value_set_id
91724 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
91725 , p_adr_type_code => 'S'
91726 , p_component_type => l_component_type
91727 , p_component_code => l_component_code
91728 , p_component_type_code => l_component_type_code
91729 , p_component_appl_id => l_component_appl_id
91730 , p_amb_context_code => l_amb_context_code
91731 , p_entity_code => 'AP_INVOICES'
91732 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
91733 , p_side => 'NA'
91734 );
91735
91736 END IF;
91737
91738 --
91739 --
91740 END IF;
91741 --
91742 -- Bug 4922099
91743 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91744 (NVL(l_enc_upg_option, 'N') = 'O')
91745 ) AND
91746 (l_bflow_method_code = 'PRIOR_ENTRY')
91747 )
91748 THEN
91749 IF
91750 --
91751 1 = 2
91752 --
91753 THEN
91754 xla_accounting_err_pkg.build_message
91755 (p_appli_s_name => 'XLA'
91756 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91757 ,p_token_1 => 'LINE_NUMBER'
91758 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
91759 ,p_token_2 => 'LINE_TYPE_NAME'
91760 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
91761 l_component_type
91762 ,l_component_code
91763 ,l_component_type_code
91764 ,l_component_appl_id
91765 ,l_amb_context_code
91766 ,l_entity_code
91767 ,l_event_class_code
91768 )
91769 ,p_token_3 => 'OWNER'
91770 ,p_value_3 => xla_lookups_pkg.get_meaning(
91771 p_lookup_type => 'XLA_OWNER_TYPE'
91772 ,p_lookup_code => l_component_type_code
91773 )
91774 ,p_token_4 => 'PRODUCT_NAME'
91775 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91776 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91777 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91778 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91779 ,p_ae_header_id => NULL
91780 );
91781
91782 IF (C_LEVEL_ERROR>= g_log_level) THEN
91783 trace
91784 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91785 ,p_level => C_LEVEL_ERROR
91786 ,p_module => l_log_module);
91787 END IF;
91788 END IF;
91789 END IF;
91790 --
91791 --
91792 ------------------------------------------------------------------------------------------------
91793 -- 4219869 Business Flow
91794 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91795 -- Prior Entry. Currently, the following code is always generated.
91796 ------------------------------------------------------------------------------------------------
91797 XLA_AE_LINES_PKG.ValidateCurrentLine;
91798
91799 ------------------------------------------------------------------------------------
91800 -- 4219869 Business Flow
91801 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91802 ------------------------------------------------------------------------------------
91803 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91804
91805 ----------------------------------------------------------------------------------
91806 -- 4219869 Business Flow
91807 -- Update journal entry status -- Need to generate this within IF <condition>
91808 ----------------------------------------------------------------------------------
91812 );
91809 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91810 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91811 ,p_balance_type_code => l_balance_type_code
91813
91814 -------------------------------------------------------------------------------------------
91815 -- 4262811 - Generate the Accrual Reversal lines
91816 -------------------------------------------------------------------------------------------
91817 BEGIN
91818 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91819 (g_array_event(p_event_id).array_value_num('header_index'));
91820 IF l_acc_rev_flag IS NULL THEN
91821 l_acc_rev_flag := 'N';
91822 END IF;
91823 EXCEPTION
91824 WHEN OTHERS THEN
91825 l_acc_rev_flag := 'N';
91826 END;
91827 --
91828 IF (l_acc_rev_flag = 'Y') THEN
91829
91830 -- 4645092 ------------------------------------------------------------------------------
91831 -- To allow MPA report to determine if it should generate report process
91832 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91833 ------------------------------------------------------------------------------------------
91834
91835 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91836 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91837 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
91838 -- call ADRs
91839 -- Bug 4922099
91840 --
91841 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91842 (NVL(l_actual_upg_option, 'N') = 'O') OR
91843 (NVL(l_enc_upg_option, 'N') = 'O')
91844 )
91845 THEN
91846 NULL;
91847 --
91848 --
91849
91850 l_ccid := AcctDerRule_25(
91851 p_application_id => p_application_id
91852 , p_ae_header_id => l_ae_header_id
91853 , p_source_16 => p_source_16
91854 , p_source_16_meaning => p_source_16_meaning
91855 , p_source_17 => p_source_17
91856 , p_source_18 => p_source_18
91857 , p_source_19 => p_source_19
91858 , p_source_19_meaning => p_source_19_meaning
91859 , p_source_20 => p_source_20
91860 , p_source_29 => p_source_29
91861 , p_source_42 => p_source_42
91862 , p_source_42_meaning => p_source_42_meaning
91863 , x_transaction_coa_id => l_adr_transaction_coa_id
91864 , x_accounting_coa_id => l_adr_accounting_coa_id
91865 , x_value_type_code => l_adr_value_type_code
91866 , p_side => 'NA'
91867 );
91868
91869 xla_ae_lines_pkg.set_ccid(
91870 p_code_combination_id => l_ccid
91871 , p_value_type_code => l_adr_value_type_code
91872 , p_transaction_coa_id => l_adr_transaction_coa_id
91873 , p_accounting_coa_id => l_adr_accounting_coa_id
91874 , p_adr_code => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
91875 , p_adr_type_code => 'S'
91876 , p_component_type => l_component_type
91877 , p_component_code => l_component_code
91878 , p_component_type_code => l_component_type_code
91879 , p_component_appl_id => l_component_appl_id
91880 , p_amb_context_code => l_amb_context_code
91881 , p_side => 'NA'
91882 );
91883
91884
91885 l_segment := AcctDerRule_5(
91886 p_application_id => p_application_id
91887 , p_ae_header_id => l_ae_header_id
91888 , p_source_16 => p_source_16
91889 , p_source_16_meaning => p_source_16_meaning
91890 , p_source_17 => p_source_17
91891 , p_source_18 => p_source_18
91892 , p_source_19 => p_source_19
91893 , p_source_19_meaning => p_source_19_meaning
91894 , p_source_20 => p_source_20
91895 , x_transaction_coa_id => l_adr_transaction_coa_id
91896 , x_accounting_coa_id => l_adr_accounting_coa_id
91897 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91898 , x_flex_value_set_id => l_adr_flex_value_set_id
91899 , x_value_type_code => l_adr_value_type_code
91900 , x_value_combination_id => l_adr_value_combination_id
91901 , x_value_segment_code => l_adr_value_segment_code
91902 , p_side => 'NA'
91903 , p_override_seg_flag => 'Y'
91904 );
91905
91906 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91907
91908 xla_ae_lines_pkg.set_segment(
91909 p_to_segment_code => 'GL_ACCOUNT'
91910 , p_segment_value => l_segment
91911 , p_from_segment_code => l_adr_value_segment_code
91912 , p_from_combination_id => l_adr_value_combination_id
91913 , p_value_type_code => l_adr_value_type_code
91914 , p_transaction_coa_id => l_adr_transaction_coa_id
91915 , p_accounting_coa_id => l_adr_accounting_coa_id
91916 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91917 , p_flex_value_set_id => l_adr_flex_value_set_id
91918 , p_adr_code => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
91919 , p_adr_type_code => 'S'
91920 , p_component_type => l_component_type
91921 , p_component_code => l_component_code
91922 , p_component_type_code => l_component_type_code
91926 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
91923 , p_component_appl_id => l_component_appl_id
91924 , p_amb_context_code => l_amb_context_code
91925 , p_entity_code => 'AP_INVOICES'
91927 , p_side => 'NA'
91928 );
91929
91930 END IF;
91931
91932 l_segment := AcctDerRule_17(
91933 p_application_id => p_application_id
91934 , p_ae_header_id => l_ae_header_id
91935 , p_source_16 => p_source_16
91936 , p_source_16_meaning => p_source_16_meaning
91937 , p_source_19 => p_source_19
91938 , p_source_19_meaning => p_source_19_meaning
91939 , p_source_29 => p_source_29
91940 , x_transaction_coa_id => l_adr_transaction_coa_id
91941 , x_accounting_coa_id => l_adr_accounting_coa_id
91942 , x_flexfield_segment_code => l_adr_flexfield_segment_code
91943 , x_flex_value_set_id => l_adr_flex_value_set_id
91944 , x_value_type_code => l_adr_value_type_code
91945 , x_value_combination_id => l_adr_value_combination_id
91946 , x_value_segment_code => l_adr_value_segment_code
91947 , p_side => 'NA'
91948 , p_override_seg_flag => 'Y'
91949 );
91950
91951 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
91952
91953 xla_ae_lines_pkg.set_segment(
91954 p_to_segment_code => 'GL_BALANCING'
91955 , p_segment_value => l_segment
91956 , p_from_segment_code => l_adr_value_segment_code
91957 , p_from_combination_id => l_adr_value_combination_id
91958 , p_value_type_code => l_adr_value_type_code
91959 , p_transaction_coa_id => l_adr_transaction_coa_id
91960 , p_accounting_coa_id => l_adr_accounting_coa_id
91961 , p_flexfield_segment_code => l_adr_flexfield_segment_code
91962 , p_flex_value_set_id => l_adr_flex_value_set_id
91963 , p_adr_code => 'AP_RELATED_DIST_BAL_SEG'
91964 , p_adr_type_code => 'S'
91965 , p_component_type => l_component_type
91966 , p_component_code => l_component_code
91967 , p_component_type_code => l_component_type_code
91968 , p_component_appl_id => l_component_appl_id
91969 , p_amb_context_code => l_amb_context_code
91970 , p_entity_code => 'AP_INVOICES'
91971 , p_event_class_code => 'PREPAYMENT APPLICATIONS'
91972 , p_side => 'NA'
91973 );
91974
91975 END IF;
91976
91977 --
91978 --
91979 END IF;
91980
91981 --
91982 -- Update the line information that should be overwritten
91983 --
91984 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91985 p_header_num => 1);
91986 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
91987
91988 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91989
91990 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
91991 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91992 END IF;
91993
91994 --
91995 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91996 --
91997 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91998 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
91999 ELSE
92000 ---------------------------------------------------------------------------------------------------
92001 -- 4262811a Switch Sign
92002 ---------------------------------------------------------------------------------------------------
92003 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
92004 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92005 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92006 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92007 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92008 -- 5132302
92009 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92010 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92011
92012 END IF;
92013
92014 -- 4955764
92015 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92016 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92017
92018
92019 XLA_AE_LINES_PKG.ValidateCurrentLine;
92020 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92021
92022 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92023 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92024 ,p_balance_type_code => l_balance_type_code);
92025
92026 END IF;
92027
92031 -- No MPA option is assigned.
92028 -----------------------------------------------------------------------------------------
92029 -- 4262811 Multiperiod Accounting
92030 -----------------------------------------------------------------------------------------
92032
92033
92034 END IF;
92035 END IF;
92036 --
92037
92038 --
92039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92040 trace
92041 (p_msg => 'END of AcctLineType_159'
92042 ,p_level => C_LEVEL_PROCEDURE
92043 ,p_module => l_log_module);
92044 END IF;
92045 --
92046 EXCEPTION
92047 WHEN xla_exceptions_pkg.application_exception THEN
92048 RAISE;
92049 WHEN OTHERS THEN
92050 xla_exceptions_pkg.raise_message
92051 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_159');
92052 END AcctLineType_159;
92053 --
92054
92055 ---------------------------------------
92056 --
92057 -- PRIVATE FUNCTION
92058 -- AcctLineType_160
92059 --
92060 ---------------------------------------
92061 PROCEDURE AcctLineType_160 (
92062 p_application_id IN NUMBER
92063 ,p_event_id IN NUMBER
92064 ,p_calculate_acctd_flag IN VARCHAR2
92065 ,p_calculate_g_l_flag IN VARCHAR2
92066 ,p_actual_flag IN OUT VARCHAR2
92067 ,p_balance_type_code OUT VARCHAR2
92068 ,p_gain_or_loss_ref OUT VARCHAR2
92069
92070 --Recipient Invoice Distribution Account
92071 , p_source_48 IN NUMBER
92072 --When to Account for Payment Option
92073 , p_source_50 IN VARCHAR2
92074 --Accounting Reversal Indicator
92075 , p_source_52 IN VARCHAR2
92076 --Business Flow Accounts Payable Application Identifier
92077 , p_source_54 IN NUMBER
92078 --Distribution Link Type
92079 , p_source_60 IN VARCHAR2
92080 --Override Accounted Amount Indicator
92081 , p_source_64 IN VARCHAR2
92082 , p_source_64_meaning IN VARCHAR2
92083 --Third Party Type
92084 , p_source_67 IN VARCHAR2
92085 --Invoice Distribution Tax Line Identifier
92086 , p_source_69 IN NUMBER
92087 --Invoice Distribution Summary Tax Line Identifier
92088 , p_source_70 IN NUMBER
92089 --Invoice Distribution Tax Distribution Identifier from Tax
92090 , p_source_77 IN NUMBER
92091 --Prepayment Distribution Type
92092 , p_source_78 IN VARCHAR2
92093 --Recipient Invoice Distribution Type
92094 , p_source_79 IN VARCHAR2
92095 , p_source_79_meaning IN VARCHAR2
92096 --Prepayment Application Distribution Identifier
92097 , p_source_82 IN NUMBER
92098 --Invoice Identifier
92099 , p_source_83 IN NUMBER
92100 --Business Flow Prepayment Invoice Distribution Type
92101 , p_source_84 IN VARCHAR2
92102 --Business Flow Prepayment Invoice Entity Code
92103 , p_source_85 IN VARCHAR2
92104 --Business Flow Prepayment Invoice Distribution Identifier
92105 , p_source_86 IN NUMBER
92106 --Business Flow Prepayment Invoice Identifier
92107 , p_source_87 IN NUMBER
92108 --Upgrade Encumbrance Credit Account Class
92109 , p_source_88 IN VARCHAR2
92110 --Payables Encumbrance Upgrade Credit Account
92111 , p_source_89 IN NUMBER
92112 --Payables Encumbrance Upgrade Credit Amount
92113 , p_source_90 IN NUMBER
92114 --Invoice Currency Code
92115 , p_source_91 IN VARCHAR2
92116 --Payables Encumbrance Upgrade Credit Base Amount
92117 , p_source_92 IN NUMBER
92118 --Upgrade Encumbrance Debit Account Class
92119 , p_source_93 IN VARCHAR2
92120 --Payables Encumbrance Upgrade Debit Account
92121 , p_source_94 IN NUMBER
92122 --Payables Encumbrance Upgrade Debit Amount
92123 , p_source_95 IN NUMBER
92124 --Payables Encumbrance Upgrade Debit Base Amount
92125 , p_source_96 IN NUMBER
92126 --Payables Encumbrance Upgrade Option
92127 , p_source_97 IN VARCHAR2
92128 --Prepayment Distribution Amount
92129 , p_source_98 IN NUMBER
92130 --Prepayment Clearing Currency Code
92131 , p_source_99 IN VARCHAR2
92132 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
92133 , p_source_100 IN NUMBER
92134 --Deferred Accounting End Date
92135 , p_source_101 IN DATE
92136 --Deferred Accounting Option
92137 , p_source_102 IN VARCHAR2
92138 --Deferred Accounting Start Date
92139 , p_source_103 IN DATE
92140 --Invoice Supplier Identifier
92141 , p_source_104 IN NUMBER
92142 --Invoice Supplier Site Identifier
92143 , p_source_105 IN NUMBER
92144 --Identifier of the Prepayment Application Reversed
92145 , p_source_106 IN NUMBER
92146 --Payables Upgrade Credit Encumbrance Type Identifier
92147 , p_source_107 IN NUMBER
92148 --Payables Upgrade Debit Encumbrance Type Identifier
92149 , p_source_108 IN NUMBER
92150 --Accrue on Receipt Option
92151 , p_source_111 IN VARCHAR2
92152 , p_source_111_meaning IN VARCHAR2
92153 --Prepayment Clearing Exchange Date
92154 , p_source_125 IN DATE
92155 --Prepayment Clearing Exchange Rate
92156 , p_source_126 IN NUMBER
92157 --Prepayment Clearing Exchange Rate Type
92158 , p_source_127 IN VARCHAR2
92159 )
92160 IS
92161
92162 l_component_type VARCHAR2(80);
92163 l_component_code VARCHAR2(30);
92167 l_entity_code VARCHAR2(30);
92164 l_component_type_code VARCHAR2(1);
92165 l_component_appl_id INTEGER;
92166 l_amb_context_code VARCHAR2(30);
92168 l_event_class_code VARCHAR2(30);
92169 l_ae_header_id NUMBER;
92170 l_event_type_code VARCHAR2(30);
92171 l_line_definition_code VARCHAR2(30);
92172 l_line_definition_owner_code VARCHAR2(1);
92173 --
92174 -- adr variables
92175 l_segment VARCHAR2(30);
92176 l_ccid NUMBER;
92177 l_adr_transaction_coa_id NUMBER;
92178 l_adr_accounting_coa_id NUMBER;
92179 l_adr_flexfield_segment_code VARCHAR2(30);
92180 l_adr_flex_value_set_id NUMBER;
92181 l_adr_value_type_code VARCHAR2(30);
92182 l_adr_value_combination_id NUMBER;
92183 l_adr_value_segment_code VARCHAR2(30);
92184
92185 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
92186 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
92187 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
92188 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
92189
92190 -- 4262811 Variables ------------------------------------------------------------------------------------------
92191 l_entered_amt_idx NUMBER;
92192 l_accted_amt_idx NUMBER;
92193 l_acc_rev_flag VARCHAR2(1);
92194 l_accrual_line_num NUMBER;
92195 l_tmp_amt NUMBER;
92196 l_acc_rev_natural_side_code VARCHAR2(1);
92197
92198 l_num_entries NUMBER;
92199 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
92200 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
92201 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
92202 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
92203 l_recog_line_1 NUMBER;
92204 l_recog_line_2 NUMBER;
92205
92206 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
92207 l_bflow_applied_to_amt NUMBER; -- 5132302
92208 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
92209
92210 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92211
92212 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
92213 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
92214
92215 ---------------------------------------------------------------------------------------------------------------
92216
92217
92218 --
92219 -- bulk performance
92220 --
92221 l_balance_type_code VARCHAR2(1);
92222 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
92223 l_log_module VARCHAR2(240);
92224
92225 --
92226 -- Upgrade strategy
92227 --
92228 l_actual_upg_option VARCHAR2(1);
92229 l_enc_upg_option VARCHAR2(1);
92230
92231 --
92232 BEGIN
92233 --
92234 IF g_log_enabled THEN
92235 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
92236 END IF;
92237 --
92238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92239
92240 trace
92241 (p_msg => 'BEGIN of AcctLineType_160'
92242 ,p_level => C_LEVEL_PROCEDURE
92243 ,p_module => l_log_module);
92244
92245 END IF;
92246 --
92247 l_component_type := 'AMB_JLT';
92248 l_component_code := 'AP_TIPV_PREPAY_CLR_RATE_APP';
92249 l_component_type_code := 'S';
92250 l_component_appl_id := 200;
92251 l_amb_context_code := 'DEFAULT';
92252 l_entity_code := 'AP_INVOICES';
92253 l_event_class_code := 'PREPAYMENT APPLICATIONS';
92254 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
92255 l_line_definition_owner_code := 'S';
92256 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
92257 --
92258 l_balance_type_code := 'A';
92259 l_segment := NULL;
92260 l_ccid := NULL;
92261 l_adr_transaction_coa_id := NULL;
92262 l_adr_accounting_coa_id := NULL;
92263 l_adr_flexfield_segment_code := NULL;
92264 l_adr_flex_value_set_id := NULL;
92265 l_adr_value_type_code := NULL;
92266 l_adr_value_combination_id := NULL;
92267 l_adr_value_segment_code := NULL;
92268
92269 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
92270 l_bflow_class_code := ''; -- 4219869 Business Flow
92271 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
92272 l_budgetary_control_flag := 'N';
92273
92274 l_bflow_applied_to_amt_idx := NULL; -- 5132302
92275 l_bflow_applied_to_amt := NULL; -- 5132302
92276 l_entered_amt_idx := NULL; -- 4262811
92277 l_accted_amt_idx := NULL; -- 4262811
92278 l_acc_rev_flag := NULL; -- 4262811
92279 l_accrual_line_num := NULL; -- 4262811
92280 l_tmp_amt := NULL; -- 4262811
92281 --
92282
92283 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92284 l_balance_type_code <> 'B' THEN
92285 IF NVL(p_source_50,'
92286 ') = 'CLEAR_CLEAR' AND
92287 (NVL(p_source_78,'
92288 ') = 'PREPAY APPL' OR
92289 NVL(p_source_78,'
92290 ') = 'PREPAY APPL NONREC TAX' OR
92294 ') = 'TIPV' AND
92291 NVL(p_source_78,'
92292 ') = 'PREPAY APPL REC TAX') AND
92293 NVL(p_source_79,'
92295 NVL(p_source_111,'
92296 ') = 'Y'
92297 THEN
92298
92299 --
92300 XLA_AE_LINES_PKG.SetNewLine;
92301
92302 p_balance_type_code := l_balance_type_code;
92303 -- set the flag so later we will know whether the gain loss line needs to be created
92304
92305 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92306 p_actual_flag :='A';
92307 END IF;
92308
92309 --
92310 -- bulk performance
92311 --
92312 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92313 p_header_num => 0); -- 4262811
92314 --
92315 -- set accounting line options
92316 --
92317 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92318 p_natural_side_code => 'C'
92319 , p_gain_or_loss_flag => 'N'
92320 , p_gl_transfer_mode_code => 'S'
92321 , p_acct_entry_type_code => 'A'
92322 , p_switch_side_flag => 'Y'
92323 , p_merge_duplicate_code => 'A'
92324 );
92325 --
92326 l_acc_rev_natural_side_code := 'D'; -- 4262811
92327 --
92328 --
92329 -- set accounting line type info
92330 --
92331 xla_ae_lines_pkg.SetAcctLineType
92332 (p_component_type => l_component_type
92333 ,p_event_type_code => l_event_type_code
92334 ,p_line_definition_owner_code => l_line_definition_owner_code
92335 ,p_line_definition_code => l_line_definition_code
92336 ,p_accounting_line_code => l_component_code
92337 ,p_accounting_line_type_code => l_component_type_code
92338 ,p_accounting_line_appl_id => l_component_appl_id
92339 ,p_amb_context_code => l_amb_context_code
92340 ,p_entity_code => l_entity_code
92341 ,p_event_class_code => l_event_class_code);
92342 --
92343 -- set accounting class
92344 --
92345 xla_ae_lines_pkg.SetAcctClass(
92346 p_accounting_class_code => 'TIPV'
92347 , p_ae_header_id => l_ae_header_id
92348 );
92349
92350 --
92351 -- set rounding class
92352 --
92353 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92354 'TIPV';
92355
92356 --
92357 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92358 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92359 --
92360 -- bulk performance
92361 --
92362 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92363
92364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92365 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92366
92367 -- 4955764
92368 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92369 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92370
92371 -- 4458381 Public Sector Enh
92372
92373 --
92374 -- set accounting attributes for the line type
92375 --
92376 l_entered_amt_idx := 25;
92377 l_accted_amt_idx := 30;
92378 l_bflow_applied_to_amt_idx := NULL; -- 5132302
92379 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92380 l_rec_acct_attrs.array_char_value(1) := p_source_52;
92381 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92382 l_rec_acct_attrs.array_num_value(2) :=
92383 xla_ae_sources_pkg.GetSystemSourceNum(
92384 p_source_code => 'XLA_EVENT_APPL_ID'
92385 , p_source_type_code => 'Y'
92386 , p_source_application_id => 602
92387 );
92388 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92389 l_rec_acct_attrs.array_char_value(3) := p_source_60;
92390 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92391 l_rec_acct_attrs.array_char_value(4) :=
92392 xla_ae_sources_pkg.GetSystemSourceChar(
92393 p_source_code => 'XLA_ENTITY_CODE'
92394 , p_source_type_code => 'Y'
92395 , p_source_application_id => 602
92396 );
92397 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92398 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
92399 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92400 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
92401 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92402 l_rec_acct_attrs.array_num_value(7) := p_source_54;
92403 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92404 l_rec_acct_attrs.array_char_value(8) := p_source_84;
92405 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92406 l_rec_acct_attrs.array_char_value(9) := p_source_85;
92407 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92408 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
92409 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92410 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
92411 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92415 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
92412 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
92413 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92414 l_rec_acct_attrs.array_char_value(13) := p_source_60;
92416 l_rec_acct_attrs.array_char_value(14) := p_source_88;
92417 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
92418 l_rec_acct_attrs.array_num_value(15) := p_source_89;
92419 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
92420 l_rec_acct_attrs.array_num_value(16) := p_source_90;
92421 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
92422 l_rec_acct_attrs.array_char_value(17) := p_source_91;
92423 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
92424 l_rec_acct_attrs.array_num_value(18) := p_source_92;
92425 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
92426 l_rec_acct_attrs.array_char_value(19) := p_source_93;
92427 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
92428 l_rec_acct_attrs.array_num_value(20) := p_source_94;
92429 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
92430 l_rec_acct_attrs.array_num_value(21) := p_source_95;
92431 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
92432 l_rec_acct_attrs.array_char_value(22) := p_source_91;
92433 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
92434 l_rec_acct_attrs.array_num_value(23) := p_source_96;
92435 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
92436 l_rec_acct_attrs.array_char_value(24) := p_source_97;
92437 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
92438 l_rec_acct_attrs.array_num_value(25) := p_source_98;
92439 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
92440 l_rec_acct_attrs.array_char_value(26) := p_source_99;
92441 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
92442 l_rec_acct_attrs.array_date_value(27) := p_source_125;
92443 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
92444 l_rec_acct_attrs.array_num_value(28) := p_source_126;
92445 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
92446 l_rec_acct_attrs.array_char_value(29) := p_source_127;
92447 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
92448 l_rec_acct_attrs.array_num_value(30) := p_source_100;
92449 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
92450 l_rec_acct_attrs.array_date_value(31) := p_source_101;
92451 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
92452 l_rec_acct_attrs.array_char_value(32) := p_source_102;
92453 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
92454 l_rec_acct_attrs.array_date_value(33) := p_source_103;
92455 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
92456 l_rec_acct_attrs.array_char_value(34) := p_source_64;
92457 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
92458 l_rec_acct_attrs.array_num_value(35) := p_source_104;
92459 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
92460 l_rec_acct_attrs.array_num_value(36) := p_source_105;
92461 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
92462 l_rec_acct_attrs.array_char_value(37) := p_source_67;
92463 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
92464 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
92465 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
92466 l_rec_acct_attrs.array_char_value(39) := p_source_60;
92467 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
92468 l_rec_acct_attrs.array_num_value(40) := p_source_69;
92469 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
92470 l_rec_acct_attrs.array_num_value(41) := p_source_77;
92471 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
92472 l_rec_acct_attrs.array_num_value(42) := p_source_70;
92473 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
92474 l_rec_acct_attrs.array_num_value(43) := p_source_107;
92475 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
92476 l_rec_acct_attrs.array_num_value(44) := p_source_108;
92477
92478 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92479 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92480
92481 ---------------------------------------------------------------------------------------------------------------
92482 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92483 ---------------------------------------------------------------------------------------------------------------
92484 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92485
92486 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92487 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92488
92489 IF xla_accounting_cache_pkg.GetValueChar
92490 (p_source_code => 'LEDGER_CATEGORY_CODE'
92491 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92492 AND l_bflow_method_code = 'PRIOR_ENTRY'
92493 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92494 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92495 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92499 (p_business_method_code => l_bflow_method_code
92496 )
92497 THEN
92498 xla_ae_lines_pkg.BflowUpgEntry
92500 ,p_business_class_code => l_bflow_class_code
92501 ,p_balance_type => l_balance_type_code);
92502 ELSE
92503 NULL;
92504 -- No business flow processing for business flow method of NONE.
92505 END IF;
92506
92507 --
92508 -- call analytical criteria
92509 --
92510
92511 --
92512 -- call description
92513 --
92514 -- No description or it is inherited.
92515 --
92516 -- call ADRs
92517 -- Bug 4922099
92518 --
92519 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92520 (NVL(l_actual_upg_option, 'N') = 'O') OR
92521 (NVL(l_enc_upg_option, 'N') = 'O')
92522 )
92523 THEN
92524 NULL;
92525 --
92526 --
92527
92528 l_ccid := AcctDerRule_35(
92529 p_application_id => p_application_id
92530 , p_ae_header_id => l_ae_header_id
92531 , p_source_48 => p_source_48
92532 , x_transaction_coa_id => l_adr_transaction_coa_id
92533 , x_accounting_coa_id => l_adr_accounting_coa_id
92534 , x_value_type_code => l_adr_value_type_code
92535 , p_side => 'NA'
92536 );
92537
92538 xla_ae_lines_pkg.set_ccid(
92539 p_code_combination_id => l_ccid
92540 , p_value_type_code => l_adr_value_type_code
92541 , p_transaction_coa_id => l_adr_transaction_coa_id
92542 , p_accounting_coa_id => l_adr_accounting_coa_id
92543 , p_adr_code => 'AP_RECP_INV_DIST'
92544 , p_adr_type_code => 'S'
92545 , p_component_type => l_component_type
92546 , p_component_code => l_component_code
92547 , p_component_type_code => l_component_type_code
92548 , p_component_appl_id => l_component_appl_id
92549 , p_amb_context_code => l_amb_context_code
92550 , p_side => 'NA'
92551 );
92552
92553
92554 --
92555 --
92556 END IF;
92557 --
92558 -- Bug 4922099
92559 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92560 (NVL(l_enc_upg_option, 'N') = 'O')
92561 ) AND
92562 (l_bflow_method_code = 'PRIOR_ENTRY')
92563 )
92564 THEN
92565 IF
92566 --
92567 1 = 2
92568 --
92569 THEN
92570 xla_accounting_err_pkg.build_message
92571 (p_appli_s_name => 'XLA'
92572 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92573 ,p_token_1 => 'LINE_NUMBER'
92574 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
92575 ,p_token_2 => 'LINE_TYPE_NAME'
92576 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
92577 l_component_type
92578 ,l_component_code
92579 ,l_component_type_code
92580 ,l_component_appl_id
92581 ,l_amb_context_code
92582 ,l_entity_code
92583 ,l_event_class_code
92584 )
92585 ,p_token_3 => 'OWNER'
92586 ,p_value_3 => xla_lookups_pkg.get_meaning(
92587 p_lookup_type => 'XLA_OWNER_TYPE'
92588 ,p_lookup_code => l_component_type_code
92589 )
92590 ,p_token_4 => 'PRODUCT_NAME'
92591 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92592 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92593 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92594 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92595 ,p_ae_header_id => NULL
92596 );
92597
92598 IF (C_LEVEL_ERROR>= g_log_level) THEN
92599 trace
92600 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92601 ,p_level => C_LEVEL_ERROR
92602 ,p_module => l_log_module);
92603 END IF;
92604 END IF;
92605 END IF;
92606 --
92607 --
92608 ------------------------------------------------------------------------------------------------
92609 -- 4219869 Business Flow
92613 XLA_AE_LINES_PKG.ValidateCurrentLine;
92610 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92611 -- Prior Entry. Currently, the following code is always generated.
92612 ------------------------------------------------------------------------------------------------
92614
92615 ------------------------------------------------------------------------------------
92616 -- 4219869 Business Flow
92617 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92618 ------------------------------------------------------------------------------------
92619 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92620
92621 ----------------------------------------------------------------------------------
92622 -- 4219869 Business Flow
92623 -- Update journal entry status -- Need to generate this within IF <condition>
92624 ----------------------------------------------------------------------------------
92625 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92626 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92627 ,p_balance_type_code => l_balance_type_code
92628 );
92629
92630 -------------------------------------------------------------------------------------------
92631 -- 4262811 - Generate the Accrual Reversal lines
92632 -------------------------------------------------------------------------------------------
92633 BEGIN
92634 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92635 (g_array_event(p_event_id).array_value_num('header_index'));
92636 IF l_acc_rev_flag IS NULL THEN
92637 l_acc_rev_flag := 'N';
92638 END IF;
92639 EXCEPTION
92640 WHEN OTHERS THEN
92641 l_acc_rev_flag := 'N';
92642 END;
92643 --
92644 IF (l_acc_rev_flag = 'Y') THEN
92645
92646 -- 4645092 ------------------------------------------------------------------------------
92647 -- To allow MPA report to determine if it should generate report process
92648 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92649 ------------------------------------------------------------------------------------------
92650
92651 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92652 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92653 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
92654 -- call ADRs
92655 -- Bug 4922099
92656 --
92657 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92658 (NVL(l_actual_upg_option, 'N') = 'O') OR
92659 (NVL(l_enc_upg_option, 'N') = 'O')
92660 )
92661 THEN
92662 NULL;
92663 --
92664 --
92665
92666 l_ccid := AcctDerRule_35(
92667 p_application_id => p_application_id
92668 , p_ae_header_id => l_ae_header_id
92669 , p_source_48 => p_source_48
92670 , x_transaction_coa_id => l_adr_transaction_coa_id
92671 , x_accounting_coa_id => l_adr_accounting_coa_id
92672 , x_value_type_code => l_adr_value_type_code
92673 , p_side => 'NA'
92674 );
92675
92676 xla_ae_lines_pkg.set_ccid(
92677 p_code_combination_id => l_ccid
92678 , p_value_type_code => l_adr_value_type_code
92679 , p_transaction_coa_id => l_adr_transaction_coa_id
92680 , p_accounting_coa_id => l_adr_accounting_coa_id
92681 , p_adr_code => 'AP_RECP_INV_DIST'
92682 , p_adr_type_code => 'S'
92683 , p_component_type => l_component_type
92684 , p_component_code => l_component_code
92685 , p_component_type_code => l_component_type_code
92686 , p_component_appl_id => l_component_appl_id
92687 , p_amb_context_code => l_amb_context_code
92688 , p_side => 'NA'
92689 );
92690
92691
92692 --
92693 --
92694 END IF;
92695
92696 --
92697 -- Update the line information that should be overwritten
92698 --
92699 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92700 p_header_num => 1);
92701 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
92702
92703 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92704
92705 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
92706 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92707 END IF;
92708
92709 --
92710 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92711 --
92712 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92713 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
92714 ELSE
92715 ---------------------------------------------------------------------------------------------------
92716 -- 4262811a Switch Sign
92717 ---------------------------------------------------------------------------------------------------
92718 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
92722 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92719 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92720 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92721 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92723 -- 5132302
92724 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92725 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92726
92727 END IF;
92728
92729 -- 4955764
92730 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92731 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92732
92733
92734 XLA_AE_LINES_PKG.ValidateCurrentLine;
92735 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92736
92737 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92738 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92739 ,p_balance_type_code => l_balance_type_code);
92740
92741 END IF;
92742
92743 -----------------------------------------------------------------------------------------
92744 -- 4262811 Multiperiod Accounting
92745 -----------------------------------------------------------------------------------------
92746 -- No MPA option is assigned.
92747
92748
92749 END IF;
92750 END IF;
92751 --
92752
92753 --
92754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92755 trace
92756 (p_msg => 'END of AcctLineType_160'
92757 ,p_level => C_LEVEL_PROCEDURE
92758 ,p_module => l_log_module);
92759 END IF;
92760 --
92761 EXCEPTION
92762 WHEN xla_exceptions_pkg.application_exception THEN
92763 RAISE;
92764 WHEN OTHERS THEN
92765 xla_exceptions_pkg.raise_message
92766 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_160');
92767 END AcctLineType_160;
92768 --
92769
92770 ---------------------------------------
92771 --
92772 -- PRIVATE FUNCTION
92773 -- AcctLineType_161
92774 --
92775 ---------------------------------------
92776 PROCEDURE AcctLineType_161 (
92777 p_application_id IN NUMBER
92778 ,p_event_id IN NUMBER
92779 ,p_calculate_acctd_flag IN VARCHAR2
92780 ,p_calculate_g_l_flag IN VARCHAR2
92781 ,p_actual_flag IN OUT VARCHAR2
92782 ,p_balance_type_code OUT VARCHAR2
92783 ,p_gain_or_loss_ref OUT VARCHAR2
92784
92785 --Recipient Invoice Distribution Account
92786 , p_source_48 IN NUMBER
92787 --When to Account for Payment Option
92788 , p_source_50 IN VARCHAR2
92789 --Accounting Reversal Indicator
92790 , p_source_52 IN VARCHAR2
92791 --Business Flow Accounts Payable Application Identifier
92792 , p_source_54 IN NUMBER
92793 --Distribution Link Type
92794 , p_source_60 IN VARCHAR2
92795 --Override Accounted Amount Indicator
92796 , p_source_64 IN VARCHAR2
92797 , p_source_64_meaning IN VARCHAR2
92798 --Third Party Type
92799 , p_source_67 IN VARCHAR2
92800 --Invoice Distribution Tax Line Identifier
92801 , p_source_69 IN NUMBER
92802 --Invoice Distribution Summary Tax Line Identifier
92803 , p_source_70 IN NUMBER
92804 --Invoice Distribution Tax Distribution Identifier from Tax
92805 , p_source_77 IN NUMBER
92806 --Prepayment Distribution Type
92807 , p_source_78 IN VARCHAR2
92808 --Recipient Invoice Distribution Type
92809 , p_source_79 IN VARCHAR2
92810 , p_source_79_meaning IN VARCHAR2
92811 --Prepayment Application Distribution Identifier
92812 , p_source_82 IN NUMBER
92813 --Invoice Identifier
92814 , p_source_83 IN NUMBER
92815 --Business Flow Prepayment Invoice Distribution Type
92816 , p_source_84 IN VARCHAR2
92817 --Business Flow Prepayment Invoice Entity Code
92818 , p_source_85 IN VARCHAR2
92819 --Business Flow Prepayment Invoice Distribution Identifier
92820 , p_source_86 IN NUMBER
92821 --Business Flow Prepayment Invoice Identifier
92822 , p_source_87 IN NUMBER
92823 --Upgrade Encumbrance Credit Account Class
92824 , p_source_88 IN VARCHAR2
92825 --Payables Encumbrance Upgrade Credit Account
92826 , p_source_89 IN NUMBER
92827 --Payables Encumbrance Upgrade Credit Amount
92828 , p_source_90 IN NUMBER
92829 --Invoice Currency Code
92830 , p_source_91 IN VARCHAR2
92831 --Payables Encumbrance Upgrade Credit Base Amount
92832 , p_source_92 IN NUMBER
92833 --Upgrade Encumbrance Debit Account Class
92834 , p_source_93 IN VARCHAR2
92835 --Payables Encumbrance Upgrade Debit Account
92836 , p_source_94 IN NUMBER
92837 --Payables Encumbrance Upgrade Debit Amount
92838 , p_source_95 IN NUMBER
92839 --Payables Encumbrance Upgrade Debit Base Amount
92840 , p_source_96 IN NUMBER
92841 --Payables Encumbrance Upgrade Option
92842 , p_source_97 IN VARCHAR2
92843 --Prepayment Distribution Amount
92844 , p_source_98 IN NUMBER
92848 , p_source_102 IN VARCHAR2
92845 --Deferred Accounting End Date
92846 , p_source_101 IN DATE
92847 --Deferred Accounting Option
92849 --Deferred Accounting Start Date
92850 , p_source_103 IN DATE
92851 --Invoice Supplier Identifier
92852 , p_source_104 IN NUMBER
92853 --Invoice Supplier Site Identifier
92854 , p_source_105 IN NUMBER
92855 --Identifier of the Prepayment Application Reversed
92856 , p_source_106 IN NUMBER
92857 --Payables Upgrade Credit Encumbrance Type Identifier
92858 , p_source_107 IN NUMBER
92859 --Payables Upgrade Debit Encumbrance Type Identifier
92860 , p_source_108 IN NUMBER
92861 --Prepayment Payment Currency Code
92862 , p_source_109 IN VARCHAR2
92863 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
92864 , p_source_110 IN NUMBER
92865 --Accrue on Receipt Option
92866 , p_source_111 IN VARCHAR2
92867 , p_source_111_meaning IN VARCHAR2
92868 --Prepayment Payment Exchange Date
92869 , p_source_128 IN DATE
92870 --Prepayment Payment Exchange Rate
92871 , p_source_129 IN NUMBER
92872 --Prepayment Payment Exchange Rate Type
92873 , p_source_130 IN VARCHAR2
92874 )
92875 IS
92876
92877 l_component_type VARCHAR2(80);
92878 l_component_code VARCHAR2(30);
92879 l_component_type_code VARCHAR2(1);
92880 l_component_appl_id INTEGER;
92881 l_amb_context_code VARCHAR2(30);
92882 l_entity_code VARCHAR2(30);
92883 l_event_class_code VARCHAR2(30);
92884 l_ae_header_id NUMBER;
92885 l_event_type_code VARCHAR2(30);
92886 l_line_definition_code VARCHAR2(30);
92887 l_line_definition_owner_code VARCHAR2(1);
92888 --
92889 -- adr variables
92890 l_segment VARCHAR2(30);
92891 l_ccid NUMBER;
92892 l_adr_transaction_coa_id NUMBER;
92893 l_adr_accounting_coa_id NUMBER;
92894 l_adr_flexfield_segment_code VARCHAR2(30);
92895 l_adr_flex_value_set_id NUMBER;
92896 l_adr_value_type_code VARCHAR2(30);
92897 l_adr_value_combination_id NUMBER;
92898 l_adr_value_segment_code VARCHAR2(30);
92899
92900 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
92901 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
92902 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
92903 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
92904
92905 -- 4262811 Variables ------------------------------------------------------------------------------------------
92906 l_entered_amt_idx NUMBER;
92907 l_accted_amt_idx NUMBER;
92908 l_acc_rev_flag VARCHAR2(1);
92909 l_accrual_line_num NUMBER;
92910 l_tmp_amt NUMBER;
92911 l_acc_rev_natural_side_code VARCHAR2(1);
92912
92913 l_num_entries NUMBER;
92914 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
92915 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
92916 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
92917 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
92918 l_recog_line_1 NUMBER;
92919 l_recog_line_2 NUMBER;
92920
92921 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
92922 l_bflow_applied_to_amt NUMBER; -- 5132302
92923 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
92924
92925 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92926
92927 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
92928 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
92929
92930 ---------------------------------------------------------------------------------------------------------------
92931
92932
92933 --
92934 -- bulk performance
92935 --
92936 l_balance_type_code VARCHAR2(1);
92937 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
92938 l_log_module VARCHAR2(240);
92939
92940 --
92941 -- Upgrade strategy
92942 --
92943 l_actual_upg_option VARCHAR2(1);
92944 l_enc_upg_option VARCHAR2(1);
92945
92946 --
92947 BEGIN
92948 --
92949 IF g_log_enabled THEN
92950 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
92951 END IF;
92952 --
92953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92954
92955 trace
92956 (p_msg => 'BEGIN of AcctLineType_161'
92957 ,p_level => C_LEVEL_PROCEDURE
92958 ,p_module => l_log_module);
92959
92960 END IF;
92961 --
92962 l_component_type := 'AMB_JLT';
92963 l_component_code := 'AP_TIPV_PREPAY_PAY_RATE_APP';
92964 l_component_type_code := 'S';
92965 l_component_appl_id := 200;
92966 l_amb_context_code := 'DEFAULT';
92967 l_entity_code := 'AP_INVOICES';
92968 l_event_class_code := 'PREPAYMENT APPLICATIONS';
92969 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
92970 l_line_definition_owner_code := 'S';
92971 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
92972 --
92973 l_balance_type_code := 'A';
92974 l_segment := NULL;
92978 l_adr_flexfield_segment_code := NULL;
92975 l_ccid := NULL;
92976 l_adr_transaction_coa_id := NULL;
92977 l_adr_accounting_coa_id := NULL;
92979 l_adr_flex_value_set_id := NULL;
92980 l_adr_value_type_code := NULL;
92981 l_adr_value_combination_id := NULL;
92982 l_adr_value_segment_code := NULL;
92983
92984 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
92985 l_bflow_class_code := ''; -- 4219869 Business Flow
92986 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
92987 l_budgetary_control_flag := 'N';
92988
92989 l_bflow_applied_to_amt_idx := NULL; -- 5132302
92990 l_bflow_applied_to_amt := NULL; -- 5132302
92991 l_entered_amt_idx := NULL; -- 4262811
92992 l_accted_amt_idx := NULL; -- 4262811
92993 l_acc_rev_flag := NULL; -- 4262811
92994 l_accrual_line_num := NULL; -- 4262811
92995 l_tmp_amt := NULL; -- 4262811
92996 --
92997
92998 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92999 l_balance_type_code <> 'B' THEN
93000 IF NVL(p_source_50,'
93001 ') <> 'CLEAR_CLEAR' AND
93002 (NVL(p_source_78,'
93003 ') = 'PREPAY APPL' OR
93004 NVL(p_source_78,'
93005 ') = 'PREPAY APPL NONREC TAX' OR
93006 NVL(p_source_78,'
93007 ') = 'PREPAY APPL REC TAX') AND
93008 NVL(p_source_79,'
93009 ') = 'TIPV' AND
93010 NVL(p_source_111,'
93011 ') = 'Y'
93012 THEN
93013
93014 --
93015 XLA_AE_LINES_PKG.SetNewLine;
93016
93017 p_balance_type_code := l_balance_type_code;
93018 -- set the flag so later we will know whether the gain loss line needs to be created
93019
93020 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93021 p_actual_flag :='A';
93022 END IF;
93023
93024 --
93025 -- bulk performance
93026 --
93027 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93028 p_header_num => 0); -- 4262811
93029 --
93030 -- set accounting line options
93031 --
93032 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93033 p_natural_side_code => 'C'
93034 , p_gain_or_loss_flag => 'N'
93035 , p_gl_transfer_mode_code => 'S'
93036 , p_acct_entry_type_code => 'A'
93037 , p_switch_side_flag => 'Y'
93038 , p_merge_duplicate_code => 'A'
93039 );
93040 --
93041 l_acc_rev_natural_side_code := 'D'; -- 4262811
93042 --
93043 --
93044 -- set accounting line type info
93045 --
93046 xla_ae_lines_pkg.SetAcctLineType
93047 (p_component_type => l_component_type
93048 ,p_event_type_code => l_event_type_code
93049 ,p_line_definition_owner_code => l_line_definition_owner_code
93050 ,p_line_definition_code => l_line_definition_code
93051 ,p_accounting_line_code => l_component_code
93052 ,p_accounting_line_type_code => l_component_type_code
93053 ,p_accounting_line_appl_id => l_component_appl_id
93054 ,p_amb_context_code => l_amb_context_code
93055 ,p_entity_code => l_entity_code
93056 ,p_event_class_code => l_event_class_code);
93057 --
93058 -- set accounting class
93059 --
93060 xla_ae_lines_pkg.SetAcctClass(
93061 p_accounting_class_code => 'TIPV'
93062 , p_ae_header_id => l_ae_header_id
93063 );
93064
93065 --
93066 -- set rounding class
93067 --
93068 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93069 'TIPV';
93070
93071 --
93072 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93073 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93074 --
93075 -- bulk performance
93076 --
93077 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93078
93079 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93080 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93081
93082 -- 4955764
93083 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93084 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93085
93086 -- 4458381 Public Sector Enh
93087
93088 --
93089 -- set accounting attributes for the line type
93090 --
93091 l_entered_amt_idx := 25;
93092 l_accted_amt_idx := 30;
93093 l_bflow_applied_to_amt_idx := NULL; -- 5132302
93094 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93095 l_rec_acct_attrs.array_char_value(1) := p_source_52;
93096 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93097 l_rec_acct_attrs.array_num_value(2) :=
93098 xla_ae_sources_pkg.GetSystemSourceNum(
93099 p_source_code => 'XLA_EVENT_APPL_ID'
93100 , p_source_type_code => 'Y'
93101 , p_source_application_id => 602
93102 );
93103 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93104 l_rec_acct_attrs.array_char_value(3) := p_source_60;
93108 p_source_code => 'XLA_ENTITY_CODE'
93105 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93106 l_rec_acct_attrs.array_char_value(4) :=
93107 xla_ae_sources_pkg.GetSystemSourceChar(
93109 , p_source_type_code => 'Y'
93110 , p_source_application_id => 602
93111 );
93112 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93113 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
93114 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93115 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
93116 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93117 l_rec_acct_attrs.array_num_value(7) := p_source_54;
93118 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93119 l_rec_acct_attrs.array_char_value(8) := p_source_84;
93120 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93121 l_rec_acct_attrs.array_char_value(9) := p_source_85;
93122 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93123 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
93124 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93125 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
93126 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93127 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
93128 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93129 l_rec_acct_attrs.array_char_value(13) := p_source_60;
93130 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93131 l_rec_acct_attrs.array_char_value(14) := p_source_88;
93132 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93133 l_rec_acct_attrs.array_num_value(15) := p_source_89;
93134 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93135 l_rec_acct_attrs.array_num_value(16) := p_source_90;
93136 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93137 l_rec_acct_attrs.array_char_value(17) := p_source_91;
93138 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93139 l_rec_acct_attrs.array_num_value(18) := p_source_92;
93140 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93141 l_rec_acct_attrs.array_char_value(19) := p_source_93;
93142 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93143 l_rec_acct_attrs.array_num_value(20) := p_source_94;
93144 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93145 l_rec_acct_attrs.array_num_value(21) := p_source_95;
93146 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93147 l_rec_acct_attrs.array_char_value(22) := p_source_91;
93148 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93149 l_rec_acct_attrs.array_num_value(23) := p_source_96;
93150 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93151 l_rec_acct_attrs.array_char_value(24) := p_source_97;
93152 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93153 l_rec_acct_attrs.array_num_value(25) := p_source_98;
93154 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93155 l_rec_acct_attrs.array_char_value(26) := p_source_109;
93156 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93157 l_rec_acct_attrs.array_date_value(27) := p_source_128;
93158 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93159 l_rec_acct_attrs.array_num_value(28) := p_source_129;
93160 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93161 l_rec_acct_attrs.array_char_value(29) := p_source_130;
93162 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93163 l_rec_acct_attrs.array_num_value(30) := p_source_110;
93164 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93165 l_rec_acct_attrs.array_date_value(31) := p_source_101;
93166 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93167 l_rec_acct_attrs.array_char_value(32) := p_source_102;
93168 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93169 l_rec_acct_attrs.array_date_value(33) := p_source_103;
93170 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93171 l_rec_acct_attrs.array_char_value(34) := p_source_64;
93172 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93173 l_rec_acct_attrs.array_num_value(35) := p_source_104;
93174 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93175 l_rec_acct_attrs.array_num_value(36) := p_source_105;
93176 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93177 l_rec_acct_attrs.array_char_value(37) := p_source_67;
93178 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93179 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
93180 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93181 l_rec_acct_attrs.array_char_value(39) := p_source_60;
93182 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93183 l_rec_acct_attrs.array_num_value(40) := p_source_69;
93184 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93185 l_rec_acct_attrs.array_num_value(41) := p_source_77;
93186 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93187 l_rec_acct_attrs.array_num_value(42) := p_source_70;
93188 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93189 l_rec_acct_attrs.array_num_value(43) := p_source_107;
93193 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93190 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93191 l_rec_acct_attrs.array_num_value(44) := p_source_108;
93192
93194 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93195
93196 ---------------------------------------------------------------------------------------------------------------
93197 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93198 ---------------------------------------------------------------------------------------------------------------
93199 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93200
93201 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93202 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93203
93204 IF xla_accounting_cache_pkg.GetValueChar
93205 (p_source_code => 'LEDGER_CATEGORY_CODE'
93206 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93207 AND l_bflow_method_code = 'PRIOR_ENTRY'
93208 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93209 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93210 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93211 )
93212 THEN
93213 xla_ae_lines_pkg.BflowUpgEntry
93214 (p_business_method_code => l_bflow_method_code
93215 ,p_business_class_code => l_bflow_class_code
93216 ,p_balance_type => l_balance_type_code);
93217 ELSE
93218 NULL;
93219 -- No business flow processing for business flow method of NONE.
93220 END IF;
93221
93222 --
93223 -- call analytical criteria
93224 --
93225
93226 --
93227 -- call description
93228 --
93229 -- No description or it is inherited.
93230 --
93231 -- call ADRs
93232 -- Bug 4922099
93233 --
93234 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93235 (NVL(l_actual_upg_option, 'N') = 'O') OR
93236 (NVL(l_enc_upg_option, 'N') = 'O')
93237 )
93238 THEN
93239 NULL;
93240 --
93241 --
93242
93243 l_ccid := AcctDerRule_35(
93244 p_application_id => p_application_id
93245 , p_ae_header_id => l_ae_header_id
93246 , p_source_48 => p_source_48
93247 , x_transaction_coa_id => l_adr_transaction_coa_id
93248 , x_accounting_coa_id => l_adr_accounting_coa_id
93249 , x_value_type_code => l_adr_value_type_code
93250 , p_side => 'NA'
93251 );
93252
93253 xla_ae_lines_pkg.set_ccid(
93254 p_code_combination_id => l_ccid
93255 , p_value_type_code => l_adr_value_type_code
93256 , p_transaction_coa_id => l_adr_transaction_coa_id
93257 , p_accounting_coa_id => l_adr_accounting_coa_id
93258 , p_adr_code => 'AP_RECP_INV_DIST'
93259 , p_adr_type_code => 'S'
93260 , p_component_type => l_component_type
93261 , p_component_code => l_component_code
93262 , p_component_type_code => l_component_type_code
93263 , p_component_appl_id => l_component_appl_id
93264 , p_amb_context_code => l_amb_context_code
93265 , p_side => 'NA'
93266 );
93267
93268
93269 --
93270 --
93271 END IF;
93272 --
93273 -- Bug 4922099
93274 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93275 (NVL(l_enc_upg_option, 'N') = 'O')
93276 ) AND
93277 (l_bflow_method_code = 'PRIOR_ENTRY')
93278 )
93279 THEN
93280 IF
93281 --
93282 1 = 2
93283 --
93284 THEN
93285 xla_accounting_err_pkg.build_message
93286 (p_appli_s_name => 'XLA'
93287 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93288 ,p_token_1 => 'LINE_NUMBER'
93289 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
93290 ,p_token_2 => 'LINE_TYPE_NAME'
93291 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
93292 l_component_type
93293 ,l_component_code
93294 ,l_component_type_code
93295 ,l_component_appl_id
93296 ,l_amb_context_code
93297 ,l_entity_code
93298 ,l_event_class_code
93299 )
93300 ,p_token_3 => 'OWNER'
93304 )
93301 ,p_value_3 => xla_lookups_pkg.get_meaning(
93302 p_lookup_type => 'XLA_OWNER_TYPE'
93303 ,p_lookup_code => l_component_type_code
93305 ,p_token_4 => 'PRODUCT_NAME'
93306 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93307 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93308 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93309 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93310 ,p_ae_header_id => NULL
93311 );
93312
93313 IF (C_LEVEL_ERROR>= g_log_level) THEN
93314 trace
93315 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93316 ,p_level => C_LEVEL_ERROR
93317 ,p_module => l_log_module);
93318 END IF;
93319 END IF;
93320 END IF;
93321 --
93322 --
93323 ------------------------------------------------------------------------------------------------
93324 -- 4219869 Business Flow
93325 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93326 -- Prior Entry. Currently, the following code is always generated.
93327 ------------------------------------------------------------------------------------------------
93328 XLA_AE_LINES_PKG.ValidateCurrentLine;
93329
93330 ------------------------------------------------------------------------------------
93331 -- 4219869 Business Flow
93332 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93333 ------------------------------------------------------------------------------------
93334 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93335
93336 ----------------------------------------------------------------------------------
93337 -- 4219869 Business Flow
93338 -- Update journal entry status -- Need to generate this within IF <condition>
93339 ----------------------------------------------------------------------------------
93340 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93341 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93342 ,p_balance_type_code => l_balance_type_code
93343 );
93344
93345 -------------------------------------------------------------------------------------------
93346 -- 4262811 - Generate the Accrual Reversal lines
93347 -------------------------------------------------------------------------------------------
93348 BEGIN
93349 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93350 (g_array_event(p_event_id).array_value_num('header_index'));
93351 IF l_acc_rev_flag IS NULL THEN
93352 l_acc_rev_flag := 'N';
93353 END IF;
93354 EXCEPTION
93355 WHEN OTHERS THEN
93356 l_acc_rev_flag := 'N';
93357 END;
93358 --
93359 IF (l_acc_rev_flag = 'Y') THEN
93360
93361 -- 4645092 ------------------------------------------------------------------------------
93362 -- To allow MPA report to determine if it should generate report process
93363 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93364 ------------------------------------------------------------------------------------------
93365
93366 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93367 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93368 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
93369 -- call ADRs
93370 -- Bug 4922099
93371 --
93372 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93373 (NVL(l_actual_upg_option, 'N') = 'O') OR
93374 (NVL(l_enc_upg_option, 'N') = 'O')
93375 )
93376 THEN
93377 NULL;
93378 --
93379 --
93380
93381 l_ccid := AcctDerRule_35(
93382 p_application_id => p_application_id
93383 , p_ae_header_id => l_ae_header_id
93384 , p_source_48 => p_source_48
93385 , x_transaction_coa_id => l_adr_transaction_coa_id
93386 , x_accounting_coa_id => l_adr_accounting_coa_id
93387 , x_value_type_code => l_adr_value_type_code
93388 , p_side => 'NA'
93389 );
93390
93391 xla_ae_lines_pkg.set_ccid(
93392 p_code_combination_id => l_ccid
93393 , p_value_type_code => l_adr_value_type_code
93394 , p_transaction_coa_id => l_adr_transaction_coa_id
93395 , p_accounting_coa_id => l_adr_accounting_coa_id
93396 , p_adr_code => 'AP_RECP_INV_DIST'
93397 , p_adr_type_code => 'S'
93398 , p_component_type => l_component_type
93399 , p_component_code => l_component_code
93400 , p_component_type_code => l_component_type_code
93401 , p_component_appl_id => l_component_appl_id
93402 , p_amb_context_code => l_amb_context_code
93406
93403 , p_side => 'NA'
93404 );
93405
93407 --
93408 --
93409 END IF;
93410
93411 --
93412 -- Update the line information that should be overwritten
93413 --
93414 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93415 p_header_num => 1);
93416 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
93417
93418 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93419
93420 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
93421 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93422 END IF;
93423
93424 --
93425 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93426 --
93427 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93428 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
93429 ELSE
93430 ---------------------------------------------------------------------------------------------------
93431 -- 4262811a Switch Sign
93432 ---------------------------------------------------------------------------------------------------
93433 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
93434 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93435 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93436 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93437 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93438 -- 5132302
93439 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93440 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93441
93442 END IF;
93443
93444 -- 4955764
93445 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93446 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93447
93448
93449 XLA_AE_LINES_PKG.ValidateCurrentLine;
93450 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93451
93452 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93453 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93454 ,p_balance_type_code => l_balance_type_code);
93455
93456 END IF;
93457
93458 -----------------------------------------------------------------------------------------
93459 -- 4262811 Multiperiod Accounting
93460 -----------------------------------------------------------------------------------------
93461 -- No MPA option is assigned.
93462
93463
93464 END IF;
93465 END IF;
93466 --
93467
93468 --
93469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93470 trace
93471 (p_msg => 'END of AcctLineType_161'
93472 ,p_level => C_LEVEL_PROCEDURE
93473 ,p_module => l_log_module);
93474 END IF;
93475 --
93476 EXCEPTION
93477 WHEN xla_exceptions_pkg.application_exception THEN
93478 RAISE;
93479 WHEN OTHERS THEN
93480 xla_exceptions_pkg.raise_message
93481 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_161');
93482 END AcctLineType_161;
93483 --
93484
93485 ---------------------------------------
93486 --
93487 -- PRIVATE FUNCTION
93488 -- AcctLineType_162
93489 --
93490 ---------------------------------------
93491 PROCEDURE AcctLineType_162 (
93492 p_application_id IN NUMBER
93493 ,p_event_id IN NUMBER
93494 ,p_calculate_acctd_flag IN VARCHAR2
93495 ,p_calculate_g_l_flag IN VARCHAR2
93496 ,p_actual_flag IN OUT VARCHAR2
93497 ,p_balance_type_code OUT VARCHAR2
93498 ,p_gain_or_loss_ref OUT VARCHAR2
93499
93500 --Recipient Invoice Distribution Account
93501 , p_source_48 IN NUMBER
93502 --When to Account for Payment Option
93503 , p_source_50 IN VARCHAR2
93504 --Accounting Reversal Indicator
93505 , p_source_52 IN VARCHAR2
93506 --Business Flow Accounts Payable Application Identifier
93507 , p_source_54 IN NUMBER
93508 --Distribution Link Type
93509 , p_source_60 IN VARCHAR2
93510 --Override Accounted Amount Indicator
93511 , p_source_64 IN VARCHAR2
93512 , p_source_64_meaning IN VARCHAR2
93513 --Third Party Type
93514 , p_source_67 IN VARCHAR2
93515 --Invoice Distribution Tax Line Identifier
93516 , p_source_69 IN NUMBER
93517 --Invoice Distribution Summary Tax Line Identifier
93518 , p_source_70 IN NUMBER
93519 --Invoice Distribution Tax Distribution Identifier from Tax
93520 , p_source_77 IN NUMBER
93521 --Prepayment Distribution Type
93522 , p_source_78 IN VARCHAR2
93523 --Recipient Invoice Distribution Type
93524 , p_source_79 IN VARCHAR2
93525 , p_source_79_meaning IN VARCHAR2
93529 , p_source_83 IN NUMBER
93526 --Prepayment Application Distribution Identifier
93527 , p_source_82 IN NUMBER
93528 --Invoice Identifier
93530 --Business Flow Prepayment Invoice Distribution Type
93531 , p_source_84 IN VARCHAR2
93532 --Business Flow Prepayment Invoice Entity Code
93533 , p_source_85 IN VARCHAR2
93534 --Business Flow Prepayment Invoice Distribution Identifier
93535 , p_source_86 IN NUMBER
93536 --Business Flow Prepayment Invoice Identifier
93537 , p_source_87 IN NUMBER
93538 --Upgrade Encumbrance Credit Account Class
93539 , p_source_88 IN VARCHAR2
93540 --Payables Encumbrance Upgrade Credit Account
93541 , p_source_89 IN NUMBER
93542 --Payables Encumbrance Upgrade Credit Amount
93543 , p_source_90 IN NUMBER
93544 --Invoice Currency Code
93545 , p_source_91 IN VARCHAR2
93546 --Payables Encumbrance Upgrade Credit Base Amount
93547 , p_source_92 IN NUMBER
93548 --Upgrade Encumbrance Debit Account Class
93549 , p_source_93 IN VARCHAR2
93550 --Payables Encumbrance Upgrade Debit Account
93551 , p_source_94 IN NUMBER
93552 --Payables Encumbrance Upgrade Debit Amount
93553 , p_source_95 IN NUMBER
93554 --Payables Encumbrance Upgrade Debit Base Amount
93555 , p_source_96 IN NUMBER
93556 --Payables Encumbrance Upgrade Option
93557 , p_source_97 IN VARCHAR2
93558 --Prepayment Distribution Amount
93559 , p_source_98 IN NUMBER
93560 --Prepayment Clearing Currency Code
93561 , p_source_99 IN VARCHAR2
93562 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
93563 , p_source_100 IN NUMBER
93564 --Deferred Accounting End Date
93565 , p_source_101 IN DATE
93566 --Deferred Accounting Option
93567 , p_source_102 IN VARCHAR2
93568 --Deferred Accounting Start Date
93569 , p_source_103 IN DATE
93570 --Invoice Supplier Identifier
93571 , p_source_104 IN NUMBER
93572 --Invoice Supplier Site Identifier
93573 , p_source_105 IN NUMBER
93574 --Identifier of the Prepayment Application Reversed
93575 , p_source_106 IN NUMBER
93576 --Payables Upgrade Credit Encumbrance Type Identifier
93577 , p_source_107 IN NUMBER
93578 --Payables Upgrade Debit Encumbrance Type Identifier
93579 , p_source_108 IN NUMBER
93580 --Accrue on Receipt Option
93581 , p_source_111 IN VARCHAR2
93582 , p_source_111_meaning IN VARCHAR2
93583 --Prepayment Clearing Exchange Date
93584 , p_source_125 IN DATE
93585 --Prepayment Clearing Exchange Rate
93586 , p_source_126 IN NUMBER
93587 --Prepayment Clearing Exchange Rate Type
93588 , p_source_127 IN VARCHAR2
93589 )
93590 IS
93591
93592 l_component_type VARCHAR2(80);
93593 l_component_code VARCHAR2(30);
93594 l_component_type_code VARCHAR2(1);
93595 l_component_appl_id INTEGER;
93596 l_amb_context_code VARCHAR2(30);
93597 l_entity_code VARCHAR2(30);
93598 l_event_class_code VARCHAR2(30);
93599 l_ae_header_id NUMBER;
93600 l_event_type_code VARCHAR2(30);
93601 l_line_definition_code VARCHAR2(30);
93602 l_line_definition_owner_code VARCHAR2(1);
93603 --
93604 -- adr variables
93605 l_segment VARCHAR2(30);
93606 l_ccid NUMBER;
93607 l_adr_transaction_coa_id NUMBER;
93608 l_adr_accounting_coa_id NUMBER;
93609 l_adr_flexfield_segment_code VARCHAR2(30);
93610 l_adr_flex_value_set_id NUMBER;
93611 l_adr_value_type_code VARCHAR2(30);
93612 l_adr_value_combination_id NUMBER;
93613 l_adr_value_segment_code VARCHAR2(30);
93614
93615 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
93616 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
93617 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
93618 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
93619
93620 -- 4262811 Variables ------------------------------------------------------------------------------------------
93621 l_entered_amt_idx NUMBER;
93622 l_accted_amt_idx NUMBER;
93623 l_acc_rev_flag VARCHAR2(1);
93624 l_accrual_line_num NUMBER;
93625 l_tmp_amt NUMBER;
93626 l_acc_rev_natural_side_code VARCHAR2(1);
93627
93628 l_num_entries NUMBER;
93629 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
93630 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
93631 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
93632 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
93633 l_recog_line_1 NUMBER;
93634 l_recog_line_2 NUMBER;
93635
93636 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
93637 l_bflow_applied_to_amt NUMBER; -- 5132302
93638 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
93639
93640 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93641
93642 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
93643 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
93647
93644
93645 ---------------------------------------------------------------------------------------------------------------
93646
93648 --
93649 -- bulk performance
93650 --
93651 l_balance_type_code VARCHAR2(1);
93652 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
93653 l_log_module VARCHAR2(240);
93654
93655 --
93656 -- Upgrade strategy
93657 --
93658 l_actual_upg_option VARCHAR2(1);
93659 l_enc_upg_option VARCHAR2(1);
93660
93661 --
93662 BEGIN
93663 --
93664 IF g_log_enabled THEN
93665 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
93666 END IF;
93667 --
93668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93669
93670 trace
93671 (p_msg => 'BEGIN of AcctLineType_162'
93672 ,p_level => C_LEVEL_PROCEDURE
93673 ,p_module => l_log_module);
93674
93675 END IF;
93676 --
93677 l_component_type := 'AMB_JLT';
93678 l_component_code := 'AP_TRV_PREPAY_CLR_RATE_APP';
93679 l_component_type_code := 'S';
93680 l_component_appl_id := 200;
93681 l_amb_context_code := 'DEFAULT';
93682 l_entity_code := 'AP_INVOICES';
93683 l_event_class_code := 'PREPAYMENT APPLICATIONS';
93684 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
93685 l_line_definition_owner_code := 'S';
93686 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
93687 --
93688 l_balance_type_code := 'A';
93689 l_segment := NULL;
93690 l_ccid := NULL;
93691 l_adr_transaction_coa_id := NULL;
93692 l_adr_accounting_coa_id := NULL;
93693 l_adr_flexfield_segment_code := NULL;
93694 l_adr_flex_value_set_id := NULL;
93695 l_adr_value_type_code := NULL;
93696 l_adr_value_combination_id := NULL;
93697 l_adr_value_segment_code := NULL;
93698
93699 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
93700 l_bflow_class_code := ''; -- 4219869 Business Flow
93701 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
93702 l_budgetary_control_flag := 'N';
93703
93704 l_bflow_applied_to_amt_idx := NULL; -- 5132302
93705 l_bflow_applied_to_amt := NULL; -- 5132302
93706 l_entered_amt_idx := NULL; -- 4262811
93707 l_accted_amt_idx := NULL; -- 4262811
93708 l_acc_rev_flag := NULL; -- 4262811
93709 l_accrual_line_num := NULL; -- 4262811
93710 l_tmp_amt := NULL; -- 4262811
93711 --
93712
93713 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93714 l_balance_type_code <> 'B' THEN
93715 IF NVL(p_source_50,'
93716 ') = 'CLEAR_CLEAR' AND
93717 (NVL(p_source_78,'
93718 ') = 'PREPAY APPL' OR
93719 NVL(p_source_78,'
93720 ') = 'PREPAY APPL REC TAX' OR
93721 NVL(p_source_78,'
93722 ') = 'PREPAY APPL NONREC TAX') AND
93723 NVL(p_source_79,'
93724 ') = 'TRV' AND
93725 NVL(p_source_111,'
93726 ') = 'Y'
93727 THEN
93728
93729 --
93730 XLA_AE_LINES_PKG.SetNewLine;
93731
93732 p_balance_type_code := l_balance_type_code;
93733 -- set the flag so later we will know whether the gain loss line needs to be created
93734
93735 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93736 p_actual_flag :='A';
93737 END IF;
93738
93739 --
93740 -- bulk performance
93741 --
93742 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93743 p_header_num => 0); -- 4262811
93744 --
93745 -- set accounting line options
93746 --
93747 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93748 p_natural_side_code => 'C'
93749 , p_gain_or_loss_flag => 'N'
93750 , p_gl_transfer_mode_code => 'S'
93751 , p_acct_entry_type_code => 'A'
93752 , p_switch_side_flag => 'Y'
93753 , p_merge_duplicate_code => 'A'
93754 );
93755 --
93756 l_acc_rev_natural_side_code := 'D'; -- 4262811
93757 --
93758 --
93759 -- set accounting line type info
93760 --
93761 xla_ae_lines_pkg.SetAcctLineType
93762 (p_component_type => l_component_type
93763 ,p_event_type_code => l_event_type_code
93764 ,p_line_definition_owner_code => l_line_definition_owner_code
93765 ,p_line_definition_code => l_line_definition_code
93766 ,p_accounting_line_code => l_component_code
93767 ,p_accounting_line_type_code => l_component_type_code
93768 ,p_accounting_line_appl_id => l_component_appl_id
93769 ,p_amb_context_code => l_amb_context_code
93770 ,p_entity_code => l_entity_code
93771 ,p_event_class_code => l_event_class_code);
93772 --
93773 -- set accounting class
93774 --
93775 xla_ae_lines_pkg.SetAcctClass(
93776 p_accounting_class_code => 'TRV'
93777 , p_ae_header_id => l_ae_header_id
93778 );
93779
93780 --
93781 -- set rounding class
93782 --
93783 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93784 'TRV';
93785
93786 --
93790 -- bulk performance
93787 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93788 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93789 --
93791 --
93792 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93793
93794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93795 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93796
93797 -- 4955764
93798 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93799 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93800
93801 -- 4458381 Public Sector Enh
93802
93803 --
93804 -- set accounting attributes for the line type
93805 --
93806 l_entered_amt_idx := 25;
93807 l_accted_amt_idx := 30;
93808 l_bflow_applied_to_amt_idx := NULL; -- 5132302
93809 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93810 l_rec_acct_attrs.array_char_value(1) := p_source_52;
93811 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93812 l_rec_acct_attrs.array_num_value(2) :=
93813 xla_ae_sources_pkg.GetSystemSourceNum(
93814 p_source_code => 'XLA_EVENT_APPL_ID'
93815 , p_source_type_code => 'Y'
93816 , p_source_application_id => 602
93817 );
93818 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93819 l_rec_acct_attrs.array_char_value(3) := p_source_60;
93820 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93821 l_rec_acct_attrs.array_char_value(4) :=
93822 xla_ae_sources_pkg.GetSystemSourceChar(
93823 p_source_code => 'XLA_ENTITY_CODE'
93824 , p_source_type_code => 'Y'
93825 , p_source_application_id => 602
93826 );
93827 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93828 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
93829 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93830 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
93831 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93832 l_rec_acct_attrs.array_num_value(7) := p_source_54;
93833 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93834 l_rec_acct_attrs.array_char_value(8) := p_source_84;
93835 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93836 l_rec_acct_attrs.array_char_value(9) := p_source_85;
93837 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93838 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
93839 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93840 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
93841 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93842 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
93843 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93844 l_rec_acct_attrs.array_char_value(13) := p_source_60;
93845 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93846 l_rec_acct_attrs.array_char_value(14) := p_source_88;
93847 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93848 l_rec_acct_attrs.array_num_value(15) := p_source_89;
93849 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93850 l_rec_acct_attrs.array_num_value(16) := p_source_90;
93851 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93852 l_rec_acct_attrs.array_char_value(17) := p_source_91;
93853 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93854 l_rec_acct_attrs.array_num_value(18) := p_source_92;
93855 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93856 l_rec_acct_attrs.array_char_value(19) := p_source_93;
93857 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93858 l_rec_acct_attrs.array_num_value(20) := p_source_94;
93859 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93860 l_rec_acct_attrs.array_num_value(21) := p_source_95;
93861 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93862 l_rec_acct_attrs.array_char_value(22) := p_source_91;
93863 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93864 l_rec_acct_attrs.array_num_value(23) := p_source_96;
93865 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93866 l_rec_acct_attrs.array_char_value(24) := p_source_97;
93867 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93868 l_rec_acct_attrs.array_num_value(25) := p_source_98;
93869 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93870 l_rec_acct_attrs.array_char_value(26) := p_source_99;
93871 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93872 l_rec_acct_attrs.array_date_value(27) := p_source_125;
93873 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93874 l_rec_acct_attrs.array_num_value(28) := p_source_126;
93875 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93876 l_rec_acct_attrs.array_char_value(29) := p_source_127;
93877 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93878 l_rec_acct_attrs.array_num_value(30) := p_source_100;
93879 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93883 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93880 l_rec_acct_attrs.array_date_value(31) := p_source_101;
93881 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93882 l_rec_acct_attrs.array_char_value(32) := p_source_102;
93884 l_rec_acct_attrs.array_date_value(33) := p_source_103;
93885 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93886 l_rec_acct_attrs.array_char_value(34) := p_source_64;
93887 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93888 l_rec_acct_attrs.array_num_value(35) := p_source_104;
93889 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93890 l_rec_acct_attrs.array_num_value(36) := p_source_105;
93891 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93892 l_rec_acct_attrs.array_char_value(37) := p_source_67;
93893 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93894 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
93895 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93896 l_rec_acct_attrs.array_char_value(39) := p_source_60;
93897 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93898 l_rec_acct_attrs.array_num_value(40) := p_source_69;
93899 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93900 l_rec_acct_attrs.array_num_value(41) := p_source_77;
93901 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93902 l_rec_acct_attrs.array_num_value(42) := p_source_70;
93903 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93904 l_rec_acct_attrs.array_num_value(43) := p_source_107;
93905 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93906 l_rec_acct_attrs.array_num_value(44) := p_source_108;
93907
93908 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93909 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93910
93911 ---------------------------------------------------------------------------------------------------------------
93912 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93913 ---------------------------------------------------------------------------------------------------------------
93914 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93915
93916 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93917 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93918
93919 IF xla_accounting_cache_pkg.GetValueChar
93920 (p_source_code => 'LEDGER_CATEGORY_CODE'
93921 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93922 AND l_bflow_method_code = 'PRIOR_ENTRY'
93923 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93924 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93925 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93926 )
93927 THEN
93928 xla_ae_lines_pkg.BflowUpgEntry
93929 (p_business_method_code => l_bflow_method_code
93930 ,p_business_class_code => l_bflow_class_code
93931 ,p_balance_type => l_balance_type_code);
93932 ELSE
93933 NULL;
93934 -- No business flow processing for business flow method of NONE.
93935 END IF;
93936
93937 --
93938 -- call analytical criteria
93939 --
93940
93941 --
93942 -- call description
93943 --
93944 -- No description or it is inherited.
93945 --
93946 -- call ADRs
93947 -- Bug 4922099
93948 --
93949 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93950 (NVL(l_actual_upg_option, 'N') = 'O') OR
93951 (NVL(l_enc_upg_option, 'N') = 'O')
93952 )
93953 THEN
93954 NULL;
93955 --
93956 --
93957
93958 l_ccid := AcctDerRule_35(
93959 p_application_id => p_application_id
93960 , p_ae_header_id => l_ae_header_id
93961 , p_source_48 => p_source_48
93962 , x_transaction_coa_id => l_adr_transaction_coa_id
93963 , x_accounting_coa_id => l_adr_accounting_coa_id
93964 , x_value_type_code => l_adr_value_type_code
93965 , p_side => 'NA'
93966 );
93967
93968 xla_ae_lines_pkg.set_ccid(
93969 p_code_combination_id => l_ccid
93970 , p_value_type_code => l_adr_value_type_code
93971 , p_transaction_coa_id => l_adr_transaction_coa_id
93972 , p_accounting_coa_id => l_adr_accounting_coa_id
93973 , p_adr_code => 'AP_RECP_INV_DIST'
93974 , p_adr_type_code => 'S'
93975 , p_component_type => l_component_type
93976 , p_component_code => l_component_code
93977 , p_component_type_code => l_component_type_code
93978 , p_component_appl_id => l_component_appl_id
93979 , p_amb_context_code => l_amb_context_code
93980 , p_side => 'NA'
93981 );
93982
93983
93984 --
93985 --
93986 END IF;
93987 --
93988 -- Bug 4922099
93989 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93990 (NVL(l_enc_upg_option, 'N') = 'O')
93991 ) AND
93995 IF
93992 (l_bflow_method_code = 'PRIOR_ENTRY')
93993 )
93994 THEN
93996 --
93997 1 = 2
93998 --
93999 THEN
94000 xla_accounting_err_pkg.build_message
94001 (p_appli_s_name => 'XLA'
94002 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94003 ,p_token_1 => 'LINE_NUMBER'
94004 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
94005 ,p_token_2 => 'LINE_TYPE_NAME'
94006 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
94007 l_component_type
94008 ,l_component_code
94009 ,l_component_type_code
94010 ,l_component_appl_id
94011 ,l_amb_context_code
94012 ,l_entity_code
94013 ,l_event_class_code
94014 )
94015 ,p_token_3 => 'OWNER'
94016 ,p_value_3 => xla_lookups_pkg.get_meaning(
94017 p_lookup_type => 'XLA_OWNER_TYPE'
94018 ,p_lookup_code => l_component_type_code
94019 )
94020 ,p_token_4 => 'PRODUCT_NAME'
94021 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94022 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94023 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94024 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94025 ,p_ae_header_id => NULL
94026 );
94027
94028 IF (C_LEVEL_ERROR>= g_log_level) THEN
94029 trace
94030 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94031 ,p_level => C_LEVEL_ERROR
94032 ,p_module => l_log_module);
94033 END IF;
94034 END IF;
94035 END IF;
94036 --
94037 --
94038 ------------------------------------------------------------------------------------------------
94039 -- 4219869 Business Flow
94040 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94041 -- Prior Entry. Currently, the following code is always generated.
94042 ------------------------------------------------------------------------------------------------
94043 XLA_AE_LINES_PKG.ValidateCurrentLine;
94044
94045 ------------------------------------------------------------------------------------
94046 -- 4219869 Business Flow
94047 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94048 ------------------------------------------------------------------------------------
94049 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94050
94051 ----------------------------------------------------------------------------------
94052 -- 4219869 Business Flow
94053 -- Update journal entry status -- Need to generate this within IF <condition>
94054 ----------------------------------------------------------------------------------
94055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94057 ,p_balance_type_code => l_balance_type_code
94058 );
94059
94060 -------------------------------------------------------------------------------------------
94061 -- 4262811 - Generate the Accrual Reversal lines
94062 -------------------------------------------------------------------------------------------
94063 BEGIN
94064 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94065 (g_array_event(p_event_id).array_value_num('header_index'));
94066 IF l_acc_rev_flag IS NULL THEN
94067 l_acc_rev_flag := 'N';
94068 END IF;
94069 EXCEPTION
94070 WHEN OTHERS THEN
94071 l_acc_rev_flag := 'N';
94072 END;
94073 --
94074 IF (l_acc_rev_flag = 'Y') THEN
94075
94076 -- 4645092 ------------------------------------------------------------------------------
94077 -- To allow MPA report to determine if it should generate report process
94078 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94079 ------------------------------------------------------------------------------------------
94080
94081 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94082 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94083 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
94087 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94084 -- call ADRs
94085 -- Bug 4922099
94086 --
94088 (NVL(l_actual_upg_option, 'N') = 'O') OR
94089 (NVL(l_enc_upg_option, 'N') = 'O')
94090 )
94091 THEN
94092 NULL;
94093 --
94094 --
94095
94096 l_ccid := AcctDerRule_35(
94097 p_application_id => p_application_id
94098 , p_ae_header_id => l_ae_header_id
94099 , p_source_48 => p_source_48
94100 , x_transaction_coa_id => l_adr_transaction_coa_id
94101 , x_accounting_coa_id => l_adr_accounting_coa_id
94102 , x_value_type_code => l_adr_value_type_code
94103 , p_side => 'NA'
94104 );
94105
94106 xla_ae_lines_pkg.set_ccid(
94107 p_code_combination_id => l_ccid
94108 , p_value_type_code => l_adr_value_type_code
94109 , p_transaction_coa_id => l_adr_transaction_coa_id
94110 , p_accounting_coa_id => l_adr_accounting_coa_id
94111 , p_adr_code => 'AP_RECP_INV_DIST'
94112 , p_adr_type_code => 'S'
94113 , p_component_type => l_component_type
94114 , p_component_code => l_component_code
94115 , p_component_type_code => l_component_type_code
94116 , p_component_appl_id => l_component_appl_id
94117 , p_amb_context_code => l_amb_context_code
94118 , p_side => 'NA'
94119 );
94120
94121
94122 --
94123 --
94124 END IF;
94125
94126 --
94127 -- Update the line information that should be overwritten
94128 --
94129 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94130 p_header_num => 1);
94131 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
94132
94133 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94134
94135 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
94136 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94137 END IF;
94138
94139 --
94140 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94141 --
94142 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94143 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
94144 ELSE
94145 ---------------------------------------------------------------------------------------------------
94146 -- 4262811a Switch Sign
94147 ---------------------------------------------------------------------------------------------------
94148 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
94149 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94150 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94151 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94152 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94153 -- 5132302
94154 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94155 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94156
94157 END IF;
94158
94159 -- 4955764
94160 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94161 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94162
94163
94164 XLA_AE_LINES_PKG.ValidateCurrentLine;
94165 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94166
94167 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94168 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94169 ,p_balance_type_code => l_balance_type_code);
94170
94171 END IF;
94172
94173 -----------------------------------------------------------------------------------------
94174 -- 4262811 Multiperiod Accounting
94175 -----------------------------------------------------------------------------------------
94176 -- No MPA option is assigned.
94177
94178
94179 END IF;
94180 END IF;
94181 --
94182
94183 --
94184 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94185 trace
94186 (p_msg => 'END of AcctLineType_162'
94187 ,p_level => C_LEVEL_PROCEDURE
94188 ,p_module => l_log_module);
94189 END IF;
94190 --
94191 EXCEPTION
94192 WHEN xla_exceptions_pkg.application_exception THEN
94193 RAISE;
94194 WHEN OTHERS THEN
94195 xla_exceptions_pkg.raise_message
94196 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_162');
94197 END AcctLineType_162;
94198 --
94199
94200 ---------------------------------------
94201 --
94202 -- PRIVATE FUNCTION
94203 -- AcctLineType_163
94204 --
94205 ---------------------------------------
94206 PROCEDURE AcctLineType_163 (
94210 ,p_calculate_g_l_flag IN VARCHAR2
94207 p_application_id IN NUMBER
94208 ,p_event_id IN NUMBER
94209 ,p_calculate_acctd_flag IN VARCHAR2
94211 ,p_actual_flag IN OUT VARCHAR2
94212 ,p_balance_type_code OUT VARCHAR2
94213 ,p_gain_or_loss_ref OUT VARCHAR2
94214
94215 --Recipient Invoice Distribution Account
94216 , p_source_48 IN NUMBER
94217 --When to Account for Payment Option
94218 , p_source_50 IN VARCHAR2
94219 --Accounting Reversal Indicator
94220 , p_source_52 IN VARCHAR2
94221 --Business Flow Accounts Payable Application Identifier
94222 , p_source_54 IN NUMBER
94223 --Distribution Link Type
94224 , p_source_60 IN VARCHAR2
94225 --Override Accounted Amount Indicator
94226 , p_source_64 IN VARCHAR2
94227 , p_source_64_meaning IN VARCHAR2
94228 --Third Party Type
94229 , p_source_67 IN VARCHAR2
94230 --Invoice Distribution Tax Line Identifier
94231 , p_source_69 IN NUMBER
94232 --Invoice Distribution Summary Tax Line Identifier
94233 , p_source_70 IN NUMBER
94234 --Invoice Distribution Tax Distribution Identifier from Tax
94235 , p_source_77 IN NUMBER
94236 --Prepayment Distribution Type
94237 , p_source_78 IN VARCHAR2
94238 --Recipient Invoice Distribution Type
94239 , p_source_79 IN VARCHAR2
94240 , p_source_79_meaning IN VARCHAR2
94241 --Prepayment Application Distribution Identifier
94242 , p_source_82 IN NUMBER
94243 --Invoice Identifier
94244 , p_source_83 IN NUMBER
94245 --Business Flow Prepayment Invoice Distribution Type
94246 , p_source_84 IN VARCHAR2
94247 --Business Flow Prepayment Invoice Entity Code
94248 , p_source_85 IN VARCHAR2
94249 --Business Flow Prepayment Invoice Distribution Identifier
94250 , p_source_86 IN NUMBER
94251 --Business Flow Prepayment Invoice Identifier
94252 , p_source_87 IN NUMBER
94253 --Upgrade Encumbrance Credit Account Class
94254 , p_source_88 IN VARCHAR2
94255 --Payables Encumbrance Upgrade Credit Account
94256 , p_source_89 IN NUMBER
94257 --Payables Encumbrance Upgrade Credit Amount
94258 , p_source_90 IN NUMBER
94259 --Invoice Currency Code
94260 , p_source_91 IN VARCHAR2
94261 --Payables Encumbrance Upgrade Credit Base Amount
94262 , p_source_92 IN NUMBER
94263 --Upgrade Encumbrance Debit Account Class
94264 , p_source_93 IN VARCHAR2
94265 --Payables Encumbrance Upgrade Debit Account
94266 , p_source_94 IN NUMBER
94267 --Payables Encumbrance Upgrade Debit Amount
94268 , p_source_95 IN NUMBER
94269 --Payables Encumbrance Upgrade Debit Base Amount
94270 , p_source_96 IN NUMBER
94271 --Payables Encumbrance Upgrade Option
94272 , p_source_97 IN VARCHAR2
94273 --Prepayment Distribution Amount
94274 , p_source_98 IN NUMBER
94275 --Deferred Accounting End Date
94276 , p_source_101 IN DATE
94277 --Deferred Accounting Option
94278 , p_source_102 IN VARCHAR2
94279 --Deferred Accounting Start Date
94280 , p_source_103 IN DATE
94281 --Invoice Supplier Identifier
94282 , p_source_104 IN NUMBER
94283 --Invoice Supplier Site Identifier
94284 , p_source_105 IN NUMBER
94285 --Identifier of the Prepayment Application Reversed
94286 , p_source_106 IN NUMBER
94287 --Payables Upgrade Credit Encumbrance Type Identifier
94288 , p_source_107 IN NUMBER
94289 --Payables Upgrade Debit Encumbrance Type Identifier
94290 , p_source_108 IN NUMBER
94291 --Prepayment Payment Currency Code
94292 , p_source_109 IN VARCHAR2
94293 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
94294 , p_source_110 IN NUMBER
94295 --Accrue on Receipt Option
94296 , p_source_111 IN VARCHAR2
94297 , p_source_111_meaning IN VARCHAR2
94298 --Prepayment Payment Exchange Date
94299 , p_source_128 IN DATE
94300 --Prepayment Payment Exchange Rate
94301 , p_source_129 IN NUMBER
94302 --Prepayment Payment Exchange Rate Type
94303 , p_source_130 IN VARCHAR2
94304 )
94305 IS
94306
94307 l_component_type VARCHAR2(80);
94308 l_component_code VARCHAR2(30);
94309 l_component_type_code VARCHAR2(1);
94310 l_component_appl_id INTEGER;
94311 l_amb_context_code VARCHAR2(30);
94312 l_entity_code VARCHAR2(30);
94313 l_event_class_code VARCHAR2(30);
94314 l_ae_header_id NUMBER;
94315 l_event_type_code VARCHAR2(30);
94316 l_line_definition_code VARCHAR2(30);
94317 l_line_definition_owner_code VARCHAR2(1);
94318 --
94319 -- adr variables
94320 l_segment VARCHAR2(30);
94321 l_ccid NUMBER;
94322 l_adr_transaction_coa_id NUMBER;
94323 l_adr_accounting_coa_id NUMBER;
94324 l_adr_flexfield_segment_code VARCHAR2(30);
94325 l_adr_flex_value_set_id NUMBER;
94326 l_adr_value_type_code VARCHAR2(30);
94327 l_adr_value_combination_id NUMBER;
94328 l_adr_value_segment_code VARCHAR2(30);
94329
94330 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
94331 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
94335 -- 4262811 Variables ------------------------------------------------------------------------------------------
94332 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
94333 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
94334
94336 l_entered_amt_idx NUMBER;
94337 l_accted_amt_idx NUMBER;
94338 l_acc_rev_flag VARCHAR2(1);
94339 l_accrual_line_num NUMBER;
94340 l_tmp_amt NUMBER;
94341 l_acc_rev_natural_side_code VARCHAR2(1);
94342
94343 l_num_entries NUMBER;
94344 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
94345 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
94346 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
94347 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
94348 l_recog_line_1 NUMBER;
94349 l_recog_line_2 NUMBER;
94350
94351 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
94352 l_bflow_applied_to_amt NUMBER; -- 5132302
94353 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
94354
94355 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94356
94357 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
94358 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
94359
94360 ---------------------------------------------------------------------------------------------------------------
94361
94362
94363 --
94364 -- bulk performance
94365 --
94366 l_balance_type_code VARCHAR2(1);
94367 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
94368 l_log_module VARCHAR2(240);
94369
94370 --
94371 -- Upgrade strategy
94372 --
94373 l_actual_upg_option VARCHAR2(1);
94374 l_enc_upg_option VARCHAR2(1);
94375
94376 --
94377 BEGIN
94378 --
94379 IF g_log_enabled THEN
94380 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
94381 END IF;
94382 --
94383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94384
94385 trace
94386 (p_msg => 'BEGIN of AcctLineType_163'
94387 ,p_level => C_LEVEL_PROCEDURE
94388 ,p_module => l_log_module);
94389
94390 END IF;
94391 --
94392 l_component_type := 'AMB_JLT';
94393 l_component_code := 'AP_TRV_PREPAY_PAY_RATE_APP';
94394 l_component_type_code := 'S';
94395 l_component_appl_id := 200;
94396 l_amb_context_code := 'DEFAULT';
94397 l_entity_code := 'AP_INVOICES';
94398 l_event_class_code := 'PREPAYMENT APPLICATIONS';
94399 l_event_type_code := 'PREPAYMENT APPLICATIONS_ALL';
94400 l_line_definition_owner_code := 'S';
94401 l_line_definition_code := 'CASH_PREPAYMENT APPLICATIONS_3';
94402 --
94403 l_balance_type_code := 'A';
94404 l_segment := NULL;
94405 l_ccid := NULL;
94406 l_adr_transaction_coa_id := NULL;
94407 l_adr_accounting_coa_id := NULL;
94408 l_adr_flexfield_segment_code := NULL;
94409 l_adr_flex_value_set_id := NULL;
94410 l_adr_value_type_code := NULL;
94411 l_adr_value_combination_id := NULL;
94412 l_adr_value_segment_code := NULL;
94413
94414 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
94415 l_bflow_class_code := ''; -- 4219869 Business Flow
94416 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
94417 l_budgetary_control_flag := 'N';
94418
94419 l_bflow_applied_to_amt_idx := NULL; -- 5132302
94420 l_bflow_applied_to_amt := NULL; -- 5132302
94421 l_entered_amt_idx := NULL; -- 4262811
94422 l_accted_amt_idx := NULL; -- 4262811
94423 l_acc_rev_flag := NULL; -- 4262811
94424 l_accrual_line_num := NULL; -- 4262811
94425 l_tmp_amt := NULL; -- 4262811
94426 --
94427
94428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94429 l_balance_type_code <> 'B' THEN
94430 IF NVL(p_source_50,'
94431 ') <> 'CLEAR_CLEAR' AND
94432 (NVL(p_source_78,'
94433 ') = 'PREPAY APPL' OR
94434 NVL(p_source_78,'
94435 ') = 'PREPAY APPL REC TAX' OR
94436 NVL(p_source_78,'
94437 ') = 'PREPAY APPL NONREC TAX') AND
94438 NVL(p_source_79,'
94439 ') = 'TRV' AND
94440 NVL(p_source_111,'
94441 ') = 'Y'
94442 THEN
94443
94444 --
94445 XLA_AE_LINES_PKG.SetNewLine;
94446
94447 p_balance_type_code := l_balance_type_code;
94448 -- set the flag so later we will know whether the gain loss line needs to be created
94449
94450 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
94451 p_actual_flag :='A';
94452 END IF;
94453
94454 --
94455 -- bulk performance
94456 --
94457 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94458 p_header_num => 0); -- 4262811
94459 --
94460 -- set accounting line options
94461 --
94462 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94463 p_natural_side_code => 'C'
94464 , p_gain_or_loss_flag => 'N'
94465 , p_gl_transfer_mode_code => 'S'
94469 );
94466 , p_acct_entry_type_code => 'A'
94467 , p_switch_side_flag => 'Y'
94468 , p_merge_duplicate_code => 'A'
94470 --
94471 l_acc_rev_natural_side_code := 'D'; -- 4262811
94472 --
94473 --
94474 -- set accounting line type info
94475 --
94476 xla_ae_lines_pkg.SetAcctLineType
94477 (p_component_type => l_component_type
94478 ,p_event_type_code => l_event_type_code
94479 ,p_line_definition_owner_code => l_line_definition_owner_code
94480 ,p_line_definition_code => l_line_definition_code
94481 ,p_accounting_line_code => l_component_code
94482 ,p_accounting_line_type_code => l_component_type_code
94483 ,p_accounting_line_appl_id => l_component_appl_id
94484 ,p_amb_context_code => l_amb_context_code
94485 ,p_entity_code => l_entity_code
94486 ,p_event_class_code => l_event_class_code);
94487 --
94488 -- set accounting class
94489 --
94490 xla_ae_lines_pkg.SetAcctClass(
94491 p_accounting_class_code => 'TRV'
94492 , p_ae_header_id => l_ae_header_id
94493 );
94494
94495 --
94496 -- set rounding class
94497 --
94498 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94499 'TRV';
94500
94501 --
94502 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94503 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94504 --
94505 -- bulk performance
94506 --
94507 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94508
94509 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94510 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94511
94512 -- 4955764
94513 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94514 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94515
94516 -- 4458381 Public Sector Enh
94517
94518 --
94519 -- set accounting attributes for the line type
94520 --
94521 l_entered_amt_idx := 25;
94522 l_accted_amt_idx := 30;
94523 l_bflow_applied_to_amt_idx := NULL; -- 5132302
94524 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94525 l_rec_acct_attrs.array_char_value(1) := p_source_52;
94526 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
94527 l_rec_acct_attrs.array_num_value(2) :=
94528 xla_ae_sources_pkg.GetSystemSourceNum(
94529 p_source_code => 'XLA_EVENT_APPL_ID'
94530 , p_source_type_code => 'Y'
94531 , p_source_application_id => 602
94532 );
94533 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
94534 l_rec_acct_attrs.array_char_value(3) := p_source_60;
94535 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
94536 l_rec_acct_attrs.array_char_value(4) :=
94537 xla_ae_sources_pkg.GetSystemSourceChar(
94538 p_source_code => 'XLA_ENTITY_CODE'
94539 , p_source_type_code => 'Y'
94540 , p_source_application_id => 602
94541 );
94542 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
94543 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
94544 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
94545 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
94546 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
94547 l_rec_acct_attrs.array_num_value(7) := p_source_54;
94548 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94549 l_rec_acct_attrs.array_char_value(8) := p_source_84;
94550 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
94551 l_rec_acct_attrs.array_char_value(9) := p_source_85;
94552 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
94553 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_86);
94554 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94555 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_87);
94556 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
94557 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_82);
94558 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
94559 l_rec_acct_attrs.array_char_value(13) := p_source_60;
94560 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
94561 l_rec_acct_attrs.array_char_value(14) := p_source_88;
94562 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
94563 l_rec_acct_attrs.array_num_value(15) := p_source_89;
94564 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
94565 l_rec_acct_attrs.array_num_value(16) := p_source_90;
94566 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
94567 l_rec_acct_attrs.array_char_value(17) := p_source_91;
94568 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
94569 l_rec_acct_attrs.array_num_value(18) := p_source_92;
94570 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
94571 l_rec_acct_attrs.array_char_value(19) := p_source_93;
94572 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
94576 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
94573 l_rec_acct_attrs.array_num_value(20) := p_source_94;
94574 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
94575 l_rec_acct_attrs.array_num_value(21) := p_source_95;
94577 l_rec_acct_attrs.array_char_value(22) := p_source_91;
94578 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
94579 l_rec_acct_attrs.array_num_value(23) := p_source_96;
94580 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
94581 l_rec_acct_attrs.array_char_value(24) := p_source_97;
94582 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
94583 l_rec_acct_attrs.array_num_value(25) := p_source_98;
94584 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
94585 l_rec_acct_attrs.array_char_value(26) := p_source_109;
94586 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
94587 l_rec_acct_attrs.array_date_value(27) := p_source_128;
94588 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
94589 l_rec_acct_attrs.array_num_value(28) := p_source_129;
94590 l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
94591 l_rec_acct_attrs.array_char_value(29) := p_source_130;
94592 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
94593 l_rec_acct_attrs.array_num_value(30) := p_source_110;
94594 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
94595 l_rec_acct_attrs.array_date_value(31) := p_source_101;
94596 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
94597 l_rec_acct_attrs.array_char_value(32) := p_source_102;
94598 l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
94599 l_rec_acct_attrs.array_date_value(33) := p_source_103;
94600 l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
94601 l_rec_acct_attrs.array_char_value(34) := p_source_64;
94602 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
94603 l_rec_acct_attrs.array_num_value(35) := p_source_104;
94604 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
94605 l_rec_acct_attrs.array_num_value(36) := p_source_105;
94606 l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
94607 l_rec_acct_attrs.array_char_value(37) := p_source_67;
94608 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
94609 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_106);
94610 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
94611 l_rec_acct_attrs.array_char_value(39) := p_source_60;
94612 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
94613 l_rec_acct_attrs.array_num_value(40) := p_source_69;
94614 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
94615 l_rec_acct_attrs.array_num_value(41) := p_source_77;
94616 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
94617 l_rec_acct_attrs.array_num_value(42) := p_source_70;
94618 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
94619 l_rec_acct_attrs.array_num_value(43) := p_source_107;
94620 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
94621 l_rec_acct_attrs.array_num_value(44) := p_source_108;
94622
94623 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94624 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94625
94626 ---------------------------------------------------------------------------------------------------------------
94627 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94628 ---------------------------------------------------------------------------------------------------------------
94629 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94630
94631 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94632 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94633
94634 IF xla_accounting_cache_pkg.GetValueChar
94635 (p_source_code => 'LEDGER_CATEGORY_CODE'
94636 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94637 AND l_bflow_method_code = 'PRIOR_ENTRY'
94638 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94639 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94640 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94641 )
94642 THEN
94643 xla_ae_lines_pkg.BflowUpgEntry
94644 (p_business_method_code => l_bflow_method_code
94645 ,p_business_class_code => l_bflow_class_code
94646 ,p_balance_type => l_balance_type_code);
94647 ELSE
94648 NULL;
94649 -- No business flow processing for business flow method of NONE.
94650 END IF;
94651
94652 --
94653 -- call analytical criteria
94654 --
94655
94656 --
94657 -- call description
94658 --
94659 -- No description or it is inherited.
94660 --
94661 -- call ADRs
94662 -- Bug 4922099
94663 --
94664 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94665 (NVL(l_actual_upg_option, 'N') = 'O') OR
94666 (NVL(l_enc_upg_option, 'N') = 'O')
94667 )
94668 THEN
94669 NULL;
94670 --
94671 --
94672
94673 l_ccid := AcctDerRule_35(
94677 , x_transaction_coa_id => l_adr_transaction_coa_id
94674 p_application_id => p_application_id
94675 , p_ae_header_id => l_ae_header_id
94676 , p_source_48 => p_source_48
94678 , x_accounting_coa_id => l_adr_accounting_coa_id
94679 , x_value_type_code => l_adr_value_type_code
94680 , p_side => 'NA'
94681 );
94682
94683 xla_ae_lines_pkg.set_ccid(
94684 p_code_combination_id => l_ccid
94685 , p_value_type_code => l_adr_value_type_code
94686 , p_transaction_coa_id => l_adr_transaction_coa_id
94687 , p_accounting_coa_id => l_adr_accounting_coa_id
94688 , p_adr_code => 'AP_RECP_INV_DIST'
94689 , p_adr_type_code => 'S'
94690 , p_component_type => l_component_type
94691 , p_component_code => l_component_code
94692 , p_component_type_code => l_component_type_code
94693 , p_component_appl_id => l_component_appl_id
94694 , p_amb_context_code => l_amb_context_code
94695 , p_side => 'NA'
94696 );
94697
94698
94699 --
94700 --
94701 END IF;
94702 --
94703 -- Bug 4922099
94704 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94705 (NVL(l_enc_upg_option, 'N') = 'O')
94706 ) AND
94707 (l_bflow_method_code = 'PRIOR_ENTRY')
94708 )
94709 THEN
94710 IF
94711 --
94712 1 = 2
94713 --
94714 THEN
94715 xla_accounting_err_pkg.build_message
94716 (p_appli_s_name => 'XLA'
94717 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94718 ,p_token_1 => 'LINE_NUMBER'
94719 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
94720 ,p_token_2 => 'LINE_TYPE_NAME'
94721 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
94722 l_component_type
94723 ,l_component_code
94724 ,l_component_type_code
94725 ,l_component_appl_id
94726 ,l_amb_context_code
94727 ,l_entity_code
94728 ,l_event_class_code
94729 )
94730 ,p_token_3 => 'OWNER'
94731 ,p_value_3 => xla_lookups_pkg.get_meaning(
94732 p_lookup_type => 'XLA_OWNER_TYPE'
94733 ,p_lookup_code => l_component_type_code
94734 )
94735 ,p_token_4 => 'PRODUCT_NAME'
94736 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94737 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94738 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94739 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94740 ,p_ae_header_id => NULL
94741 );
94742
94743 IF (C_LEVEL_ERROR>= g_log_level) THEN
94744 trace
94745 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94746 ,p_level => C_LEVEL_ERROR
94747 ,p_module => l_log_module);
94748 END IF;
94749 END IF;
94750 END IF;
94751 --
94752 --
94753 ------------------------------------------------------------------------------------------------
94754 -- 4219869 Business Flow
94755 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94756 -- Prior Entry. Currently, the following code is always generated.
94757 ------------------------------------------------------------------------------------------------
94758 XLA_AE_LINES_PKG.ValidateCurrentLine;
94759
94760 ------------------------------------------------------------------------------------
94761 -- 4219869 Business Flow
94762 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94763 ------------------------------------------------------------------------------------
94764 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94765
94766 ----------------------------------------------------------------------------------
94767 -- 4219869 Business Flow
94768 -- Update journal entry status -- Need to generate this within IF <condition>
94772 ,p_balance_type_code => l_balance_type_code
94769 ----------------------------------------------------------------------------------
94770 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94771 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94773 );
94774
94775 -------------------------------------------------------------------------------------------
94776 -- 4262811 - Generate the Accrual Reversal lines
94777 -------------------------------------------------------------------------------------------
94778 BEGIN
94779 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94780 (g_array_event(p_event_id).array_value_num('header_index'));
94781 IF l_acc_rev_flag IS NULL THEN
94782 l_acc_rev_flag := 'N';
94783 END IF;
94784 EXCEPTION
94785 WHEN OTHERS THEN
94786 l_acc_rev_flag := 'N';
94787 END;
94788 --
94789 IF (l_acc_rev_flag = 'Y') THEN
94790
94791 -- 4645092 ------------------------------------------------------------------------------
94792 -- To allow MPA report to determine if it should generate report process
94793 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94794 ------------------------------------------------------------------------------------------
94795
94796 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94797 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94798 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
94799 -- call ADRs
94800 -- Bug 4922099
94801 --
94802 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94803 (NVL(l_actual_upg_option, 'N') = 'O') OR
94804 (NVL(l_enc_upg_option, 'N') = 'O')
94805 )
94806 THEN
94807 NULL;
94808 --
94809 --
94810
94811 l_ccid := AcctDerRule_35(
94812 p_application_id => p_application_id
94813 , p_ae_header_id => l_ae_header_id
94814 , p_source_48 => p_source_48
94815 , x_transaction_coa_id => l_adr_transaction_coa_id
94816 , x_accounting_coa_id => l_adr_accounting_coa_id
94817 , x_value_type_code => l_adr_value_type_code
94818 , p_side => 'NA'
94819 );
94820
94821 xla_ae_lines_pkg.set_ccid(
94822 p_code_combination_id => l_ccid
94823 , p_value_type_code => l_adr_value_type_code
94824 , p_transaction_coa_id => l_adr_transaction_coa_id
94825 , p_accounting_coa_id => l_adr_accounting_coa_id
94826 , p_adr_code => 'AP_RECP_INV_DIST'
94827 , p_adr_type_code => 'S'
94828 , p_component_type => l_component_type
94829 , p_component_code => l_component_code
94830 , p_component_type_code => l_component_type_code
94831 , p_component_appl_id => l_component_appl_id
94832 , p_amb_context_code => l_amb_context_code
94833 , p_side => 'NA'
94834 );
94835
94836
94837 --
94838 --
94839 END IF;
94840
94841 --
94842 -- Update the line information that should be overwritten
94843 --
94844 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94845 p_header_num => 1);
94846 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
94847
94848 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94849
94850 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
94851 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94852 END IF;
94853
94854 --
94855 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94856 --
94857 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94858 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
94859 ELSE
94860 ---------------------------------------------------------------------------------------------------
94861 -- 4262811a Switch Sign
94862 ---------------------------------------------------------------------------------------------------
94863 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
94864 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94865 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94866 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94867 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94868 -- 5132302
94869 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94870 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94871
94872 END IF;
94873
94874 -- 4955764
94875 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94879 XLA_AE_LINES_PKG.ValidateCurrentLine;
94876 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94877
94878
94880 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94881
94882 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94883 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94884 ,p_balance_type_code => l_balance_type_code);
94885
94886 END IF;
94887
94888 -----------------------------------------------------------------------------------------
94889 -- 4262811 Multiperiod Accounting
94890 -----------------------------------------------------------------------------------------
94891 -- No MPA option is assigned.
94892
94893
94894 END IF;
94895 END IF;
94896 --
94897
94898 --
94899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94900 trace
94901 (p_msg => 'END of AcctLineType_163'
94902 ,p_level => C_LEVEL_PROCEDURE
94903 ,p_module => l_log_module);
94904 END IF;
94905 --
94906 EXCEPTION
94907 WHEN xla_exceptions_pkg.application_exception THEN
94908 RAISE;
94909 WHEN OTHERS THEN
94910 xla_exceptions_pkg.raise_message
94911 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_163');
94912 END AcctLineType_163;
94913 --
94914
94915 ---------------------------------------
94916 --
94917 -- PRIVATE FUNCTION
94918 -- AcctLineType_164
94919 --
94920 ---------------------------------------
94921 PROCEDURE AcctLineType_164 (
94922 p_application_id IN NUMBER
94923 ,p_event_id IN NUMBER
94924 ,p_calculate_acctd_flag IN VARCHAR2
94925 ,p_calculate_g_l_flag IN VARCHAR2
94926 ,p_actual_flag IN OUT VARCHAR2
94927 ,p_balance_type_code OUT VARCHAR2
94928 ,p_gain_or_loss_ref OUT VARCHAR2
94929
94930 --Automatic Offsets Value
94931 , p_source_16 IN VARCHAR2
94932 , p_source_16_meaning IN VARCHAR2
94933 --Payment Distribution (Cleared Rate) Ledger Amount
94934 , p_source_22 IN NUMBER
94935 --Invoice Distribution Account
94936 , p_source_29 IN NUMBER
94937 --Withholding Related Distribution Account
94938 , p_source_36 IN NUMBER
94939 --When to Account for Payment Option
94940 , p_source_50 IN VARCHAR2
94941 --Payment Distribution Type
94942 , p_source_51 IN VARCHAR2
94943 , p_source_51_meaning IN VARCHAR2
94944 --Accounting Reversal Indicator
94945 , p_source_52 IN VARCHAR2
94946 --Payment Distribution Amount
94947 , p_source_53 IN NUMBER
94948 --Business Flow Accounts Payable Application Identifier
94949 , p_source_54 IN NUMBER
94950 --Business Flow Payment Distribution Type
94951 , p_source_55 IN VARCHAR2
94952 --Business Flow Payment Entity Code
94953 , p_source_56 IN VARCHAR2
94954 --Business Flow Payment Distribution Identifier
94955 , p_source_57 IN NUMBER
94956 --Business Flow Payment Identifier
94957 , p_source_58 IN NUMBER
94958 --Payment Distribution Identifier
94959 , p_source_59 IN NUMBER
94960 --Distribution Link Type
94961 , p_source_60 IN VARCHAR2
94962 --Override Accounted Amount Indicator
94963 , p_source_64 IN VARCHAR2
94964 , p_source_64_meaning IN VARCHAR2
94965 --Payment Supplier Identifier
94966 , p_source_65 IN NUMBER
94967 --Payment Supplier Site Identifier
94968 , p_source_66 IN NUMBER
94969 --Third Party Type
94970 , p_source_67 IN VARCHAR2
94971 --Payment Distribution Reversed Identifier
94972 , p_source_68 IN NUMBER
94973 --Invoice Distribution Tax Line Identifier
94974 , p_source_69 IN NUMBER
94975 --Invoice Distribution Summary Tax Line Identifier
94976 , p_source_70 IN NUMBER
94977 --Cleared Currency Code
94978 , p_source_113 IN VARCHAR2
94979 --Cleared Exchange Date
94980 , p_source_114 IN DATE
94981 --Cleared Exchange Rate
94982 , p_source_115 IN NUMBER
94983 --Cleared Exchange Rate Type
94984 , p_source_116 IN VARCHAR2
94985 --Withholding at Payment Indicator
94986 , p_source_155 IN VARCHAR2
94987 , p_source_155_meaning IN VARCHAR2
94988 )
94989 IS
94990
94991 l_component_type VARCHAR2(80);
94992 l_component_code VARCHAR2(30);
94993 l_component_type_code VARCHAR2(1);
94994 l_component_appl_id INTEGER;
94995 l_amb_context_code VARCHAR2(30);
94996 l_entity_code VARCHAR2(30);
94997 l_event_class_code VARCHAR2(30);
94998 l_ae_header_id NUMBER;
94999 l_event_type_code VARCHAR2(30);
95000 l_line_definition_code VARCHAR2(30);
95001 l_line_definition_owner_code VARCHAR2(1);
95002 --
95003 -- adr variables
95004 l_segment VARCHAR2(30);
95005 l_ccid NUMBER;
95006 l_adr_transaction_coa_id NUMBER;
95007 l_adr_accounting_coa_id NUMBER;
95008 l_adr_flexfield_segment_code VARCHAR2(30);
95009 l_adr_flex_value_set_id NUMBER;
95010 l_adr_value_type_code VARCHAR2(30);
95011 l_adr_value_combination_id NUMBER;
95012 l_adr_value_segment_code VARCHAR2(30);
95013
95017 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
95014 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
95015 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
95016 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
95018
95019 -- 4262811 Variables ------------------------------------------------------------------------------------------
95020 l_entered_amt_idx NUMBER;
95021 l_accted_amt_idx NUMBER;
95022 l_acc_rev_flag VARCHAR2(1);
95023 l_accrual_line_num NUMBER;
95024 l_tmp_amt NUMBER;
95025 l_acc_rev_natural_side_code VARCHAR2(1);
95026
95027 l_num_entries NUMBER;
95028 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
95029 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
95030 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
95031 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
95032 l_recog_line_1 NUMBER;
95033 l_recog_line_2 NUMBER;
95034
95035 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
95036 l_bflow_applied_to_amt NUMBER; -- 5132302
95037 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
95038
95039 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95040
95041 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
95042 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
95043
95044 ---------------------------------------------------------------------------------------------------------------
95045
95046
95047 --
95048 -- bulk performance
95049 --
95050 l_balance_type_code VARCHAR2(1);
95051 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
95052 l_log_module VARCHAR2(240);
95053
95054 --
95055 -- Upgrade strategy
95056 --
95057 l_actual_upg_option VARCHAR2(1);
95058 l_enc_upg_option VARCHAR2(1);
95059
95060 --
95061 BEGIN
95062 --
95063 IF g_log_enabled THEN
95064 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
95065 END IF;
95066 --
95067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95068
95069 trace
95070 (p_msg => 'BEGIN of AcctLineType_164'
95071 ,p_level => C_LEVEL_PROCEDURE
95072 ,p_module => l_log_module);
95073
95074 END IF;
95075 --
95076 l_component_type := 'AMB_JLT';
95077 l_component_code := 'AP_WITHHOLD_TAX_CASH_CLEAR';
95078 l_component_type_code := 'S';
95079 l_component_appl_id := 200;
95080 l_amb_context_code := 'DEFAULT';
95081 l_entity_code := 'AP_PAYMENTS';
95082 l_event_class_code := 'RECONCILED PAYMENTS';
95083 l_event_type_code := 'RECONCILED PAYMENTS_ALL';
95084 l_line_definition_owner_code := 'S';
95085 l_line_definition_code := 'CASH_RECONCILED PAYMENTS_ALL';
95086 --
95087 l_balance_type_code := 'A';
95088 l_segment := NULL;
95089 l_ccid := NULL;
95090 l_adr_transaction_coa_id := NULL;
95091 l_adr_accounting_coa_id := NULL;
95092 l_adr_flexfield_segment_code := NULL;
95093 l_adr_flex_value_set_id := NULL;
95094 l_adr_value_type_code := NULL;
95095 l_adr_value_combination_id := NULL;
95096 l_adr_value_segment_code := NULL;
95097
95098 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
95099 l_bflow_class_code := ''; -- 4219869 Business Flow
95100 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
95101 l_budgetary_control_flag := 'N';
95102
95103 l_bflow_applied_to_amt_idx := NULL; -- 5132302
95104 l_bflow_applied_to_amt := NULL; -- 5132302
95105 l_entered_amt_idx := NULL; -- 4262811
95106 l_accted_amt_idx := NULL; -- 4262811
95107 l_acc_rev_flag := NULL; -- 4262811
95108 l_accrual_line_num := NULL; -- 4262811
95109 l_tmp_amt := NULL; -- 4262811
95110 --
95111
95112 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95113 l_balance_type_code <> 'B' THEN
95114 IF NVL(p_source_50,'
95115 ') = 'CLEAR_CLEAR' AND
95116 NVL(p_source_51,'
95117 ') = 'AWT' AND
95118 NVL(p_source_155,'
95119 ') = 'Y'
95120 THEN
95121
95122 --
95123 XLA_AE_LINES_PKG.SetNewLine;
95124
95125 p_balance_type_code := l_balance_type_code;
95126 -- set the flag so later we will know whether the gain loss line needs to be created
95127
95128 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95129 p_actual_flag :='A';
95130 END IF;
95131
95132 --
95133 -- bulk performance
95134 --
95135 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95136 p_header_num => 0); -- 4262811
95137 --
95138 -- set accounting line options
95139 --
95140 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95141 p_natural_side_code => 'C'
95142 , p_gain_or_loss_flag => 'N'
95143 , p_gl_transfer_mode_code => 'S'
95144 , p_acct_entry_type_code => 'A'
95148 --
95145 , p_switch_side_flag => 'Y'
95146 , p_merge_duplicate_code => 'A'
95147 );
95149 l_acc_rev_natural_side_code := 'D'; -- 4262811
95150 --
95151 --
95152 -- set accounting line type info
95153 --
95154 xla_ae_lines_pkg.SetAcctLineType
95155 (p_component_type => l_component_type
95156 ,p_event_type_code => l_event_type_code
95157 ,p_line_definition_owner_code => l_line_definition_owner_code
95158 ,p_line_definition_code => l_line_definition_code
95159 ,p_accounting_line_code => l_component_code
95160 ,p_accounting_line_type_code => l_component_type_code
95161 ,p_accounting_line_appl_id => l_component_appl_id
95162 ,p_amb_context_code => l_amb_context_code
95163 ,p_entity_code => l_entity_code
95164 ,p_event_class_code => l_event_class_code);
95165 --
95166 -- set accounting class
95167 --
95168 xla_ae_lines_pkg.SetAcctClass(
95169 p_accounting_class_code => 'AWT'
95170 , p_ae_header_id => l_ae_header_id
95171 );
95172
95173 --
95174 -- set rounding class
95175 --
95176 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95177 'AWT';
95178
95179 --
95180 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95181 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95182 --
95183 -- bulk performance
95184 --
95185 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95186
95187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95188 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95189
95190 -- 4955764
95191 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95192 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95193
95194 -- 4458381 Public Sector Enh
95195
95196 --
95197 -- set accounting attributes for the line type
95198 --
95199 l_entered_amt_idx := 10;
95200 l_accted_amt_idx := 15;
95201 l_bflow_applied_to_amt_idx := 2; -- 5132302
95202 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95203 l_rec_acct_attrs.array_char_value(1) := p_source_52;
95204 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95205 l_rec_acct_attrs.array_num_value(2) := p_source_53;
95206 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95207 l_rec_acct_attrs.array_num_value(3) := p_source_54;
95208 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95209 l_rec_acct_attrs.array_char_value(4) := p_source_55;
95210 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95211 l_rec_acct_attrs.array_char_value(5) := p_source_56;
95212 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95213 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_57);
95214 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95215 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_58);
95216 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95217 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
95218 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95219 l_rec_acct_attrs.array_char_value(9) := p_source_60;
95220 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95221 l_rec_acct_attrs.array_num_value(10) := p_source_53;
95222 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95223 l_rec_acct_attrs.array_char_value(11) := p_source_113;
95224 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95225 l_rec_acct_attrs.array_date_value(12) := p_source_114;
95226 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95227 l_rec_acct_attrs.array_num_value(13) := p_source_115;
95228 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95229 l_rec_acct_attrs.array_char_value(14) := p_source_116;
95230 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95231 l_rec_acct_attrs.array_num_value(15) := p_source_22;
95232 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95233 l_rec_acct_attrs.array_char_value(16) := p_source_64;
95234 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95235 l_rec_acct_attrs.array_num_value(17) := p_source_65;
95236 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95237 l_rec_acct_attrs.array_num_value(18) := p_source_66;
95238 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95239 l_rec_acct_attrs.array_char_value(19) := p_source_67;
95240 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95241 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
95242 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95243 l_rec_acct_attrs.array_char_value(21) := p_source_60;
95244 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95245 l_rec_acct_attrs.array_num_value(22) := p_source_69;
95246 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95247 l_rec_acct_attrs.array_num_value(23) := p_source_69;
95251 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95248 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95249 l_rec_acct_attrs.array_num_value(24) := p_source_70;
95250
95252 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95253
95254 ---------------------------------------------------------------------------------------------------------------
95255 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95256 ---------------------------------------------------------------------------------------------------------------
95257 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95258
95259 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95260 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95261
95262 IF xla_accounting_cache_pkg.GetValueChar
95263 (p_source_code => 'LEDGER_CATEGORY_CODE'
95264 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95265 AND l_bflow_method_code = 'PRIOR_ENTRY'
95266 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95267 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95268 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95269 )
95270 THEN
95271 xla_ae_lines_pkg.BflowUpgEntry
95272 (p_business_method_code => l_bflow_method_code
95273 ,p_business_class_code => l_bflow_class_code
95274 ,p_balance_type => l_balance_type_code);
95275 ELSE
95276 NULL;
95277 -- No business flow processing for business flow method of NONE.
95278 END IF;
95279
95280 --
95281 -- call analytical criteria
95282 --
95283
95284 --
95285 -- call description
95286 --
95287 -- No description or it is inherited.
95288 --
95289 -- call ADRs
95290 -- Bug 4922099
95291 --
95292 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95293 (NVL(l_actual_upg_option, 'N') = 'O') OR
95294 (NVL(l_enc_upg_option, 'N') = 'O')
95295 )
95296 THEN
95297 NULL;
95298 --
95299 --
95300
95301 l_ccid := AcctDerRule_38(
95302 p_application_id => p_application_id
95303 , p_ae_header_id => l_ae_header_id
95304 , p_source_16 => p_source_16
95305 , p_source_16_meaning => p_source_16_meaning
95306 , p_source_29 => p_source_29
95307 , p_source_36 => p_source_36
95308 , x_transaction_coa_id => l_adr_transaction_coa_id
95309 , x_accounting_coa_id => l_adr_accounting_coa_id
95310 , x_value_type_code => l_adr_value_type_code
95311 , p_side => 'NA'
95312 );
95313
95314 xla_ae_lines_pkg.set_ccid(
95315 p_code_combination_id => l_ccid
95316 , p_value_type_code => l_adr_value_type_code
95317 , p_transaction_coa_id => l_adr_transaction_coa_id
95318 , p_accounting_coa_id => l_adr_accounting_coa_id
95319 , p_adr_code => 'AP_WH_DIST_ACCT'
95320 , p_adr_type_code => 'S'
95321 , p_component_type => l_component_type
95322 , p_component_code => l_component_code
95323 , p_component_type_code => l_component_type_code
95324 , p_component_appl_id => l_component_appl_id
95325 , p_amb_context_code => l_amb_context_code
95326 , p_side => 'NA'
95327 );
95328
95329
95330 l_segment := AcctDerRule_12(
95331 p_application_id => p_application_id
95332 , p_ae_header_id => l_ae_header_id
95333 , p_source_16 => p_source_16
95334 , p_source_16_meaning => p_source_16_meaning
95335 , p_source_29 => p_source_29
95336 , x_transaction_coa_id => l_adr_transaction_coa_id
95337 , x_accounting_coa_id => l_adr_accounting_coa_id
95338 , x_flexfield_segment_code => l_adr_flexfield_segment_code
95339 , x_flex_value_set_id => l_adr_flex_value_set_id
95340 , x_value_type_code => l_adr_value_type_code
95341 , x_value_combination_id => l_adr_value_combination_id
95342 , x_value_segment_code => l_adr_value_segment_code
95343 , p_side => 'NA'
95344 , p_override_seg_flag => 'Y'
95345 );
95346
95347 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
95348
95349 xla_ae_lines_pkg.set_segment(
95350 p_to_segment_code => 'GL_ACCOUNT'
95351 , p_segment_value => l_segment
95352 , p_from_segment_code => l_adr_value_segment_code
95353 , p_from_combination_id => l_adr_value_combination_id
95354 , p_value_type_code => l_adr_value_type_code
95355 , p_transaction_coa_id => l_adr_transaction_coa_id
95356 , p_accounting_coa_id => l_adr_accounting_coa_id
95357 , p_flexfield_segment_code => l_adr_flexfield_segment_code
95358 , p_flex_value_set_id => l_adr_flex_value_set_id
95359 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
95360 , p_adr_type_code => 'S'
95361 , p_component_type => l_component_type
95365 , p_amb_context_code => l_amb_context_code
95362 , p_component_code => l_component_code
95363 , p_component_type_code => l_component_type_code
95364 , p_component_appl_id => l_component_appl_id
95366 , p_entity_code => 'AP_PAYMENTS'
95367 , p_event_class_code => 'RECONCILED PAYMENTS'
95368 , p_side => 'NA'
95369 );
95370
95371 END IF;
95372
95373 l_segment := AcctDerRule_19(
95374 p_application_id => p_application_id
95375 , p_ae_header_id => l_ae_header_id
95376 , p_source_16 => p_source_16
95377 , p_source_16_meaning => p_source_16_meaning
95378 , p_source_36 => p_source_36
95379 , x_transaction_coa_id => l_adr_transaction_coa_id
95380 , x_accounting_coa_id => l_adr_accounting_coa_id
95381 , x_flexfield_segment_code => l_adr_flexfield_segment_code
95382 , x_flex_value_set_id => l_adr_flex_value_set_id
95383 , x_value_type_code => l_adr_value_type_code
95384 , x_value_combination_id => l_adr_value_combination_id
95385 , x_value_segment_code => l_adr_value_segment_code
95386 , p_side => 'NA'
95387 , p_override_seg_flag => 'Y'
95388 );
95389
95390 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
95391
95392 xla_ae_lines_pkg.set_segment(
95393 p_to_segment_code => 'GL_BALANCING'
95394 , p_segment_value => l_segment
95395 , p_from_segment_code => l_adr_value_segment_code
95396 , p_from_combination_id => l_adr_value_combination_id
95397 , p_value_type_code => l_adr_value_type_code
95398 , p_transaction_coa_id => l_adr_transaction_coa_id
95399 , p_accounting_coa_id => l_adr_accounting_coa_id
95400 , p_flexfield_segment_code => l_adr_flexfield_segment_code
95401 , p_flex_value_set_id => l_adr_flex_value_set_id
95402 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
95403 , p_adr_type_code => 'S'
95404 , p_component_type => l_component_type
95405 , p_component_code => l_component_code
95406 , p_component_type_code => l_component_type_code
95407 , p_component_appl_id => l_component_appl_id
95408 , p_amb_context_code => l_amb_context_code
95409 , p_entity_code => 'AP_PAYMENTS'
95410 , p_event_class_code => 'RECONCILED PAYMENTS'
95411 , p_side => 'NA'
95412 );
95413
95414 END IF;
95415
95416 --
95417 --
95418 END IF;
95419 --
95420 -- Bug 4922099
95421 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95422 (NVL(l_enc_upg_option, 'N') = 'O')
95423 ) AND
95424 (l_bflow_method_code = 'PRIOR_ENTRY')
95425 )
95426 THEN
95427 IF
95428 --
95429 1 = 2
95430 --
95431 THEN
95432 xla_accounting_err_pkg.build_message
95433 (p_appli_s_name => 'XLA'
95434 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95435 ,p_token_1 => 'LINE_NUMBER'
95436 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
95437 ,p_token_2 => 'LINE_TYPE_NAME'
95438 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
95439 l_component_type
95440 ,l_component_code
95441 ,l_component_type_code
95442 ,l_component_appl_id
95443 ,l_amb_context_code
95444 ,l_entity_code
95445 ,l_event_class_code
95446 )
95447 ,p_token_3 => 'OWNER'
95448 ,p_value_3 => xla_lookups_pkg.get_meaning(
95449 p_lookup_type => 'XLA_OWNER_TYPE'
95450 ,p_lookup_code => l_component_type_code
95451 )
95452 ,p_token_4 => 'PRODUCT_NAME'
95453 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95454 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95455 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95456 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95460 IF (C_LEVEL_ERROR>= g_log_level) THEN
95457 ,p_ae_header_id => NULL
95458 );
95459
95461 trace
95462 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95463 ,p_level => C_LEVEL_ERROR
95464 ,p_module => l_log_module);
95465 END IF;
95466 END IF;
95467 END IF;
95468 --
95469 --
95470 ------------------------------------------------------------------------------------------------
95471 -- 4219869 Business Flow
95472 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95473 -- Prior Entry. Currently, the following code is always generated.
95474 ------------------------------------------------------------------------------------------------
95475 XLA_AE_LINES_PKG.ValidateCurrentLine;
95476
95477 ------------------------------------------------------------------------------------
95478 -- 4219869 Business Flow
95479 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95480 ------------------------------------------------------------------------------------
95481 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95482
95483 ----------------------------------------------------------------------------------
95484 -- 4219869 Business Flow
95485 -- Update journal entry status -- Need to generate this within IF <condition>
95486 ----------------------------------------------------------------------------------
95487 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95488 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95489 ,p_balance_type_code => l_balance_type_code
95490 );
95491
95492 -------------------------------------------------------------------------------------------
95493 -- 4262811 - Generate the Accrual Reversal lines
95494 -------------------------------------------------------------------------------------------
95495 BEGIN
95496 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95497 (g_array_event(p_event_id).array_value_num('header_index'));
95498 IF l_acc_rev_flag IS NULL THEN
95499 l_acc_rev_flag := 'N';
95500 END IF;
95501 EXCEPTION
95502 WHEN OTHERS THEN
95503 l_acc_rev_flag := 'N';
95504 END;
95505 --
95506 IF (l_acc_rev_flag = 'Y') THEN
95507
95508 -- 4645092 ------------------------------------------------------------------------------
95509 -- To allow MPA report to determine if it should generate report process
95510 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95511 ------------------------------------------------------------------------------------------
95512
95513 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95514 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95515 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
95516 -- call ADRs
95517 -- Bug 4922099
95518 --
95519 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95520 (NVL(l_actual_upg_option, 'N') = 'O') OR
95521 (NVL(l_enc_upg_option, 'N') = 'O')
95522 )
95523 THEN
95524 NULL;
95525 --
95526 --
95527
95528 l_ccid := AcctDerRule_38(
95529 p_application_id => p_application_id
95530 , p_ae_header_id => l_ae_header_id
95531 , p_source_16 => p_source_16
95532 , p_source_16_meaning => p_source_16_meaning
95533 , p_source_29 => p_source_29
95534 , p_source_36 => p_source_36
95535 , x_transaction_coa_id => l_adr_transaction_coa_id
95536 , x_accounting_coa_id => l_adr_accounting_coa_id
95537 , x_value_type_code => l_adr_value_type_code
95538 , p_side => 'NA'
95539 );
95540
95541 xla_ae_lines_pkg.set_ccid(
95542 p_code_combination_id => l_ccid
95543 , p_value_type_code => l_adr_value_type_code
95544 , p_transaction_coa_id => l_adr_transaction_coa_id
95545 , p_accounting_coa_id => l_adr_accounting_coa_id
95546 , p_adr_code => 'AP_WH_DIST_ACCT'
95547 , p_adr_type_code => 'S'
95548 , p_component_type => l_component_type
95549 , p_component_code => l_component_code
95550 , p_component_type_code => l_component_type_code
95551 , p_component_appl_id => l_component_appl_id
95552 , p_amb_context_code => l_amb_context_code
95553 , p_side => 'NA'
95554 );
95555
95556
95557 l_segment := AcctDerRule_12(
95558 p_application_id => p_application_id
95559 , p_ae_header_id => l_ae_header_id
95560 , p_source_16 => p_source_16
95561 , p_source_16_meaning => p_source_16_meaning
95562 , p_source_29 => p_source_29
95563 , x_transaction_coa_id => l_adr_transaction_coa_id
95564 , x_accounting_coa_id => l_adr_accounting_coa_id
95565 , x_flexfield_segment_code => l_adr_flexfield_segment_code
95566 , x_flex_value_set_id => l_adr_flex_value_set_id
95567 , x_value_type_code => l_adr_value_type_code
95568 , x_value_combination_id => l_adr_value_combination_id
95572 );
95569 , x_value_segment_code => l_adr_value_segment_code
95570 , p_side => 'NA'
95571 , p_override_seg_flag => 'Y'
95573
95574 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
95575
95576 xla_ae_lines_pkg.set_segment(
95577 p_to_segment_code => 'GL_ACCOUNT'
95578 , p_segment_value => l_segment
95579 , p_from_segment_code => l_adr_value_segment_code
95580 , p_from_combination_id => l_adr_value_combination_id
95581 , p_value_type_code => l_adr_value_type_code
95582 , p_transaction_coa_id => l_adr_transaction_coa_id
95583 , p_accounting_coa_id => l_adr_accounting_coa_id
95584 , p_flexfield_segment_code => l_adr_flexfield_segment_code
95585 , p_flex_value_set_id => l_adr_flex_value_set_id
95586 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
95587 , p_adr_type_code => 'S'
95588 , p_component_type => l_component_type
95589 , p_component_code => l_component_code
95590 , p_component_type_code => l_component_type_code
95591 , p_component_appl_id => l_component_appl_id
95592 , p_amb_context_code => l_amb_context_code
95593 , p_entity_code => 'AP_PAYMENTS'
95594 , p_event_class_code => 'RECONCILED PAYMENTS'
95595 , p_side => 'NA'
95596 );
95597
95598 END IF;
95599
95600 l_segment := AcctDerRule_19(
95601 p_application_id => p_application_id
95602 , p_ae_header_id => l_ae_header_id
95603 , p_source_16 => p_source_16
95604 , p_source_16_meaning => p_source_16_meaning
95605 , p_source_36 => p_source_36
95606 , x_transaction_coa_id => l_adr_transaction_coa_id
95607 , x_accounting_coa_id => l_adr_accounting_coa_id
95608 , x_flexfield_segment_code => l_adr_flexfield_segment_code
95609 , x_flex_value_set_id => l_adr_flex_value_set_id
95610 , x_value_type_code => l_adr_value_type_code
95611 , x_value_combination_id => l_adr_value_combination_id
95612 , x_value_segment_code => l_adr_value_segment_code
95613 , p_side => 'NA'
95614 , p_override_seg_flag => 'Y'
95615 );
95616
95617 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
95618
95619 xla_ae_lines_pkg.set_segment(
95620 p_to_segment_code => 'GL_BALANCING'
95621 , p_segment_value => l_segment
95622 , p_from_segment_code => l_adr_value_segment_code
95623 , p_from_combination_id => l_adr_value_combination_id
95624 , p_value_type_code => l_adr_value_type_code
95625 , p_transaction_coa_id => l_adr_transaction_coa_id
95626 , p_accounting_coa_id => l_adr_accounting_coa_id
95627 , p_flexfield_segment_code => l_adr_flexfield_segment_code
95628 , p_flex_value_set_id => l_adr_flex_value_set_id
95629 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
95630 , p_adr_type_code => 'S'
95631 , p_component_type => l_component_type
95632 , p_component_code => l_component_code
95633 , p_component_type_code => l_component_type_code
95634 , p_component_appl_id => l_component_appl_id
95635 , p_amb_context_code => l_amb_context_code
95636 , p_entity_code => 'AP_PAYMENTS'
95637 , p_event_class_code => 'RECONCILED PAYMENTS'
95638 , p_side => 'NA'
95639 );
95640
95641 END IF;
95642
95643 --
95644 --
95645 END IF;
95646
95647 --
95648 -- Update the line information that should be overwritten
95649 --
95650 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95651 p_header_num => 1);
95652 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
95653
95654 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95655
95656 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
95657 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95658 END IF;
95659
95660 --
95661 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95662 --
95663 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95664 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
95665 ELSE
95666 ---------------------------------------------------------------------------------------------------
95667 -- 4262811a Switch Sign
95668 ---------------------------------------------------------------------------------------------------
95669 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
95670 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95671 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95675 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95672 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95673 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95674 -- 5132302
95676 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95677
95678 END IF;
95679
95680 -- 4955764
95681 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95682 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95683
95684
95685 XLA_AE_LINES_PKG.ValidateCurrentLine;
95686 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95687
95688 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95689 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95690 ,p_balance_type_code => l_balance_type_code);
95691
95692 END IF;
95693
95694 -----------------------------------------------------------------------------------------
95695 -- 4262811 Multiperiod Accounting
95696 -----------------------------------------------------------------------------------------
95697 -- No MPA option is assigned.
95698
95699
95700 END IF;
95701 END IF;
95702 --
95703
95704 --
95705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95706 trace
95707 (p_msg => 'END of AcctLineType_164'
95708 ,p_level => C_LEVEL_PROCEDURE
95709 ,p_module => l_log_module);
95710 END IF;
95711 --
95712 EXCEPTION
95713 WHEN xla_exceptions_pkg.application_exception THEN
95714 RAISE;
95715 WHEN OTHERS THEN
95716 xla_exceptions_pkg.raise_message
95717 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_164');
95718 END AcctLineType_164;
95719 --
95720
95721 ---------------------------------------
95722 --
95723 -- PRIVATE FUNCTION
95724 -- AcctLineType_165
95725 --
95726 ---------------------------------------
95727 PROCEDURE AcctLineType_165 (
95728 p_application_id IN NUMBER
95729 ,p_event_id IN NUMBER
95730 ,p_calculate_acctd_flag IN VARCHAR2
95731 ,p_calculate_g_l_flag IN VARCHAR2
95732 ,p_actual_flag IN OUT VARCHAR2
95733 ,p_balance_type_code OUT VARCHAR2
95734 ,p_gain_or_loss_ref OUT VARCHAR2
95735
95736 --Payment Currency Code
95737 , p_source_12 IN VARCHAR2
95738 --Automatic Offsets Value
95739 , p_source_16 IN VARCHAR2
95740 , p_source_16_meaning IN VARCHAR2
95741 --Payment Distribution (Payment Rate) Ledger Amount
95742 , p_source_21 IN NUMBER
95743 --Invoice Distribution Account
95744 , p_source_29 IN NUMBER
95745 --Withholding Related Distribution Account
95746 , p_source_36 IN NUMBER
95747 --When to Account for Payment Option
95748 , p_source_50 IN VARCHAR2
95749 --Payment Distribution Type
95750 , p_source_51 IN VARCHAR2
95751 , p_source_51_meaning IN VARCHAR2
95752 --Accounting Reversal Indicator
95753 , p_source_52 IN VARCHAR2
95754 --Payment Distribution Amount
95755 , p_source_53 IN NUMBER
95756 --Business Flow Accounts Payable Application Identifier
95757 , p_source_54 IN NUMBER
95758 --Payment Distribution Identifier
95759 , p_source_59 IN NUMBER
95760 --Distribution Link Type
95761 , p_source_60 IN VARCHAR2
95762 --Override Accounted Amount Indicator
95763 , p_source_64 IN VARCHAR2
95764 , p_source_64_meaning IN VARCHAR2
95765 --Payment Supplier Identifier
95766 , p_source_65 IN NUMBER
95767 --Payment Supplier Site Identifier
95768 , p_source_66 IN NUMBER
95769 --Third Party Type
95770 , p_source_67 IN VARCHAR2
95771 --Payment Distribution Reversed Identifier
95772 , p_source_68 IN NUMBER
95773 --Invoice Distribution Tax Line Identifier
95774 , p_source_69 IN NUMBER
95775 --Invoice Distribution Summary Tax Line Identifier
95776 , p_source_70 IN NUMBER
95777 --Payment Type
95778 , p_source_71 IN VARCHAR2
95779 , p_source_71_meaning IN VARCHAR2
95780 --Invoice Distribution Amount of the Payment Distribution
95781 , p_source_72 IN NUMBER
95782 --Business Flow Invoice Distribution Type
95783 , p_source_73 IN VARCHAR2
95784 --Business Flow Invoice Entity Code
95785 , p_source_74 IN VARCHAR2
95786 --Business Flow Invoice Distribution Identifier
95787 , p_source_75 IN NUMBER
95788 --Business Flow Invoice Identifier
95789 , p_source_76 IN NUMBER
95790 --Invoice Distribution Tax Distribution Identifier from Tax
95791 , p_source_77 IN NUMBER
95792 --Payment Exchange Date
95793 , p_source_121 IN DATE
95794 --Payment Exchange Rate
95795 , p_source_122 IN NUMBER
95796 --Payment Exchange Rate Type
95797 , p_source_123 IN VARCHAR2
95798 )
95799 IS
95800
95801 l_component_type VARCHAR2(80);
95802 l_component_code VARCHAR2(30);
95803 l_component_type_code VARCHAR2(1);
95804 l_component_appl_id INTEGER;
95805 l_amb_context_code VARCHAR2(30);
95806 l_entity_code VARCHAR2(30);
95810 l_line_definition_code VARCHAR2(30);
95807 l_event_class_code VARCHAR2(30);
95808 l_ae_header_id NUMBER;
95809 l_event_type_code VARCHAR2(30);
95811 l_line_definition_owner_code VARCHAR2(1);
95812 --
95813 -- adr variables
95814 l_segment VARCHAR2(30);
95815 l_ccid NUMBER;
95816 l_adr_transaction_coa_id NUMBER;
95817 l_adr_accounting_coa_id NUMBER;
95818 l_adr_flexfield_segment_code VARCHAR2(30);
95819 l_adr_flex_value_set_id NUMBER;
95820 l_adr_value_type_code VARCHAR2(30);
95821 l_adr_value_combination_id NUMBER;
95822 l_adr_value_segment_code VARCHAR2(30);
95823
95824 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
95825 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
95826 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
95827 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
95828
95829 -- 4262811 Variables ------------------------------------------------------------------------------------------
95830 l_entered_amt_idx NUMBER;
95831 l_accted_amt_idx NUMBER;
95832 l_acc_rev_flag VARCHAR2(1);
95833 l_accrual_line_num NUMBER;
95834 l_tmp_amt NUMBER;
95835 l_acc_rev_natural_side_code VARCHAR2(1);
95836
95837 l_num_entries NUMBER;
95838 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
95839 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
95840 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
95841 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
95842 l_recog_line_1 NUMBER;
95843 l_recog_line_2 NUMBER;
95844
95845 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
95846 l_bflow_applied_to_amt NUMBER; -- 5132302
95847 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
95848
95849 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95850
95851 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
95852 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
95853
95854 ---------------------------------------------------------------------------------------------------------------
95855
95856
95857 --
95858 -- bulk performance
95859 --
95860 l_balance_type_code VARCHAR2(1);
95861 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
95862 l_log_module VARCHAR2(240);
95863
95864 --
95865 -- Upgrade strategy
95866 --
95867 l_actual_upg_option VARCHAR2(1);
95868 l_enc_upg_option VARCHAR2(1);
95869
95870 --
95871 BEGIN
95872 --
95873 IF g_log_enabled THEN
95874 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
95875 END IF;
95876 --
95877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95878
95879 trace
95880 (p_msg => 'BEGIN of AcctLineType_165'
95881 ,p_level => C_LEVEL_PROCEDURE
95882 ,p_module => l_log_module);
95883
95884 END IF;
95885 --
95886 l_component_type := 'AMB_JLT';
95887 l_component_code := 'AP_WITHHOLD_TAX_CASH_PMT';
95888 l_component_type_code := 'S';
95889 l_component_appl_id := 200;
95890 l_amb_context_code := 'DEFAULT';
95891 l_entity_code := 'AP_PAYMENTS';
95892 l_event_class_code := 'PAYMENTS';
95893 l_event_type_code := 'PAYMENTS_ALL';
95894 l_line_definition_owner_code := 'S';
95895 l_line_definition_code := 'CASH_PAYMENTS_ALL';
95896 --
95897 l_balance_type_code := 'A';
95898 l_segment := NULL;
95899 l_ccid := NULL;
95900 l_adr_transaction_coa_id := NULL;
95901 l_adr_accounting_coa_id := NULL;
95902 l_adr_flexfield_segment_code := NULL;
95903 l_adr_flex_value_set_id := NULL;
95904 l_adr_value_type_code := NULL;
95905 l_adr_value_combination_id := NULL;
95906 l_adr_value_segment_code := NULL;
95907
95908 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
95909 l_bflow_class_code := ''; -- 4219869 Business Flow
95910 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
95911 l_budgetary_control_flag := 'N';
95912
95913 l_bflow_applied_to_amt_idx := NULL; -- 5132302
95914 l_bflow_applied_to_amt := NULL; -- 5132302
95915 l_entered_amt_idx := NULL; -- 4262811
95916 l_accted_amt_idx := NULL; -- 4262811
95917 l_acc_rev_flag := NULL; -- 4262811
95918 l_accrual_line_num := NULL; -- 4262811
95919 l_tmp_amt := NULL; -- 4262811
95920 --
95921
95922 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95923 l_balance_type_code <> 'B' THEN
95924 IF NVL(p_source_50,'
95925 ') <> 'CLEAR_CLEAR' AND
95926 NVL(p_source_51,'
95927 ') = 'AWT' AND
95928 NVL(p_source_71,'
95929 ') <> 'R'
95930 THEN
95931
95932 --
95933 XLA_AE_LINES_PKG.SetNewLine;
95934
95935 p_balance_type_code := l_balance_type_code;
95936 -- set the flag so later we will know whether the gain loss line needs to be created
95937
95941
95938 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95939 p_actual_flag :='A';
95940 END IF;
95942 --
95943 -- bulk performance
95944 --
95945 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95946 p_header_num => 0); -- 4262811
95947 --
95948 -- set accounting line options
95949 --
95950 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95951 p_natural_side_code => 'C'
95952 , p_gain_or_loss_flag => 'N'
95953 , p_gl_transfer_mode_code => 'S'
95954 , p_acct_entry_type_code => 'A'
95955 , p_switch_side_flag => 'Y'
95956 , p_merge_duplicate_code => 'A'
95957 );
95958 --
95959 l_acc_rev_natural_side_code := 'D'; -- 4262811
95960 --
95961 --
95962 -- set accounting line type info
95963 --
95964 xla_ae_lines_pkg.SetAcctLineType
95965 (p_component_type => l_component_type
95966 ,p_event_type_code => l_event_type_code
95967 ,p_line_definition_owner_code => l_line_definition_owner_code
95968 ,p_line_definition_code => l_line_definition_code
95969 ,p_accounting_line_code => l_component_code
95970 ,p_accounting_line_type_code => l_component_type_code
95971 ,p_accounting_line_appl_id => l_component_appl_id
95972 ,p_amb_context_code => l_amb_context_code
95973 ,p_entity_code => l_entity_code
95974 ,p_event_class_code => l_event_class_code);
95975 --
95976 -- set accounting class
95977 --
95978 xla_ae_lines_pkg.SetAcctClass(
95979 p_accounting_class_code => 'AWT'
95980 , p_ae_header_id => l_ae_header_id
95981 );
95982
95983 --
95984 -- set rounding class
95985 --
95986 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95987 'AWT';
95988
95989 --
95990 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95991 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95992 --
95993 -- bulk performance
95994 --
95995 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95996
95997 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95998 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95999
96000 -- 4955764
96001 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96002 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96003
96004 -- 4458381 Public Sector Enh
96005
96006 --
96007 -- set accounting attributes for the line type
96008 --
96009 l_entered_amt_idx := 10;
96010 l_accted_amt_idx := 15;
96011 l_bflow_applied_to_amt_idx := 2; -- 5132302
96012 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96013 l_rec_acct_attrs.array_char_value(1) := p_source_52;
96014 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96015 l_rec_acct_attrs.array_num_value(2) := p_source_72;
96016 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96017 l_rec_acct_attrs.array_num_value(3) := p_source_54;
96018 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96019 l_rec_acct_attrs.array_char_value(4) := p_source_73;
96020 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96021 l_rec_acct_attrs.array_char_value(5) := p_source_74;
96022 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96023 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_75);
96024 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96025 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_76);
96026 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96027 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_59);
96028 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96029 l_rec_acct_attrs.array_char_value(9) := p_source_60;
96030 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96031 l_rec_acct_attrs.array_num_value(10) := p_source_53;
96032 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96033 l_rec_acct_attrs.array_char_value(11) := p_source_12;
96034 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
96035 l_rec_acct_attrs.array_date_value(12) := p_source_121;
96036 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
96037 l_rec_acct_attrs.array_num_value(13) := p_source_122;
96038 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
96039 l_rec_acct_attrs.array_char_value(14) := p_source_123;
96040 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
96041 l_rec_acct_attrs.array_num_value(15) := p_source_21;
96042 l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
96043 l_rec_acct_attrs.array_char_value(16) := p_source_64;
96044 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
96045 l_rec_acct_attrs.array_num_value(17) := p_source_65;
96049 l_rec_acct_attrs.array_char_value(19) := p_source_67;
96046 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
96047 l_rec_acct_attrs.array_num_value(18) := p_source_66;
96048 l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
96050 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
96051 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_68);
96052 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
96053 l_rec_acct_attrs.array_char_value(21) := p_source_60;
96054 l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
96055 l_rec_acct_attrs.array_num_value(22) := p_source_69;
96056 l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
96057 l_rec_acct_attrs.array_num_value(23) := p_source_77;
96058 l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
96059 l_rec_acct_attrs.array_num_value(24) := p_source_70;
96060
96061 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96062 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96063
96064 ---------------------------------------------------------------------------------------------------------------
96065 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96066 ---------------------------------------------------------------------------------------------------------------
96067 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96068
96069 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96070 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96071
96072 IF xla_accounting_cache_pkg.GetValueChar
96073 (p_source_code => 'LEDGER_CATEGORY_CODE'
96074 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96075 AND l_bflow_method_code = 'PRIOR_ENTRY'
96076 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96077 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96078 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96079 )
96080 THEN
96081 xla_ae_lines_pkg.BflowUpgEntry
96082 (p_business_method_code => l_bflow_method_code
96083 ,p_business_class_code => l_bflow_class_code
96084 ,p_balance_type => l_balance_type_code);
96085 ELSE
96086 NULL;
96087 -- No business flow processing for business flow method of NONE.
96088 END IF;
96089
96090 --
96091 -- call analytical criteria
96092 --
96093
96094 --
96095 -- call description
96096 --
96097 -- No description or it is inherited.
96098 --
96099 -- call ADRs
96100 -- Bug 4922099
96101 --
96102 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96103 (NVL(l_actual_upg_option, 'N') = 'O') OR
96104 (NVL(l_enc_upg_option, 'N') = 'O')
96105 )
96106 THEN
96107 NULL;
96108 --
96109 --
96110
96111 l_ccid := AcctDerRule_38(
96112 p_application_id => p_application_id
96113 , p_ae_header_id => l_ae_header_id
96114 , p_source_16 => p_source_16
96115 , p_source_16_meaning => p_source_16_meaning
96116 , p_source_29 => p_source_29
96117 , p_source_36 => p_source_36
96118 , x_transaction_coa_id => l_adr_transaction_coa_id
96119 , x_accounting_coa_id => l_adr_accounting_coa_id
96120 , x_value_type_code => l_adr_value_type_code
96121 , p_side => 'NA'
96122 );
96123
96124 xla_ae_lines_pkg.set_ccid(
96125 p_code_combination_id => l_ccid
96126 , p_value_type_code => l_adr_value_type_code
96127 , p_transaction_coa_id => l_adr_transaction_coa_id
96128 , p_accounting_coa_id => l_adr_accounting_coa_id
96129 , p_adr_code => 'AP_WH_DIST_ACCT'
96130 , p_adr_type_code => 'S'
96131 , p_component_type => l_component_type
96132 , p_component_code => l_component_code
96133 , p_component_type_code => l_component_type_code
96134 , p_component_appl_id => l_component_appl_id
96135 , p_amb_context_code => l_amb_context_code
96136 , p_side => 'NA'
96137 );
96138
96139
96140 l_segment := AcctDerRule_12(
96141 p_application_id => p_application_id
96142 , p_ae_header_id => l_ae_header_id
96143 , p_source_16 => p_source_16
96144 , p_source_16_meaning => p_source_16_meaning
96145 , p_source_29 => p_source_29
96146 , x_transaction_coa_id => l_adr_transaction_coa_id
96147 , x_accounting_coa_id => l_adr_accounting_coa_id
96148 , x_flexfield_segment_code => l_adr_flexfield_segment_code
96149 , x_flex_value_set_id => l_adr_flex_value_set_id
96150 , x_value_type_code => l_adr_value_type_code
96151 , x_value_combination_id => l_adr_value_combination_id
96152 , x_value_segment_code => l_adr_value_segment_code
96153 , p_side => 'NA'
96154 , p_override_seg_flag => 'Y'
96155 );
96156
96160 p_to_segment_code => 'GL_ACCOUNT'
96157 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
96158
96159 xla_ae_lines_pkg.set_segment(
96161 , p_segment_value => l_segment
96162 , p_from_segment_code => l_adr_value_segment_code
96163 , p_from_combination_id => l_adr_value_combination_id
96164 , p_value_type_code => l_adr_value_type_code
96165 , p_transaction_coa_id => l_adr_transaction_coa_id
96166 , p_accounting_coa_id => l_adr_accounting_coa_id
96167 , p_flexfield_segment_code => l_adr_flexfield_segment_code
96168 , p_flex_value_set_id => l_adr_flex_value_set_id
96169 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
96170 , p_adr_type_code => 'S'
96171 , p_component_type => l_component_type
96172 , p_component_code => l_component_code
96173 , p_component_type_code => l_component_type_code
96174 , p_component_appl_id => l_component_appl_id
96175 , p_amb_context_code => l_amb_context_code
96176 , p_entity_code => 'AP_PAYMENTS'
96177 , p_event_class_code => 'PAYMENTS'
96178 , p_side => 'NA'
96179 );
96180
96181 END IF;
96182
96183 l_segment := AcctDerRule_19(
96184 p_application_id => p_application_id
96185 , p_ae_header_id => l_ae_header_id
96186 , p_source_16 => p_source_16
96187 , p_source_16_meaning => p_source_16_meaning
96188 , p_source_36 => p_source_36
96189 , x_transaction_coa_id => l_adr_transaction_coa_id
96190 , x_accounting_coa_id => l_adr_accounting_coa_id
96191 , x_flexfield_segment_code => l_adr_flexfield_segment_code
96192 , x_flex_value_set_id => l_adr_flex_value_set_id
96193 , x_value_type_code => l_adr_value_type_code
96194 , x_value_combination_id => l_adr_value_combination_id
96195 , x_value_segment_code => l_adr_value_segment_code
96196 , p_side => 'NA'
96197 , p_override_seg_flag => 'Y'
96198 );
96199
96200 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
96201
96202 xla_ae_lines_pkg.set_segment(
96203 p_to_segment_code => 'GL_BALANCING'
96204 , p_segment_value => l_segment
96205 , p_from_segment_code => l_adr_value_segment_code
96206 , p_from_combination_id => l_adr_value_combination_id
96207 , p_value_type_code => l_adr_value_type_code
96208 , p_transaction_coa_id => l_adr_transaction_coa_id
96209 , p_accounting_coa_id => l_adr_accounting_coa_id
96210 , p_flexfield_segment_code => l_adr_flexfield_segment_code
96211 , p_flex_value_set_id => l_adr_flex_value_set_id
96212 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
96213 , p_adr_type_code => 'S'
96214 , p_component_type => l_component_type
96215 , p_component_code => l_component_code
96216 , p_component_type_code => l_component_type_code
96217 , p_component_appl_id => l_component_appl_id
96218 , p_amb_context_code => l_amb_context_code
96219 , p_entity_code => 'AP_PAYMENTS'
96220 , p_event_class_code => 'PAYMENTS'
96221 , p_side => 'NA'
96222 );
96223
96224 END IF;
96225
96226 --
96227 --
96228 END IF;
96229 --
96230 -- Bug 4922099
96231 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96232 (NVL(l_enc_upg_option, 'N') = 'O')
96233 ) AND
96234 (l_bflow_method_code = 'PRIOR_ENTRY')
96235 )
96236 THEN
96237 IF
96238 --
96239 1 = 2
96240 --
96241 THEN
96242 xla_accounting_err_pkg.build_message
96243 (p_appli_s_name => 'XLA'
96244 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96245 ,p_token_1 => 'LINE_NUMBER'
96246 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
96247 ,p_token_2 => 'LINE_TYPE_NAME'
96248 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
96249 l_component_type
96250 ,l_component_code
96251 ,l_component_type_code
96252 ,l_component_appl_id
96253 ,l_amb_context_code
96254 ,l_entity_code
96255 ,l_event_class_code
96256 )
96257 ,p_token_3 => 'OWNER'
96258 ,p_value_3 => xla_lookups_pkg.get_meaning(
96262 ,p_token_4 => 'PRODUCT_NAME'
96259 p_lookup_type => 'XLA_OWNER_TYPE'
96260 ,p_lookup_code => l_component_type_code
96261 )
96263 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96264 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96265 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96266 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96267 ,p_ae_header_id => NULL
96268 );
96269
96270 IF (C_LEVEL_ERROR>= g_log_level) THEN
96271 trace
96272 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96273 ,p_level => C_LEVEL_ERROR
96274 ,p_module => l_log_module);
96275 END IF;
96276 END IF;
96277 END IF;
96278 --
96279 --
96280 ------------------------------------------------------------------------------------------------
96281 -- 4219869 Business Flow
96282 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96283 -- Prior Entry. Currently, the following code is always generated.
96284 ------------------------------------------------------------------------------------------------
96285 XLA_AE_LINES_PKG.ValidateCurrentLine;
96286
96287 ------------------------------------------------------------------------------------
96288 -- 4219869 Business Flow
96289 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96290 ------------------------------------------------------------------------------------
96291 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96292
96293 ----------------------------------------------------------------------------------
96294 -- 4219869 Business Flow
96295 -- Update journal entry status -- Need to generate this within IF <condition>
96296 ----------------------------------------------------------------------------------
96297 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96298 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96299 ,p_balance_type_code => l_balance_type_code
96300 );
96301
96302 -------------------------------------------------------------------------------------------
96303 -- 4262811 - Generate the Accrual Reversal lines
96304 -------------------------------------------------------------------------------------------
96305 BEGIN
96306 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96307 (g_array_event(p_event_id).array_value_num('header_index'));
96308 IF l_acc_rev_flag IS NULL THEN
96309 l_acc_rev_flag := 'N';
96310 END IF;
96311 EXCEPTION
96312 WHEN OTHERS THEN
96313 l_acc_rev_flag := 'N';
96314 END;
96315 --
96316 IF (l_acc_rev_flag = 'Y') THEN
96317
96318 -- 4645092 ------------------------------------------------------------------------------
96319 -- To allow MPA report to determine if it should generate report process
96320 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96321 ------------------------------------------------------------------------------------------
96322
96323 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96324 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96325 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
96326 -- call ADRs
96327 -- Bug 4922099
96328 --
96329 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96330 (NVL(l_actual_upg_option, 'N') = 'O') OR
96331 (NVL(l_enc_upg_option, 'N') = 'O')
96332 )
96333 THEN
96334 NULL;
96335 --
96336 --
96337
96338 l_ccid := AcctDerRule_38(
96339 p_application_id => p_application_id
96340 , p_ae_header_id => l_ae_header_id
96341 , p_source_16 => p_source_16
96342 , p_source_16_meaning => p_source_16_meaning
96343 , p_source_29 => p_source_29
96344 , p_source_36 => p_source_36
96345 , x_transaction_coa_id => l_adr_transaction_coa_id
96346 , x_accounting_coa_id => l_adr_accounting_coa_id
96347 , x_value_type_code => l_adr_value_type_code
96348 , p_side => 'NA'
96349 );
96350
96351 xla_ae_lines_pkg.set_ccid(
96352 p_code_combination_id => l_ccid
96353 , p_value_type_code => l_adr_value_type_code
96354 , p_transaction_coa_id => l_adr_transaction_coa_id
96355 , p_accounting_coa_id => l_adr_accounting_coa_id
96356 , p_adr_code => 'AP_WH_DIST_ACCT'
96357 , p_adr_type_code => 'S'
96358 , p_component_type => l_component_type
96359 , p_component_code => l_component_code
96360 , p_component_type_code => l_component_type_code
96361 , p_component_appl_id => l_component_appl_id
96362 , p_amb_context_code => l_amb_context_code
96366
96363 , p_side => 'NA'
96364 );
96365
96367 l_segment := AcctDerRule_12(
96368 p_application_id => p_application_id
96369 , p_ae_header_id => l_ae_header_id
96370 , p_source_16 => p_source_16
96371 , p_source_16_meaning => p_source_16_meaning
96372 , p_source_29 => p_source_29
96373 , x_transaction_coa_id => l_adr_transaction_coa_id
96374 , x_accounting_coa_id => l_adr_accounting_coa_id
96375 , x_flexfield_segment_code => l_adr_flexfield_segment_code
96376 , x_flex_value_set_id => l_adr_flex_value_set_id
96377 , x_value_type_code => l_adr_value_type_code
96378 , x_value_combination_id => l_adr_value_combination_id
96379 , x_value_segment_code => l_adr_value_segment_code
96380 , p_side => 'NA'
96381 , p_override_seg_flag => 'Y'
96382 );
96383
96384 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
96385
96386 xla_ae_lines_pkg.set_segment(
96387 p_to_segment_code => 'GL_ACCOUNT'
96388 , p_segment_value => l_segment
96389 , p_from_segment_code => l_adr_value_segment_code
96390 , p_from_combination_id => l_adr_value_combination_id
96391 , p_value_type_code => l_adr_value_type_code
96392 , p_transaction_coa_id => l_adr_transaction_coa_id
96393 , p_accounting_coa_id => l_adr_accounting_coa_id
96394 , p_flexfield_segment_code => l_adr_flexfield_segment_code
96395 , p_flex_value_set_id => l_adr_flex_value_set_id
96396 , p_adr_code => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
96397 , p_adr_type_code => 'S'
96398 , p_component_type => l_component_type
96399 , p_component_code => l_component_code
96400 , p_component_type_code => l_component_type_code
96401 , p_component_appl_id => l_component_appl_id
96402 , p_amb_context_code => l_amb_context_code
96403 , p_entity_code => 'AP_PAYMENTS'
96404 , p_event_class_code => 'PAYMENTS'
96405 , p_side => 'NA'
96406 );
96407
96408 END IF;
96409
96410 l_segment := AcctDerRule_19(
96411 p_application_id => p_application_id
96412 , p_ae_header_id => l_ae_header_id
96413 , p_source_16 => p_source_16
96414 , p_source_16_meaning => p_source_16_meaning
96415 , p_source_36 => p_source_36
96416 , x_transaction_coa_id => l_adr_transaction_coa_id
96417 , x_accounting_coa_id => l_adr_accounting_coa_id
96418 , x_flexfield_segment_code => l_adr_flexfield_segment_code
96419 , x_flex_value_set_id => l_adr_flex_value_set_id
96420 , x_value_type_code => l_adr_value_type_code
96421 , x_value_combination_id => l_adr_value_combination_id
96422 , x_value_segment_code => l_adr_value_segment_code
96423 , p_side => 'NA'
96424 , p_override_seg_flag => 'Y'
96425 );
96426
96427 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
96428
96429 xla_ae_lines_pkg.set_segment(
96430 p_to_segment_code => 'GL_BALANCING'
96431 , p_segment_value => l_segment
96432 , p_from_segment_code => l_adr_value_segment_code
96433 , p_from_combination_id => l_adr_value_combination_id
96434 , p_value_type_code => l_adr_value_type_code
96435 , p_transaction_coa_id => l_adr_transaction_coa_id
96436 , p_accounting_coa_id => l_adr_accounting_coa_id
96437 , p_flexfield_segment_code => l_adr_flexfield_segment_code
96438 , p_flex_value_set_id => l_adr_flex_value_set_id
96439 , p_adr_code => 'AP_WH_RELATED_DIST_BAL_SEG'
96440 , p_adr_type_code => 'S'
96441 , p_component_type => l_component_type
96442 , p_component_code => l_component_code
96443 , p_component_type_code => l_component_type_code
96444 , p_component_appl_id => l_component_appl_id
96445 , p_amb_context_code => l_amb_context_code
96446 , p_entity_code => 'AP_PAYMENTS'
96447 , p_event_class_code => 'PAYMENTS'
96448 , p_side => 'NA'
96449 );
96450
96451 END IF;
96452
96453 --
96454 --
96455 END IF;
96456
96457 --
96458 -- Update the line information that should be overwritten
96459 --
96460 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96461 p_header_num => 1);
96462 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
96463
96464 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96465
96466 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
96467 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96468 END IF;
96469
96470 --
96471 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96472 --
96473 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96477 -- 4262811a Switch Sign
96474 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
96475 ELSE
96476 ---------------------------------------------------------------------------------------------------
96478 ---------------------------------------------------------------------------------------------------
96479 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
96480 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96481 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96482 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96483 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96484 -- 5132302
96485 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96486 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96487
96488 END IF;
96489
96490 -- 4955764
96491 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96492 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96493
96494
96495 XLA_AE_LINES_PKG.ValidateCurrentLine;
96496 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96497
96498 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96499 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96500 ,p_balance_type_code => l_balance_type_code);
96501
96502 END IF;
96503
96504 -----------------------------------------------------------------------------------------
96505 -- 4262811 Multiperiod Accounting
96506 -----------------------------------------------------------------------------------------
96507 -- No MPA option is assigned.
96508
96509
96510 END IF;
96511 END IF;
96512 --
96513
96514 --
96515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96516 trace
96517 (p_msg => 'END of AcctLineType_165'
96518 ,p_level => C_LEVEL_PROCEDURE
96519 ,p_module => l_log_module);
96520 END IF;
96521 --
96522 EXCEPTION
96523 WHEN xla_exceptions_pkg.application_exception THEN
96524 RAISE;
96525 WHEN OTHERS THEN
96526 xla_exceptions_pkg.raise_message
96527 (p_location => 'XLA_00200_AAD_S_000011_PKG.AcctLineType_165');
96528 END AcctLineType_165;
96529 --
96530
96531 ---------------------------------------
96532 --
96533 -- PRIVATE PROCEDURE
96534 -- insert_sources_166
96535 --
96536 ----------------------------------------
96537 --
96538 PROCEDURE insert_sources_166(
96539 p_target_ledger_id IN NUMBER
96540 , p_language IN VARCHAR2
96541 , p_sla_ledger_id IN NUMBER
96542 , p_pad_start_date IN DATE
96543 , p_pad_end_date IN DATE
96544 )
96545 IS
96546
96547 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS_ALL';
96548 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
96549 p_apps_owner VARCHAR2(30);
96550 l_log_module VARCHAR2(240);
96551 BEGIN
96552 IF g_log_enabled THEN
96553 l_log_module := C_DEFAULT_MODULE||'.insert_sources_166';
96554 END IF;
96555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96556
96557 trace
96558 (p_msg => 'BEGIN of insert_sources_166'
96559 ,p_level => C_LEVEL_PROCEDURE
96560 ,p_module => l_log_module);
96561
96562 END IF;
96563
96564 -- select APPS owner
96565 SELECT oracle_username
96566 INTO p_apps_owner
96567 FROM fnd_oracle_userid
96568 WHERE read_only_flag = 'U'
96569 ;
96570
96571 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96572 trace
96573 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
96574 ' - p_language = '||p_language||
96575 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
96576 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
96577 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
96578 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
96579 ,p_level => C_LEVEL_STATEMENT
96580 ,p_module => l_log_module);
96581 END IF;
96582
96583
96584 --
96585 INSERT INTO xla_diag_sources --hdr2
96586 (
96587 event_id
96588 , ledger_id
96589 , sla_ledger_id
96590 , description_language
96591 , object_name
96592 , object_type_code
96593 , line_number
96594 , source_application_id
96595 , source_type_code
96596 , source_code
96597 , source_value
96598 , source_meaning
96599 , created_by
96600 , creation_date
96601 , last_update_date
96602 , last_updated_by
96603 , last_update_login
96604 , program_update_date
96608 )
96605 , program_application_id
96606 , program_id
96607 , request_id
96609 SELECT
96610 event_id
96611 , p_target_ledger_id
96612 , p_sla_ledger_id
96613 , p_language
96614 , object_name
96615 , object_type_code
96616 , line_number
96617 , source_application_id
96618 , source_type_code
96619 , source_code
96620 , SUBSTR(source_value ,1,1996)
96621 , SUBSTR(source_meaning ,1,200)
96622 , xla_environment_pkg.g_Usr_Id
96623 , TRUNC(SYSDATE)
96624 , TRUNC(SYSDATE)
96625 , xla_environment_pkg.g_Usr_Id
96626 , xla_environment_pkg.g_Login_Id
96627 , TRUNC(SYSDATE)
96628 , xla_environment_pkg.g_Prog_Appl_Id
96629 , xla_environment_pkg.g_Prog_Id
96630 , xla_environment_pkg.g_Req_Id
96631 FROM (
96632 SELECT xet.event_id event_id
96633 , 0 line_number
96634 , CASE r
96635 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96636 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96637 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96638 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96639 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96640 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96641 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96642 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96643 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96644 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96645 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96646 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96647 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96648 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96649 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96650 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
96651 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96652 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96653 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96654 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96655 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96656 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96657 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96658 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96659 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96660 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
96661
96662 ELSE null
96663 END object_name
96664 , CASE r
96665 WHEN 1 THEN 'HEADER'
96666 WHEN 2 THEN 'HEADER'
96667 WHEN 3 THEN 'HEADER'
96668 WHEN 4 THEN 'HEADER'
96669 WHEN 5 THEN 'HEADER'
96670 WHEN 6 THEN 'HEADER'
96671 WHEN 7 THEN 'HEADER'
96672 WHEN 8 THEN 'HEADER'
96673 WHEN 9 THEN 'HEADER'
96674 WHEN 10 THEN 'HEADER'
96675 WHEN 11 THEN 'HEADER'
96676 WHEN 12 THEN 'HEADER'
96677 WHEN 13 THEN 'HEADER'
96678 WHEN 14 THEN 'HEADER'
96679 WHEN 15 THEN 'HEADER'
96680 WHEN 16 THEN 'HEADER'
96681 WHEN 17 THEN 'HEADER'
96682 WHEN 18 THEN 'HEADER'
96683 WHEN 19 THEN 'HEADER'
96684 WHEN 20 THEN 'HEADER'
96685 WHEN 21 THEN 'HEADER'
96686 WHEN 22 THEN 'HEADER'
96687 WHEN 23 THEN 'HEADER'
96688 WHEN 24 THEN 'HEADER'
96689 WHEN 25 THEN 'HEADER'
96690 WHEN 26 THEN 'HEADER'
96691
96692 ELSE null
96693 END object_type_code
96694 , CASE r
96695 WHEN 1 THEN '200'
96696 WHEN 2 THEN '200'
96697 WHEN 3 THEN '200'
96698 WHEN 4 THEN '200'
96699 WHEN 5 THEN '200'
96700 WHEN 6 THEN '200'
96701 WHEN 7 THEN '200'
96702 WHEN 8 THEN '200'
96703 WHEN 9 THEN '200'
96704 WHEN 10 THEN '200'
96705 WHEN 11 THEN '200'
96706 WHEN 12 THEN '200'
96707 WHEN 13 THEN '200'
96708 WHEN 14 THEN '200'
96709 WHEN 15 THEN '200'
96710 WHEN 16 THEN '200'
96711 WHEN 17 THEN '200'
96712 WHEN 18 THEN '200'
96713 WHEN 19 THEN '200'
96714 WHEN 20 THEN '200'
96715 WHEN 21 THEN '200'
96716 WHEN 22 THEN '200'
96717 WHEN 23 THEN '200'
96718 WHEN 24 THEN '200'
96719 WHEN 25 THEN '200'
96720 WHEN 26 THEN '200'
96721
96722 ELSE null
96723 END source_application_id
96724 , 'S' source_type_code
96725 , CASE r
96726 WHEN 1 THEN 'DOC_SEQUENCE_NAME'
96730 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME'
96727 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE'
96728 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER'
96729 WHEN 4 THEN 'AC_CHECK_DATE'
96731 WHEN 6 THEN 'AC_CURRENCY_CODE'
96732 WHEN 7 THEN 'CGAC_AP_ASSET_CCID'
96733 WHEN 8 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
96734 WHEN 9 THEN 'CGAC_CASH_CLEARING_CCID'
96735 WHEN 10 THEN 'ASP_AUTO_OFFSET_FLAG'
96736 WHEN 11 THEN 'CGAC_GAIN_CCID'
96737 WHEN 12 THEN 'ASP_GAIN_CCID'
96738 WHEN 13 THEN 'CGAC_LOSS_CCID'
96739 WHEN 14 THEN 'ASP_LOSS_CCID'
96740 WHEN 15 THEN 'ASP_ROUNDING_ERROR_CCID'
96741 WHEN 16 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
96742 WHEN 17 THEN 'AC_VENDOR_ID'
96743 WHEN 18 THEN 'AC_VENDOR_SITE_ID'
96744 WHEN 19 THEN 'THIRD_PARTY_TYPE'
96745 WHEN 20 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
96746 WHEN 21 THEN 'AC_FUTURE_PAY_DUE_DATE'
96747 WHEN 22 THEN 'AC_EXCHANGE_DATE'
96748 WHEN 23 THEN 'AC_EXCHANGE_RATE'
96749 WHEN 24 THEN 'AC_EXCHANGE_RATE_TYPE'
96750 WHEN 25 THEN 'AC_DOC_CATEGORY_CODE'
96751 WHEN 26 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
96752
96753 ELSE null
96754 END source_code
96755 , CASE r
96756 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
96757 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
96758 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
96759 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
96760 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
96761 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
96762 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
96763 WHEN 8 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
96764 WHEN 9 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
96765 WHEN 10 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
96766 WHEN 11 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
96767 WHEN 12 THEN TO_CHAR(h3.ASP_GAIN_CCID)
96768 WHEN 13 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
96769 WHEN 14 THEN TO_CHAR(h3.ASP_LOSS_CCID)
96770 WHEN 15 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
96771 WHEN 16 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
96772 WHEN 17 THEN TO_CHAR(h2.AC_VENDOR_ID)
96773 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
96774 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
96775 WHEN 20 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
96776 WHEN 21 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
96777 WHEN 22 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
96778 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
96779 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
96780 WHEN 25 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
96781 WHEN 26 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
96782
96783 ELSE null
96784 END source_value
96785 , CASE r
96786 WHEN 8 THEN fvl16.meaning
96787 WHEN 10 THEN fvl42.meaning
96788 WHEN 20 THEN fvl117.meaning
96789
96790 ELSE null
96791 END source_meaning
96792 FROM xla_events_gt xet
96793 , AP_PAYMENT_EXTRACT_HEADER_V h2
96794 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
96795 , fnd_lookup_values fvl16
96796 , fnd_lookup_values fvl42
96797 , fnd_lookup_values fvl117
96798 ,(select rownum r from all_objects where rownum <= 26 and owner = p_apps_owner)
96799 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
96800 AND xet.event_class_code = C_EVENT_CLASS_CODE
96801 AND h2.event_id = xet.event_id
96802 AND h3.asp_org_id = h2.ac_org_id AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
96803 AND fvl16.lookup_code(+) = h3.ASP_AUTOMATIC_OFFSETS_VALUE
96804 AND fvl16.view_application_id(+) = 200
96805 AND fvl16.language(+) = USERENV('LANG')
96806 AND fvl42.lookup_type(+) = 'YES_NO'
96807 AND fvl42.lookup_code(+) = h3.ASP_AUTO_OFFSET_FLAG
96808 AND fvl42.view_application_id(+) = 0
96809 AND fvl42.language(+) = USERENV('LANG')
96810 AND fvl117.lookup_type(+) = 'YES_NO'
96811 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
96812 AND fvl117.view_application_id(+) = 0
96813 AND fvl117.language(+) = USERENV('LANG')
96814
96815 )
96816 ;
96817 --
96818 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96819
96820 trace
96821 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
96822 ,p_level => C_LEVEL_STATEMENT
96823 ,p_module => l_log_module);
96824
96825 END IF;
96826 --
96827
96828
96829
96830 --
96831 INSERT INTO xla_diag_sources --line2
96832 (
96833 event_id
96834 , ledger_id
96835 , sla_ledger_id
96836 , description_language
96837 , object_name
96838 , object_type_code
96839 , line_number
96840 , source_application_id
96844 , source_meaning
96841 , source_type_code
96842 , source_code
96843 , source_value
96845 , created_by
96846 , creation_date
96847 , last_update_date
96848 , last_updated_by
96849 , last_update_login
96850 , program_update_date
96851 , program_application_id
96852 , program_id
96853 , request_id
96854 )
96855 SELECT event_id
96856 , p_target_ledger_id
96857 , p_sla_ledger_id
96858 , p_language
96859 , object_name
96860 , object_type_code
96861 , line_number
96862 , source_application_id
96863 , source_type_code
96864 , source_code
96865 , SUBSTR(source_value,1,1996)
96866 , SUBSTR(source_meaning ,1,200)
96867 , xla_environment_pkg.g_Usr_Id
96868 , TRUNC(SYSDATE)
96869 , TRUNC(SYSDATE)
96870 , xla_environment_pkg.g_Usr_Id
96871 , xla_environment_pkg.g_Login_Id
96872 , TRUNC(SYSDATE)
96873 , xla_environment_pkg.g_Prog_Appl_Id
96874 , xla_environment_pkg.g_Prog_Id
96875 , xla_environment_pkg.g_Req_Id
96876 FROM (
96877 SELECT xet.event_id event_id
96878 , l1.line_number line_number
96879 , CASE r
96880 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96881 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96882 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96883 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96884 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96885 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96886 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96887 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96888 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96889 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96890 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96891 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96892 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96893 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96894 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96895 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96896 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
96897
96898 ELSE null
96899 END object_name
96900 , CASE r
96901 WHEN 1 THEN 'LINE'
96902 WHEN 2 THEN 'LINE'
96903 WHEN 3 THEN 'LINE'
96904 WHEN 4 THEN 'LINE'
96905 WHEN 5 THEN 'LINE'
96906 WHEN 6 THEN 'LINE'
96907 WHEN 7 THEN 'LINE'
96908 WHEN 8 THEN 'LINE'
96909 WHEN 9 THEN 'LINE'
96910 WHEN 10 THEN 'LINE'
96911 WHEN 11 THEN 'LINE'
96912 WHEN 12 THEN 'LINE'
96913 WHEN 13 THEN 'LINE'
96914 WHEN 14 THEN 'LINE'
96915 WHEN 15 THEN 'LINE'
96916 WHEN 16 THEN 'LINE'
96917 WHEN 17 THEN 'LINE'
96918
96919 ELSE null
96920 END object_type_code
96921 , CASE r
96922 WHEN 1 THEN '200'
96923 WHEN 2 THEN '200'
96924 WHEN 3 THEN '200'
96925 WHEN 4 THEN '200'
96926 WHEN 5 THEN '200'
96927 WHEN 6 THEN '200'
96928 WHEN 7 THEN '200'
96929 WHEN 8 THEN '200'
96930 WHEN 9 THEN '200'
96931 WHEN 10 THEN '200'
96932 WHEN 11 THEN '200'
96933 WHEN 12 THEN '200'
96934 WHEN 13 THEN '200'
96935 WHEN 14 THEN '200'
96936 WHEN 15 THEN '200'
96937 WHEN 16 THEN '200'
96938 WHEN 17 THEN '200'
96939
96940 ELSE null
96941 END source_application_id
96942 , 'S' source_type_code
96943 , CASE r
96944 WHEN 1 THEN 'APHD_PAYMENT_BASE_AMT'
96945 WHEN 2 THEN 'AID_DIST_CCID'
96946 WHEN 3 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
96947 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
96948 WHEN 5 THEN 'APHD_AMOUNT'
96949 WHEN 6 THEN 'BUS_FLOW_AP_APP_ID'
96950 WHEN 7 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE'
96951 WHEN 8 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE'
96952 WHEN 9 THEN 'BUS_FLOW_PAYMENT_DIST_ID'
96953 WHEN 10 THEN 'BUS_FLOW_PAYMENT_ID'
96954 WHEN 11 THEN 'APHD_PAYMENT_HIST_DIST_ID'
96955 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE'
96956 WHEN 13 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
96957 WHEN 14 THEN 'APHD_REV_PAY_HIST_DIST_ID'
96958 WHEN 15 THEN 'APHD_MATURED_BASE_AMOUNT'
96959 WHEN 16 THEN 'PMT_MAT_BASE_AMT_DIFF'
96960 WHEN 17 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR'
96961
96962 ELSE null
96963 END source_code
96964 , CASE r
96965 WHEN 1 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
96969 WHEN 5 THEN TO_CHAR(l1.APHD_AMOUNT)
96966 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
96967 WHEN 3 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
96968 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
96970 WHEN 6 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
96971 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
96972 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
96973 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
96974 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
96975 WHEN 11 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
96976 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
96977 WHEN 13 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
96978 WHEN 14 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
96979 WHEN 15 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
96980 WHEN 16 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
96981 WHEN 17 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
96982
96983 ELSE null
96984 END source_value
96985 , CASE r
96986 WHEN 3 THEN fvl51.meaning
96987 WHEN 13 THEN fvl64.meaning
96988
96989 ELSE null
96990 END source_meaning
96991 FROM xla_events_gt xet
96992 , AP_PAYMENT_EXTRACT_DETAILS_V l1
96993 , fnd_lookup_values fvl51
96994 , fnd_lookup_values fvl64
96995 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
96996 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
96997 AND xet.event_class_code = C_EVENT_CLASS_CODE
96998 AND l1.event_id = xet.event_id
96999 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
97000 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
97001 AND fvl51.view_application_id(+) = 200
97002 AND fvl51.language(+) = USERENV('LANG')
97003 AND fvl64.lookup_type(+) = 'YES_NO'
97004 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
97005 AND fvl64.view_application_id(+) = 0
97006 AND fvl64.language(+) = USERENV('LANG')
97007
97008 )
97009 ;
97010 --
97011 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97012
97013 trace
97014 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
97015 ,p_level => C_LEVEL_STATEMENT
97016 ,p_module => l_log_module);
97017
97018 END IF;
97019
97020
97021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97022 trace
97023 (p_msg => 'END of insert_sources_166'
97024 ,p_level => C_LEVEL_PROCEDURE
97025 ,p_module => l_log_module);
97026 END IF;
97027 EXCEPTION
97028 WHEN xla_exceptions_pkg.application_exception THEN
97029 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97030 trace
97031 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97032 ,p_level => C_LEVEL_EXCEPTION
97033 ,p_module => l_log_module);
97034 END IF;
97035 RAISE;
97036 WHEN OTHERS THEN
97037 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97038 trace
97039 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97040 ,p_level => C_LEVEL_EXCEPTION
97041 ,p_module => l_log_module);
97042 END IF;
97043 xla_exceptions_pkg.raise_message
97044 (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_166');
97045 END insert_sources_166;
97046 --
97047
97048 ---------------------------------------
97049 --
97050 -- PRIVATE FUNCTION
97051 -- EventClass_166
97052 --
97053 ----------------------------------------
97054 --
97055 FUNCTION EventClass_166
97056 (p_application_id IN NUMBER
97057 ,p_base_ledger_id IN NUMBER
97058 ,p_target_ledger_id IN NUMBER
97059 ,p_language IN VARCHAR2
97060 ,p_currency_code IN VARCHAR2
97061 ,p_sla_ledger_id IN NUMBER
97062 ,p_pad_start_date IN DATE
97063 ,p_pad_end_date IN DATE
97064 ,p_primary_ledger_id IN NUMBER)
97065 RETURN BOOLEAN IS
97066 --
97067 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS_ALL';
97068 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
97069
97070 l_calculate_acctd_flag VARCHAR2(1) :='N';
97071 l_calculate_g_l_flag VARCHAR2(1) :='N';
97072 --
97073 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97074 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97075 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97076 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97077 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97078 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97079 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97080 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97081 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97082 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97086 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97083 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97084 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97085 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97087 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97088 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97089 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97090 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97091 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97092 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97093 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97094 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97095 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
97096 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97097 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
97098 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
97099
97100 l_event_id NUMBER;
97101 l_previous_event_id NUMBER;
97102 l_first_event_id NUMBER;
97103 l_last_event_id NUMBER;
97104
97105 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
97106 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
97107 --
97108 --
97109 l_result BOOLEAN := TRUE;
97110 l_rows NUMBER := 1000;
97111 l_event_type_name VARCHAR2(80) := 'All';
97112 l_event_class_name VARCHAR2(80) := 'Future Dated Payments';
97113 l_description VARCHAR2(4000);
97114 l_transaction_reversal NUMBER;
97115 l_ae_header_id NUMBER;
97116 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
97117 l_log_module VARCHAR2(240);
97118 --
97119 l_acct_reversal_source VARCHAR2(30);
97120 l_trx_reversal_source VARCHAR2(30);
97121
97122 l_continue_with_lines BOOLEAN := TRUE;
97123 --
97124 l_acc_rev_gl_date_source DATE; -- 4262811
97125 --
97126 type t_array_event_id is table of number index by binary_integer;
97127
97128 l_rec_array_event t_rec_array_event;
97129 l_null_rec_array_event t_rec_array_event;
97130 l_array_ae_header_id xla_number_array_type;
97131 l_actual_flag VARCHAR2(1) := NULL;
97132 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
97133 l_balance_type_code VARCHAR2(1) :=NULL;
97134 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
97135
97136 --
97137 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
97138 --
97139
97140 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
97141 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
97142 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
97143 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
97144 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
97145 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
97146 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
97147 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
97148 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
97149 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
97150 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
97151 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
97152 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
97153 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
97154 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
97155 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
97156 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
97157 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
97158 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
97159 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
97160 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
97161 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
97162 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
97166
97163 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
97164 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
97165 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
97167 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
97168 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
97169 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
97170 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
97171 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
97172 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
97173 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
97174 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
97175 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97176 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
97177 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97178 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
97179 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
97180 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
97181 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
97182 TYPE t_array_source_135 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
97183 TYPE t_array_source_140 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
97184
97185 l_array_source_5 t_array_source_5;
97186 l_array_source_8 t_array_source_8;
97187 l_array_source_9 t_array_source_9;
97188 l_array_source_10 t_array_source_10;
97189 l_array_source_11 t_array_source_11;
97190 l_array_source_12 t_array_source_12;
97191 l_array_source_13 t_array_source_13;
97192 l_array_source_16 t_array_source_16;
97193 l_array_source_16_meaning t_array_lookup_meaning;
97194 l_array_source_33 t_array_source_33;
97195 l_array_source_42 t_array_source_42;
97196 l_array_source_42_meaning t_array_lookup_meaning;
97197 l_array_source_44 t_array_source_44;
97198 l_array_source_45 t_array_source_45;
97199 l_array_source_46 t_array_source_46;
97200 l_array_source_47 t_array_source_47;
97201 l_array_source_49 t_array_source_49;
97202 l_array_source_50 t_array_source_50;
97203 l_array_source_65 t_array_source_65;
97204 l_array_source_66 t_array_source_66;
97205 l_array_source_67 t_array_source_67;
97206 l_array_source_117 t_array_source_117;
97207 l_array_source_117_meaning t_array_lookup_meaning;
97208 l_array_source_118 t_array_source_118;
97209 l_array_source_121 t_array_source_121;
97210 l_array_source_122 t_array_source_122;
97211 l_array_source_123 t_array_source_123;
97212 l_array_source_156 t_array_source_156;
97213 l_array_source_157 t_array_source_157;
97214
97215 l_array_source_21 t_array_source_21;
97216 l_array_source_29 t_array_source_29;
97217 l_array_source_51 t_array_source_51;
97218 l_array_source_51_meaning t_array_lookup_meaning;
97219 l_array_source_52 t_array_source_52;
97220 l_array_source_53 t_array_source_53;
97221 l_array_source_54 t_array_source_54;
97222 l_array_source_55 t_array_source_55;
97223 l_array_source_56 t_array_source_56;
97224 l_array_source_57 t_array_source_57;
97225 l_array_source_58 t_array_source_58;
97226 l_array_source_59 t_array_source_59;
97227 l_array_source_60 t_array_source_60;
97228 l_array_source_64 t_array_source_64;
97229 l_array_source_64_meaning t_array_lookup_meaning;
97230 l_array_source_68 t_array_source_68;
97231 l_array_source_124 t_array_source_124;
97232 l_array_source_135 t_array_source_135;
97233 l_array_source_140 t_array_source_140;
97234
97235 --
97236 CURSOR header_cur
97237 IS
97238 SELECT /*+ leading(xet) cardinality(xet,1) */
97239 -- Event Class Code: FUTURE DATED PAYMENTS
97240 xet.entity_id
97241 ,xet.legal_entity_id
97242 ,xet.entity_code
97243 ,xet.transaction_number
97244 ,xet.event_id
97245 ,xet.event_class_code
97246 ,xet.event_type_code
97247 ,xet.event_number
97248 ,xet.event_date
97249 ,xet.transaction_date
97250 ,xet.reference_num_1
97251 ,xet.reference_num_2
97252 ,xet.reference_num_3
97253 ,xet.reference_num_4
97254 ,xet.reference_char_1
97255 ,xet.reference_char_2
97256 ,xet.reference_char_3
97257 ,xet.reference_char_4
97261 ,xet.reference_date_4
97258 ,xet.reference_date_1
97259 ,xet.reference_date_2
97260 ,xet.reference_date_3
97262 ,xet.event_created_by
97263 ,xet.budgetary_control_flag
97264 , h2.DOC_SEQUENCE_NAME source_5
97265 , h2.AC_DOC_SEQUENCE_VALUE source_8
97266 , h2.PAYMENT_TRANSACTION_NUMBER source_9
97267 , h2.AC_CHECK_DATE source_10
97268 , h2.CBA_BANK_ACCOUNT_NAME source_11
97269 , h2.AC_CURRENCY_CODE source_12
97270 , h2.CGAC_AP_ASSET_CCID source_13
97271 , h3.ASP_AUTOMATIC_OFFSETS_VALUE source_16
97272 , fvl16.meaning source_16_meaning
97273 , h2.CGAC_CASH_CLEARING_CCID source_33
97274 , h3.ASP_AUTO_OFFSET_FLAG source_42
97275 , fvl42.meaning source_42_meaning
97276 , h2.CGAC_GAIN_CCID source_44
97277 , h3.ASP_GAIN_CCID source_45
97278 , h2.CGAC_LOSS_CCID source_46
97279 , h3.ASP_LOSS_CCID source_47
97280 , h3.ASP_ROUNDING_ERROR_CCID source_49
97281 , h3.ASP_WHEN_TO_ACCOUNT_PMT source_50
97282 , h2.AC_VENDOR_ID source_65
97283 , h2.AC_VENDOR_SITE_ID source_66
97284 , h2.THIRD_PARTY_TYPE source_67
97285 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_117
97286 , fvl117.meaning source_117_meaning
97287 , h2.AC_FUTURE_PAY_DUE_DATE source_118
97288 , h2.AC_EXCHANGE_DATE source_121
97289 , h2.AC_EXCHANGE_RATE source_122
97290 , h2.AC_EXCHANGE_RATE_TYPE source_123
97291 , h2.AC_DOC_CATEGORY_CODE source_156
97292 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_157
97293 FROM xla_events_gt xet
97294 , AP_PAYMENT_EXTRACT_HEADER_V h2
97295 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
97296 , fnd_lookup_values fvl16
97297 , fnd_lookup_values fvl42
97298 , fnd_lookup_values fvl117
97299 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
97300 and xet.event_class_code = C_EVENT_CLASS_CODE
97301 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
97302 AND h3.asp_org_id = h2.ac_org_id AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
97303 AND fvl16.lookup_code(+) = h3.ASP_AUTOMATIC_OFFSETS_VALUE
97304 AND fvl16.view_application_id(+) = 200
97305 AND fvl16.language(+) = USERENV('LANG')
97306 AND fvl42.lookup_type(+) = 'YES_NO'
97307 AND fvl42.lookup_code(+) = h3.ASP_AUTO_OFFSET_FLAG
97308 AND fvl42.view_application_id(+) = 0
97309 AND fvl42.language(+) = USERENV('LANG')
97310 AND fvl117.lookup_type(+) = 'YES_NO'
97311 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
97312 AND fvl117.view_application_id(+) = 0
97313 AND fvl117.language(+) = USERENV('LANG')
97314
97315 ORDER BY event_id
97316 ;
97317
97318
97319 --
97320 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
97321 IS
97322 SELECT /*+ leading(xet) cardinality(xet,1) */
97323 -- Event Class Code: FUTURE DATED PAYMENTS
97324 xet.entity_id
97325 ,xet.legal_entity_id
97326 ,xet.entity_code
97327 ,xet.transaction_number
97328 ,xet.event_id
97329 ,xet.event_class_code
97330 ,xet.event_type_code
97331 ,xet.event_number
97332 ,xet.event_date
97333 ,xet.transaction_date
97334 ,xet.reference_num_1
97335 ,xet.reference_num_2
97336 ,xet.reference_num_3
97337 ,xet.reference_num_4
97338 ,xet.reference_char_1
97339 ,xet.reference_char_2
97340 ,xet.reference_char_3
97341 ,xet.reference_char_4
97342 ,xet.reference_date_1
97343 ,xet.reference_date_2
97344 ,xet.reference_date_3
97345 ,xet.reference_date_4
97346 ,xet.event_created_by
97347 ,xet.budgetary_control_flag
97348 , l1.LINE_NUMBER
97349 , l1.APHD_PAYMENT_BASE_AMT source_21
97350 , l1.AID_DIST_CCID source_29
97351 , l1.APHD_PAY_DIST_LOOKUP_CODE source_51
97352 , fvl51.meaning source_51_meaning
97353 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_52
97354 , l1.APHD_AMOUNT source_53
97355 , l1.BUS_FLOW_AP_APP_ID source_54
97356 , l1.BUS_FLOW_PAYMENT_DIST_TYPE source_55
97357 , l1.BUS_FLOW_PAYMENT_ENTITY_CODE source_56
97358 , l1.BUS_FLOW_PAYMENT_DIST_ID source_57
97359 , l1.BUS_FLOW_PAYMENT_ID source_58
97360 , l1.APHD_PAYMENT_HIST_DIST_ID source_59
97361 , l1.DISTRIBUTION_LINK_TYPE source_60
97362 , l1.OVERRIDE_ACCTD_AMT_FLAG source_64
97363 , fvl64.meaning source_64_meaning
97364 , l1.APHD_REV_PAY_HIST_DIST_ID source_68
97365 , l1.APHD_MATURED_BASE_AMOUNT source_124
97366 , l1.PMT_MAT_BASE_AMT_DIFF source_135
97367 , l1.PMT_MAT_GAIN_LOSS_INDICATOR source_140
97368 FROM xla_events_gt xet
97369 , AP_PAYMENT_EXTRACT_DETAILS_V l1
97370 , fnd_lookup_values fvl51
97371 , fnd_lookup_values fvl64
97372 WHERE xet.event_id between x_first_event_id and x_last_event_id
97373 and xet.event_date between p_pad_start_date and p_pad_end_date
97374 and xet.event_class_code = C_EVENT_CLASS_CODE
97375 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
97376 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
97377 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
97378 AND fvl51.view_application_id(+) = 200
97379 AND fvl51.language(+) = USERENV('LANG')
97380 AND fvl64.lookup_type(+) = 'YES_NO'
97381 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
97382 AND fvl64.view_application_id(+) = 0
97386 --
97383 AND fvl64.language(+) = USERENV('LANG')
97384 ;
97385
97387 BEGIN
97388 IF g_log_enabled THEN
97389 l_log_module := C_DEFAULT_MODULE||'.EventClass_166';
97390 END IF;
97391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97392 trace
97393 (p_msg => 'BEGIN of EventClass_166'
97394 ,p_level => C_LEVEL_PROCEDURE
97395 ,p_module => l_log_module);
97396 END IF;
97397
97398 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97399 trace
97400 (p_msg => 'p_application_id = '||p_application_id||
97401 ' - p_base_ledger_id = '||p_base_ledger_id||
97402 ' - p_target_ledger_id = '||p_target_ledger_id||
97403 ' - p_language = '||p_language||
97404 ' - p_currency_code = '||p_currency_code||
97405 ' - p_sla_ledger_id = '||p_sla_ledger_id
97406 ,p_level => C_LEVEL_STATEMENT
97407 ,p_module => l_log_module);
97408 END IF;
97409 --
97410 -- initialze arrays
97411 --
97412 g_array_event.DELETE;
97413 l_rec_array_event := l_null_rec_array_event;
97414 --
97415 --------------------------------------
97416 -- 4262811 Initialze MPA Line Number
97417 --------------------------------------
97418 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
97419
97420 --
97421
97422 --
97423 OPEN header_cur;
97424 --
97425 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97426 trace
97427 (p_msg => 'SQL - FETCH header_cur'
97428 ,p_level => C_LEVEL_STATEMENT
97429 ,p_module => l_log_module);
97430 END IF;
97431 --
97432 LOOP
97433 FETCH header_cur BULK COLLECT INTO
97434 l_array_entity_id
97435 , l_array_legal_entity_id
97436 , l_array_entity_code
97437 , l_array_transaction_num
97438 , l_array_event_id
97439 , l_array_class_code
97440 , l_array_event_type
97441 , l_array_event_number
97442 , l_array_event_date
97443 , l_array_transaction_date
97444 , l_array_reference_num_1
97445 , l_array_reference_num_2
97446 , l_array_reference_num_3
97447 , l_array_reference_num_4
97448 , l_array_reference_char_1
97449 , l_array_reference_char_2
97450 , l_array_reference_char_3
97451 , l_array_reference_char_4
97452 , l_array_reference_date_1
97453 , l_array_reference_date_2
97454 , l_array_reference_date_3
97455 , l_array_reference_date_4
97456 , l_array_event_created_by
97457 , l_array_budgetary_control_flag
97458 , l_array_source_5
97459 , l_array_source_8
97460 , l_array_source_9
97461 , l_array_source_10
97462 , l_array_source_11
97463 , l_array_source_12
97464 , l_array_source_13
97465 , l_array_source_16
97466 , l_array_source_16_meaning
97467 , l_array_source_33
97468 , l_array_source_42
97469 , l_array_source_42_meaning
97470 , l_array_source_44
97471 , l_array_source_45
97472 , l_array_source_46
97473 , l_array_source_47
97474 , l_array_source_49
97475 , l_array_source_50
97476 , l_array_source_65
97477 , l_array_source_66
97478 , l_array_source_67
97479 , l_array_source_117
97480 , l_array_source_117_meaning
97481 , l_array_source_118
97482 , l_array_source_121
97483 , l_array_source_122
97484 , l_array_source_123
97485 , l_array_source_156
97486 , l_array_source_157
97487 LIMIT l_rows;
97488 --
97489 IF (C_LEVEL_EVENT >= g_log_level) THEN
97490 trace
97491 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
97492 ,p_level => C_LEVEL_EVENT
97493 ,p_module => l_log_module);
97494 END IF;
97495 --
97496 EXIT WHEN l_array_entity_id.COUNT = 0;
97497
97498 -- initialize arrays
97499 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
97500 XLA_AE_LINES_PKG.g_rec_lines := NULL;
97501
97502 --
97503 -- Bug 4458708
97504 --
97505 XLA_AE_LINES_PKG.g_LineNumber := 0;
97506
97507
97508 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
97509 g_last_hdr_idx := l_array_event_id.LAST;
97510 --
97511 -- loop for the headers. Each iteration is for each header extract row
97512 -- fetched in header cursor
97513 --
97514 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
97515
97516 --
97517 -- set event info as cache for other routines to refer event attributes
97518 --
97519 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
97520 (p_application_id => p_application_id
97521 ,p_primary_ledger_id => p_primary_ledger_id
97522 ,p_base_ledger_id => p_base_ledger_id
97523 ,p_target_ledger_id => p_target_ledger_id
97524 ,p_entity_id => l_array_entity_id(hdr_idx)
97525 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
97526 ,p_entity_code => l_array_entity_code(hdr_idx)
97527 ,p_transaction_num => l_array_transaction_num(hdr_idx)
97528 ,p_event_id => l_array_event_id(hdr_idx)
97529 ,p_event_class_code => l_array_class_code(hdr_idx)
97533 ,p_transaction_date => l_array_transaction_date(hdr_idx)
97530 ,p_event_type_code => l_array_event_type(hdr_idx)
97531 ,p_event_number => l_array_event_number(hdr_idx)
97532 ,p_event_date => l_array_event_date(hdr_idx)
97534 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
97535 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
97536 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
97537 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
97538 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
97539 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
97540 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
97541 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
97542 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
97543 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
97544 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
97545 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
97546 ,p_event_created_by => l_array_event_created_by(hdr_idx)
97547 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
97548
97549 --
97550 -- set the status of entry to C_VALID (0)
97551 --
97552 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
97553
97554 --
97555 -- initialize a row for ae header
97556 --
97557 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
97558
97559 l_event_id := l_array_event_id(hdr_idx);
97560
97561 --
97562 -- storing the hdr_idx for event. May be used by line cursor.
97563 --
97564 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
97565
97566 --
97567 -- store sources from header extract. This can be improved to
97568 -- store only those sources from header extract that may be used in lines
97569 --
97570
97571 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
97572 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
97573 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
97574 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
97575 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
97576 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
97577 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
97578 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
97579 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
97580 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
97581 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
97582 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
97583 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
97584 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
97585 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
97586 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
97587 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
97588 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
97589 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
97590 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
97591 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
97592 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
97593 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
97594 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
97595 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
97596 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
97597 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
97598 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
97599 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
97600
97601 --
97602 -- initilaize the status of ae headers for diffrent balance types
97603 -- the status is initialised to C_NOT_CREATED (2)
97604 --
97605 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97606 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97607 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97608
97609 --
97610 -- call api to validate and store accounting attributes for header
97611 --
97612
97613 ------------------------------------------------------------
97614 -- Accrual Reversal : to get date for Standard Source (NONE)
97615 ------------------------------------------------------------
97616 l_acc_rev_gl_date_source := NULL;
97617
97618 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
97619 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
97623 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
97620 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
97621 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
97622 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
97624 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
97625 l_rec_acct_attrs.array_date_value(4) :=
97626 xla_ae_sources_pkg.GetSystemSourceDate(
97627 p_source_code => 'XLA_EVENT_DATE'
97628 , p_source_type_code => 'Y'
97629 , p_source_application_id => 602
97630 );
97631
97632
97633 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
97634
97635 XLA_AE_HEADER_PKG.SetJeCategoryName;
97636
97637 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
97638 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
97639 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
97640 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
97641 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
97642
97643
97644 --
97645 xla_ae_header_pkg.SetHdrDescription(
97646 p_description => Description_2 (
97647 p_application_id => p_application_id
97648 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
97649 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
97650 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
97651 , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
97652 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
97653 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97654 )
97655 );
97656 --
97657
97658 -- No header level analytical criteria
97659
97660 --
97661 --accounting attribute enhancement, bug 3612931
97662 --
97663 l_trx_reversal_source := SUBSTR(NULL, 1,30);
97664
97665 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
97666 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
97667
97668 xla_accounting_err_pkg.build_message
97669 (p_appli_s_name => 'XLA'
97670 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
97671 ,p_token_1 => 'ACCT_ATTR_NAME'
97672 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
97673 ,p_token_2 => 'PRODUCT_NAME'
97674 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
97675 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
97676 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
97677 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
97678
97679 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
97680 --
97681 -- following sets the accounting attributes needed to reverse
97682 -- accounting for a distributeion
97683 --
97684 xla_ae_lines_pkg.SetTrxReversalAttrs
97685 (p_event_id => l_event_id
97686 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
97687 ,p_trx_reversal_source => l_trx_reversal_source);
97688
97689 END IF;
97690
97691
97692 ----------------------------------------------------------------
97693 -- 4262811 - update the header statuses to invalid in need be
97694 ----------------------------------------------------------------
97695 --
97696 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
97697
97698
97699 -----------------------------------------------
97700 -- No accrual reversal for the event class/type
97701 -----------------------------------------------
97702 ----------------------------------------------------------------
97703
97704 --
97705 -- this ends the header loop iteration for one bulk fetch
97706 --
97707 END LOOP;
97708
97709 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
97710 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
97711
97712 --
97713 -- insert dummy rows into lines gt table that were created due to
97714 -- transaction reversals
97715 --
97716 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
97717 l_result := XLA_AE_LINES_PKG.InsertLines;
97718 END IF;
97719
97720 --
97721 -- reset the temp_line_num for each set of events fetched from header
97722 -- cursor rather than doing it for each new event in line cursor
97723 -- Bug 3939231
97724 --
97725 xla_ae_lines_pkg.g_temp_line_num := 0;
97726
97727
97728
97729 --
97730 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
97731 --
97732 --
97733 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97734
97735 trace
97736 (p_msg => 'SQL - FETCH line_cur'
97737 ,p_level => C_LEVEL_STATEMENT
97738 ,p_module => l_log_module);
97739
97740 END IF;
97741 --
97742 --
97743 LOOP
97744 --
97745 FETCH line_cur BULK COLLECT INTO
97746 l_array_entity_id
97747 , l_array_legal_entity_id
97748 , l_array_entity_code
97752 , l_array_event_type
97749 , l_array_transaction_num
97750 , l_array_event_id
97751 , l_array_class_code
97753 , l_array_event_number
97754 , l_array_event_date
97755 , l_array_transaction_date
97756 , l_array_reference_num_1
97757 , l_array_reference_num_2
97758 , l_array_reference_num_3
97759 , l_array_reference_num_4
97760 , l_array_reference_char_1
97761 , l_array_reference_char_2
97762 , l_array_reference_char_3
97763 , l_array_reference_char_4
97764 , l_array_reference_date_1
97765 , l_array_reference_date_2
97766 , l_array_reference_date_3
97767 , l_array_reference_date_4
97768 , l_array_event_created_by
97769 , l_array_budgetary_control_flag
97770 , l_array_extract_line_num
97771 , l_array_source_21
97772 , l_array_source_29
97773 , l_array_source_51
97774 , l_array_source_51_meaning
97775 , l_array_source_52
97776 , l_array_source_53
97777 , l_array_source_54
97778 , l_array_source_55
97779 , l_array_source_56
97780 , l_array_source_57
97781 , l_array_source_58
97782 , l_array_source_59
97783 , l_array_source_60
97784 , l_array_source_64
97785 , l_array_source_64_meaning
97786 , l_array_source_68
97787 , l_array_source_124
97788 , l_array_source_135
97789 , l_array_source_140
97790 LIMIT l_rows;
97791
97792 --
97793 IF (C_LEVEL_EVENT >= g_log_level) THEN
97794 trace
97795 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
97796 ,p_level => C_LEVEL_EVENT
97797 ,p_module => l_log_module);
97798 END IF;
97799 --
97800 EXIT WHEN l_array_entity_id.count = 0;
97801
97802 XLA_AE_LINES_PKG.g_rec_lines := null;
97803
97804 --
97805 -- Bug 4458708
97806 --
97807 XLA_AE_LINES_PKG.g_LineNumber := 0;
97808 --
97809 --
97810
97811 FOR Idx IN 1..l_array_event_id.count LOOP
97812 --
97813 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
97814 --
97815 l_event_id := l_array_event_id(idx); -- 5648433
97816
97817 --
97818 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
97819 --
97820
97821 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
97822 (g_array_event(l_event_id).array_value_num('header_index'))
97823 ,'N'
97824 ) <> 'Y'
97825 THEN
97826 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97827 trace
97828 (p_msg => 'Trancaction revesal option is not Y '
97829 ,p_level => C_LEVEL_STATEMENT
97830 ,p_module => l_log_module);
97831 END IF;
97832
97833 --
97834 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
97835 --
97836 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
97837 --
97838 -- set event info as cache for other routines to refer event attributes
97839 --
97840
97841 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
97842 l_previous_event_id := l_event_id;
97843
97844 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
97845 (p_application_id => p_application_id
97846 ,p_primary_ledger_id => p_primary_ledger_id
97847 ,p_base_ledger_id => p_base_ledger_id
97848 ,p_target_ledger_id => p_target_ledger_id
97849 ,p_entity_id => l_array_entity_id(Idx)
97850 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
97851 ,p_entity_code => l_array_entity_code(Idx)
97852 ,p_transaction_num => l_array_transaction_num(Idx)
97853 ,p_event_id => l_array_event_id(Idx)
97854 ,p_event_class_code => l_array_class_code(Idx)
97855 ,p_event_type_code => l_array_event_type(Idx)
97856 ,p_event_number => l_array_event_number(Idx)
97857 ,p_event_date => l_array_event_date(Idx)
97858 ,p_transaction_date => l_array_transaction_date(Idx)
97859 ,p_reference_num_1 => l_array_reference_num_1(Idx)
97860 ,p_reference_num_2 => l_array_reference_num_2(Idx)
97861 ,p_reference_num_3 => l_array_reference_num_3(Idx)
97862 ,p_reference_num_4 => l_array_reference_num_4(Idx)
97863 ,p_reference_char_1 => l_array_reference_char_1(Idx)
97864 ,p_reference_char_2 => l_array_reference_char_2(Idx)
97865 ,p_reference_char_3 => l_array_reference_char_3(Idx)
97866 ,p_reference_char_4 => l_array_reference_char_4(Idx)
97867 ,p_reference_date_1 => l_array_reference_date_1(Idx)
97868 ,p_reference_date_2 => l_array_reference_date_2(Idx)
97869 ,p_reference_date_3 => l_array_reference_date_3(Idx)
97870 ,p_reference_date_4 => l_array_reference_date_4(Idx)
97871 ,p_event_created_by => l_array_event_created_by(Idx)
97872 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
97873 --
97874 END IF;
97875
97876
97877
97878 --
97879 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
97880
97884 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
97881 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
97882
97883 IF l_continue_with_lines THEN
97885 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
97886
97887 xla_accounting_err_pkg.build_message
97888 (p_appli_s_name => 'XLA'
97889 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
97890 ,p_token_1 => 'LINE_NUMBER'
97891 ,p_value_1 => l_array_extract_line_num(Idx)
97892 ,p_token_2 => 'PRODUCT_NAME'
97893 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
97894 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
97895 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
97896 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
97897
97898 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
97899 --
97900 -- following sets the accounting attributes needed to reverse
97901 -- accounting for a distributeion
97902 --
97903
97904 --
97905 -- 5217187
97906 --
97907 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
97908 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
97909 g_array_event(l_event_id).array_value_num('header_index'));
97910 --
97911 --
97912
97913 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
97914 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_52(Idx);
97915 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
97916 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_59(Idx);
97917 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
97918 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_60(Idx);
97919 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
97920 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_67');
97921 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
97922 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_68(Idx);
97923 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
97924 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_60(Idx);
97925
97926
97927 xla_ae_lines_pkg.SetAcctReversalAttrs
97928 (p_event_id => l_event_id
97929 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
97930 ,p_calculate_acctd_flag => l_calculate_acctd_flag
97931 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
97932 END IF;
97933
97934 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
97935 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
97936
97937 --
97938 AcctLineType_62 (
97939 p_application_id => p_application_id
97940 ,p_event_id => l_event_id
97941 ,p_calculate_acctd_flag => l_calculate_acctd_flag
97942 ,p_calculate_g_l_flag => l_calculate_g_l_flag
97943 ,p_actual_flag => l_actual_flag
97944 ,p_balance_type_code => l_balance_type_code
97945 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
97946
97947 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97948 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97949 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
97950 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
97951 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
97952 , p_source_51 => l_array_source_51(Idx)
97953 , p_source_51_meaning => l_array_source_51_meaning(Idx)
97954 , p_source_52 => l_array_source_52(Idx)
97955 , p_source_53 => l_array_source_53(Idx)
97956 , p_source_54 => l_array_source_54(Idx)
97957 , p_source_55 => l_array_source_55(Idx)
97958 , p_source_56 => l_array_source_56(Idx)
97959 , p_source_57 => l_array_source_57(Idx)
97960 , p_source_58 => l_array_source_58(Idx)
97961 , p_source_59 => l_array_source_59(Idx)
97962 , p_source_60 => l_array_source_60(Idx)
97963 , p_source_64 => l_array_source_64(Idx)
97964 , p_source_64_meaning => l_array_source_64_meaning(Idx)
97965 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
97966 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
97967 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
97968 , p_source_68 => l_array_source_68(Idx)
97969 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
97970 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
97971 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
97972 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
97973 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
97974 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
97975 , p_source_124 => l_array_source_124(Idx)
97976 );
97977 If(l_balance_type_code = 'A') THEN
97978 l_actual_gain_loss_ref := l_gain_or_loss_ref;
97979 END IF;
97980
97981 --
97982
97983
97984 --
97985 AcctLineType_63 (
97986 p_application_id => p_application_id
97990 ,p_actual_flag => l_actual_flag
97987 ,p_event_id => l_event_id
97988 ,p_calculate_acctd_flag => l_calculate_acctd_flag
97989 ,p_calculate_g_l_flag => l_calculate_g_l_flag
97991 ,p_balance_type_code => l_balance_type_code
97992 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
97993
97994 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
97995 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
97996 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
97997 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97998 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
97999 , p_source_51 => l_array_source_51(Idx)
98000 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98001 , p_source_52 => l_array_source_52(Idx)
98002 , p_source_53 => l_array_source_53(Idx)
98003 , p_source_54 => l_array_source_54(Idx)
98004 , p_source_55 => l_array_source_55(Idx)
98005 , p_source_56 => l_array_source_56(Idx)
98006 , p_source_57 => l_array_source_57(Idx)
98007 , p_source_58 => l_array_source_58(Idx)
98008 , p_source_59 => l_array_source_59(Idx)
98009 , p_source_60 => l_array_source_60(Idx)
98010 , p_source_64 => l_array_source_64(Idx)
98011 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98012 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98013 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98014 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98015 , p_source_68 => l_array_source_68(Idx)
98016 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98017 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98018 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98019 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98020 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98021 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98022 , p_source_124 => l_array_source_124(Idx)
98023 );
98024 If(l_balance_type_code = 'A') THEN
98025 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98026 END IF;
98027
98028 --
98029
98030
98031 --
98032 AcctLineType_64 (
98033 p_application_id => p_application_id
98034 ,p_event_id => l_event_id
98035 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98036 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98037 ,p_actual_flag => l_actual_flag
98038 ,p_balance_type_code => l_balance_type_code
98039 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98040
98041 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98042 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98043 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98044 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98045 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98046 , p_source_51 => l_array_source_51(Idx)
98047 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98048 , p_source_52 => l_array_source_52(Idx)
98049 , p_source_53 => l_array_source_53(Idx)
98050 , p_source_54 => l_array_source_54(Idx)
98051 , p_source_55 => l_array_source_55(Idx)
98052 , p_source_56 => l_array_source_56(Idx)
98053 , p_source_57 => l_array_source_57(Idx)
98054 , p_source_58 => l_array_source_58(Idx)
98055 , p_source_59 => l_array_source_59(Idx)
98056 , p_source_60 => l_array_source_60(Idx)
98057 , p_source_64 => l_array_source_64(Idx)
98058 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98059 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98060 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98061 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98062 , p_source_68 => l_array_source_68(Idx)
98063 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98064 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98065 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98066 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98067 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98068 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98069 , p_source_124 => l_array_source_124(Idx)
98070 );
98071 If(l_balance_type_code = 'A') THEN
98072 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98073 END IF;
98074
98075 --
98076
98077
98078 --
98079 AcctLineType_71 (
98080 p_application_id => p_application_id
98081 ,p_event_id => l_event_id
98082 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98083 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98084 ,p_actual_flag => l_actual_flag
98085 ,p_balance_type_code => l_balance_type_code
98086 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98087
98088 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98089 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98090 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
98091 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
98092 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98093 , p_source_51 => l_array_source_51(Idx)
98094 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98098 , p_source_55 => l_array_source_55(Idx)
98095 , p_source_52 => l_array_source_52(Idx)
98096 , p_source_53 => l_array_source_53(Idx)
98097 , p_source_54 => l_array_source_54(Idx)
98099 , p_source_56 => l_array_source_56(Idx)
98100 , p_source_57 => l_array_source_57(Idx)
98101 , p_source_58 => l_array_source_58(Idx)
98102 , p_source_59 => l_array_source_59(Idx)
98103 , p_source_60 => l_array_source_60(Idx)
98104 , p_source_64 => l_array_source_64(Idx)
98105 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98106 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98107 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98108 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98109 , p_source_68 => l_array_source_68(Idx)
98110 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98111 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98112 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98113 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98114 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98115 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98116 , p_source_124 => l_array_source_124(Idx)
98117 );
98118 If(l_balance_type_code = 'A') THEN
98119 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98120 END IF;
98121
98122 --
98123
98124
98125 --
98126 AcctLineType_72 (
98127 p_application_id => p_application_id
98128 ,p_event_id => l_event_id
98129 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98130 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98131 ,p_actual_flag => l_actual_flag
98132 ,p_balance_type_code => l_balance_type_code
98133 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98134
98135 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98136 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98137 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98138 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98139 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98140 , p_source_51 => l_array_source_51(Idx)
98141 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98142 , p_source_52 => l_array_source_52(Idx)
98143 , p_source_53 => l_array_source_53(Idx)
98144 , p_source_54 => l_array_source_54(Idx)
98145 , p_source_55 => l_array_source_55(Idx)
98146 , p_source_56 => l_array_source_56(Idx)
98147 , p_source_57 => l_array_source_57(Idx)
98148 , p_source_58 => l_array_source_58(Idx)
98149 , p_source_59 => l_array_source_59(Idx)
98150 , p_source_60 => l_array_source_60(Idx)
98151 , p_source_64 => l_array_source_64(Idx)
98152 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98153 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98154 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98155 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98156 , p_source_68 => l_array_source_68(Idx)
98157 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98158 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98159 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98160 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98161 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98162 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98163 , p_source_124 => l_array_source_124(Idx)
98164 );
98165 If(l_balance_type_code = 'A') THEN
98166 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98167 END IF;
98168
98169 --
98170
98171
98172 --
98173 AcctLineType_73 (
98174 p_application_id => p_application_id
98175 ,p_event_id => l_event_id
98176 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98177 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98178 ,p_actual_flag => l_actual_flag
98179 ,p_balance_type_code => l_balance_type_code
98180 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98181
98182 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98183 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
98184 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98185 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98186 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98187 , p_source_51 => l_array_source_51(Idx)
98188 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98189 , p_source_52 => l_array_source_52(Idx)
98190 , p_source_53 => l_array_source_53(Idx)
98191 , p_source_54 => l_array_source_54(Idx)
98192 , p_source_55 => l_array_source_55(Idx)
98193 , p_source_56 => l_array_source_56(Idx)
98194 , p_source_57 => l_array_source_57(Idx)
98195 , p_source_58 => l_array_source_58(Idx)
98196 , p_source_59 => l_array_source_59(Idx)
98197 , p_source_60 => l_array_source_60(Idx)
98198 , p_source_64 => l_array_source_64(Idx)
98199 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98200 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98201 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98202 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98203 , p_source_68 => l_array_source_68(Idx)
98207 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98204 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
98205 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
98206 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98208 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98209 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98210 , p_source_124 => l_array_source_124(Idx)
98211 );
98212 If(l_balance_type_code = 'A') THEN
98213 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98214 END IF;
98215
98216 --
98217
98218
98219 --
98220 AcctLineType_93 (
98221 p_application_id => p_application_id
98222 ,p_event_id => l_event_id
98223 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98224 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98225 ,p_actual_flag => l_actual_flag
98226 ,p_balance_type_code => l_balance_type_code
98227 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98228
98229 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98230 , p_source_21 => l_array_source_21(Idx)
98231 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98232 , p_source_51 => l_array_source_51(Idx)
98233 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98234 , p_source_52 => l_array_source_52(Idx)
98235 , p_source_53 => l_array_source_53(Idx)
98236 , p_source_54 => l_array_source_54(Idx)
98237 , p_source_55 => l_array_source_55(Idx)
98238 , p_source_56 => l_array_source_56(Idx)
98239 , p_source_57 => l_array_source_57(Idx)
98240 , p_source_58 => l_array_source_58(Idx)
98241 , p_source_59 => l_array_source_59(Idx)
98242 , p_source_60 => l_array_source_60(Idx)
98243 , p_source_64 => l_array_source_64(Idx)
98244 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98245 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98246 , p_source_68 => l_array_source_68(Idx)
98247 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98248 );
98249 If(l_balance_type_code = 'A') THEN
98250 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98251 END IF;
98252
98253 --
98254
98255
98256 --
98257 AcctLineType_94 (
98258 p_application_id => p_application_id
98259 ,p_event_id => l_event_id
98260 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98261 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98262 ,p_actual_flag => l_actual_flag
98263 ,p_balance_type_code => l_balance_type_code
98264 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98265
98266 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98267 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98268 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98269 , p_source_21 => l_array_source_21(Idx)
98270 , p_source_29 => l_array_source_29(Idx)
98271 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
98272 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98273 , p_source_51 => l_array_source_51(Idx)
98274 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98275 , p_source_52 => l_array_source_52(Idx)
98276 , p_source_53 => l_array_source_53(Idx)
98277 , p_source_54 => l_array_source_54(Idx)
98278 , p_source_55 => l_array_source_55(Idx)
98279 , p_source_56 => l_array_source_56(Idx)
98280 , p_source_57 => l_array_source_57(Idx)
98281 , p_source_58 => l_array_source_58(Idx)
98282 , p_source_59 => l_array_source_59(Idx)
98283 , p_source_60 => l_array_source_60(Idx)
98284 , p_source_64 => l_array_source_64(Idx)
98285 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98286 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98287 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98288 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98289 , p_source_68 => l_array_source_68(Idx)
98290 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98291 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98292 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98293 );
98294 If(l_balance_type_code = 'A') THEN
98295 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98296 END IF;
98297
98298 --
98299
98300
98301 --
98302 AcctLineType_96 (
98303 p_application_id => p_application_id
98304 ,p_event_id => l_event_id
98305 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98306 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98307 ,p_actual_flag => l_actual_flag
98308 ,p_balance_type_code => l_balance_type_code
98309 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98310
98311 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98312 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98313 , p_source_29 => l_array_source_29(Idx)
98314 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
98315 , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
98316 , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
98317 , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
98318 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98319 , p_source_51 => l_array_source_51(Idx)
98320 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98324 , p_source_56 => l_array_source_56(Idx)
98321 , p_source_52 => l_array_source_52(Idx)
98322 , p_source_54 => l_array_source_54(Idx)
98323 , p_source_55 => l_array_source_55(Idx)
98325 , p_source_57 => l_array_source_57(Idx)
98326 , p_source_58 => l_array_source_58(Idx)
98327 , p_source_59 => l_array_source_59(Idx)
98328 , p_source_60 => l_array_source_60(Idx)
98329 , p_source_64 => l_array_source_64(Idx)
98330 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98331 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98332 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98333 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98334 , p_source_68 => l_array_source_68(Idx)
98335 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98336 , p_source_135 => l_array_source_135(Idx)
98337 );
98338 If(l_balance_type_code = 'A') THEN
98339 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98340 END IF;
98341
98342 --
98343
98344
98345 --
98346 AcctLineType_99 (
98347 p_application_id => p_application_id
98348 ,p_event_id => l_event_id
98349 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98350 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98351 ,p_actual_flag => l_actual_flag
98352 ,p_balance_type_code => l_balance_type_code
98353 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98354
98355 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98356 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98357 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98358 , p_source_29 => l_array_source_29(Idx)
98359 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
98360 , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
98361 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98362 , p_source_51 => l_array_source_51(Idx)
98363 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98364 , p_source_52 => l_array_source_52(Idx)
98365 , p_source_53 => l_array_source_53(Idx)
98366 , p_source_54 => l_array_source_54(Idx)
98367 , p_source_55 => l_array_source_55(Idx)
98368 , p_source_56 => l_array_source_56(Idx)
98369 , p_source_57 => l_array_source_57(Idx)
98370 , p_source_58 => l_array_source_58(Idx)
98371 , p_source_59 => l_array_source_59(Idx)
98372 , p_source_60 => l_array_source_60(Idx)
98373 , p_source_64 => l_array_source_64(Idx)
98374 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98375 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98376 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98377 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98378 , p_source_68 => l_array_source_68(Idx)
98379 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98380 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98381 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98382 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98383 , p_source_135 => l_array_source_135(Idx)
98384 , p_source_140 => l_array_source_140(Idx)
98385 );
98386 If(l_balance_type_code = 'A') THEN
98387 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98388 END IF;
98389
98390 --
98391
98392
98393 --
98394 AcctLineType_114 (
98395 p_application_id => p_application_id
98396 ,p_event_id => l_event_id
98397 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98398 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98399 ,p_actual_flag => l_actual_flag
98400 ,p_balance_type_code => l_balance_type_code
98401 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98402
98403 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
98404 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
98405 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
98406 , p_source_29 => l_array_source_29(Idx)
98407 , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
98408 , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
98409 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
98410 , p_source_51 => l_array_source_51(Idx)
98411 , p_source_51_meaning => l_array_source_51_meaning(Idx)
98412 , p_source_52 => l_array_source_52(Idx)
98413 , p_source_53 => l_array_source_53(Idx)
98414 , p_source_54 => l_array_source_54(Idx)
98415 , p_source_55 => l_array_source_55(Idx)
98416 , p_source_56 => l_array_source_56(Idx)
98417 , p_source_57 => l_array_source_57(Idx)
98418 , p_source_58 => l_array_source_58(Idx)
98419 , p_source_59 => l_array_source_59(Idx)
98420 , p_source_60 => l_array_source_60(Idx)
98421 , p_source_64 => l_array_source_64(Idx)
98422 , p_source_64_meaning => l_array_source_64_meaning(Idx)
98423 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
98424 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
98425 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
98426 , p_source_68 => l_array_source_68(Idx)
98427 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
98428 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
98429 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
98430 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
98431 , p_source_135 => l_array_source_135(Idx)
98435 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98432 , p_source_140 => l_array_source_140(Idx)
98433 );
98434 If(l_balance_type_code = 'A') THEN
98436 END IF;
98437
98438 --
98439
98440 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
98441 -- or secondary ledger that has different currency with primary
98442 -- or alc that is calculated by sla
98443 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98444 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y'))
98445
98446 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
98447 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
98448 AND (l_actual_flag = 'A')) THEN
98449 XLA_AE_LINES_PKG.CreateGainOrLossLines(
98450 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
98451 ,p_application_id => p_application_id
98452 ,p_amb_context_code => 'DEFAULT'
98453 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
98454 ,p_event_class_code => C_EVENT_CLASS_CODE
98455 ,p_event_type_code => C_EVENT_TYPE_CODE
98456
98457 ,p_gain_ccid => -1
98458 ,p_loss_ccid => -1
98459
98460 ,p_actual_flag => l_actual_flag
98461 ,p_enc_flag => null
98462 ,p_actual_g_l_ref => l_actual_gain_loss_ref
98463 ,p_enc_g_l_ref => null
98464 );
98465 END IF;
98466 END IF;
98467 END IF;
98468
98469 ELSE
98470 --
98471 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
98472 --
98473 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98474 trace
98475 (p_msg => 'Trancaction revesal option is Y'
98476 ,p_level => C_LEVEL_STATEMENT
98477 ,p_module => l_log_module);
98478 END IF;
98479 END IF;
98480
98481 END LOOP;
98482 l_result := XLA_AE_LINES_PKG.InsertLines ;
98483 end loop;
98484 close line_cur;
98485
98486
98487 --
98488 -- insert headers into xla_ae_headers_gt table
98489 --
98490 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
98491
98492 -- insert into errors table here.
98493
98494 END LOOP;
98495
98496 --
98497 -- 4865292
98498 --
98499 -- Compare g_hdr_extract_count with event count in
98500 -- CreateHeadersAndLines.
98501 --
98502 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
98503
98504 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98505 trace (p_msg => '# rows extracted from header extract objects '
98506 || ' (running total): '
98507 || g_hdr_extract_count
98508 ,p_level => C_LEVEL_STATEMENT
98509 ,p_module => l_log_module);
98510 END IF;
98511
98512 CLOSE header_cur;
98513 --
98514
98515 --
98516 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98517 trace
98518 (p_msg => 'END of EventClass_166'
98519 ,p_level => C_LEVEL_PROCEDURE
98520 ,p_module => l_log_module);
98521 END IF;
98522 --
98523 RETURN l_result;
98524 EXCEPTION
98525 WHEN xla_exceptions_pkg.application_exception THEN
98526
98527 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
98528
98529
98530 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
98531
98532 RAISE;
98533
98534 WHEN NO_DATA_FOUND THEN
98535
98536 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
98537 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
98538
98539 FOR header_record IN header_cur
98540 LOOP
98541 l_array_header_events(header_record.event_id) := header_record.event_id;
98542 END LOOP;
98543
98544 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
98545 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
98546
98547 fnd_file.put_line(fnd_file.LOG, ' ');
98548 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
98549 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
98550 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
98551
98552 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
98553 LOOP
98554 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
98555 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
98556 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
98557 END IF;
98558 END LOOP;
98559
98560 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
98561 fnd_file.put_line(fnd_file.LOG, ' ');
98562
98563
98564 xla_exceptions_pkg.raise_message
98565 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_166');
98566
98567
98568 WHEN OTHERS THEN
98569 xla_exceptions_pkg.raise_message
98570 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_166');
98574 ---------------------------------------
98571 END EventClass_166;
98572 --
98573
98575 --
98576 -- PRIVATE PROCEDURE
98577 -- insert_sources_167
98578 --
98579 ----------------------------------------
98580 --
98581 PROCEDURE insert_sources_167(
98582 p_target_ledger_id IN NUMBER
98583 , p_language IN VARCHAR2
98584 , p_sla_ledger_id IN NUMBER
98585 , p_pad_start_date IN DATE
98586 , p_pad_end_date IN DATE
98587 )
98588 IS
98589
98590 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS_ALL';
98591 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS';
98592 p_apps_owner VARCHAR2(30);
98593 l_log_module VARCHAR2(240);
98594 BEGIN
98595 IF g_log_enabled THEN
98596 l_log_module := C_DEFAULT_MODULE||'.insert_sources_167';
98597 END IF;
98598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98599
98600 trace
98601 (p_msg => 'BEGIN of insert_sources_167'
98602 ,p_level => C_LEVEL_PROCEDURE
98603 ,p_module => l_log_module);
98604
98605 END IF;
98606
98607 -- select APPS owner
98608 SELECT oracle_username
98609 INTO p_apps_owner
98610 FROM fnd_oracle_userid
98611 WHERE read_only_flag = 'U'
98612 ;
98613
98614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98615 trace
98616 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
98617 ' - p_language = '||p_language||
98618 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
98619 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
98620 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
98621 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
98622 ,p_level => C_LEVEL_STATEMENT
98623 ,p_module => l_log_module);
98624 END IF;
98625
98626
98627 --
98628 INSERT INTO xla_diag_sources --hdr2
98629 (
98630 event_id
98631 , ledger_id
98632 , sla_ledger_id
98633 , description_language
98634 , object_name
98635 , object_type_code
98636 , line_number
98637 , source_application_id
98638 , source_type_code
98639 , source_code
98640 , source_value
98641 , source_meaning
98642 , created_by
98643 , creation_date
98644 , last_update_date
98645 , last_updated_by
98646 , last_update_login
98647 , program_update_date
98648 , program_application_id
98649 , program_id
98650 , request_id
98651 )
98652 SELECT
98653 event_id
98654 , p_target_ledger_id
98655 , p_sla_ledger_id
98656 , p_language
98657 , object_name
98658 , object_type_code
98659 , line_number
98660 , source_application_id
98661 , source_type_code
98662 , source_code
98663 , SUBSTR(source_value ,1,1996)
98664 , SUBSTR(source_meaning ,1,200)
98665 , xla_environment_pkg.g_Usr_Id
98666 , TRUNC(SYSDATE)
98667 , TRUNC(SYSDATE)
98668 , xla_environment_pkg.g_Usr_Id
98669 , xla_environment_pkg.g_Login_Id
98670 , TRUNC(SYSDATE)
98671 , xla_environment_pkg.g_Prog_Appl_Id
98672 , xla_environment_pkg.g_Prog_Id
98673 , xla_environment_pkg.g_Req_Id
98674 FROM (
98675 SELECT xet.event_id event_id
98676 , 0 line_number
98677 , CASE r
98678 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98679 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98680 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98681 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98682 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98683 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98684 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98685 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98686 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98687 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98688 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98689 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98690 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98691 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98692 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98693 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98694 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98695 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98696 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98697 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98698 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98699 WHEN 22 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98700 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98701 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98702 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
98706 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98703 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98704 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98705 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98707 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98708 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98709 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98710 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98711 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98712 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98713 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98714 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98715 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
98716
98717 ELSE null
98718 END object_name
98719 , CASE r
98720 WHEN 1 THEN 'HEADER'
98721 WHEN 2 THEN 'HEADER'
98722 WHEN 3 THEN 'HEADER'
98723 WHEN 4 THEN 'HEADER'
98724 WHEN 5 THEN 'HEADER'
98725 WHEN 6 THEN 'HEADER'
98726 WHEN 7 THEN 'HEADER'
98727 WHEN 8 THEN 'HEADER'
98728 WHEN 9 THEN 'HEADER'
98729 WHEN 10 THEN 'HEADER'
98730 WHEN 11 THEN 'HEADER'
98731 WHEN 12 THEN 'HEADER'
98732 WHEN 13 THEN 'HEADER'
98733 WHEN 14 THEN 'HEADER'
98734 WHEN 15 THEN 'HEADER'
98735 WHEN 16 THEN 'HEADER'
98736 WHEN 17 THEN 'HEADER'
98737 WHEN 18 THEN 'HEADER'
98738 WHEN 19 THEN 'HEADER'
98739 WHEN 20 THEN 'HEADER'
98740 WHEN 21 THEN 'HEADER'
98741 WHEN 22 THEN 'HEADER'
98742 WHEN 23 THEN 'HEADER'
98743 WHEN 24 THEN 'HEADER'
98744 WHEN 25 THEN 'HEADER'
98745 WHEN 26 THEN 'HEADER'
98746 WHEN 27 THEN 'HEADER'
98747 WHEN 28 THEN 'HEADER'
98748 WHEN 29 THEN 'HEADER'
98749 WHEN 30 THEN 'HEADER'
98750 WHEN 31 THEN 'HEADER'
98751 WHEN 32 THEN 'HEADER'
98752 WHEN 33 THEN 'HEADER'
98753 WHEN 34 THEN 'HEADER'
98754 WHEN 35 THEN 'HEADER'
98755 WHEN 36 THEN 'HEADER'
98756 WHEN 37 THEN 'HEADER'
98757 WHEN 38 THEN 'HEADER'
98758
98759 ELSE null
98760 END object_type_code
98761 , CASE r
98762 WHEN 1 THEN '200'
98763 WHEN 2 THEN '200'
98764 WHEN 3 THEN '200'
98765 WHEN 4 THEN '200'
98766 WHEN 5 THEN '200'
98767 WHEN 6 THEN '200'
98768 WHEN 7 THEN '200'
98769 WHEN 8 THEN '200'
98770 WHEN 9 THEN '200'
98771 WHEN 10 THEN '200'
98772 WHEN 11 THEN '200'
98773 WHEN 12 THEN '200'
98774 WHEN 13 THEN '200'
98775 WHEN 14 THEN '200'
98776 WHEN 15 THEN '200'
98777 WHEN 16 THEN '200'
98778 WHEN 17 THEN '200'
98779 WHEN 18 THEN '200'
98780 WHEN 19 THEN '200'
98781 WHEN 20 THEN '200'
98782 WHEN 21 THEN '200'
98783 WHEN 22 THEN '200'
98784 WHEN 23 THEN '200'
98785 WHEN 24 THEN '200'
98786 WHEN 25 THEN '200'
98787 WHEN 26 THEN '200'
98788 WHEN 27 THEN '200'
98789 WHEN 28 THEN '200'
98790 WHEN 29 THEN '200'
98791 WHEN 30 THEN '200'
98792 WHEN 31 THEN '200'
98793 WHEN 32 THEN '200'
98794 WHEN 33 THEN '200'
98795 WHEN 34 THEN '200'
98796 WHEN 35 THEN '200'
98797 WHEN 36 THEN '200'
98798 WHEN 37 THEN '200'
98799 WHEN 38 THEN '200'
98800
98801 ELSE null
98802 END source_application_id
98803 , 'S' source_type_code
98804 , CASE r
98805 WHEN 1 THEN 'DOC_SEQUENCE_NAME'
98806 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE'
98807 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER'
98808 WHEN 4 THEN 'AC_CHECK_DATE'
98809 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME'
98810 WHEN 6 THEN 'AC_CURRENCY_CODE'
98811 WHEN 7 THEN 'CGAC_AP_ASSET_CCID'
98812 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID'
98813 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD'
98814 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
98815 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID'
98816 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID'
98817 WHEN 13 THEN 'CGAC_FUTURE_DATED_PMT_CCID'
98818 WHEN 14 THEN 'ASP_FD_PMT_ACCT_SOURCE'
98819 WHEN 15 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID'
98823 WHEN 19 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG'
98820 WHEN 16 THEN 'POS_FDP_CCID'
98821 WHEN 17 THEN 'ASP_INTEREST_CCID'
98822 WHEN 18 THEN 'ASP_PRORATE_INT_ACROSS_DISTS'
98824 WHEN 20 THEN 'CGAC_CASH_CLEARING_CCID'
98825 WHEN 21 THEN 'FSP_RETAINAGE_ACCOUNT'
98826 WHEN 22 THEN 'ASP_DISC_TAKEN_CCID'
98827 WHEN 23 THEN 'ASP_AUTO_OFFSET_FLAG'
98828 WHEN 24 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID'
98829 WHEN 25 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
98830 WHEN 26 THEN 'AC_VENDOR_ID'
98831 WHEN 27 THEN 'AC_VENDOR_SITE_ID'
98832 WHEN 28 THEN 'THIRD_PARTY_TYPE'
98833 WHEN 29 THEN 'PAYMENT_TYPE'
98834 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
98835 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE'
98836 WHEN 32 THEN 'PAYMENT_PROCESSING_TYPE'
98837 WHEN 33 THEN 'AC_EXCHANGE_DATE'
98838 WHEN 34 THEN 'AC_EXCHANGE_RATE'
98839 WHEN 35 THEN 'AC_EXCHANGE_RATE_TYPE'
98840 WHEN 36 THEN 'AC_DOC_CATEGORY_CODE'
98841 WHEN 37 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
98842 WHEN 38 THEN 'TRANSAC_REVERSAL_FLAG'
98843
98844 ELSE null
98845 END source_code
98846 , CASE r
98847 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
98848 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
98849 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
98850 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
98851 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
98852 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
98853 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
98854 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
98855 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
98856 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
98857 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
98858 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
98859 WHEN 13 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
98860 WHEN 14 THEN TO_CHAR(h4.ASP_FD_PMT_ACCT_SOURCE)
98861 WHEN 15 THEN TO_CHAR(h4.FSP_FUTURE_DATED_PAYMENT_CCID)
98862 WHEN 16 THEN TO_CHAR(h2.POS_FDP_CCID)
98863 WHEN 17 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
98864 WHEN 18 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
98865 WHEN 19 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
98866 WHEN 20 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
98867 WHEN 21 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
98868 WHEN 22 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
98869 WHEN 23 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
98870 WHEN 24 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
98871 WHEN 25 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
98872 WHEN 26 THEN TO_CHAR(h2.AC_VENDOR_ID)
98873 WHEN 27 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
98874 WHEN 28 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
98875 WHEN 29 THEN TO_CHAR(h2.PAYMENT_TYPE)
98876 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
98877 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
98878 WHEN 32 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
98879 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
98880 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
98881 WHEN 35 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
98882 WHEN 36 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
98883 WHEN 37 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
98884 WHEN 38 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
98885
98886 ELSE null
98887 END source_value
98888 , CASE r
98889 WHEN 9 THEN fvl15.meaning
98890 WHEN 10 THEN fvl16.meaning
98891 WHEN 14 THEN fvl24.meaning
98892 WHEN 19 THEN fvl30.meaning
98893 WHEN 23 THEN fvl42.meaning
98894 WHEN 29 THEN fvl71.meaning
98895 WHEN 30 THEN fvl117.meaning
98896 WHEN 38 THEN fvl159.meaning
98897
98898 ELSE null
98899 END source_meaning
98900 FROM xla_events_gt xet
98901 , AP_PAYMENT_EXTRACT_HEADER_V h2
98902 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
98903 , fnd_lookup_values fvl15
98904 , fnd_lookup_values fvl16
98905 , fnd_lookup_values fvl24
98906 , fnd_lookup_values fvl30
98907 , fnd_lookup_values fvl42
98908 , fnd_lookup_values fvl71
98909 , fnd_lookup_values fvl117
98910 , fnd_lookup_values fvl159
98911 ,(select rownum r from all_objects where rownum <= 38 and owner = p_apps_owner)
98912 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
98913 AND xet.event_class_code = C_EVENT_CLASS_CODE
98914 AND h2.event_id = xet.event_id
98915 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
98916 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
98917 AND fvl15.view_application_id(+) = 200
98921 AND fvl16.view_application_id(+) = 200
98918 AND fvl15.language(+) = USERENV('LANG')
98919 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
98920 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
98922 AND fvl16.language(+) = USERENV('LANG')
98923 AND fvl24.lookup_type(+) = 'FUTURE PAY ACCT SOURCE'
98924 AND fvl24.lookup_code(+) = h4.ASP_FD_PMT_ACCT_SOURCE
98925 AND fvl24.view_application_id(+) = 200
98926 AND fvl24.language(+) = USERENV('LANG')
98927 AND fvl30.lookup_type(+) = 'YES_NO'
98928 AND fvl30.lookup_code(+) = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
98929 AND fvl30.view_application_id(+) = 0
98930 AND fvl30.language(+) = USERENV('LANG')
98931 AND fvl42.lookup_type(+) = 'YES_NO'
98932 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
98933 AND fvl42.view_application_id(+) = 0
98934 AND fvl42.language(+) = USERENV('LANG')
98935 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
98936 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
98937 AND fvl71.view_application_id(+) = 200
98938 AND fvl71.language(+) = USERENV('LANG')
98939 AND fvl117.lookup_type(+) = 'YES_NO'
98940 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
98941 AND fvl117.view_application_id(+) = 0
98942 AND fvl117.language(+) = USERENV('LANG')
98943 AND fvl159.lookup_type(+) = 'YES_NO'
98944 AND fvl159.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
98945 AND fvl159.view_application_id(+) = 0
98946 AND fvl159.language(+) = USERENV('LANG')
98947
98948 )
98949 ;
98950 --
98951 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98952
98953 trace
98954 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
98955 ,p_level => C_LEVEL_STATEMENT
98956 ,p_module => l_log_module);
98957
98958 END IF;
98959 --
98960
98961
98962
98963 --
98964 INSERT INTO xla_diag_sources --line2
98965 (
98966 event_id
98967 , ledger_id
98968 , sla_ledger_id
98969 , description_language
98970 , object_name
98971 , object_type_code
98972 , line_number
98973 , source_application_id
98974 , source_type_code
98975 , source_code
98976 , source_value
98977 , source_meaning
98978 , created_by
98979 , creation_date
98980 , last_update_date
98981 , last_updated_by
98982 , last_update_login
98983 , program_update_date
98984 , program_application_id
98985 , program_id
98986 , request_id
98987 )
98988 SELECT event_id
98989 , p_target_ledger_id
98990 , p_sla_ledger_id
98991 , p_language
98992 , object_name
98993 , object_type_code
98994 , line_number
98995 , source_application_id
98996 , source_type_code
98997 , source_code
98998 , SUBSTR(source_value,1,1996)
98999 , SUBSTR(source_meaning ,1,200)
99000 , xla_environment_pkg.g_Usr_Id
99001 , TRUNC(SYSDATE)
99002 , TRUNC(SYSDATE)
99003 , xla_environment_pkg.g_Usr_Id
99004 , xla_environment_pkg.g_Login_Id
99005 , TRUNC(SYSDATE)
99006 , xla_environment_pkg.g_Prog_Appl_Id
99007 , xla_environment_pkg.g_Prog_Id
99008 , xla_environment_pkg.g_Req_Id
99009 FROM (
99010 SELECT xet.event_id event_id
99011 , l1.line_number line_number
99012 , CASE r
99013 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99014 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99015 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99016 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99017 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V'
99018 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99019 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99020 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99021 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99022 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99023 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99024 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99025 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99026 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99027 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99028 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99029 WHEN 17 THEN 'AP_PO_HEADERS_EXTRACT_V'
99030 WHEN 18 THEN 'AP_PO_HEADERS_EXTRACT_V'
99031 WHEN 19 THEN 'AP_PO_HEADERS_EXTRACT_V'
99032 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99033 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99034 WHEN 22 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
99035 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
99036 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99037 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99038 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99039 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99040 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99041 WHEN 29 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
99045 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99042 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99043 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99044 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
99046
99047 ELSE null
99048 END object_name
99049 , CASE r
99050 WHEN 1 THEN 'LINE'
99051 WHEN 2 THEN 'LINE'
99052 WHEN 3 THEN 'LINE'
99053 WHEN 4 THEN 'LINE'
99054 WHEN 5 THEN 'LINE'
99055 WHEN 6 THEN 'LINE'
99056 WHEN 7 THEN 'LINE'
99057 WHEN 8 THEN 'LINE'
99058 WHEN 9 THEN 'LINE'
99059 WHEN 10 THEN 'LINE'
99060 WHEN 11 THEN 'LINE'
99061 WHEN 12 THEN 'LINE'
99062 WHEN 13 THEN 'LINE'
99063 WHEN 14 THEN 'LINE'
99064 WHEN 15 THEN 'LINE'
99065 WHEN 16 THEN 'LINE'
99066 WHEN 17 THEN 'LINE'
99067 WHEN 18 THEN 'LINE'
99068 WHEN 19 THEN 'LINE'
99069 WHEN 20 THEN 'LINE'
99070 WHEN 21 THEN 'LINE'
99071 WHEN 22 THEN 'LINE'
99072 WHEN 23 THEN 'LINE'
99073 WHEN 24 THEN 'LINE'
99074 WHEN 25 THEN 'LINE'
99075 WHEN 26 THEN 'LINE'
99076 WHEN 27 THEN 'LINE'
99077 WHEN 28 THEN 'LINE'
99078 WHEN 29 THEN 'LINE'
99079 WHEN 30 THEN 'LINE'
99080 WHEN 31 THEN 'LINE'
99081 WHEN 32 THEN 'LINE'
99082 WHEN 33 THEN 'LINE'
99083
99084 ELSE null
99085 END object_type_code
99086 , CASE r
99087 WHEN 1 THEN '200'
99088 WHEN 2 THEN '200'
99089 WHEN 3 THEN '200'
99090 WHEN 4 THEN '200'
99091 WHEN 5 THEN '200'
99092 WHEN 6 THEN '200'
99093 WHEN 7 THEN '200'
99094 WHEN 8 THEN '200'
99095 WHEN 9 THEN '200'
99096 WHEN 10 THEN '200'
99097 WHEN 11 THEN '200'
99098 WHEN 12 THEN '200'
99099 WHEN 13 THEN '200'
99100 WHEN 14 THEN '200'
99101 WHEN 15 THEN '200'
99102 WHEN 16 THEN '200'
99103 WHEN 17 THEN '200'
99104 WHEN 18 THEN '200'
99105 WHEN 19 THEN '200'
99106 WHEN 20 THEN '200'
99107 WHEN 21 THEN '200'
99108 WHEN 22 THEN '200'
99109 WHEN 23 THEN '200'
99110 WHEN 24 THEN '200'
99111 WHEN 25 THEN '200'
99112 WHEN 26 THEN '200'
99113 WHEN 27 THEN '200'
99114 WHEN 28 THEN '200'
99115 WHEN 29 THEN '200'
99116 WHEN 30 THEN '200'
99117 WHEN 31 THEN '200'
99118 WHEN 32 THEN '200'
99119 WHEN 33 THEN '200'
99120
99121 ELSE null
99122 END source_application_id
99123 , 'S' source_type_code
99124 , CASE r
99125 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
99126 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
99127 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
99128 WHEN 4 THEN 'AID_DIST_CCID'
99129 WHEN 5 THEN 'PO_NUMBER'
99130 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
99131 WHEN 7 THEN 'AID_RET_RELATED_DIST_CCID'
99132 WHEN 8 THEN 'AWT_RELATED_DIST_ACCOUNT'
99133 WHEN 9 THEN 'POD_CCID'
99134 WHEN 10 THEN 'PO_VARIANCE_ACCOUNT'
99135 WHEN 11 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
99136 WHEN 12 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
99137 WHEN 13 THEN 'APHD_AMOUNT'
99138 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID'
99139 WHEN 15 THEN 'APHD_PAYMENT_HIST_DIST_ID'
99140 WHEN 16 THEN 'DISTRIBUTION_LINK_TYPE'
99141 WHEN 17 THEN 'POH_RATE_DATE'
99142 WHEN 18 THEN 'POH_RATE'
99143 WHEN 19 THEN 'POH_RATE_TYPE'
99144 WHEN 20 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
99145 WHEN 21 THEN 'APHD_REV_PAY_HIST_DIST_ID'
99146 WHEN 22 THEN 'TAX_LINE_ID'
99147 WHEN 23 THEN 'SUMMARY_TAX_LINE_ID'
99148 WHEN 24 THEN 'APHD_INVOICE_DIST_AMOUNT'
99149 WHEN 25 THEN 'BUS_FLOW_INV_DIST_TYPE'
99150 WHEN 26 THEN 'BUS_FLOW_INV_ENTITY_CODE'
99151 WHEN 27 THEN 'BUS_FLOW_INV_DIST_ID'
99152 WHEN 28 THEN 'BUS_FLOW_INV_ID'
99153 WHEN 29 THEN 'REC_NREC_TAX_DIST_ID'
99154 WHEN 30 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
99155 WHEN 31 THEN 'AI_INVOICE_TYPE_PAID'
99156 WHEN 32 THEN 'BF_RETAINED_INV_DIST_ID_PMT'
99160 END source_code
99157 WHEN 33 THEN 'BF_RETAINED_INV_ID_PMT'
99158
99159 ELSE null
99161 , CASE r
99162 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
99163 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
99164 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
99165 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
99166 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
99167 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
99168 WHEN 7 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
99169 WHEN 8 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
99170 WHEN 9 THEN TO_CHAR(l1.POD_CCID)
99171 WHEN 10 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
99172 WHEN 11 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
99173 WHEN 12 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
99174 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
99175 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
99176 WHEN 15 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
99177 WHEN 16 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
99178 WHEN 17 THEN TO_CHAR(l3.POH_RATE_DATE)
99179 WHEN 18 THEN TO_CHAR(l3.POH_RATE)
99180 WHEN 19 THEN TO_CHAR(l3.POH_RATE_TYPE)
99181 WHEN 20 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
99182 WHEN 21 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
99183 WHEN 22 THEN TO_CHAR(l5.TAX_LINE_ID)
99184 WHEN 23 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
99185 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
99186 WHEN 25 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
99187 WHEN 26 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
99188 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
99189 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
99190 WHEN 29 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
99191 WHEN 30 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
99192 WHEN 31 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
99193 WHEN 32 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_PMT)
99194 WHEN 33 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_PMT)
99195
99196 ELSE null
99197 END source_value
99198 , CASE r
99199 WHEN 1 THEN fvl19.meaning
99200 WHEN 6 THEN fvl32.meaning
99201 WHEN 11 THEN fvl51.meaning
99202 WHEN 20 THEN fvl64.meaning
99203 WHEN 30 THEN fvl111.meaning
99204 WHEN 31 THEN fvl112.meaning
99205
99206 ELSE null
99207 END source_meaning
99208 FROM xla_events_gt xet
99209 , AP_PAYMENT_EXTRACT_DETAILS_V l1
99210 , AP_PO_HEADERS_EXTRACT_V l3
99211 , ZX_AP_DEF_TAX_EXTRACT_V l5
99212 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
99213 , fnd_lookup_values fvl19
99214 , fnd_lookup_values fvl32
99215 , fnd_lookup_values fvl51
99216 , fnd_lookup_values fvl64
99217 , fnd_lookup_values fvl111
99218 , fnd_lookup_values fvl112
99219 , (select rownum r from all_objects where rownum <= 33 and owner = p_apps_owner)
99220 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
99221 AND xet.event_class_code = C_EVENT_CLASS_CODE
99222 AND l1.event_id = xet.event_id
99223 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
99224 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
99225 AND fvl19.view_application_id(+) = 201
99226 AND fvl19.language(+) = USERENV('LANG')
99227 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
99228 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
99229 AND fvl32.view_application_id(+) = 200
99230 AND fvl32.language(+) = USERENV('LANG')
99231 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
99232 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
99233 AND fvl51.view_application_id(+) = 200
99234 AND fvl51.language(+) = USERENV('LANG')
99235 AND fvl64.lookup_type(+) = 'YES_NO'
99236 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
99237 AND fvl64.view_application_id(+) = 0
99238 AND fvl64.language(+) = USERENV('LANG')
99239 AND fvl111.lookup_type(+) = 'YES_NO'
99240 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
99241 AND fvl111.view_application_id(+) = 0
99242 AND fvl111.language(+) = USERENV('LANG')
99243 AND fvl112.lookup_type(+) = 'INVOICE TYPE'
99244 AND fvl112.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
99245 AND fvl112.view_application_id(+) = 200
99246 AND fvl112.language(+) = USERENV('LANG')
99247
99248 )
99249 ;
99250 --
99251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99252
99253 trace
99254 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
99255 ,p_level => C_LEVEL_STATEMENT
99256 ,p_module => l_log_module);
99257
99258 END IF;
99259
99260
99261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99265 ,p_module => l_log_module);
99262 trace
99263 (p_msg => 'END of insert_sources_167'
99264 ,p_level => C_LEVEL_PROCEDURE
99266 END IF;
99267 EXCEPTION
99268 WHEN xla_exceptions_pkg.application_exception THEN
99269 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99270 trace
99271 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99272 ,p_level => C_LEVEL_EXCEPTION
99273 ,p_module => l_log_module);
99274 END IF;
99275 RAISE;
99276 WHEN OTHERS THEN
99277 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99278 trace
99279 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99280 ,p_level => C_LEVEL_EXCEPTION
99281 ,p_module => l_log_module);
99282 END IF;
99283 xla_exceptions_pkg.raise_message
99284 (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_167');
99285 END insert_sources_167;
99286 --
99287
99288 ---------------------------------------
99289 --
99290 -- PRIVATE FUNCTION
99291 -- EventClass_167
99292 --
99293 ----------------------------------------
99294 --
99295 FUNCTION EventClass_167
99296 (p_application_id IN NUMBER
99297 ,p_base_ledger_id IN NUMBER
99298 ,p_target_ledger_id IN NUMBER
99299 ,p_language IN VARCHAR2
99300 ,p_currency_code IN VARCHAR2
99301 ,p_sla_ledger_id IN NUMBER
99302 ,p_pad_start_date IN DATE
99303 ,p_pad_end_date IN DATE
99304 ,p_primary_ledger_id IN NUMBER)
99305 RETURN BOOLEAN IS
99306 --
99307 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS_ALL';
99308 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PAYMENTS';
99309
99310 l_calculate_acctd_flag VARCHAR2(1) :='N';
99311 l_calculate_g_l_flag VARCHAR2(1) :='N';
99312 --
99313 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99314 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99315 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99316 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99317 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99318 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99319 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99320 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99321 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99322 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99323 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99324 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99325 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99326 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99327 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99328 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99329 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99330 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99331 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99332 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99333 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99334 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99335 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
99336 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99337 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
99338 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
99339
99340 l_event_id NUMBER;
99341 l_previous_event_id NUMBER;
99342 l_first_event_id NUMBER;
99343 l_last_event_id NUMBER;
99344
99345 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
99346 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
99347 --
99348 --
99349 l_result BOOLEAN := TRUE;
99350 l_rows NUMBER := 1000;
99351 l_event_type_name VARCHAR2(80) := 'All';
99352 l_event_class_name VARCHAR2(80) := 'Payments';
99353 l_description VARCHAR2(4000);
99354 l_transaction_reversal NUMBER;
99355 l_ae_header_id NUMBER;
99356 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
99357 l_log_module VARCHAR2(240);
99358 --
99359 l_acct_reversal_source VARCHAR2(30);
99360 l_trx_reversal_source VARCHAR2(30);
99361
99362 l_continue_with_lines BOOLEAN := TRUE;
99363 --
99364 l_acc_rev_gl_date_source DATE; -- 4262811
99365 --
99366 type t_array_event_id is table of number index by binary_integer;
99367
99368 l_rec_array_event t_rec_array_event;
99369 l_null_rec_array_event t_rec_array_event;
99370 l_array_ae_header_id xla_number_array_type;
99371 l_actual_flag VARCHAR2(1) := NULL;
99375
99372 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
99373 l_balance_type_code VARCHAR2(1) :=NULL;
99374 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
99376 --
99377 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
99378 --
99379
99380 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
99381 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
99382 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
99383 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
99384 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
99385 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
99386 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
99387 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
99388 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
99389 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
99390 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
99391 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
99392 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
99393 TYPE t_array_source_24 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
99394 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
99395 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
99396 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
99397 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
99398 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
99399 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
99400 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99401 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
99402 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
99403 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
99404 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
99405 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
99406 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
99407 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
99408 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
99409 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99410 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
99411 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
99412 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
99413 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
99414 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99415 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
99416 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
99417 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
99418
99419 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
99420 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
99421 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
99422 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
99423 TYPE t_array_source_31 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
99424 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
99425 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
99426 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99427 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
99431 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
99428 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
99429 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
99430 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
99432 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
99433 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99434 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
99435 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
99436 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
99437 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99438 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99439 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99440 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
99441 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
99442 TYPE t_array_source_72 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
99443 TYPE t_array_source_73 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
99444 TYPE t_array_source_74 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
99445 TYPE t_array_source_75 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99446 TYPE t_array_source_76 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
99447 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99448 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
99449 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
99450 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
99451 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
99452
99453 l_array_source_5 t_array_source_5;
99454 l_array_source_8 t_array_source_8;
99455 l_array_source_9 t_array_source_9;
99456 l_array_source_10 t_array_source_10;
99457 l_array_source_11 t_array_source_11;
99458 l_array_source_12 t_array_source_12;
99459 l_array_source_13 t_array_source_13;
99460 l_array_source_14 t_array_source_14;
99461 l_array_source_15 t_array_source_15;
99462 l_array_source_15_meaning t_array_lookup_meaning;
99463 l_array_source_16 t_array_source_16;
99464 l_array_source_16_meaning t_array_lookup_meaning;
99465 l_array_source_17 t_array_source_17;
99466 l_array_source_20 t_array_source_20;
99467 l_array_source_23 t_array_source_23;
99468 l_array_source_24 t_array_source_24;
99469 l_array_source_24_meaning t_array_lookup_meaning;
99470 l_array_source_25 t_array_source_25;
99471 l_array_source_26 t_array_source_26;
99472 l_array_source_27 t_array_source_27;
99473 l_array_source_28 t_array_source_28;
99474 l_array_source_30 t_array_source_30;
99475 l_array_source_30_meaning t_array_lookup_meaning;
99476 l_array_source_33 t_array_source_33;
99477 l_array_source_34 t_array_source_34;
99478 l_array_source_39 t_array_source_39;
99479 l_array_source_42 t_array_source_42;
99480 l_array_source_42_meaning t_array_lookup_meaning;
99481 l_array_source_43 t_array_source_43;
99482 l_array_source_50 t_array_source_50;
99483 l_array_source_65 t_array_source_65;
99484 l_array_source_66 t_array_source_66;
99485 l_array_source_67 t_array_source_67;
99486 l_array_source_71 t_array_source_71;
99487 l_array_source_71_meaning t_array_lookup_meaning;
99488 l_array_source_117 t_array_source_117;
99489 l_array_source_117_meaning t_array_lookup_meaning;
99490 l_array_source_118 t_array_source_118;
99491 l_array_source_120 t_array_source_120;
99492 l_array_source_121 t_array_source_121;
99493 l_array_source_122 t_array_source_122;
99494 l_array_source_123 t_array_source_123;
99495 l_array_source_156 t_array_source_156;
99496 l_array_source_157 t_array_source_157;
99497 l_array_source_159 t_array_source_159;
99498 l_array_source_159_meaning t_array_lookup_meaning;
99499
99500 l_array_source_19 t_array_source_19;
99501 l_array_source_19_meaning t_array_lookup_meaning;
99502 l_array_source_21 t_array_source_21;
99503 l_array_source_22 t_array_source_22;
99504 l_array_source_29 t_array_source_29;
99508 l_array_source_35 t_array_source_35;
99505 l_array_source_31 t_array_source_31;
99506 l_array_source_32 t_array_source_32;
99507 l_array_source_32_meaning t_array_lookup_meaning;
99509 l_array_source_36 t_array_source_36;
99510 l_array_source_40 t_array_source_40;
99511 l_array_source_41 t_array_source_41;
99512 l_array_source_51 t_array_source_51;
99513 l_array_source_51_meaning t_array_lookup_meaning;
99514 l_array_source_52 t_array_source_52;
99515 l_array_source_53 t_array_source_53;
99516 l_array_source_54 t_array_source_54;
99517 l_array_source_59 t_array_source_59;
99518 l_array_source_60 t_array_source_60;
99519 l_array_source_61 t_array_source_61;
99520 l_array_source_62 t_array_source_62;
99521 l_array_source_63 t_array_source_63;
99522 l_array_source_64 t_array_source_64;
99523 l_array_source_64_meaning t_array_lookup_meaning;
99524 l_array_source_68 t_array_source_68;
99525 l_array_source_69 t_array_source_69;
99526 l_array_source_70 t_array_source_70;
99527 l_array_source_72 t_array_source_72;
99528 l_array_source_73 t_array_source_73;
99529 l_array_source_74 t_array_source_74;
99530 l_array_source_75 t_array_source_75;
99531 l_array_source_76 t_array_source_76;
99532 l_array_source_77 t_array_source_77;
99533 l_array_source_111 t_array_source_111;
99534 l_array_source_111_meaning t_array_lookup_meaning;
99535 l_array_source_112 t_array_source_112;
99536 l_array_source_112_meaning t_array_lookup_meaning;
99537 l_array_source_153 t_array_source_153;
99538 l_array_source_154 t_array_source_154;
99539
99540 --
99541 CURSOR header_cur
99542 IS
99543 SELECT /*+ leading(xet) cardinality(xet,1) */
99544 -- Event Class Code: PAYMENTS
99545 xet.entity_id
99546 ,xet.legal_entity_id
99547 ,xet.entity_code
99548 ,xet.transaction_number
99549 ,xet.event_id
99550 ,xet.event_class_code
99551 ,xet.event_type_code
99552 ,xet.event_number
99553 ,xet.event_date
99554 ,xet.transaction_date
99555 ,xet.reference_num_1
99556 ,xet.reference_num_2
99557 ,xet.reference_num_3
99558 ,xet.reference_num_4
99559 ,xet.reference_char_1
99560 ,xet.reference_char_2
99561 ,xet.reference_char_3
99562 ,xet.reference_char_4
99563 ,xet.reference_date_1
99564 ,xet.reference_date_2
99565 ,xet.reference_date_3
99566 ,xet.reference_date_4
99567 ,xet.event_created_by
99568 ,xet.budgetary_control_flag
99569 , h2.DOC_SEQUENCE_NAME source_5
99570 , h2.AC_DOC_SEQUENCE_VALUE source_8
99571 , h2.PAYMENT_TRANSACTION_NUMBER source_9
99572 , h2.AC_CHECK_DATE source_10
99573 , h2.CBA_BANK_ACCOUNT_NAME source_11
99574 , h2.AC_CURRENCY_CODE source_12
99575 , h2.CGAC_AP_ASSET_CCID source_13
99576 , h4.FSP_DISC_TAKEN_CCID source_14
99577 , h4.ASP_DISCOUNT_DIST_METHOD source_15
99578 , fvl15.meaning source_15_meaning
99579 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_16
99580 , fvl16.meaning source_16_meaning
99581 , h4.ASP_RATE_VAR_GAIN_CCID source_17
99582 , h4.ASP_RATE_VAR_LOSS_CCID source_20
99583 , h2.CGAC_FUTURE_DATED_PMT_CCID source_23
99584 , h4.ASP_FD_PMT_ACCT_SOURCE source_24
99585 , fvl24.meaning source_24_meaning
99586 , h4.FSP_FUTURE_DATED_PAYMENT_CCID source_25
99587 , h2.POS_FDP_CCID source_26
99588 , h4.ASP_INTEREST_CCID source_27
99589 , h4.ASP_PRORATE_INT_ACROSS_DISTS source_28
99590 , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG source_30
99591 , fvl30.meaning source_30_meaning
99592 , h2.CGAC_CASH_CLEARING_CCID source_33
99593 , h4.FSP_RETAINAGE_ACCOUNT source_34
99594 , h4.ASP_DISC_TAKEN_CCID source_39
99595 , h4.ASP_AUTO_OFFSET_FLAG source_42
99596 , fvl42.meaning source_42_meaning
99597 , h2.PAYCARD_ACCRUED_ACCOUNT_CCID source_43
99598 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_50
99599 , h2.AC_VENDOR_ID source_65
99600 , h2.AC_VENDOR_SITE_ID source_66
99601 , h2.THIRD_PARTY_TYPE source_67
99602 , h2.PAYMENT_TYPE source_71
99603 , fvl71.meaning source_71_meaning
99604 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_117
99605 , fvl117.meaning source_117_meaning
99606 , h2.AC_FUTURE_PAY_DUE_DATE source_118
99607 , h2.PAYMENT_PROCESSING_TYPE source_120
99608 , h2.AC_EXCHANGE_DATE source_121
99609 , h2.AC_EXCHANGE_RATE source_122
99610 , h2.AC_EXCHANGE_RATE_TYPE source_123
99611 , h2.AC_DOC_CATEGORY_CODE source_156
99612 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_157
99613 , h2.TRANSAC_REVERSAL_FLAG source_159
99614 , fvl159.meaning source_159_meaning
99615 FROM xla_events_gt xet
99616 , AP_PAYMENT_EXTRACT_HEADER_V h2
99617 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
99618 , fnd_lookup_values fvl15
99619 , fnd_lookup_values fvl16
99620 , fnd_lookup_values fvl24
99621 , fnd_lookup_values fvl30
99622 , fnd_lookup_values fvl42
99623 , fnd_lookup_values fvl71
99624 , fnd_lookup_values fvl117
99625 , fnd_lookup_values fvl159
99626 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
99627 and xet.event_class_code = C_EVENT_CLASS_CODE
99628 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
99629 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
99633 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
99630 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
99631 AND fvl15.view_application_id(+) = 200
99632 AND fvl15.language(+) = USERENV('LANG')
99634 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
99635 AND fvl16.view_application_id(+) = 200
99636 AND fvl16.language(+) = USERENV('LANG')
99637 AND fvl24.lookup_type(+) = 'FUTURE PAY ACCT SOURCE'
99638 AND fvl24.lookup_code(+) = h4.ASP_FD_PMT_ACCT_SOURCE
99639 AND fvl24.view_application_id(+) = 200
99640 AND fvl24.language(+) = USERENV('LANG')
99641 AND fvl30.lookup_type(+) = 'YES_NO'
99642 AND fvl30.lookup_code(+) = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
99643 AND fvl30.view_application_id(+) = 0
99644 AND fvl30.language(+) = USERENV('LANG')
99645 AND fvl42.lookup_type(+) = 'YES_NO'
99646 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
99647 AND fvl42.view_application_id(+) = 0
99648 AND fvl42.language(+) = USERENV('LANG')
99649 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
99650 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
99651 AND fvl71.view_application_id(+) = 200
99652 AND fvl71.language(+) = USERENV('LANG')
99653 AND fvl117.lookup_type(+) = 'YES_NO'
99654 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
99655 AND fvl117.view_application_id(+) = 0
99656 AND fvl117.language(+) = USERENV('LANG')
99657 AND fvl159.lookup_type(+) = 'YES_NO'
99658 AND fvl159.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
99659 AND fvl159.view_application_id(+) = 0
99660 AND fvl159.language(+) = USERENV('LANG')
99661
99662 ORDER BY event_id
99663 ;
99664
99665
99666 --
99667 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
99668 IS
99669 SELECT /*+ leading(xet) cardinality(xet,1) */
99670 -- Event Class Code: PAYMENTS
99671 xet.entity_id
99672 ,xet.legal_entity_id
99673 ,xet.entity_code
99674 ,xet.transaction_number
99675 ,xet.event_id
99676 ,xet.event_class_code
99677 ,xet.event_type_code
99678 ,xet.event_number
99679 ,xet.event_date
99680 ,xet.transaction_date
99681 ,xet.reference_num_1
99682 ,xet.reference_num_2
99683 ,xet.reference_num_3
99684 ,xet.reference_num_4
99685 ,xet.reference_char_1
99686 ,xet.reference_char_2
99687 ,xet.reference_char_3
99688 ,xet.reference_char_4
99689 ,xet.reference_date_1
99690 ,xet.reference_date_2
99691 ,xet.reference_date_3
99692 ,xet.reference_date_4
99693 ,xet.event_created_by
99694 ,xet.budgetary_control_flag
99695 , l1.LINE_NUMBER
99696 , l1.RELATED_INV_DIST_DEST_TYPE source_19
99697 , fvl19.meaning source_19_meaning
99698 , l1.APHD_PAYMENT_BASE_AMT source_21
99699 , l1.APHD_CLEARING_BASE_AMT source_22
99700 , l1.AID_DIST_CCID source_29
99701 , l3.PO_NUMBER source_31
99702 , l1.AID_LINE_TYPE_LOOKUP_CODE source_32
99703 , fvl32.meaning source_32_meaning
99704 , l1.AID_RET_RELATED_DIST_CCID source_35
99705 , l1.AWT_RELATED_DIST_ACCOUNT source_36
99706 , l1.POD_CCID source_40
99707 , l1.PO_VARIANCE_ACCOUNT source_41
99708 , l1.APHD_PAY_DIST_LOOKUP_CODE source_51
99709 , fvl51.meaning source_51_meaning
99710 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_52
99711 , l1.APHD_AMOUNT source_53
99712 , l1.BUS_FLOW_AP_APP_ID source_54
99713 , l1.APHD_PAYMENT_HIST_DIST_ID source_59
99714 , l1.DISTRIBUTION_LINK_TYPE source_60
99715 , l3.POH_RATE_DATE source_61
99716 , l3.POH_RATE source_62
99717 , l3.POH_RATE_TYPE source_63
99718 , l1.OVERRIDE_ACCTD_AMT_FLAG source_64
99719 , fvl64.meaning source_64_meaning
99720 , l1.APHD_REV_PAY_HIST_DIST_ID source_68
99721 , l5.TAX_LINE_ID source_69
99722 , l5.SUMMARY_TAX_LINE_ID source_70
99723 , l1.APHD_INVOICE_DIST_AMOUNT source_72
99724 , l1.BUS_FLOW_INV_DIST_TYPE source_73
99725 , l1.BUS_FLOW_INV_ENTITY_CODE source_74
99726 , l1.BUS_FLOW_INV_DIST_ID source_75
99727 , l1.BUS_FLOW_INV_ID source_76
99728 , l6.REC_NREC_TAX_DIST_ID source_77
99729 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_111
99730 , fvl111.meaning source_111_meaning
99731 , l1.AI_INVOICE_TYPE_PAID source_112
99732 , fvl112.meaning source_112_meaning
99733 , l1.BF_RETAINED_INV_DIST_ID_PMT source_153
99734 , l1.BF_RETAINED_INV_ID_PMT source_154
99735 FROM xla_events_gt xet
99736 , AP_PAYMENT_EXTRACT_DETAILS_V l1
99737 , AP_PO_HEADERS_EXTRACT_V l3
99738 , ZX_AP_DEF_TAX_EXTRACT_V l5
99739 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
99740 , fnd_lookup_values fvl19
99741 , fnd_lookup_values fvl32
99742 , fnd_lookup_values fvl51
99743 , fnd_lookup_values fvl64
99744 , fnd_lookup_values fvl111
99745 , fnd_lookup_values fvl112
99746 WHERE xet.event_id between x_first_event_id and x_last_event_id
99747 and xet.event_date between p_pad_start_date and p_pad_end_date
99748 and xet.event_class_code = C_EVENT_CLASS_CODE
99749 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
99753 AND fvl19.language(+) = USERENV('LANG')
99750 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
99751 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
99752 AND fvl19.view_application_id(+) = 201
99754 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
99755 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
99756 AND fvl32.view_application_id(+) = 200
99757 AND fvl32.language(+) = USERENV('LANG')
99758 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
99759 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
99760 AND fvl51.view_application_id(+) = 200
99761 AND fvl51.language(+) = USERENV('LANG')
99762 AND fvl64.lookup_type(+) = 'YES_NO'
99763 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
99764 AND fvl64.view_application_id(+) = 0
99765 AND fvl64.language(+) = USERENV('LANG')
99766 AND fvl111.lookup_type(+) = 'YES_NO'
99767 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
99768 AND fvl111.view_application_id(+) = 0
99769 AND fvl111.language(+) = USERENV('LANG')
99770 AND fvl112.lookup_type(+) = 'INVOICE TYPE'
99771 AND fvl112.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
99772 AND fvl112.view_application_id(+) = 200
99773 AND fvl112.language(+) = USERENV('LANG')
99774 ;
99775
99776 --
99777 BEGIN
99778 IF g_log_enabled THEN
99779 l_log_module := C_DEFAULT_MODULE||'.EventClass_167';
99780 END IF;
99781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99782 trace
99783 (p_msg => 'BEGIN of EventClass_167'
99784 ,p_level => C_LEVEL_PROCEDURE
99785 ,p_module => l_log_module);
99786 END IF;
99787
99788 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99789 trace
99790 (p_msg => 'p_application_id = '||p_application_id||
99791 ' - p_base_ledger_id = '||p_base_ledger_id||
99792 ' - p_target_ledger_id = '||p_target_ledger_id||
99793 ' - p_language = '||p_language||
99794 ' - p_currency_code = '||p_currency_code||
99795 ' - p_sla_ledger_id = '||p_sla_ledger_id
99796 ,p_level => C_LEVEL_STATEMENT
99797 ,p_module => l_log_module);
99798 END IF;
99799 --
99800 -- initialze arrays
99801 --
99802 g_array_event.DELETE;
99803 l_rec_array_event := l_null_rec_array_event;
99804 --
99805 --------------------------------------
99806 -- 4262811 Initialze MPA Line Number
99807 --------------------------------------
99808 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
99809
99810 --
99811
99812 --
99813 OPEN header_cur;
99814 --
99815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99816 trace
99817 (p_msg => 'SQL - FETCH header_cur'
99818 ,p_level => C_LEVEL_STATEMENT
99819 ,p_module => l_log_module);
99820 END IF;
99821 --
99822 LOOP
99823 FETCH header_cur BULK COLLECT INTO
99824 l_array_entity_id
99825 , l_array_legal_entity_id
99826 , l_array_entity_code
99827 , l_array_transaction_num
99828 , l_array_event_id
99829 , l_array_class_code
99830 , l_array_event_type
99831 , l_array_event_number
99832 , l_array_event_date
99833 , l_array_transaction_date
99834 , l_array_reference_num_1
99835 , l_array_reference_num_2
99836 , l_array_reference_num_3
99837 , l_array_reference_num_4
99838 , l_array_reference_char_1
99839 , l_array_reference_char_2
99840 , l_array_reference_char_3
99841 , l_array_reference_char_4
99842 , l_array_reference_date_1
99843 , l_array_reference_date_2
99844 , l_array_reference_date_3
99845 , l_array_reference_date_4
99846 , l_array_event_created_by
99847 , l_array_budgetary_control_flag
99848 , l_array_source_5
99849 , l_array_source_8
99850 , l_array_source_9
99851 , l_array_source_10
99852 , l_array_source_11
99853 , l_array_source_12
99854 , l_array_source_13
99855 , l_array_source_14
99856 , l_array_source_15
99857 , l_array_source_15_meaning
99858 , l_array_source_16
99859 , l_array_source_16_meaning
99860 , l_array_source_17
99861 , l_array_source_20
99862 , l_array_source_23
99863 , l_array_source_24
99864 , l_array_source_24_meaning
99865 , l_array_source_25
99866 , l_array_source_26
99867 , l_array_source_27
99868 , l_array_source_28
99869 , l_array_source_30
99870 , l_array_source_30_meaning
99871 , l_array_source_33
99872 , l_array_source_34
99873 , l_array_source_39
99874 , l_array_source_42
99875 , l_array_source_42_meaning
99876 , l_array_source_43
99877 , l_array_source_50
99878 , l_array_source_65
99879 , l_array_source_66
99880 , l_array_source_67
99881 , l_array_source_71
99882 , l_array_source_71_meaning
99883 , l_array_source_117
99884 , l_array_source_117_meaning
99885 , l_array_source_118
99886 , l_array_source_120
99890 , l_array_source_156
99887 , l_array_source_121
99888 , l_array_source_122
99889 , l_array_source_123
99891 , l_array_source_157
99892 , l_array_source_159
99893 , l_array_source_159_meaning
99894 LIMIT l_rows;
99895 --
99896 IF (C_LEVEL_EVENT >= g_log_level) THEN
99897 trace
99898 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
99899 ,p_level => C_LEVEL_EVENT
99900 ,p_module => l_log_module);
99901 END IF;
99902 --
99903 EXIT WHEN l_array_entity_id.COUNT = 0;
99904
99905 -- initialize arrays
99906 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
99907 XLA_AE_LINES_PKG.g_rec_lines := NULL;
99908
99909 --
99910 -- Bug 4458708
99911 --
99912 XLA_AE_LINES_PKG.g_LineNumber := 0;
99913
99914
99915 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
99916 g_last_hdr_idx := l_array_event_id.LAST;
99917 --
99918 -- loop for the headers. Each iteration is for each header extract row
99919 -- fetched in header cursor
99920 --
99921 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
99922
99923 --
99924 -- set event info as cache for other routines to refer event attributes
99925 --
99926 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
99927 (p_application_id => p_application_id
99928 ,p_primary_ledger_id => p_primary_ledger_id
99929 ,p_base_ledger_id => p_base_ledger_id
99930 ,p_target_ledger_id => p_target_ledger_id
99931 ,p_entity_id => l_array_entity_id(hdr_idx)
99932 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
99933 ,p_entity_code => l_array_entity_code(hdr_idx)
99934 ,p_transaction_num => l_array_transaction_num(hdr_idx)
99935 ,p_event_id => l_array_event_id(hdr_idx)
99936 ,p_event_class_code => l_array_class_code(hdr_idx)
99937 ,p_event_type_code => l_array_event_type(hdr_idx)
99938 ,p_event_number => l_array_event_number(hdr_idx)
99939 ,p_event_date => l_array_event_date(hdr_idx)
99940 ,p_transaction_date => l_array_transaction_date(hdr_idx)
99941 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
99942 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
99943 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
99944 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
99945 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
99946 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
99947 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
99948 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
99949 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
99950 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
99951 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
99952 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
99953 ,p_event_created_by => l_array_event_created_by(hdr_idx)
99954 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
99955
99956 --
99957 -- set the status of entry to C_VALID (0)
99958 --
99959 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
99960
99961 --
99962 -- initialize a row for ae header
99963 --
99964 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
99965
99966 l_event_id := l_array_event_id(hdr_idx);
99967
99968 --
99969 -- storing the hdr_idx for event. May be used by line cursor.
99970 --
99971 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
99972
99973 --
99974 -- store sources from header extract. This can be improved to
99975 -- store only those sources from header extract that may be used in lines
99976 --
99977
99978 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
99979 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
99980 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
99981 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
99982 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
99983 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
99984 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
99985 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
99986 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
99987 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
99988 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
99989 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
99990 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
99991 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
99992 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
99993 g_array_event(l_event_id).array_value_char('source_24') := l_array_source_24(hdr_idx);
99994 g_array_event(l_event_id).array_value_char('source_24_meaning') := l_array_source_24_meaning(hdr_idx);
99998 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
99995 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
99996 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
99997 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
99999 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
100000 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
100001 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
100002 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
100003 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
100004 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
100005 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
100006 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
100007 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
100008 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
100009 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
100010 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
100011 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
100012 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
100013 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
100014 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
100015 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
100016 g_array_event(l_event_id).array_value_char('source_120') := l_array_source_120(hdr_idx);
100017 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
100018 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
100019 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
100020 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
100021 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
100022 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
100023 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
100024
100025 --
100026 -- initilaize the status of ae headers for diffrent balance types
100027 -- the status is initialised to C_NOT_CREATED (2)
100028 --
100029 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100030 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100031 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
100032
100033 --
100034 -- call api to validate and store accounting attributes for header
100035 --
100036
100037 ------------------------------------------------------------
100038 -- Accrual Reversal : to get date for Standard Source (NONE)
100039 ------------------------------------------------------------
100040 l_acc_rev_gl_date_source := NULL;
100041
100042 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
100043 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
100044 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
100045 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
100046 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
100047 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
100048 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
100049 l_rec_acct_attrs.array_date_value(4) :=
100050 xla_ae_sources_pkg.GetSystemSourceDate(
100051 p_source_code => 'XLA_EVENT_DATE'
100052 , p_source_type_code => 'Y'
100053 , p_source_application_id => 602
100054 );
100055 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
100056 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_159');
100057
100058
100059 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
100060
100061 XLA_AE_HEADER_PKG.SetJeCategoryName;
100062
100063 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
100064 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
100065 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
100066 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
100067 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
100068
100069
100070 --
100071 xla_ae_header_pkg.SetHdrDescription(
100072 p_description => Description_2 (
100073 p_application_id => p_application_id
100074 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
100075 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
100076 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
100077 , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
100078 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
100082 --
100079 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100080 )
100081 );
100083
100084 -- No header level analytical criteria
100085
100086 --
100087 --accounting attribute enhancement, bug 3612931
100088 --
100089 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_159'), 1,30);
100090
100091 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
100092 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
100093
100094 xla_accounting_err_pkg.build_message
100095 (p_appli_s_name => 'XLA'
100096 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
100097 ,p_token_1 => 'ACCT_ATTR_NAME'
100098 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
100099 ,p_token_2 => 'PRODUCT_NAME'
100100 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
100101 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
100102 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
100103 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
100104
100105 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
100106 --
100107 -- following sets the accounting attributes needed to reverse
100108 -- accounting for a distributeion
100109 --
100110 xla_ae_lines_pkg.SetTrxReversalAttrs
100111 (p_event_id => l_event_id
100112 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
100113 ,p_trx_reversal_source => l_trx_reversal_source);
100114
100115 END IF;
100116
100117
100118 ----------------------------------------------------------------
100119 -- 4262811 - update the header statuses to invalid in need be
100120 ----------------------------------------------------------------
100121 --
100122 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
100123
100124
100125 -----------------------------------------------
100126 -- No accrual reversal for the event class/type
100127 -----------------------------------------------
100128 ----------------------------------------------------------------
100129
100130 --
100131 -- this ends the header loop iteration for one bulk fetch
100132 --
100133 END LOOP;
100134
100135 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
100136 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
100137
100138 --
100139 -- insert dummy rows into lines gt table that were created due to
100140 -- transaction reversals
100141 --
100142 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
100143 l_result := XLA_AE_LINES_PKG.InsertLines;
100144 END IF;
100145
100146 --
100147 -- reset the temp_line_num for each set of events fetched from header
100148 -- cursor rather than doing it for each new event in line cursor
100149 -- Bug 3939231
100150 --
100151 xla_ae_lines_pkg.g_temp_line_num := 0;
100152
100153
100154
100155 --
100156 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
100157 --
100158 --
100159 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100160
100161 trace
100162 (p_msg => 'SQL - FETCH line_cur'
100163 ,p_level => C_LEVEL_STATEMENT
100164 ,p_module => l_log_module);
100165
100166 END IF;
100167 --
100168 --
100169 LOOP
100170 --
100171 FETCH line_cur BULK COLLECT INTO
100172 l_array_entity_id
100173 , l_array_legal_entity_id
100174 , l_array_entity_code
100175 , l_array_transaction_num
100176 , l_array_event_id
100177 , l_array_class_code
100178 , l_array_event_type
100179 , l_array_event_number
100180 , l_array_event_date
100181 , l_array_transaction_date
100182 , l_array_reference_num_1
100183 , l_array_reference_num_2
100184 , l_array_reference_num_3
100185 , l_array_reference_num_4
100186 , l_array_reference_char_1
100187 , l_array_reference_char_2
100188 , l_array_reference_char_3
100189 , l_array_reference_char_4
100190 , l_array_reference_date_1
100191 , l_array_reference_date_2
100192 , l_array_reference_date_3
100193 , l_array_reference_date_4
100194 , l_array_event_created_by
100195 , l_array_budgetary_control_flag
100196 , l_array_extract_line_num
100197 , l_array_source_19
100198 , l_array_source_19_meaning
100199 , l_array_source_21
100200 , l_array_source_22
100201 , l_array_source_29
100202 , l_array_source_31
100203 , l_array_source_32
100204 , l_array_source_32_meaning
100205 , l_array_source_35
100206 , l_array_source_36
100207 , l_array_source_40
100208 , l_array_source_41
100209 , l_array_source_51
100210 , l_array_source_51_meaning
100211 , l_array_source_52
100212 , l_array_source_53
100213 , l_array_source_54
100214 , l_array_source_59
100215 , l_array_source_60
100216 , l_array_source_61
100217 , l_array_source_62
100218 , l_array_source_63
100219 , l_array_source_64
100220 , l_array_source_64_meaning
100221 , l_array_source_68
100225 , l_array_source_73
100222 , l_array_source_69
100223 , l_array_source_70
100224 , l_array_source_72
100226 , l_array_source_74
100227 , l_array_source_75
100228 , l_array_source_76
100229 , l_array_source_77
100230 , l_array_source_111
100231 , l_array_source_111_meaning
100232 , l_array_source_112
100233 , l_array_source_112_meaning
100234 , l_array_source_153
100235 , l_array_source_154
100236 LIMIT l_rows;
100237
100238 --
100239 IF (C_LEVEL_EVENT >= g_log_level) THEN
100240 trace
100241 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
100242 ,p_level => C_LEVEL_EVENT
100243 ,p_module => l_log_module);
100244 END IF;
100245 --
100246 EXIT WHEN l_array_entity_id.count = 0;
100247
100248 XLA_AE_LINES_PKG.g_rec_lines := null;
100249
100250 --
100251 -- Bug 4458708
100252 --
100253 XLA_AE_LINES_PKG.g_LineNumber := 0;
100254 --
100255 --
100256
100257 FOR Idx IN 1..l_array_event_id.count LOOP
100258 --
100259 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
100260 --
100261 l_event_id := l_array_event_id(idx); -- 5648433
100262
100263 --
100264 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
100265 --
100266
100267 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
100268 (g_array_event(l_event_id).array_value_num('header_index'))
100269 ,'N'
100270 ) <> 'Y'
100271 THEN
100272 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100273 trace
100274 (p_msg => 'Trancaction revesal option is not Y '
100275 ,p_level => C_LEVEL_STATEMENT
100276 ,p_module => l_log_module);
100277 END IF;
100278
100279 --
100280 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
100281 --
100282 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
100283 --
100284 -- set event info as cache for other routines to refer event attributes
100285 --
100286
100287 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
100288 l_previous_event_id := l_event_id;
100289
100290 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
100291 (p_application_id => p_application_id
100292 ,p_primary_ledger_id => p_primary_ledger_id
100293 ,p_base_ledger_id => p_base_ledger_id
100294 ,p_target_ledger_id => p_target_ledger_id
100295 ,p_entity_id => l_array_entity_id(Idx)
100296 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
100297 ,p_entity_code => l_array_entity_code(Idx)
100298 ,p_transaction_num => l_array_transaction_num(Idx)
100299 ,p_event_id => l_array_event_id(Idx)
100300 ,p_event_class_code => l_array_class_code(Idx)
100301 ,p_event_type_code => l_array_event_type(Idx)
100302 ,p_event_number => l_array_event_number(Idx)
100303 ,p_event_date => l_array_event_date(Idx)
100304 ,p_transaction_date => l_array_transaction_date(Idx)
100305 ,p_reference_num_1 => l_array_reference_num_1(Idx)
100306 ,p_reference_num_2 => l_array_reference_num_2(Idx)
100307 ,p_reference_num_3 => l_array_reference_num_3(Idx)
100308 ,p_reference_num_4 => l_array_reference_num_4(Idx)
100309 ,p_reference_char_1 => l_array_reference_char_1(Idx)
100310 ,p_reference_char_2 => l_array_reference_char_2(Idx)
100311 ,p_reference_char_3 => l_array_reference_char_3(Idx)
100312 ,p_reference_char_4 => l_array_reference_char_4(Idx)
100313 ,p_reference_date_1 => l_array_reference_date_1(Idx)
100314 ,p_reference_date_2 => l_array_reference_date_2(Idx)
100315 ,p_reference_date_3 => l_array_reference_date_3(Idx)
100316 ,p_reference_date_4 => l_array_reference_date_4(Idx)
100317 ,p_event_created_by => l_array_event_created_by(Idx)
100318 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
100319 --
100320 END IF;
100321
100322
100323
100324 --
100325 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
100326
100327 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
100328
100329 IF l_continue_with_lines THEN
100330 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
100331 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
100332
100333 xla_accounting_err_pkg.build_message
100334 (p_appli_s_name => 'XLA'
100335 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
100336 ,p_token_1 => 'LINE_NUMBER'
100337 ,p_value_1 => l_array_extract_line_num(Idx)
100338 ,p_token_2 => 'PRODUCT_NAME'
100339 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
100340 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
100341 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
100342 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
100343
100347 -- accounting for a distributeion
100344 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
100345 --
100346 -- following sets the accounting attributes needed to reverse
100348 --
100349
100350 --
100351 -- 5217187
100352 --
100353 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
100354 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
100355 g_array_event(l_event_id).array_value_num('header_index'));
100356 --
100357 --
100358
100359 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
100360 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_52(Idx);
100361 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
100362 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_59(Idx);
100363 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
100364 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_60(Idx);
100365 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
100366 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_67');
100367 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
100368 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_68(Idx);
100369 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
100370 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_60(Idx);
100371 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
100372 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_69(Idx);
100373 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
100374 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_77(Idx);
100375 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
100376 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_70(Idx);
100377
100378
100379 xla_ae_lines_pkg.SetAcctReversalAttrs
100380 (p_event_id => l_event_id
100381 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
100382 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100383 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
100384 END IF;
100385
100386 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
100387 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
100388
100389 --
100390 AcctLineType_40 (
100391 p_application_id => p_application_id
100392 ,p_event_id => l_event_id
100393 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100394 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100395 ,p_actual_flag => l_actual_flag
100396 ,p_balance_type_code => l_balance_type_code
100397 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100398
100399 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100400 , p_source_21 => l_array_source_21(Idx)
100401 , p_source_32 => l_array_source_32(Idx)
100402 , p_source_32_meaning => l_array_source_32_meaning(Idx)
100403 , p_source_40 => l_array_source_40(Idx)
100404 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100405 , p_source_51 => l_array_source_51(Idx)
100406 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100407 , p_source_52 => l_array_source_52(Idx)
100408 , p_source_53 => l_array_source_53(Idx)
100409 , p_source_54 => l_array_source_54(Idx)
100410 , p_source_59 => l_array_source_59(Idx)
100411 , p_source_60 => l_array_source_60(Idx)
100412 , p_source_61 => l_array_source_61(Idx)
100413 , p_source_62 => l_array_source_62(Idx)
100414 , p_source_63 => l_array_source_63(Idx)
100415 , p_source_64 => l_array_source_64(Idx)
100416 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100417 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100418 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100419 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100420 , p_source_68 => l_array_source_68(Idx)
100421 , p_source_69 => l_array_source_69(Idx)
100422 , p_source_70 => l_array_source_70(Idx)
100423 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100424 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100425 , p_source_72 => l_array_source_72(Idx)
100426 , p_source_73 => l_array_source_73(Idx)
100427 , p_source_74 => l_array_source_74(Idx)
100428 , p_source_75 => l_array_source_75(Idx)
100429 , p_source_76 => l_array_source_76(Idx)
100430 , p_source_77 => l_array_source_77(Idx)
100431 );
100432 If(l_balance_type_code = 'A') THEN
100433 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100434 END IF;
100435
100436 --
100437
100438
100439 --
100440 AcctLineType_45 (
100441 p_application_id => p_application_id
100442 ,p_event_id => l_event_id
100443 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100444 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100445 ,p_actual_flag => l_actual_flag
100446 ,p_balance_type_code => l_balance_type_code
100447 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100448
100449 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100450 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100451 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100452 , p_source_19 => l_array_source_19(Idx)
100456 , p_source_22 => l_array_source_22(Idx)
100453 , p_source_19_meaning => l_array_source_19_meaning(Idx)
100454 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100455 , p_source_21 => l_array_source_21(Idx)
100457 , p_source_29 => l_array_source_29(Idx)
100458 , p_source_32 => l_array_source_32(Idx)
100459 , p_source_32_meaning => l_array_source_32_meaning(Idx)
100460 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100461 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100462 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100463 , p_source_52 => l_array_source_52(Idx)
100464 , p_source_54 => l_array_source_54(Idx)
100465 , p_source_59 => l_array_source_59(Idx)
100466 , p_source_60 => l_array_source_60(Idx)
100467 , p_source_64 => l_array_source_64(Idx)
100468 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100469 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100470 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100471 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100472 , p_source_68 => l_array_source_68(Idx)
100473 , p_source_69 => l_array_source_69(Idx)
100474 , p_source_70 => l_array_source_70(Idx)
100475 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100476 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100477 , p_source_72 => l_array_source_72(Idx)
100478 , p_source_73 => l_array_source_73(Idx)
100479 , p_source_74 => l_array_source_74(Idx)
100480 , p_source_75 => l_array_source_75(Idx)
100481 , p_source_76 => l_array_source_76(Idx)
100482 , p_source_77 => l_array_source_77(Idx)
100483 );
100484 If(l_balance_type_code = 'A') THEN
100485 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100486 END IF;
100487
100488 --
100489
100490
100491 --
100492 AcctLineType_49 (
100493 p_application_id => p_application_id
100494 ,p_event_id => l_event_id
100495 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100496 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100497 ,p_actual_flag => l_actual_flag
100498 ,p_balance_type_code => l_balance_type_code
100499 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100500
100501 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100502 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100503 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100504 , p_source_19 => l_array_source_19(Idx)
100505 , p_source_19_meaning => l_array_source_19_meaning(Idx)
100506 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100507 , p_source_21 => l_array_source_21(Idx)
100508 , p_source_22 => l_array_source_22(Idx)
100509 , p_source_29 => l_array_source_29(Idx)
100510 , p_source_32 => l_array_source_32(Idx)
100511 , p_source_32_meaning => l_array_source_32_meaning(Idx)
100512 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100513 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100514 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100515 , p_source_51 => l_array_source_51(Idx)
100516 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100517 , p_source_52 => l_array_source_52(Idx)
100518 , p_source_54 => l_array_source_54(Idx)
100519 , p_source_59 => l_array_source_59(Idx)
100520 , p_source_60 => l_array_source_60(Idx)
100521 , p_source_64 => l_array_source_64(Idx)
100522 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100523 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100524 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100525 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100526 , p_source_68 => l_array_source_68(Idx)
100527 , p_source_69 => l_array_source_69(Idx)
100528 , p_source_70 => l_array_source_70(Idx)
100529 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100530 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100531 , p_source_72 => l_array_source_72(Idx)
100532 , p_source_73 => l_array_source_73(Idx)
100533 , p_source_74 => l_array_source_74(Idx)
100534 , p_source_75 => l_array_source_75(Idx)
100535 , p_source_76 => l_array_source_76(Idx)
100536 , p_source_77 => l_array_source_77(Idx)
100537 , p_source_111 => l_array_source_111(Idx)
100538 , p_source_111_meaning => l_array_source_111_meaning(Idx)
100539 , p_source_112 => l_array_source_112(Idx)
100540 , p_source_112_meaning => l_array_source_112_meaning(Idx)
100541 );
100542 If(l_balance_type_code = 'A') THEN
100543 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100544 END IF;
100545
100546 --
100547
100548
100549 --
100550 AcctLineType_59 (
100551 p_application_id => p_application_id
100552 ,p_event_id => l_event_id
100553 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100554 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100555 ,p_actual_flag => l_actual_flag
100556 ,p_balance_type_code => l_balance_type_code
100557 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100558
100559 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100560 , p_source_21 => l_array_source_21(Idx)
100561 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100562 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100566 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100563 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100564 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100565 , p_source_51 => l_array_source_51(Idx)
100567 , p_source_52 => l_array_source_52(Idx)
100568 , p_source_53 => l_array_source_53(Idx)
100569 , p_source_54 => l_array_source_54(Idx)
100570 , p_source_59 => l_array_source_59(Idx)
100571 , p_source_60 => l_array_source_60(Idx)
100572 , p_source_64 => l_array_source_64(Idx)
100573 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100574 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100575 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100576 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100577 , p_source_68 => l_array_source_68(Idx)
100578 , p_source_69 => l_array_source_69(Idx)
100579 , p_source_70 => l_array_source_70(Idx)
100580 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100581 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100582 , p_source_72 => l_array_source_72(Idx)
100583 , p_source_73 => l_array_source_73(Idx)
100584 , p_source_74 => l_array_source_74(Idx)
100585 , p_source_75 => l_array_source_75(Idx)
100586 , p_source_76 => l_array_source_76(Idx)
100587 , p_source_77 => l_array_source_77(Idx)
100588 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100589 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100590 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100591 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100592 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100593 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100594 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100595 );
100596 If(l_balance_type_code = 'A') THEN
100597 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100598 END IF;
100599
100600 --
100601
100602
100603 --
100604 AcctLineType_60 (
100605 p_application_id => p_application_id
100606 ,p_event_id => l_event_id
100607 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100608 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100609 ,p_actual_flag => l_actual_flag
100610 ,p_balance_type_code => l_balance_type_code
100611 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100612
100613 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100614 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100615 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100616 , p_source_21 => l_array_source_21(Idx)
100617 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100618 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100619 , p_source_51 => l_array_source_51(Idx)
100620 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100621 , p_source_52 => l_array_source_52(Idx)
100622 , p_source_53 => l_array_source_53(Idx)
100623 , p_source_54 => l_array_source_54(Idx)
100624 , p_source_59 => l_array_source_59(Idx)
100625 , p_source_60 => l_array_source_60(Idx)
100626 , p_source_64 => l_array_source_64(Idx)
100627 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100628 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100629 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100630 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100631 , p_source_68 => l_array_source_68(Idx)
100632 , p_source_69 => l_array_source_69(Idx)
100633 , p_source_70 => l_array_source_70(Idx)
100634 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100635 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100636 , p_source_72 => l_array_source_72(Idx)
100637 , p_source_73 => l_array_source_73(Idx)
100638 , p_source_74 => l_array_source_74(Idx)
100639 , p_source_75 => l_array_source_75(Idx)
100640 , p_source_76 => l_array_source_76(Idx)
100641 , p_source_77 => l_array_source_77(Idx)
100642 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100643 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100644 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100645 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100646 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100647 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100648 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100649 );
100650 If(l_balance_type_code = 'A') THEN
100651 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100652 END IF;
100653
100654 --
100655
100656
100657 --
100658 AcctLineType_61 (
100659 p_application_id => p_application_id
100660 ,p_event_id => l_event_id
100661 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100662 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100663 ,p_actual_flag => l_actual_flag
100664 ,p_balance_type_code => l_balance_type_code
100665 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100666
100667 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100668 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100669 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100673 , p_source_51 => l_array_source_51(Idx)
100670 , p_source_21 => l_array_source_21(Idx)
100671 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100672 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100674 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100675 , p_source_52 => l_array_source_52(Idx)
100676 , p_source_53 => l_array_source_53(Idx)
100677 , p_source_54 => l_array_source_54(Idx)
100678 , p_source_59 => l_array_source_59(Idx)
100679 , p_source_60 => l_array_source_60(Idx)
100680 , p_source_64 => l_array_source_64(Idx)
100681 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100682 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100683 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100684 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100685 , p_source_68 => l_array_source_68(Idx)
100686 , p_source_69 => l_array_source_69(Idx)
100687 , p_source_70 => l_array_source_70(Idx)
100688 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100689 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100690 , p_source_72 => l_array_source_72(Idx)
100691 , p_source_73 => l_array_source_73(Idx)
100692 , p_source_74 => l_array_source_74(Idx)
100693 , p_source_75 => l_array_source_75(Idx)
100694 , p_source_76 => l_array_source_76(Idx)
100695 , p_source_77 => l_array_source_77(Idx)
100696 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100697 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100698 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100699 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100700 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100701 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100702 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100703 );
100704 If(l_balance_type_code = 'A') THEN
100705 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100706 END IF;
100707
100708 --
100709
100710
100711 --
100712 AcctLineType_68 (
100713 p_application_id => p_application_id
100714 ,p_event_id => l_event_id
100715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100717 ,p_actual_flag => l_actual_flag
100718 ,p_balance_type_code => l_balance_type_code
100719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100720
100721 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100722 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100723 , p_source_21 => l_array_source_21(Idx)
100724 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100725 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100726 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100727 , p_source_51 => l_array_source_51(Idx)
100728 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100729 , p_source_52 => l_array_source_52(Idx)
100730 , p_source_53 => l_array_source_53(Idx)
100731 , p_source_54 => l_array_source_54(Idx)
100732 , p_source_59 => l_array_source_59(Idx)
100733 , p_source_60 => l_array_source_60(Idx)
100734 , p_source_64 => l_array_source_64(Idx)
100735 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100736 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100737 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100738 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100739 , p_source_68 => l_array_source_68(Idx)
100740 , p_source_69 => l_array_source_69(Idx)
100741 , p_source_70 => l_array_source_70(Idx)
100742 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100743 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100744 , p_source_72 => l_array_source_72(Idx)
100745 , p_source_73 => l_array_source_73(Idx)
100746 , p_source_74 => l_array_source_74(Idx)
100747 , p_source_75 => l_array_source_75(Idx)
100748 , p_source_76 => l_array_source_76(Idx)
100749 , p_source_77 => l_array_source_77(Idx)
100750 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100751 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100752 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100753 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100754 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100755 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100756 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100757 );
100758 If(l_balance_type_code = 'A') THEN
100759 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100760 END IF;
100761
100762 --
100763
100764
100765 --
100766 AcctLineType_69 (
100767 p_application_id => p_application_id
100768 ,p_event_id => l_event_id
100769 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100770 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100771 ,p_actual_flag => l_actual_flag
100772 ,p_balance_type_code => l_balance_type_code
100773 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100774
100778 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100775 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100776 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100777 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100779 , p_source_21 => l_array_source_21(Idx)
100780 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100781 , p_source_51 => l_array_source_51(Idx)
100782 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100783 , p_source_52 => l_array_source_52(Idx)
100784 , p_source_53 => l_array_source_53(Idx)
100785 , p_source_54 => l_array_source_54(Idx)
100786 , p_source_59 => l_array_source_59(Idx)
100787 , p_source_60 => l_array_source_60(Idx)
100788 , p_source_64 => l_array_source_64(Idx)
100789 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100790 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100791 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100792 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100793 , p_source_68 => l_array_source_68(Idx)
100794 , p_source_69 => l_array_source_69(Idx)
100795 , p_source_70 => l_array_source_70(Idx)
100796 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100797 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100798 , p_source_72 => l_array_source_72(Idx)
100799 , p_source_73 => l_array_source_73(Idx)
100800 , p_source_74 => l_array_source_74(Idx)
100801 , p_source_75 => l_array_source_75(Idx)
100802 , p_source_76 => l_array_source_76(Idx)
100803 , p_source_77 => l_array_source_77(Idx)
100804 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100805 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100806 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100807 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100808 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100809 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100810 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100811 );
100812 If(l_balance_type_code = 'A') THEN
100813 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100814 END IF;
100815
100816 --
100817
100818
100819 --
100820 AcctLineType_70 (
100821 p_application_id => p_application_id
100822 ,p_event_id => l_event_id
100823 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100824 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100825 ,p_actual_flag => l_actual_flag
100826 ,p_balance_type_code => l_balance_type_code
100827 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100828
100829 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100830 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
100831 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100832 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100833 , p_source_21 => l_array_source_21(Idx)
100834 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100835 , p_source_51 => l_array_source_51(Idx)
100836 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100837 , p_source_52 => l_array_source_52(Idx)
100838 , p_source_53 => l_array_source_53(Idx)
100839 , p_source_54 => l_array_source_54(Idx)
100840 , p_source_59 => l_array_source_59(Idx)
100841 , p_source_60 => l_array_source_60(Idx)
100842 , p_source_64 => l_array_source_64(Idx)
100843 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100844 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100845 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100846 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100847 , p_source_68 => l_array_source_68(Idx)
100848 , p_source_69 => l_array_source_69(Idx)
100849 , p_source_70 => l_array_source_70(Idx)
100850 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100851 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100852 , p_source_72 => l_array_source_72(Idx)
100853 , p_source_73 => l_array_source_73(Idx)
100854 , p_source_74 => l_array_source_74(Idx)
100855 , p_source_75 => l_array_source_75(Idx)
100856 , p_source_76 => l_array_source_76(Idx)
100857 , p_source_77 => l_array_source_77(Idx)
100858 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
100859 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
100860 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
100861 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
100862 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100863 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100864 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100865 );
100866 If(l_balance_type_code = 'A') THEN
100867 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100868 END IF;
100869
100870 --
100871
100872
100873 --
100874 AcctLineType_78 (
100875 p_application_id => p_application_id
100876 ,p_event_id => l_event_id
100877 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100878 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100879 ,p_actual_flag => l_actual_flag
100880 ,p_balance_type_code => l_balance_type_code
100884 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
100881 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100882
100883 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100885 , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
100886 , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
100887 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100888 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100889 , p_source_21 => l_array_source_21(Idx)
100890 , p_source_29 => l_array_source_29(Idx)
100891 , p_source_32 => l_array_source_32(Idx)
100892 , p_source_32_meaning => l_array_source_32_meaning(Idx)
100893 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
100894 , p_source_40 => l_array_source_40(Idx)
100895 , p_source_41 => l_array_source_41(Idx)
100896 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100897 , p_source_51 => l_array_source_51(Idx)
100898 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100899 , p_source_52 => l_array_source_52(Idx)
100900 , p_source_53 => l_array_source_53(Idx)
100901 , p_source_54 => l_array_source_54(Idx)
100902 , p_source_59 => l_array_source_59(Idx)
100903 , p_source_60 => l_array_source_60(Idx)
100904 , p_source_64 => l_array_source_64(Idx)
100905 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100906 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100907 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100908 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100909 , p_source_68 => l_array_source_68(Idx)
100910 , p_source_69 => l_array_source_69(Idx)
100911 , p_source_70 => l_array_source_70(Idx)
100912 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100913 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100914 , p_source_72 => l_array_source_72(Idx)
100915 , p_source_73 => l_array_source_73(Idx)
100916 , p_source_74 => l_array_source_74(Idx)
100917 , p_source_75 => l_array_source_75(Idx)
100918 , p_source_76 => l_array_source_76(Idx)
100919 , p_source_77 => l_array_source_77(Idx)
100920 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100921 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100922 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100923 );
100924 If(l_balance_type_code = 'A') THEN
100925 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100926 END IF;
100927
100928 --
100929
100930
100931 --
100932 AcctLineType_82 (
100933 p_application_id => p_application_id
100934 ,p_event_id => l_event_id
100935 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100936 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100937 ,p_actual_flag => l_actual_flag
100938 ,p_balance_type_code => l_balance_type_code
100939 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100940
100941 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
100942 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
100943 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
100944 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
100945 , p_source_19 => l_array_source_19(Idx)
100946 , p_source_19_meaning => l_array_source_19_meaning(Idx)
100947 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
100948 , p_source_21 => l_array_source_21(Idx)
100949 , p_source_22 => l_array_source_22(Idx)
100950 , p_source_29 => l_array_source_29(Idx)
100951 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
100952 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
100953 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
100954 , p_source_51 => l_array_source_51(Idx)
100955 , p_source_51_meaning => l_array_source_51_meaning(Idx)
100956 , p_source_52 => l_array_source_52(Idx)
100957 , p_source_53 => l_array_source_53(Idx)
100958 , p_source_54 => l_array_source_54(Idx)
100959 , p_source_59 => l_array_source_59(Idx)
100960 , p_source_60 => l_array_source_60(Idx)
100961 , p_source_64 => l_array_source_64(Idx)
100962 , p_source_64_meaning => l_array_source_64_meaning(Idx)
100963 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
100964 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
100965 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
100966 , p_source_68 => l_array_source_68(Idx)
100967 , p_source_69 => l_array_source_69(Idx)
100968 , p_source_70 => l_array_source_70(Idx)
100969 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
100970 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
100971 , p_source_72 => l_array_source_72(Idx)
100972 , p_source_73 => l_array_source_73(Idx)
100973 , p_source_74 => l_array_source_74(Idx)
100974 , p_source_75 => l_array_source_75(Idx)
100975 , p_source_76 => l_array_source_76(Idx)
100976 , p_source_77 => l_array_source_77(Idx)
100977 , p_source_111 => l_array_source_111(Idx)
100978 , p_source_111_meaning => l_array_source_111_meaning(Idx)
100979 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
100980 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
100981 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
100982 );
100983 If(l_balance_type_code = 'A') THEN
100987 --
100984 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100985 END IF;
100986
100988
100989
100990 --
100991 AcctLineType_88 (
100992 p_application_id => p_application_id
100993 ,p_event_id => l_event_id
100994 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100995 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100996 ,p_actual_flag => l_actual_flag
100997 ,p_balance_type_code => l_balance_type_code
100998 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100999
101000 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101001 , p_source_21 => l_array_source_21(Idx)
101002 , p_source_29 => l_array_source_29(Idx)
101003 , p_source_32 => l_array_source_32(Idx)
101004 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101005 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101006 , p_source_51 => l_array_source_51(Idx)
101007 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101008 , p_source_52 => l_array_source_52(Idx)
101009 , p_source_53 => l_array_source_53(Idx)
101010 , p_source_54 => l_array_source_54(Idx)
101011 , p_source_59 => l_array_source_59(Idx)
101012 , p_source_60 => l_array_source_60(Idx)
101013 , p_source_64 => l_array_source_64(Idx)
101014 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101015 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101016 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101017 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101018 , p_source_68 => l_array_source_68(Idx)
101019 , p_source_69 => l_array_source_69(Idx)
101020 , p_source_70 => l_array_source_70(Idx)
101021 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101022 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101023 , p_source_72 => l_array_source_72(Idx)
101024 , p_source_73 => l_array_source_73(Idx)
101025 , p_source_74 => l_array_source_74(Idx)
101026 , p_source_75 => l_array_source_75(Idx)
101027 , p_source_76 => l_array_source_76(Idx)
101028 , p_source_77 => l_array_source_77(Idx)
101029 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101030 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101031 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101032 );
101033 If(l_balance_type_code = 'A') THEN
101034 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101035 END IF;
101036
101037 --
101038
101039
101040 --
101041 AcctLineType_92 (
101042 p_application_id => p_application_id
101043 ,p_event_id => l_event_id
101044 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101045 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101046 ,p_actual_flag => l_actual_flag
101047 ,p_balance_type_code => l_balance_type_code
101048 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101049
101050 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101051 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101052 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101053 , p_source_21 => l_array_source_21(Idx)
101054 , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
101055 , p_source_24 => g_array_event(l_event_id).array_value_char('source_24')
101056 , p_source_24_meaning => g_array_event(l_event_id).array_value_char('source_24_meaning')
101057 , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
101058 , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
101059 , p_source_29 => l_array_source_29(Idx)
101060 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101061 , p_source_51 => l_array_source_51(Idx)
101062 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101063 , p_source_52 => l_array_source_52(Idx)
101064 , p_source_53 => l_array_source_53(Idx)
101065 , p_source_54 => l_array_source_54(Idx)
101066 , p_source_59 => l_array_source_59(Idx)
101067 , p_source_60 => l_array_source_60(Idx)
101068 , p_source_64 => l_array_source_64(Idx)
101069 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101070 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101071 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101072 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101073 , p_source_68 => l_array_source_68(Idx)
101074 , p_source_69 => l_array_source_69(Idx)
101075 , p_source_70 => l_array_source_70(Idx)
101076 , p_source_72 => l_array_source_72(Idx)
101077 , p_source_73 => l_array_source_73(Idx)
101078 , p_source_74 => l_array_source_74(Idx)
101079 , p_source_75 => l_array_source_75(Idx)
101080 , p_source_76 => l_array_source_76(Idx)
101081 , p_source_77 => l_array_source_77(Idx)
101082 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
101083 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101084 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101085 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101086 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101087 );
101088 If(l_balance_type_code = 'A') THEN
101089 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101090 END IF;
101091
101092 --
101093
101094
101095 --
101096 AcctLineType_101 (
101097 p_application_id => p_application_id
101098 ,p_event_id => l_event_id
101099 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101103 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101100 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101101 ,p_actual_flag => l_actual_flag
101102 ,p_balance_type_code => l_balance_type_code
101104
101105 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101106 , p_source_21 => l_array_source_21(Idx)
101107 , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
101108 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
101109 , p_source_29 => l_array_source_29(Idx)
101110 , p_source_32 => l_array_source_32(Idx)
101111 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101112 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101113 , p_source_51 => l_array_source_51(Idx)
101114 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101115 , p_source_52 => l_array_source_52(Idx)
101116 , p_source_53 => l_array_source_53(Idx)
101117 , p_source_54 => l_array_source_54(Idx)
101118 , p_source_59 => l_array_source_59(Idx)
101119 , p_source_60 => l_array_source_60(Idx)
101120 , p_source_64 => l_array_source_64(Idx)
101121 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101122 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101123 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101124 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101125 , p_source_68 => l_array_source_68(Idx)
101126 , p_source_69 => l_array_source_69(Idx)
101127 , p_source_70 => l_array_source_70(Idx)
101128 , p_source_72 => l_array_source_72(Idx)
101129 , p_source_73 => l_array_source_73(Idx)
101130 , p_source_74 => l_array_source_74(Idx)
101131 , p_source_75 => l_array_source_75(Idx)
101132 , p_source_76 => l_array_source_76(Idx)
101133 , p_source_77 => l_array_source_77(Idx)
101134 , p_source_112 => l_array_source_112(Idx)
101135 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101136 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101137 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101138 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101139 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101140 );
101141 If(l_balance_type_code = 'A') THEN
101142 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101143 END IF;
101144
101145 --
101146
101147
101148 --
101149 AcctLineType_103 (
101150 p_application_id => p_application_id
101151 ,p_event_id => l_event_id
101152 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101153 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101154 ,p_actual_flag => l_actual_flag
101155 ,p_balance_type_code => l_balance_type_code
101156 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101157
101158 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101159 , p_source_21 => l_array_source_21(Idx)
101160 , p_source_29 => l_array_source_29(Idx)
101161 , p_source_32 => l_array_source_32(Idx)
101162 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101163 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101164 , p_source_51 => l_array_source_51(Idx)
101165 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101166 , p_source_52 => l_array_source_52(Idx)
101167 , p_source_53 => l_array_source_53(Idx)
101168 , p_source_54 => l_array_source_54(Idx)
101169 , p_source_59 => l_array_source_59(Idx)
101170 , p_source_60 => l_array_source_60(Idx)
101171 , p_source_64 => l_array_source_64(Idx)
101172 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101173 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101174 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101175 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101176 , p_source_68 => l_array_source_68(Idx)
101177 , p_source_69 => l_array_source_69(Idx)
101178 , p_source_70 => l_array_source_70(Idx)
101179 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101180 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101181 , p_source_72 => l_array_source_72(Idx)
101182 , p_source_73 => l_array_source_73(Idx)
101183 , p_source_74 => l_array_source_74(Idx)
101184 , p_source_75 => l_array_source_75(Idx)
101185 , p_source_76 => l_array_source_76(Idx)
101186 , p_source_77 => l_array_source_77(Idx)
101187 , p_source_111 => l_array_source_111(Idx)
101188 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101189 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101190 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101191 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101192 );
101193 If(l_balance_type_code = 'A') THEN
101194 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101195 END IF;
101196
101197 --
101198
101199
101200 --
101201 AcctLineType_108 (
101202 p_application_id => p_application_id
101203 ,p_event_id => l_event_id
101204 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101205 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101206 ,p_actual_flag => l_actual_flag
101207 ,p_balance_type_code => l_balance_type_code
101208 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101209
101210 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101211 , p_source_21 => l_array_source_21(Idx)
101212 , p_source_29 => l_array_source_29(Idx)
101213 , p_source_32 => l_array_source_32(Idx)
101214 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101218 , p_source_52 => l_array_source_52(Idx)
101215 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101216 , p_source_51 => l_array_source_51(Idx)
101217 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101219 , p_source_53 => l_array_source_53(Idx)
101220 , p_source_54 => l_array_source_54(Idx)
101221 , p_source_59 => l_array_source_59(Idx)
101222 , p_source_60 => l_array_source_60(Idx)
101223 , p_source_64 => l_array_source_64(Idx)
101224 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101225 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101226 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101227 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101228 , p_source_68 => l_array_source_68(Idx)
101229 , p_source_69 => l_array_source_69(Idx)
101230 , p_source_70 => l_array_source_70(Idx)
101231 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101232 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101233 , p_source_72 => l_array_source_72(Idx)
101234 , p_source_73 => l_array_source_73(Idx)
101235 , p_source_74 => l_array_source_74(Idx)
101236 , p_source_75 => l_array_source_75(Idx)
101237 , p_source_76 => l_array_source_76(Idx)
101238 , p_source_77 => l_array_source_77(Idx)
101239 , p_source_111 => l_array_source_111(Idx)
101240 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101241 , p_source_112 => l_array_source_112(Idx)
101242 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101243 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101244 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101245 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101246 );
101247 If(l_balance_type_code = 'A') THEN
101248 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101249 END IF;
101250
101251 --
101252
101253
101254 --
101255 AcctLineType_116 (
101256 p_application_id => p_application_id
101257 ,p_event_id => l_event_id
101258 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101259 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101260 ,p_actual_flag => l_actual_flag
101261 ,p_balance_type_code => l_balance_type_code
101262 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101263
101264 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101265 , p_source_21 => l_array_source_21(Idx)
101266 , p_source_29 => l_array_source_29(Idx)
101267 , p_source_32 => l_array_source_32(Idx)
101268 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101269 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101270 , p_source_51 => l_array_source_51(Idx)
101271 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101272 , p_source_52 => l_array_source_52(Idx)
101273 , p_source_53 => l_array_source_53(Idx)
101274 , p_source_54 => l_array_source_54(Idx)
101275 , p_source_59 => l_array_source_59(Idx)
101276 , p_source_60 => l_array_source_60(Idx)
101277 , p_source_64 => l_array_source_64(Idx)
101278 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101279 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101280 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101281 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101282 , p_source_68 => l_array_source_68(Idx)
101283 , p_source_69 => l_array_source_69(Idx)
101284 , p_source_70 => l_array_source_70(Idx)
101285 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101286 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101287 , p_source_72 => l_array_source_72(Idx)
101288 , p_source_73 => l_array_source_73(Idx)
101289 , p_source_74 => l_array_source_74(Idx)
101290 , p_source_75 => l_array_source_75(Idx)
101291 , p_source_76 => l_array_source_76(Idx)
101292 , p_source_77 => l_array_source_77(Idx)
101293 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101294 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101295 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101296 );
101297 If(l_balance_type_code = 'A') THEN
101298 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101299 END IF;
101300
101301 --
101302
101303
101304 --
101305 AcctLineType_121 (
101306 p_application_id => p_application_id
101307 ,p_event_id => l_event_id
101308 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101309 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101310 ,p_actual_flag => l_actual_flag
101311 ,p_balance_type_code => l_balance_type_code
101312 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101313
101314 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101315 , p_source_21 => l_array_source_21(Idx)
101316 , p_source_29 => l_array_source_29(Idx)
101317 , p_source_32 => l_array_source_32(Idx)
101318 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101319 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101320 , p_source_51 => l_array_source_51(Idx)
101321 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101322 , p_source_52 => l_array_source_52(Idx)
101323 , p_source_53 => l_array_source_53(Idx)
101324 , p_source_54 => l_array_source_54(Idx)
101325 , p_source_59 => l_array_source_59(Idx)
101326 , p_source_60 => l_array_source_60(Idx)
101327 , p_source_61 => l_array_source_61(Idx)
101331 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101328 , p_source_62 => l_array_source_62(Idx)
101329 , p_source_63 => l_array_source_63(Idx)
101330 , p_source_64 => l_array_source_64(Idx)
101332 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101333 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101334 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101335 , p_source_68 => l_array_source_68(Idx)
101336 , p_source_69 => l_array_source_69(Idx)
101337 , p_source_70 => l_array_source_70(Idx)
101338 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101339 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101340 , p_source_72 => l_array_source_72(Idx)
101341 , p_source_73 => l_array_source_73(Idx)
101342 , p_source_74 => l_array_source_74(Idx)
101343 , p_source_75 => l_array_source_75(Idx)
101344 , p_source_76 => l_array_source_76(Idx)
101345 , p_source_77 => l_array_source_77(Idx)
101346 , p_source_111 => l_array_source_111(Idx)
101347 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101348 , p_source_112 => l_array_source_112(Idx)
101349 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101350 );
101351 If(l_balance_type_code = 'A') THEN
101352 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101353 END IF;
101354
101355 --
101356
101357
101358 --
101359 AcctLineType_124 (
101360 p_application_id => p_application_id
101361 ,p_event_id => l_event_id
101362 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101363 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101364 ,p_actual_flag => l_actual_flag
101365 ,p_balance_type_code => l_balance_type_code
101366 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101367
101368 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101369 , p_source_21 => l_array_source_21(Idx)
101370 , p_source_29 => l_array_source_29(Idx)
101371 , p_source_32 => l_array_source_32(Idx)
101372 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101373 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101374 , p_source_51 => l_array_source_51(Idx)
101375 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101376 , p_source_52 => l_array_source_52(Idx)
101377 , p_source_53 => l_array_source_53(Idx)
101378 , p_source_54 => l_array_source_54(Idx)
101379 , p_source_59 => l_array_source_59(Idx)
101380 , p_source_60 => l_array_source_60(Idx)
101381 , p_source_64 => l_array_source_64(Idx)
101382 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101383 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101384 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101385 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101386 , p_source_68 => l_array_source_68(Idx)
101387 , p_source_69 => l_array_source_69(Idx)
101388 , p_source_70 => l_array_source_70(Idx)
101389 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101390 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101391 , p_source_72 => l_array_source_72(Idx)
101392 , p_source_73 => l_array_source_73(Idx)
101393 , p_source_74 => l_array_source_74(Idx)
101394 , p_source_75 => l_array_source_75(Idx)
101395 , p_source_76 => l_array_source_76(Idx)
101396 , p_source_77 => l_array_source_77(Idx)
101397 , p_source_111 => l_array_source_111(Idx)
101398 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101399 , p_source_112 => l_array_source_112(Idx)
101400 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101401 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101402 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101403 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101404 );
101405 If(l_balance_type_code = 'A') THEN
101406 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101407 END IF;
101408
101409 --
101410
101411
101412 --
101413 AcctLineType_130 (
101414 p_application_id => p_application_id
101415 ,p_event_id => l_event_id
101416 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101417 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101418 ,p_actual_flag => l_actual_flag
101419 ,p_balance_type_code => l_balance_type_code
101420 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101421
101422 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101423 , p_source_21 => l_array_source_21(Idx)
101424 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
101425 , p_source_52 => l_array_source_52(Idx)
101426 , p_source_53 => l_array_source_53(Idx)
101427 , p_source_54 => l_array_source_54(Idx)
101428 , p_source_59 => l_array_source_59(Idx)
101429 , p_source_60 => l_array_source_60(Idx)
101430 , p_source_64 => l_array_source_64(Idx)
101431 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101432 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101433 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101434 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101435 , p_source_68 => l_array_source_68(Idx)
101436 , p_source_69 => l_array_source_69(Idx)
101437 , p_source_70 => l_array_source_70(Idx)
101438 , p_source_72 => l_array_source_72(Idx)
101439 , p_source_73 => l_array_source_73(Idx)
101440 , p_source_74 => l_array_source_74(Idx)
101441 , p_source_75 => l_array_source_75(Idx)
101445 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101442 , p_source_76 => l_array_source_76(Idx)
101443 , p_source_77 => l_array_source_77(Idx)
101444 , p_source_120 => g_array_event(l_event_id).array_value_char('source_120')
101446 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101447 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101448 );
101449 If(l_balance_type_code = 'A') THEN
101450 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101451 END IF;
101452
101453 --
101454
101455
101456 --
101457 AcctLineType_132 (
101458 p_application_id => p_application_id
101459 ,p_event_id => l_event_id
101460 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101461 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101462 ,p_actual_flag => l_actual_flag
101463 ,p_balance_type_code => l_balance_type_code
101464 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101465
101466 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101467 , p_source_21 => l_array_source_21(Idx)
101468 , p_source_29 => l_array_source_29(Idx)
101469 , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
101470 , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
101471 , p_source_31 => l_array_source_31(Idx)
101472 , p_source_32 => l_array_source_32(Idx)
101473 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101474 , p_source_40 => l_array_source_40(Idx)
101475 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101476 , p_source_51 => l_array_source_51(Idx)
101477 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101478 , p_source_52 => l_array_source_52(Idx)
101479 , p_source_53 => l_array_source_53(Idx)
101480 , p_source_54 => l_array_source_54(Idx)
101481 , p_source_59 => l_array_source_59(Idx)
101482 , p_source_60 => l_array_source_60(Idx)
101483 , p_source_64 => l_array_source_64(Idx)
101484 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101485 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101486 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101487 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101488 , p_source_68 => l_array_source_68(Idx)
101489 , p_source_69 => l_array_source_69(Idx)
101490 , p_source_70 => l_array_source_70(Idx)
101491 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101492 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101493 , p_source_72 => l_array_source_72(Idx)
101494 , p_source_73 => l_array_source_73(Idx)
101495 , p_source_74 => l_array_source_74(Idx)
101496 , p_source_75 => l_array_source_75(Idx)
101497 , p_source_76 => l_array_source_76(Idx)
101498 , p_source_77 => l_array_source_77(Idx)
101499 , p_source_112 => l_array_source_112(Idx)
101500 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101501 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101502 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101503 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101504 );
101505 If(l_balance_type_code = 'A') THEN
101506 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101507 END IF;
101508
101509 --
101510
101511
101512 --
101513 AcctLineType_139 (
101514 p_application_id => p_application_id
101515 ,p_event_id => l_event_id
101516 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101517 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101518 ,p_actual_flag => l_actual_flag
101519 ,p_balance_type_code => l_balance_type_code
101520 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101521
101522 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101523 , p_source_21 => l_array_source_21(Idx)
101524 , p_source_29 => l_array_source_29(Idx)
101525 , p_source_32 => l_array_source_32(Idx)
101526 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101527 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101528 , p_source_51 => l_array_source_51(Idx)
101529 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101530 , p_source_52 => l_array_source_52(Idx)
101531 , p_source_53 => l_array_source_53(Idx)
101532 , p_source_54 => l_array_source_54(Idx)
101533 , p_source_59 => l_array_source_59(Idx)
101534 , p_source_60 => l_array_source_60(Idx)
101535 , p_source_64 => l_array_source_64(Idx)
101536 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101537 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101538 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101539 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101540 , p_source_68 => l_array_source_68(Idx)
101541 , p_source_69 => l_array_source_69(Idx)
101542 , p_source_70 => l_array_source_70(Idx)
101543 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101544 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101545 , p_source_72 => l_array_source_72(Idx)
101546 , p_source_73 => l_array_source_73(Idx)
101547 , p_source_74 => l_array_source_74(Idx)
101548 , p_source_75 => l_array_source_75(Idx)
101549 , p_source_76 => l_array_source_76(Idx)
101550 , p_source_77 => l_array_source_77(Idx)
101551 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101552 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101556 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101553 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101554 );
101555 If(l_balance_type_code = 'A') THEN
101557 END IF;
101558
101559 --
101560
101561
101562 --
101563 AcctLineType_142 (
101564 p_application_id => p_application_id
101565 ,p_event_id => l_event_id
101566 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101567 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101568 ,p_actual_flag => l_actual_flag
101569 ,p_balance_type_code => l_balance_type_code
101570 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101571
101572 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101573 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101574 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101575 , p_source_21 => l_array_source_21(Idx)
101576 , p_source_29 => l_array_source_29(Idx)
101577 , p_source_32 => l_array_source_32(Idx)
101578 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101579 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
101580 , p_source_35 => l_array_source_35(Idx)
101581 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101582 , p_source_52 => l_array_source_52(Idx)
101583 , p_source_53 => l_array_source_53(Idx)
101584 , p_source_54 => l_array_source_54(Idx)
101585 , p_source_59 => l_array_source_59(Idx)
101586 , p_source_60 => l_array_source_60(Idx)
101587 , p_source_64 => l_array_source_64(Idx)
101588 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101589 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101590 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101591 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101592 , p_source_68 => l_array_source_68(Idx)
101593 , p_source_69 => l_array_source_69(Idx)
101594 , p_source_70 => l_array_source_70(Idx)
101595 , p_source_72 => l_array_source_72(Idx)
101596 , p_source_73 => l_array_source_73(Idx)
101597 , p_source_74 => l_array_source_74(Idx)
101598 , p_source_75 => l_array_source_75(Idx)
101599 , p_source_76 => l_array_source_76(Idx)
101600 , p_source_77 => l_array_source_77(Idx)
101601 , p_source_112 => l_array_source_112(Idx)
101602 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101603 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101604 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101605 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101606 );
101607 If(l_balance_type_code = 'A') THEN
101608 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101609 END IF;
101610
101611 --
101612
101613
101614 --
101615 AcctLineType_148 (
101616 p_application_id => p_application_id
101617 ,p_event_id => l_event_id
101618 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101619 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101620 ,p_actual_flag => l_actual_flag
101621 ,p_balance_type_code => l_balance_type_code
101622 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101623
101624 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101625 , p_source_21 => l_array_source_21(Idx)
101626 , p_source_32 => l_array_source_32(Idx)
101627 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101628 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101629 , p_source_52 => l_array_source_52(Idx)
101630 , p_source_53 => l_array_source_53(Idx)
101631 , p_source_54 => l_array_source_54(Idx)
101632 , p_source_59 => l_array_source_59(Idx)
101633 , p_source_60 => l_array_source_60(Idx)
101634 , p_source_64 => l_array_source_64(Idx)
101635 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101636 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101637 , p_source_68 => l_array_source_68(Idx)
101638 , p_source_69 => l_array_source_69(Idx)
101639 , p_source_70 => l_array_source_70(Idx)
101640 , p_source_72 => l_array_source_72(Idx)
101641 , p_source_73 => l_array_source_73(Idx)
101642 , p_source_74 => l_array_source_74(Idx)
101643 , p_source_77 => l_array_source_77(Idx)
101644 , p_source_112 => l_array_source_112(Idx)
101645 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101646 , p_source_153 => l_array_source_153(Idx)
101647 , p_source_154 => l_array_source_154(Idx)
101648 );
101649 If(l_balance_type_code = 'A') THEN
101650 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101651 END IF;
101652
101653 --
101654
101655
101656 --
101657 AcctLineType_150 (
101658 p_application_id => p_application_id
101659 ,p_event_id => l_event_id
101660 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101661 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101662 ,p_actual_flag => l_actual_flag
101663 ,p_balance_type_code => l_balance_type_code
101664 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101665
101666 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101667 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101668 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101669 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
101670 , p_source_19 => l_array_source_19(Idx)
101671 , p_source_19_meaning => l_array_source_19_meaning(Idx)
101672 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
101673 , p_source_21 => l_array_source_21(Idx)
101677 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
101674 , p_source_22 => l_array_source_22(Idx)
101675 , p_source_29 => l_array_source_29(Idx)
101676 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
101678 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101679 , p_source_51 => l_array_source_51(Idx)
101680 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101681 , p_source_52 => l_array_source_52(Idx)
101682 , p_source_53 => l_array_source_53(Idx)
101683 , p_source_54 => l_array_source_54(Idx)
101684 , p_source_59 => l_array_source_59(Idx)
101685 , p_source_60 => l_array_source_60(Idx)
101686 , p_source_64 => l_array_source_64(Idx)
101687 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101688 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101689 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101690 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101691 , p_source_68 => l_array_source_68(Idx)
101692 , p_source_69 => l_array_source_69(Idx)
101693 , p_source_70 => l_array_source_70(Idx)
101694 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101695 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101696 , p_source_72 => l_array_source_72(Idx)
101697 , p_source_73 => l_array_source_73(Idx)
101698 , p_source_74 => l_array_source_74(Idx)
101699 , p_source_75 => l_array_source_75(Idx)
101700 , p_source_76 => l_array_source_76(Idx)
101701 , p_source_77 => l_array_source_77(Idx)
101702 , p_source_111 => l_array_source_111(Idx)
101703 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101704 , p_source_112 => l_array_source_112(Idx)
101705 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101706 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101707 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101708 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101709 );
101710 If(l_balance_type_code = 'A') THEN
101711 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101712 END IF;
101713
101714 --
101715
101716
101717 --
101718 AcctLineType_153 (
101719 p_application_id => p_application_id
101720 ,p_event_id => l_event_id
101721 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101722 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101723 ,p_actual_flag => l_actual_flag
101724 ,p_balance_type_code => l_balance_type_code
101725 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101726
101727 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101728 , p_source_21 => l_array_source_21(Idx)
101729 , p_source_29 => l_array_source_29(Idx)
101730 , p_source_32 => l_array_source_32(Idx)
101731 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101732 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101733 , p_source_51 => l_array_source_51(Idx)
101734 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101735 , p_source_52 => l_array_source_52(Idx)
101736 , p_source_53 => l_array_source_53(Idx)
101737 , p_source_54 => l_array_source_54(Idx)
101738 , p_source_59 => l_array_source_59(Idx)
101739 , p_source_60 => l_array_source_60(Idx)
101740 , p_source_64 => l_array_source_64(Idx)
101741 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101742 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101743 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101744 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101745 , p_source_68 => l_array_source_68(Idx)
101746 , p_source_69 => l_array_source_69(Idx)
101747 , p_source_70 => l_array_source_70(Idx)
101748 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101749 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101750 , p_source_72 => l_array_source_72(Idx)
101751 , p_source_73 => l_array_source_73(Idx)
101752 , p_source_74 => l_array_source_74(Idx)
101753 , p_source_75 => l_array_source_75(Idx)
101754 , p_source_76 => l_array_source_76(Idx)
101755 , p_source_77 => l_array_source_77(Idx)
101756 , p_source_111 => l_array_source_111(Idx)
101757 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101758 , p_source_112 => l_array_source_112(Idx)
101759 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101760 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101761 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101762 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101763 );
101764 If(l_balance_type_code = 'A') THEN
101765 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101766 END IF;
101767
101768 --
101769
101770
101771 --
101772 AcctLineType_156 (
101773 p_application_id => p_application_id
101774 ,p_event_id => l_event_id
101775 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101776 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101777 ,p_actual_flag => l_actual_flag
101778 ,p_balance_type_code => l_balance_type_code
101779 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101780
101781 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101782 , p_source_21 => l_array_source_21(Idx)
101783 , p_source_29 => l_array_source_29(Idx)
101784 , p_source_32 => l_array_source_32(Idx)
101785 , p_source_32_meaning => l_array_source_32_meaning(Idx)
101789 , p_source_52 => l_array_source_52(Idx)
101786 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101787 , p_source_51 => l_array_source_51(Idx)
101788 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101790 , p_source_53 => l_array_source_53(Idx)
101791 , p_source_54 => l_array_source_54(Idx)
101792 , p_source_59 => l_array_source_59(Idx)
101793 , p_source_60 => l_array_source_60(Idx)
101794 , p_source_64 => l_array_source_64(Idx)
101795 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101796 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101797 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101798 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101799 , p_source_68 => l_array_source_68(Idx)
101800 , p_source_69 => l_array_source_69(Idx)
101801 , p_source_70 => l_array_source_70(Idx)
101802 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101803 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101804 , p_source_72 => l_array_source_72(Idx)
101805 , p_source_73 => l_array_source_73(Idx)
101806 , p_source_74 => l_array_source_74(Idx)
101807 , p_source_75 => l_array_source_75(Idx)
101808 , p_source_76 => l_array_source_76(Idx)
101809 , p_source_77 => l_array_source_77(Idx)
101810 , p_source_111 => l_array_source_111(Idx)
101811 , p_source_111_meaning => l_array_source_111_meaning(Idx)
101812 , p_source_112 => l_array_source_112(Idx)
101813 , p_source_112_meaning => l_array_source_112_meaning(Idx)
101814 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101815 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101816 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101817 );
101818 If(l_balance_type_code = 'A') THEN
101819 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101820 END IF;
101821
101822 --
101823
101824
101825 --
101826 AcctLineType_165 (
101827 p_application_id => p_application_id
101828 ,p_event_id => l_event_id
101829 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101830 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101831 ,p_actual_flag => l_actual_flag
101832 ,p_balance_type_code => l_balance_type_code
101833 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101834
101835 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
101836 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
101837 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
101838 , p_source_21 => l_array_source_21(Idx)
101839 , p_source_29 => l_array_source_29(Idx)
101840 , p_source_36 => l_array_source_36(Idx)
101841 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
101842 , p_source_51 => l_array_source_51(Idx)
101843 , p_source_51_meaning => l_array_source_51_meaning(Idx)
101844 , p_source_52 => l_array_source_52(Idx)
101845 , p_source_53 => l_array_source_53(Idx)
101846 , p_source_54 => l_array_source_54(Idx)
101847 , p_source_59 => l_array_source_59(Idx)
101848 , p_source_60 => l_array_source_60(Idx)
101849 , p_source_64 => l_array_source_64(Idx)
101850 , p_source_64_meaning => l_array_source_64_meaning(Idx)
101851 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
101852 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
101853 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
101854 , p_source_68 => l_array_source_68(Idx)
101855 , p_source_69 => l_array_source_69(Idx)
101856 , p_source_70 => l_array_source_70(Idx)
101857 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
101858 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
101859 , p_source_72 => l_array_source_72(Idx)
101860 , p_source_73 => l_array_source_73(Idx)
101861 , p_source_74 => l_array_source_74(Idx)
101862 , p_source_75 => l_array_source_75(Idx)
101863 , p_source_76 => l_array_source_76(Idx)
101864 , p_source_77 => l_array_source_77(Idx)
101865 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
101866 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
101867 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
101868 );
101869 If(l_balance_type_code = 'A') THEN
101870 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101871 END IF;
101872
101873 --
101874
101875 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
101876 -- or secondary ledger that has different currency with primary
101877 -- or alc that is calculated by sla
101878 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
101879 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y'))
101880
101881 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
101882 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
101883 AND (l_actual_flag = 'A')) THEN
101884 XLA_AE_LINES_PKG.CreateGainOrLossLines(
101885 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
101886 ,p_application_id => p_application_id
101887 ,p_amb_context_code => 'DEFAULT'
101888 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
101889 ,p_event_class_code => C_EVENT_CLASS_CODE
101893 ,p_loss_ccid => -1
101890 ,p_event_type_code => C_EVENT_TYPE_CODE
101891
101892 ,p_gain_ccid => -1
101894
101895 ,p_actual_flag => l_actual_flag
101896 ,p_enc_flag => null
101897 ,p_actual_g_l_ref => l_actual_gain_loss_ref
101898 ,p_enc_g_l_ref => null
101899 );
101900 END IF;
101901 END IF;
101902 END IF;
101903
101904 ELSE
101905 --
101906 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
101907 --
101908 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101909 trace
101910 (p_msg => 'Trancaction revesal option is Y'
101911 ,p_level => C_LEVEL_STATEMENT
101912 ,p_module => l_log_module);
101913 END IF;
101914 END IF;
101915
101916 END LOOP;
101917 l_result := XLA_AE_LINES_PKG.InsertLines ;
101918 end loop;
101919 close line_cur;
101920
101921
101922 --
101923 -- insert headers into xla_ae_headers_gt table
101924 --
101925 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
101926
101927 -- insert into errors table here.
101928
101929 END LOOP;
101930
101931 --
101932 -- 4865292
101933 --
101934 -- Compare g_hdr_extract_count with event count in
101935 -- CreateHeadersAndLines.
101936 --
101937 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
101938
101939 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101940 trace (p_msg => '# rows extracted from header extract objects '
101941 || ' (running total): '
101942 || g_hdr_extract_count
101943 ,p_level => C_LEVEL_STATEMENT
101944 ,p_module => l_log_module);
101945 END IF;
101946
101947 CLOSE header_cur;
101948 --
101949
101950 --
101951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101952 trace
101953 (p_msg => 'END of EventClass_167'
101954 ,p_level => C_LEVEL_PROCEDURE
101955 ,p_module => l_log_module);
101956 END IF;
101957 --
101958 RETURN l_result;
101959 EXCEPTION
101960 WHEN xla_exceptions_pkg.application_exception THEN
101961
101962 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
101963
101964
101965 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
101966
101967 RAISE;
101968
101969 WHEN NO_DATA_FOUND THEN
101970
101971 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
101972 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
101973
101974 FOR header_record IN header_cur
101975 LOOP
101976 l_array_header_events(header_record.event_id) := header_record.event_id;
101977 END LOOP;
101978
101979 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
101980 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
101981
101982 fnd_file.put_line(fnd_file.LOG, ' ');
101983 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
101984 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
101985 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
101986
101987 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
101988 LOOP
101989 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
101990 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
101991 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
101992 END IF;
101993 END LOOP;
101994
101995 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
101996 fnd_file.put_line(fnd_file.LOG, ' ');
101997
101998
101999 xla_exceptions_pkg.raise_message
102000 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_167');
102001
102002
102003 WHEN OTHERS THEN
102004 xla_exceptions_pkg.raise_message
102005 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_167');
102006 END EventClass_167;
102007 --
102008
102009 ---------------------------------------
102010 --
102011 -- PRIVATE PROCEDURE
102012 -- insert_sources_168
102013 --
102014 ----------------------------------------
102015 --
102016 PROCEDURE insert_sources_168(
102017 p_target_ledger_id IN NUMBER
102018 , p_language IN VARCHAR2
102019 , p_sla_ledger_id IN NUMBER
102020 , p_pad_start_date IN DATE
102021 , p_pad_end_date IN DATE
102022 )
102023 IS
102024
102025 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS_ALL';
102026 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
102027 p_apps_owner VARCHAR2(30);
102028 l_log_module VARCHAR2(240);
102029 BEGIN
102030 IF g_log_enabled THEN
102031 l_log_module := C_DEFAULT_MODULE||'.insert_sources_168';
102032 END IF;
102033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102034
102035 trace
102036 (p_msg => 'BEGIN of insert_sources_168'
102040 END IF;
102037 ,p_level => C_LEVEL_PROCEDURE
102038 ,p_module => l_log_module);
102039
102041
102042 -- select APPS owner
102043 SELECT oracle_username
102044 INTO p_apps_owner
102045 FROM fnd_oracle_userid
102046 WHERE read_only_flag = 'U'
102047 ;
102048
102049 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102050 trace
102051 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
102052 ' - p_language = '||p_language||
102053 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
102054 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
102055 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
102056 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
102057 ,p_level => C_LEVEL_STATEMENT
102058 ,p_module => l_log_module);
102059 END IF;
102060
102061
102062 --
102063 INSERT INTO xla_diag_sources --hdr2
102064 (
102065 event_id
102066 , ledger_id
102067 , sla_ledger_id
102068 , description_language
102069 , object_name
102070 , object_type_code
102071 , line_number
102072 , source_application_id
102073 , source_type_code
102074 , source_code
102075 , source_value
102076 , source_meaning
102077 , created_by
102078 , creation_date
102079 , last_update_date
102080 , last_updated_by
102081 , last_update_login
102082 , program_update_date
102083 , program_application_id
102084 , program_id
102085 , request_id
102086 )
102087 SELECT
102088 event_id
102089 , p_target_ledger_id
102090 , p_sla_ledger_id
102091 , p_language
102092 , object_name
102093 , object_type_code
102094 , line_number
102095 , source_application_id
102096 , source_type_code
102097 , source_code
102098 , SUBSTR(source_value ,1,1996)
102099 , SUBSTR(source_meaning ,1,200)
102100 , xla_environment_pkg.g_Usr_Id
102101 , TRUNC(SYSDATE)
102102 , TRUNC(SYSDATE)
102103 , xla_environment_pkg.g_Usr_Id
102104 , xla_environment_pkg.g_Login_Id
102105 , TRUNC(SYSDATE)
102106 , xla_environment_pkg.g_Prog_Appl_Id
102107 , xla_environment_pkg.g_Prog_Id
102108 , xla_environment_pkg.g_Req_Id
102109 FROM (
102110 SELECT xet.event_id event_id
102111 , 0 line_number
102112 , CASE r
102113 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102114 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102115 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102116 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102117 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102118 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102119 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102120 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102121 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102122 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102123 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102124 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102125 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
102126 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102127 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102128 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102129 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102130 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102131 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102132 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102133 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102134 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
102135
102136 ELSE null
102137 END object_name
102138 , CASE r
102139 WHEN 1 THEN 'HEADER'
102140 WHEN 2 THEN 'HEADER'
102141 WHEN 3 THEN 'HEADER'
102142 WHEN 4 THEN 'HEADER'
102143 WHEN 5 THEN 'HEADER'
102144 WHEN 6 THEN 'HEADER'
102145 WHEN 7 THEN 'HEADER'
102146 WHEN 8 THEN 'HEADER'
102147 WHEN 9 THEN 'HEADER'
102148 WHEN 10 THEN 'HEADER'
102149 WHEN 11 THEN 'HEADER'
102150 WHEN 12 THEN 'HEADER'
102151 WHEN 13 THEN 'HEADER'
102152 WHEN 14 THEN 'HEADER'
102153 WHEN 15 THEN 'HEADER'
102154 WHEN 16 THEN 'HEADER'
102155 WHEN 17 THEN 'HEADER'
102156 WHEN 18 THEN 'HEADER'
102157 WHEN 19 THEN 'HEADER'
102158 WHEN 20 THEN 'HEADER'
102159 WHEN 21 THEN 'HEADER'
102160 WHEN 22 THEN 'HEADER'
102161
102162 ELSE null
102163 END object_type_code
102164 , CASE r
102165 WHEN 1 THEN '200'
102166 WHEN 2 THEN '200'
102167 WHEN 3 THEN '200'
102168 WHEN 4 THEN '200'
102172 WHEN 8 THEN '200'
102169 WHEN 5 THEN '200'
102170 WHEN 6 THEN '200'
102171 WHEN 7 THEN '200'
102173 WHEN 9 THEN '200'
102174 WHEN 10 THEN '200'
102175 WHEN 11 THEN '200'
102176 WHEN 12 THEN '200'
102177 WHEN 13 THEN '200'
102178 WHEN 14 THEN '200'
102179 WHEN 15 THEN '200'
102180 WHEN 16 THEN '200'
102181 WHEN 17 THEN '200'
102182 WHEN 18 THEN '200'
102183 WHEN 19 THEN '200'
102184 WHEN 20 THEN '200'
102185 WHEN 21 THEN '200'
102186 WHEN 22 THEN '200'
102187
102188 ELSE null
102189 END source_application_id
102190 , 'S' source_type_code
102191 , CASE r
102192 WHEN 1 THEN 'INV_TRANSACTION_NUMBER'
102193 WHEN 2 THEN 'AI_INVOICE_DATE'
102194 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY'
102195 WHEN 4 THEN 'DOC_SEQUENCE_NAME'
102196 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE'
102197 WHEN 6 THEN 'AI_DESCRIPTION'
102198 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
102199 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID'
102200 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID'
102201 WHEN 10 THEN 'FSP_RETAINAGE_ACCOUNT'
102202 WHEN 11 THEN 'ASP_AUTO_OFFSET_FLAG'
102203 WHEN 12 THEN 'ASP_ROUNDING_ERROR_CCID'
102204 WHEN 13 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
102205 WHEN 14 THEN 'THIRD_PARTY_TYPE'
102206 WHEN 15 THEN 'AI_INVOICE_ID'
102207 WHEN 16 THEN 'AI_INVOICE_CURRENCY_CODE'
102208 WHEN 17 THEN 'AI_VENDOR_ID'
102209 WHEN 18 THEN 'AI_VENDOR_SITE_ID'
102210 WHEN 19 THEN 'INV_EXCHANGE_DATE'
102211 WHEN 20 THEN 'INV_EXCHANGE_RATE'
102212 WHEN 21 THEN 'INV_EXCHANGE_RATE_TYPE'
102213 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
102214
102215 ELSE null
102216 END source_code
102217 , CASE r
102218 WHEN 1 THEN TO_CHAR(h1.INV_TRANSACTION_NUMBER)
102219 WHEN 2 THEN TO_CHAR(h1.AI_INVOICE_DATE)
102220 WHEN 3 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
102221 WHEN 4 THEN TO_CHAR(h1.DOC_SEQUENCE_NAME)
102222 WHEN 5 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
102223 WHEN 6 THEN TO_CHAR(h1.AI_DESCRIPTION)
102224 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
102225 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
102226 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
102227 WHEN 10 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
102228 WHEN 11 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
102229 WHEN 12 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
102230 WHEN 13 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
102231 WHEN 14 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
102232 WHEN 15 THEN TO_CHAR(h1.AI_INVOICE_ID)
102233 WHEN 16 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
102234 WHEN 17 THEN TO_CHAR(h1.AI_VENDOR_ID)
102235 WHEN 18 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
102236 WHEN 19 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
102237 WHEN 20 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
102238 WHEN 21 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
102239 WHEN 22 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
102240
102241 ELSE null
102242 END source_value
102243 , CASE r
102244 WHEN 7 THEN fvl16.meaning
102245 WHEN 11 THEN fvl42.meaning
102246
102247 ELSE null
102248 END source_meaning
102249 FROM xla_events_gt xet
102250 , AP_INVOICE_EXTRACT_HEADER_V h1
102251 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
102252 , fnd_lookup_values fvl16
102253 , fnd_lookup_values fvl42
102254 ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
102255 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
102256 AND xet.event_class_code = C_EVENT_CLASS_CODE
102257 AND h1.event_id = xet.event_id
102258 AND h4.asp_org_id = h1.ai_org_id AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
102259 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
102260 AND fvl16.view_application_id(+) = 200
102261 AND fvl16.language(+) = USERENV('LANG')
102262 AND fvl42.lookup_type(+) = 'YES_NO'
102263 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
102264 AND fvl42.view_application_id(+) = 0
102265 AND fvl42.language(+) = USERENV('LANG')
102266
102267 )
102268 ;
102269 --
102270 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102271
102272 trace
102273 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
102274 ,p_level => C_LEVEL_STATEMENT
102275 ,p_module => l_log_module);
102276
102277 END IF;
102278 --
102279
102280
102281
102282 --
102283 INSERT INTO xla_diag_sources --line2
102284 (
102285 event_id
102286 , ledger_id
102287 , sla_ledger_id
102288 , description_language
102289 , object_name
102290 , object_type_code
102291 , line_number
102292 , source_application_id
102293 , source_type_code
102294 , source_code
102295 , source_value
102296 , source_meaning
102297 , created_by
102298 , creation_date
102299 , last_update_date
102300 , last_updated_by
102301 , last_update_login
102302 , program_update_date
102303 , program_application_id
102304 , program_id
102305 , request_id
102306 )
102307 SELECT event_id
102308 , p_target_ledger_id
102309 , p_sla_ledger_id
102310 , p_language
102311 , object_name
102312 , object_type_code
102313 , line_number
102314 , source_application_id
102315 , source_type_code
102316 , source_code
102317 , SUBSTR(source_value,1,1996)
102318 , SUBSTR(source_meaning ,1,200)
102319 , xla_environment_pkg.g_Usr_Id
102320 , TRUNC(SYSDATE)
102321 , TRUNC(SYSDATE)
102322 , xla_environment_pkg.g_Usr_Id
102323 , xla_environment_pkg.g_Login_Id
102324 , TRUNC(SYSDATE)
102325 , xla_environment_pkg.g_Prog_Appl_Id
102326 , xla_environment_pkg.g_Prog_Id
102327 , xla_environment_pkg.g_Req_Id
102328 FROM (
102329 SELECT xet.event_id event_id
102330 , l3.line_number line_number
102331 , CASE r
102332 WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102333 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102334 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102335 WHEN 4 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102336 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102337 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102338 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102339 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102340 WHEN 9 THEN 'AP_PO_HEADERS_EXTRACT_V'
102341 WHEN 10 THEN 'AP_PO_HEADERS_EXTRACT_V'
102342 WHEN 11 THEN 'AP_PO_HEADERS_EXTRACT_V'
102343 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102344 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
102345 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102346 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102347 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102348 WHEN 17 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
102349 WHEN 18 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102350 WHEN 19 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102351 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102352 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102356 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102353 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102354 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102355 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102357 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102358 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102359 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102360 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102361 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102362 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102363 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102364 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102365 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102366 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102367 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102368 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102369 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102370 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102371 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102372 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102373 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102374 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102375 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102376 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102377 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102378 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102379 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102380 WHEN 49 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102381 WHEN 50 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102382 WHEN 51 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102383 WHEN 52 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102384 WHEN 53 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102385 WHEN 54 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102386 WHEN 55 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102387 WHEN 56 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102388 WHEN 57 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102389 WHEN 58 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102390 WHEN 59 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102391 WHEN 60 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102392 WHEN 61 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V'
102393
102394 ELSE null
102395 END object_name
102396 , CASE r
102397 WHEN 1 THEN 'LINE'
102398 WHEN 2 THEN 'LINE'
102399 WHEN 3 THEN 'LINE'
102400 WHEN 4 THEN 'LINE'
102401 WHEN 5 THEN 'LINE'
102402 WHEN 6 THEN 'LINE'
102403 WHEN 7 THEN 'LINE'
102404 WHEN 8 THEN 'LINE'
102405 WHEN 9 THEN 'LINE'
102406 WHEN 10 THEN 'LINE'
102407 WHEN 11 THEN 'LINE'
102408 WHEN 12 THEN 'LINE'
102409 WHEN 13 THEN 'LINE'
102410 WHEN 14 THEN 'LINE'
102411 WHEN 15 THEN 'LINE'
102412 WHEN 16 THEN 'LINE'
102413 WHEN 17 THEN 'LINE'
102414 WHEN 18 THEN 'LINE'
102415 WHEN 19 THEN 'LINE'
102416 WHEN 20 THEN 'LINE'
102417 WHEN 21 THEN 'LINE'
102418 WHEN 22 THEN 'LINE'
102419 WHEN 23 THEN 'LINE'
102420 WHEN 24 THEN 'LINE'
102421 WHEN 25 THEN 'LINE'
102422 WHEN 26 THEN 'LINE'
102423 WHEN 27 THEN 'LINE'
102424 WHEN 28 THEN 'LINE'
102425 WHEN 29 THEN 'LINE'
102426 WHEN 30 THEN 'LINE'
102427 WHEN 31 THEN 'LINE'
102428 WHEN 32 THEN 'LINE'
102429 WHEN 33 THEN 'LINE'
102430 WHEN 34 THEN 'LINE'
102431 WHEN 35 THEN 'LINE'
102432 WHEN 36 THEN 'LINE'
102433 WHEN 37 THEN 'LINE'
102434 WHEN 38 THEN 'LINE'
102435 WHEN 39 THEN 'LINE'
102436 WHEN 40 THEN 'LINE'
102437 WHEN 41 THEN 'LINE'
102438 WHEN 42 THEN 'LINE'
102439 WHEN 43 THEN 'LINE'
102440 WHEN 44 THEN 'LINE'
102441 WHEN 45 THEN 'LINE'
102442 WHEN 46 THEN 'LINE'
102443 WHEN 47 THEN 'LINE'
102444 WHEN 48 THEN 'LINE'
102445 WHEN 49 THEN 'LINE'
102446 WHEN 50 THEN 'LINE'
102447 WHEN 51 THEN 'LINE'
102448 WHEN 52 THEN 'LINE'
102449 WHEN 53 THEN 'LINE'
102450 WHEN 54 THEN 'LINE'
102451 WHEN 55 THEN 'LINE'
102452 WHEN 56 THEN 'LINE'
102453 WHEN 57 THEN 'LINE'
102454 WHEN 58 THEN 'LINE'
102455 WHEN 59 THEN 'LINE'
102456 WHEN 60 THEN 'LINE'
102457 WHEN 61 THEN 'LINE'
102458
102459 ELSE null
102460 END object_type_code
102461 , CASE r
102462 WHEN 1 THEN '200'
102463 WHEN 2 THEN '200'
102464 WHEN 3 THEN '200'
102465 WHEN 4 THEN '200'
102466 WHEN 5 THEN '200'
102467 WHEN 6 THEN '200'
102468 WHEN 7 THEN '200'
102469 WHEN 8 THEN '200'
102470 WHEN 9 THEN '200'
102471 WHEN 10 THEN '200'
102475 WHEN 14 THEN '200'
102472 WHEN 11 THEN '200'
102473 WHEN 12 THEN '200'
102474 WHEN 13 THEN '200'
102476 WHEN 15 THEN '200'
102477 WHEN 16 THEN '200'
102478 WHEN 17 THEN '200'
102479 WHEN 18 THEN '200'
102480 WHEN 19 THEN '200'
102481 WHEN 20 THEN '200'
102482 WHEN 21 THEN '200'
102483 WHEN 22 THEN '200'
102484 WHEN 23 THEN '200'
102485 WHEN 24 THEN '200'
102486 WHEN 25 THEN '200'
102487 WHEN 26 THEN '200'
102488 WHEN 27 THEN '200'
102489 WHEN 28 THEN '200'
102490 WHEN 29 THEN '200'
102491 WHEN 30 THEN '200'
102492 WHEN 31 THEN '200'
102493 WHEN 32 THEN '200'
102494 WHEN 33 THEN '200'
102495 WHEN 34 THEN '200'
102496 WHEN 35 THEN '200'
102497 WHEN 36 THEN '200'
102498 WHEN 37 THEN '200'
102499 WHEN 38 THEN '200'
102500 WHEN 39 THEN '200'
102501 WHEN 40 THEN '200'
102502 WHEN 41 THEN '200'
102503 WHEN 42 THEN '200'
102504 WHEN 43 THEN '200'
102505 WHEN 44 THEN '200'
102506 WHEN 45 THEN '200'
102507 WHEN 46 THEN '200'
102508 WHEN 47 THEN '200'
102509 WHEN 48 THEN '200'
102510 WHEN 49 THEN '200'
102511 WHEN 50 THEN '200'
102512 WHEN 51 THEN '200'
102513 WHEN 52 THEN '200'
102514 WHEN 53 THEN '200'
102515 WHEN 54 THEN '200'
102516 WHEN 55 THEN '200'
102517 WHEN 56 THEN '200'
102518 WHEN 57 THEN '200'
102519 WHEN 58 THEN '200'
102520 WHEN 59 THEN '200'
102521 WHEN 60 THEN '200'
102522 WHEN 61 THEN '200'
102523
102524 ELSE null
102525 END source_application_id
102526 , 'S' source_type_code
102527 , CASE r
102528 WHEN 1 THEN 'INV_DIST_BASE_AMOUNT'
102529 WHEN 2 THEN 'RELATED_INV_DIST_DEST_TYPE'
102530 WHEN 3 THEN 'AID_DIST_CCID'
102531 WHEN 4 THEN 'AID_RET_RELATED_DIST_CCID'
102532 WHEN 5 THEN 'RECP_INV_DIST_CCID'
102533 WHEN 6 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
102534 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID'
102535 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE'
102536 WHEN 9 THEN 'POH_RATE_DATE'
102537 WHEN 10 THEN 'POH_RATE'
102538 WHEN 11 THEN 'POH_RATE_TYPE'
102539 WHEN 12 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
102540 WHEN 13 THEN 'TAX_LINE_ID'
102541 WHEN 14 THEN 'SUMMARY_TAX_LINE_ID'
102542 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE'
102543 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE'
102544 WHEN 17 THEN 'REC_NREC_TAX_DIST_ID'
102545 WHEN 18 THEN 'APAD_DIST_LOOKUP_CODE'
102546 WHEN 19 THEN 'RECP_INV_DIST_TYPE'
102547 WHEN 20 THEN 'APAD_DISTRIBUTION_IDENTIFIER'
102548 WHEN 21 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE'
102549 WHEN 22 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE'
102550 WHEN 23 THEN 'BF_ACCRUAL_PP_DIST_ID'
102551 WHEN 24 THEN 'BF_ACCRUAL_PP_INV'
102552 WHEN 25 THEN 'UPG_ENC_CR_ACCT_CLASS'
102553 WHEN 26 THEN 'UPG_ENC_CR_CCID'
102554 WHEN 27 THEN 'UPG_ENC_CR_AMT'
102555 WHEN 28 THEN 'UPG_ENC_CR_BASE_AMT'
102556 WHEN 29 THEN 'UPG_ENC_DR_ACCT_CLASS'
102557 WHEN 30 THEN 'UPG_ENC_DR_CCID'
102558 WHEN 31 THEN 'UPG_ENC_DR_AMT'
102559 WHEN 32 THEN 'UPG_ENC_DR_BASE_AMT'
102560 WHEN 33 THEN 'UPG_AP_ENCUM_OPTION'
102561 WHEN 34 THEN 'APAD_AMOUNT'
102562 WHEN 35 THEN 'PREPAY_CLEAR_CURRENCY_CODE'
102563 WHEN 36 THEN 'BASE_AMT_AT_PP_CLR_XRATE'
102564 WHEN 37 THEN 'DEFERRED_END_DATE'
102565 WHEN 38 THEN 'DEFERRED_OPTION'
102566 WHEN 39 THEN 'DEFERRED_START_DATE'
102567 WHEN 40 THEN 'REVERSED_PREPAY_APP_DIST_ID'
102568 WHEN 41 THEN 'UPG_CR_ENC_TYPE_ID'
102569 WHEN 42 THEN 'UPG_DR_ENC_TYPE_ID'
102570 WHEN 43 THEN 'PREPAY_PAY_CURRENCY_CODE'
102571 WHEN 44 THEN 'BASE_AMT_AT_PP_PAY_XRATE'
102572 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
102573 WHEN 46 THEN 'APAD_PREPAY_CLR_XDATE'
102574 WHEN 47 THEN 'APAD_PREPAY_CLR_XRATE'
102575 WHEN 48 THEN 'APAD_PREPAY_CLR_XRATE_TYPE'
102576 WHEN 49 THEN 'APAD_PREPAY_PAY_XDATE'
102577 WHEN 50 THEN 'APAD_PREPAY_PAY_XRATE'
102578 WHEN 51 THEN 'APAD_PREPAY_PAY_XRATE_TYPE'
102579 WHEN 52 THEN 'BF_CASHCLEARONLY_PP_DIST_TYPE'
102580 WHEN 53 THEN 'BF_CASHCLEARONLY_PREPAY_ENTITY'
102581 WHEN 54 THEN 'BF_CASHCLEAR_PP_CLEAR_DIST_ID'
102582 WHEN 55 THEN 'BF_CASHALWAYS_PP_PMT_ID'
102583 WHEN 56 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE'
102584 WHEN 57 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY'
102585 WHEN 58 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID'
102586 WHEN 59 THEN 'AI_RECIPIENT_INV_TYPE'
102587 WHEN 60 THEN 'BF_RET_DIST_ASSOC_TO_PP_RECIP'
102588 WHEN 61 THEN 'BF_RET_INV_ASSOC_TO_PP_RECIP'
102589
102590 ELSE null
102594 WHEN 2 THEN TO_CHAR(l3.RELATED_INV_DIST_DEST_TYPE)
102591 END source_code
102592 , CASE r
102593 WHEN 1 THEN TO_CHAR(l3.INV_DIST_BASE_AMOUNT)
102595 WHEN 3 THEN TO_CHAR(l3.AID_DIST_CCID)
102596 WHEN 4 THEN TO_CHAR(l3.AID_RET_RELATED_DIST_CCID)
102597 WHEN 5 THEN TO_CHAR(l3.RECP_INV_DIST_CCID)
102598 WHEN 6 THEN TO_CHAR(l3.DIST_ACCOUNT_REVERSAL_OPTION)
102599 WHEN 7 THEN TO_CHAR(l3.BUS_FLOW_AP_APP_ID)
102600 WHEN 8 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
102601 WHEN 9 THEN TO_CHAR(l2.POH_RATE_DATE)
102602 WHEN 10 THEN TO_CHAR(l2.POH_RATE)
102603 WHEN 11 THEN TO_CHAR(l2.POH_RATE_TYPE)
102604 WHEN 12 THEN TO_CHAR(l3.OVERRIDE_ACCTD_AMT_FLAG)
102605 WHEN 13 THEN TO_CHAR(l5.TAX_LINE_ID)
102606 WHEN 14 THEN TO_CHAR(l3.SUMMARY_TAX_LINE_ID)
102607 WHEN 15 THEN TO_CHAR(l3.BUS_FLOW_INV_DIST_TYPE)
102608 WHEN 16 THEN TO_CHAR(l3.BUS_FLOW_INV_ENTITY_CODE)
102609 WHEN 17 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
102610 WHEN 18 THEN TO_CHAR(l3.APAD_DIST_LOOKUP_CODE)
102611 WHEN 19 THEN TO_CHAR(l3.RECP_INV_DIST_TYPE)
102612 WHEN 20 THEN TO_CHAR(l3.APAD_DISTRIBUTION_IDENTIFIER)
102613 WHEN 21 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_DIST_TYPE)
102614 WHEN 22 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_ENTITY_CODE)
102615 WHEN 23 THEN TO_CHAR(l3.BF_ACCRUAL_PP_DIST_ID)
102616 WHEN 24 THEN TO_CHAR(l3.BF_ACCRUAL_PP_INV)
102617 WHEN 25 THEN TO_CHAR(l3.UPG_ENC_CR_ACCT_CLASS)
102618 WHEN 26 THEN TO_CHAR(l3.UPG_ENC_CR_CCID)
102619 WHEN 27 THEN TO_CHAR(l3.UPG_ENC_CR_AMT)
102620 WHEN 28 THEN TO_CHAR(l3.UPG_ENC_CR_BASE_AMT)
102621 WHEN 29 THEN TO_CHAR(l3.UPG_ENC_DR_ACCT_CLASS)
102622 WHEN 30 THEN TO_CHAR(l3.UPG_ENC_DR_CCID)
102623 WHEN 31 THEN TO_CHAR(l3.UPG_ENC_DR_AMT)
102624 WHEN 32 THEN TO_CHAR(l3.UPG_ENC_DR_BASE_AMT)
102625 WHEN 33 THEN TO_CHAR(l3.UPG_AP_ENCUM_OPTION)
102626 WHEN 34 THEN TO_CHAR(l3.APAD_AMOUNT)
102627 WHEN 35 THEN TO_CHAR(l3.PREPAY_CLEAR_CURRENCY_CODE)
102628 WHEN 36 THEN TO_CHAR(l3.BASE_AMT_AT_PP_CLR_XRATE)
102629 WHEN 37 THEN TO_CHAR(l3.DEFERRED_END_DATE)
102630 WHEN 38 THEN TO_CHAR(l3.DEFERRED_OPTION)
102631 WHEN 39 THEN TO_CHAR(l3.DEFERRED_START_DATE)
102632 WHEN 40 THEN TO_CHAR(l3.REVERSED_PREPAY_APP_DIST_ID)
102633 WHEN 41 THEN TO_CHAR(l3.UPG_CR_ENC_TYPE_ID)
102634 WHEN 42 THEN TO_CHAR(l3.UPG_DR_ENC_TYPE_ID)
102635 WHEN 43 THEN TO_CHAR(l3.PREPAY_PAY_CURRENCY_CODE)
102636 WHEN 44 THEN TO_CHAR(l3.BASE_AMT_AT_PP_PAY_XRATE)
102637 WHEN 45 THEN TO_CHAR(l3.POD_ACCRUE_ON_RECEIPT_FLAG)
102638 WHEN 46 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XDATE)
102639 WHEN 47 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE)
102640 WHEN 48 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE_TYPE)
102641 WHEN 49 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XDATE)
102642 WHEN 50 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE)
102643 WHEN 51 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE_TYPE)
102644 WHEN 52 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PP_DIST_TYPE)
102645 WHEN 53 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PREPAY_ENTITY)
102646 WHEN 54 THEN TO_CHAR(l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID)
102647 WHEN 55 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_ID)
102648 WHEN 56 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PP_DIST_TYPE)
102649 WHEN 57 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PREPAY_ENTITY)
102650 WHEN 58 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_DIST_ID)
102651 WHEN 59 THEN TO_CHAR(l3.AI_RECIPIENT_INV_TYPE)
102652 WHEN 60 THEN TO_CHAR(l3.BF_RET_DIST_ASSOC_TO_PP_RECIP)
102653 WHEN 61 THEN TO_CHAR(l3.BF_RET_INV_ASSOC_TO_PP_RECIP)
102654
102655 ELSE null
102656 END source_value
102657 , CASE r
102658 WHEN 2 THEN fvl19.meaning
102659 WHEN 12 THEN fvl64.meaning
102660 WHEN 19 THEN fvl79.meaning
102661 WHEN 45 THEN fvl111.meaning
102662 WHEN 59 THEN fvl148.meaning
102663
102664 ELSE null
102665 END source_meaning
102666 FROM xla_events_gt xet
102667 , AP_PO_HEADERS_EXTRACT_V l2
102668 , AP_PREPAYAPP_EXTRACT_DETAILS_V l3
102669 , ZX_AP_DEF_TAX_EXTRACT_V l5
102670 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
102671 , fnd_lookup_values fvl19
102672 , fnd_lookup_values fvl64
102673 , fnd_lookup_values fvl79
102674 , fnd_lookup_values fvl111
102675 , fnd_lookup_values fvl148
102676 , (select rownum r from all_objects where rownum <= 61 and owner = p_apps_owner)
102677 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
102678 AND xet.event_class_code = C_EVENT_CLASS_CODE
102679 AND l3.event_id = xet.event_id
102680 AND l3.pod_po_header_id = l2.po_header_id (+) AND l3.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l3.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
102681 AND fvl19.lookup_code(+) = l3.RELATED_INV_DIST_DEST_TYPE
102682 AND fvl19.view_application_id(+) = 201
102683 AND fvl19.language(+) = USERENV('LANG')
102684 AND fvl64.lookup_type(+) = 'YES_NO'
102685 AND fvl64.lookup_code(+) = l3.OVERRIDE_ACCTD_AMT_FLAG
102686 AND fvl64.view_application_id(+) = 0
102687 AND fvl64.language(+) = USERENV('LANG')
102688 AND fvl79.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
102689 AND fvl79.lookup_code(+) = l3.RECP_INV_DIST_TYPE
102693 AND fvl111.lookup_code(+) = l3.POD_ACCRUE_ON_RECEIPT_FLAG
102690 AND fvl79.view_application_id(+) = 200
102691 AND fvl79.language(+) = USERENV('LANG')
102692 AND fvl111.lookup_type(+) = 'YES_NO'
102694 AND fvl111.view_application_id(+) = 0
102695 AND fvl111.language(+) = USERENV('LANG')
102696 AND fvl148.lookup_type(+) = 'INVOICE TYPE'
102697 AND fvl148.lookup_code(+) = l3.AI_RECIPIENT_INV_TYPE
102698 AND fvl148.view_application_id(+) = 200
102699 AND fvl148.language(+) = USERENV('LANG')
102700
102701 )
102702 ;
102703 --
102704 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102705
102706 trace
102707 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
102708 ,p_level => C_LEVEL_STATEMENT
102709 ,p_module => l_log_module);
102710
102711 END IF;
102712
102713
102714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102715 trace
102716 (p_msg => 'END of insert_sources_168'
102717 ,p_level => C_LEVEL_PROCEDURE
102718 ,p_module => l_log_module);
102719 END IF;
102720 EXCEPTION
102721 WHEN xla_exceptions_pkg.application_exception THEN
102722 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102723 trace
102724 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102725 ,p_level => C_LEVEL_EXCEPTION
102726 ,p_module => l_log_module);
102727 END IF;
102728 RAISE;
102729 WHEN OTHERS THEN
102730 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102731 trace
102732 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102733 ,p_level => C_LEVEL_EXCEPTION
102734 ,p_module => l_log_module);
102735 END IF;
102736 xla_exceptions_pkg.raise_message
102737 (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_168');
102738 END insert_sources_168;
102739 --
102740
102741 ---------------------------------------
102742 --
102743 -- PRIVATE FUNCTION
102744 -- EventClass_168
102745 --
102746 ----------------------------------------
102747 --
102748 FUNCTION EventClass_168
102749 (p_application_id IN NUMBER
102750 ,p_base_ledger_id IN NUMBER
102751 ,p_target_ledger_id IN NUMBER
102752 ,p_language IN VARCHAR2
102753 ,p_currency_code IN VARCHAR2
102754 ,p_sla_ledger_id IN NUMBER
102755 ,p_pad_start_date IN DATE
102756 ,p_pad_end_date IN DATE
102757 ,p_primary_ledger_id IN NUMBER)
102758 RETURN BOOLEAN IS
102759 --
102760 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS_ALL';
102761 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
102762
102763 l_calculate_acctd_flag VARCHAR2(1) :='N';
102764 l_calculate_g_l_flag VARCHAR2(1) :='N';
102765 --
102766 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102767 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102768 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102769 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102770 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102771 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102772 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102773 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102774 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102775 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102776 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102777 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102778 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102779 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102780 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102781 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102782 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102783 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102784 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102785 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102786 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102787 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102788 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
102789 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102790 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
102791 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
102792
102793 l_event_id NUMBER;
102794 l_previous_event_id NUMBER;
102795 l_first_event_id NUMBER;
102796 l_last_event_id NUMBER;
102797
102798 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
102799 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
102800 --
102801 --
102802 l_result BOOLEAN := TRUE;
102803 l_rows NUMBER := 1000;
102804 l_event_type_name VARCHAR2(80) := 'All';
102805 l_event_class_name VARCHAR2(80) := 'Prepayment Applications';
102806 l_description VARCHAR2(4000);
102807 l_transaction_reversal NUMBER;
102808 l_ae_header_id NUMBER;
102809 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
102810 l_log_module VARCHAR2(240);
102811 --
102815 l_continue_with_lines BOOLEAN := TRUE;
102812 l_acct_reversal_source VARCHAR2(30);
102813 l_trx_reversal_source VARCHAR2(30);
102814
102816 --
102817 l_acc_rev_gl_date_source DATE; -- 4262811
102818 --
102819 type t_array_event_id is table of number index by binary_integer;
102820
102821 l_rec_array_event t_rec_array_event;
102822 l_null_rec_array_event t_rec_array_event;
102823 l_array_ae_header_id xla_number_array_type;
102824 l_actual_flag VARCHAR2(1) := NULL;
102825 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
102826 l_balance_type_code VARCHAR2(1) :=NULL;
102827 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
102828
102829 --
102830 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
102831 --
102832
102833 TYPE t_array_source_2 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
102834 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
102835 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
102836 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
102837 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
102838 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
102839 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
102840 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
102841 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
102842 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
102843 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
102844 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
102845 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
102846 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
102847 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
102848 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102849 TYPE t_array_source_104 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
102850 TYPE t_array_source_105 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
102851 TYPE t_array_source_131 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
102852 TYPE t_array_source_132 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
102853 TYPE t_array_source_133 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102854 TYPE t_array_source_160 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
102855
102856 TYPE t_array_source_18 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
102857 TYPE t_array_source_19 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102858 TYPE t_array_source_29 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102859 TYPE t_array_source_35 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102860 TYPE t_array_source_48 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
102861 TYPE t_array_source_52 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
102862 TYPE t_array_source_54 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
102863 TYPE t_array_source_60 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
102864 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
102865 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
102866 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102867 TYPE t_array_source_64 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
102868 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
102869 TYPE t_array_source_70 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
102870 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102871 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
102872 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102873 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
102874 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102875 TYPE t_array_source_82 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
102876 TYPE t_array_source_84 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102877 TYPE t_array_source_85 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
102878 TYPE t_array_source_86 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102879 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
102883 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
102880 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102881 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
102882 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
102884 TYPE t_array_source_93 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102885 TYPE t_array_source_94 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
102886 TYPE t_array_source_95 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
102887 TYPE t_array_source_96 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
102888 TYPE t_array_source_97 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
102889 TYPE t_array_source_98 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
102890 TYPE t_array_source_99 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_CLEAR_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102891 TYPE t_array_source_100 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
102892 TYPE t_array_source_101 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
102893 TYPE t_array_source_102 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
102894 TYPE t_array_source_103 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
102895 TYPE t_array_source_106 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102896 TYPE t_array_source_107 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
102897 TYPE t_array_source_108 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
102898 TYPE t_array_source_109 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_PAY_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102899 TYPE t_array_source_110 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
102900 TYPE t_array_source_111 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
102901 TYPE t_array_source_125 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XDATE%TYPE INDEX BY BINARY_INTEGER;
102902 TYPE t_array_source_126 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
102903 TYPE t_array_source_127 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102904 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XDATE%TYPE INDEX BY BINARY_INTEGER;
102905 TYPE t_array_source_129 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
102906 TYPE t_array_source_130 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102907 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102908 TYPE t_array_source_142 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
102909 TYPE t_array_source_143 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEAR_PP_CLEAR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102910 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
102911 TYPE t_array_source_145 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
102912 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
102913 TYPE t_array_source_147 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
102914 TYPE t_array_source_148 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AI_RECIPIENT_INV_TYPE%TYPE INDEX BY BINARY_INTEGER;
102915 TYPE t_array_source_149 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_DIST_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
102916 TYPE t_array_source_150 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_INV_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
102917
102918 l_array_source_2 t_array_source_2;
102919 l_array_source_3 t_array_source_3;
102920 l_array_source_4 t_array_source_4;
102921 l_array_source_5 t_array_source_5;
102922 l_array_source_6 t_array_source_6;
102923 l_array_source_7 t_array_source_7;
102924 l_array_source_16 t_array_source_16;
102925 l_array_source_16_meaning t_array_lookup_meaning;
102926 l_array_source_17 t_array_source_17;
102927 l_array_source_20 t_array_source_20;
102928 l_array_source_34 t_array_source_34;
102929 l_array_source_42 t_array_source_42;
102930 l_array_source_42_meaning t_array_lookup_meaning;
102931 l_array_source_49 t_array_source_49;
102932 l_array_source_50 t_array_source_50;
102933 l_array_source_67 t_array_source_67;
102934 l_array_source_83 t_array_source_83;
102935 l_array_source_91 t_array_source_91;
102936 l_array_source_104 t_array_source_104;
102937 l_array_source_105 t_array_source_105;
102938 l_array_source_131 t_array_source_131;
102939 l_array_source_132 t_array_source_132;
102940 l_array_source_133 t_array_source_133;
102941 l_array_source_160 t_array_source_160;
102942
102943 l_array_source_18 t_array_source_18;
102944 l_array_source_19 t_array_source_19;
102945 l_array_source_19_meaning t_array_lookup_meaning;
102946 l_array_source_29 t_array_source_29;
102947 l_array_source_35 t_array_source_35;
102948 l_array_source_48 t_array_source_48;
102949 l_array_source_52 t_array_source_52;
102950 l_array_source_54 t_array_source_54;
102951 l_array_source_60 t_array_source_60;
102952 l_array_source_61 t_array_source_61;
102956 l_array_source_64_meaning t_array_lookup_meaning;
102953 l_array_source_62 t_array_source_62;
102954 l_array_source_63 t_array_source_63;
102955 l_array_source_64 t_array_source_64;
102957 l_array_source_69 t_array_source_69;
102958 l_array_source_70 t_array_source_70;
102959 l_array_source_73 t_array_source_73;
102960 l_array_source_74 t_array_source_74;
102961 l_array_source_77 t_array_source_77;
102962 l_array_source_78 t_array_source_78;
102963 l_array_source_79 t_array_source_79;
102964 l_array_source_79_meaning t_array_lookup_meaning;
102965 l_array_source_82 t_array_source_82;
102966 l_array_source_84 t_array_source_84;
102967 l_array_source_85 t_array_source_85;
102968 l_array_source_86 t_array_source_86;
102969 l_array_source_87 t_array_source_87;
102970 l_array_source_88 t_array_source_88;
102971 l_array_source_89 t_array_source_89;
102972 l_array_source_90 t_array_source_90;
102973 l_array_source_92 t_array_source_92;
102974 l_array_source_93 t_array_source_93;
102975 l_array_source_94 t_array_source_94;
102976 l_array_source_95 t_array_source_95;
102977 l_array_source_96 t_array_source_96;
102978 l_array_source_97 t_array_source_97;
102979 l_array_source_98 t_array_source_98;
102980 l_array_source_99 t_array_source_99;
102981 l_array_source_100 t_array_source_100;
102982 l_array_source_101 t_array_source_101;
102983 l_array_source_102 t_array_source_102;
102984 l_array_source_103 t_array_source_103;
102985 l_array_source_106 t_array_source_106;
102986 l_array_source_107 t_array_source_107;
102987 l_array_source_108 t_array_source_108;
102988 l_array_source_109 t_array_source_109;
102989 l_array_source_110 t_array_source_110;
102990 l_array_source_111 t_array_source_111;
102991 l_array_source_111_meaning t_array_lookup_meaning;
102992 l_array_source_125 t_array_source_125;
102993 l_array_source_126 t_array_source_126;
102994 l_array_source_127 t_array_source_127;
102995 l_array_source_128 t_array_source_128;
102996 l_array_source_129 t_array_source_129;
102997 l_array_source_130 t_array_source_130;
102998 l_array_source_141 t_array_source_141;
102999 l_array_source_142 t_array_source_142;
103000 l_array_source_143 t_array_source_143;
103001 l_array_source_144 t_array_source_144;
103002 l_array_source_145 t_array_source_145;
103003 l_array_source_146 t_array_source_146;
103004 l_array_source_147 t_array_source_147;
103005 l_array_source_148 t_array_source_148;
103006 l_array_source_148_meaning t_array_lookup_meaning;
103007 l_array_source_149 t_array_source_149;
103008 l_array_source_150 t_array_source_150;
103009
103010 --
103011 CURSOR header_cur
103012 IS
103013 SELECT /*+ leading(xet) cardinality(xet,1) */
103014 -- Event Class Code: PREPAYMENT APPLICATIONS
103015 xet.entity_id
103016 ,xet.legal_entity_id
103017 ,xet.entity_code
103018 ,xet.transaction_number
103019 ,xet.event_id
103020 ,xet.event_class_code
103021 ,xet.event_type_code
103022 ,xet.event_number
103023 ,xet.event_date
103024 ,xet.transaction_date
103025 ,xet.reference_num_1
103026 ,xet.reference_num_2
103027 ,xet.reference_num_3
103028 ,xet.reference_num_4
103029 ,xet.reference_char_1
103030 ,xet.reference_char_2
103031 ,xet.reference_char_3
103032 ,xet.reference_char_4
103033 ,xet.reference_date_1
103034 ,xet.reference_date_2
103035 ,xet.reference_date_3
103036 ,xet.reference_date_4
103037 ,xet.event_created_by
103038 ,xet.budgetary_control_flag
103039 , h1.INV_TRANSACTION_NUMBER source_2
103040 , h1.AI_INVOICE_DATE source_3
103041 , h1.INV_DOC_SEQUENCE_CATEGORY source_4
103042 , h1.DOC_SEQUENCE_NAME source_5
103043 , h1.INV_DOC_SEQUENCE_VALUE source_6
103044 , h1.AI_DESCRIPTION source_7
103045 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_16
103046 , fvl16.meaning source_16_meaning
103047 , h4.ASP_RATE_VAR_GAIN_CCID source_17
103048 , h4.ASP_RATE_VAR_LOSS_CCID source_20
103049 , h4.FSP_RETAINAGE_ACCOUNT source_34
103050 , h4.ASP_AUTO_OFFSET_FLAG source_42
103051 , fvl42.meaning source_42_meaning
103052 , h4.ASP_ROUNDING_ERROR_CCID source_49
103053 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_50
103054 , h1.THIRD_PARTY_TYPE source_67
103055 , h1.AI_INVOICE_ID source_83
103056 , h1.AI_INVOICE_CURRENCY_CODE source_91
103057 , h1.AI_VENDOR_ID source_104
103058 , h1.AI_VENDOR_SITE_ID source_105
103059 , h1.INV_EXCHANGE_DATE source_131
103060 , h1.INV_EXCHANGE_RATE source_132
103061 , h1.INV_EXCHANGE_RATE_TYPE source_133
103062 , h1.INV_DOC_SEQUENCE_IDENTIFIER source_160
103063 FROM xla_events_gt xet
103064 , AP_INVOICE_EXTRACT_HEADER_V h1
103065 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
103066 , fnd_lookup_values fvl16
103067 , fnd_lookup_values fvl42
103068 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
103069 and xet.event_class_code = C_EVENT_CLASS_CODE
103070 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
103071 AND h4.asp_org_id = h1.ai_org_id AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
103072 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
103073 AND fvl16.view_application_id(+) = 200
103074 AND fvl16.language(+) = USERENV('LANG')
103075 AND fvl42.lookup_type(+) = 'YES_NO'
103076 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
103077 AND fvl42.view_application_id(+) = 0
103078 AND fvl42.language(+) = USERENV('LANG')
103079
103080 ORDER BY event_id
103081 ;
103082
103083
103084 --
103085 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
103086 IS
103087 SELECT /*+ leading(xet) cardinality(xet,1) */
103091 ,xet.entity_code
103088 -- Event Class Code: PREPAYMENT APPLICATIONS
103089 xet.entity_id
103090 ,xet.legal_entity_id
103092 ,xet.transaction_number
103093 ,xet.event_id
103094 ,xet.event_class_code
103095 ,xet.event_type_code
103096 ,xet.event_number
103097 ,xet.event_date
103098 ,xet.transaction_date
103099 ,xet.reference_num_1
103100 ,xet.reference_num_2
103101 ,xet.reference_num_3
103102 ,xet.reference_num_4
103103 ,xet.reference_char_1
103104 ,xet.reference_char_2
103105 ,xet.reference_char_3
103106 ,xet.reference_char_4
103107 ,xet.reference_date_1
103108 ,xet.reference_date_2
103109 ,xet.reference_date_3
103110 ,xet.reference_date_4
103111 ,xet.event_created_by
103112 ,xet.budgetary_control_flag
103113 , l3.LINE_NUMBER
103114 , l3.INV_DIST_BASE_AMOUNT source_18
103115 , l3.RELATED_INV_DIST_DEST_TYPE source_19
103116 , fvl19.meaning source_19_meaning
103117 , l3.AID_DIST_CCID source_29
103118 , l3.AID_RET_RELATED_DIST_CCID source_35
103119 , l3.RECP_INV_DIST_CCID source_48
103120 , l3.DIST_ACCOUNT_REVERSAL_OPTION source_52
103121 , l3.BUS_FLOW_AP_APP_ID source_54
103122 , l3.DISTRIBUTION_LINK_TYPE source_60
103123 , l2.POH_RATE_DATE source_61
103124 , l2.POH_RATE source_62
103125 , l2.POH_RATE_TYPE source_63
103126 , l3.OVERRIDE_ACCTD_AMT_FLAG source_64
103127 , fvl64.meaning source_64_meaning
103128 , l5.TAX_LINE_ID source_69
103129 , l3.SUMMARY_TAX_LINE_ID source_70
103130 , l3.BUS_FLOW_INV_DIST_TYPE source_73
103131 , l3.BUS_FLOW_INV_ENTITY_CODE source_74
103132 , l6.REC_NREC_TAX_DIST_ID source_77
103133 , l3.APAD_DIST_LOOKUP_CODE source_78
103134 , l3.RECP_INV_DIST_TYPE source_79
103135 , fvl79.meaning source_79_meaning
103136 , l3.APAD_DISTRIBUTION_IDENTIFIER source_82
103137 , l3.BF_ACCRUAL_PREPAY_DIST_TYPE source_84
103138 , l3.BF_ACCRUAL_PREPAY_ENTITY_CODE source_85
103139 , l3.BF_ACCRUAL_PP_DIST_ID source_86
103140 , l3.BF_ACCRUAL_PP_INV source_87
103141 , l3.UPG_ENC_CR_ACCT_CLASS source_88
103142 , l3.UPG_ENC_CR_CCID source_89
103143 , l3.UPG_ENC_CR_AMT source_90
103144 , l3.UPG_ENC_CR_BASE_AMT source_92
103145 , l3.UPG_ENC_DR_ACCT_CLASS source_93
103146 , l3.UPG_ENC_DR_CCID source_94
103147 , l3.UPG_ENC_DR_AMT source_95
103148 , l3.UPG_ENC_DR_BASE_AMT source_96
103149 , l3.UPG_AP_ENCUM_OPTION source_97
103150 , l3.APAD_AMOUNT source_98
103151 , l3.PREPAY_CLEAR_CURRENCY_CODE source_99
103152 , l3.BASE_AMT_AT_PP_CLR_XRATE source_100
103153 , l3.DEFERRED_END_DATE source_101
103154 , l3.DEFERRED_OPTION source_102
103155 , l3.DEFERRED_START_DATE source_103
103156 , l3.REVERSED_PREPAY_APP_DIST_ID source_106
103157 , l3.UPG_CR_ENC_TYPE_ID source_107
103158 , l3.UPG_DR_ENC_TYPE_ID source_108
103159 , l3.PREPAY_PAY_CURRENCY_CODE source_109
103160 , l3.BASE_AMT_AT_PP_PAY_XRATE source_110
103161 , l3.POD_ACCRUE_ON_RECEIPT_FLAG source_111
103162 , fvl111.meaning source_111_meaning
103163 , l3.APAD_PREPAY_CLR_XDATE source_125
103164 , l3.APAD_PREPAY_CLR_XRATE source_126
103165 , l3.APAD_PREPAY_CLR_XRATE_TYPE source_127
103166 , l3.APAD_PREPAY_PAY_XDATE source_128
103167 , l3.APAD_PREPAY_PAY_XRATE source_129
103168 , l3.APAD_PREPAY_PAY_XRATE_TYPE source_130
103169 , l3.BF_CASHCLEARONLY_PP_DIST_TYPE source_141
103170 , l3.BF_CASHCLEARONLY_PREPAY_ENTITY source_142
103171 , l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID source_143
103172 , l3.BF_CASHALWAYS_PP_PMT_ID source_144
103173 , l3.BF_CASH_ALWAYS_PP_DIST_TYPE source_145
103174 , l3.BF_CASH_ALWAYS_PREPAY_ENTITY source_146
103175 , l3.BF_CASHALWAYS_PP_PMT_DIST_ID source_147
103176 , l3.AI_RECIPIENT_INV_TYPE source_148
103177 , fvl148.meaning source_148_meaning
103178 , l3.BF_RET_DIST_ASSOC_TO_PP_RECIP source_149
103179 , l3.BF_RET_INV_ASSOC_TO_PP_RECIP source_150
103180 FROM xla_events_gt xet
103181 , AP_PO_HEADERS_EXTRACT_V l2
103182 , AP_PREPAYAPP_EXTRACT_DETAILS_V l3
103183 , ZX_AP_DEF_TAX_EXTRACT_V l5
103184 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
103185 , fnd_lookup_values fvl19
103186 , fnd_lookup_values fvl64
103187 , fnd_lookup_values fvl79
103188 , fnd_lookup_values fvl111
103189 , fnd_lookup_values fvl148
103190 WHERE xet.event_id between x_first_event_id and x_last_event_id
103191 and xet.event_date between p_pad_start_date and p_pad_end_date
103192 and xet.event_class_code = C_EVENT_CLASS_CODE
103193 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
103194 AND l3.POD_PO_Header_Id = l2.PO_Header_Id (+) AND l3.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l3.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
103195 AND fvl19.lookup_code(+) = l3.RELATED_INV_DIST_DEST_TYPE
103196 AND fvl19.view_application_id(+) = 201
103197 AND fvl19.language(+) = USERENV('LANG')
103198 AND fvl64.lookup_type(+) = 'YES_NO'
103199 AND fvl64.lookup_code(+) = l3.OVERRIDE_ACCTD_AMT_FLAG
103200 AND fvl64.view_application_id(+) = 0
103201 AND fvl64.language(+) = USERENV('LANG')
103202 AND fvl79.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
103203 AND fvl79.lookup_code(+) = l3.RECP_INV_DIST_TYPE
103204 AND fvl79.view_application_id(+) = 200
103205 AND fvl79.language(+) = USERENV('LANG')
103206 AND fvl111.lookup_type(+) = 'YES_NO'
103207 AND fvl111.lookup_code(+) = l3.POD_ACCRUE_ON_RECEIPT_FLAG
103208 AND fvl111.view_application_id(+) = 0
103209 AND fvl111.language(+) = USERENV('LANG')
103210 AND fvl148.lookup_type(+) = 'INVOICE TYPE'
103211 AND fvl148.lookup_code(+) = l3.AI_RECIPIENT_INV_TYPE
103212 AND fvl148.view_application_id(+) = 200
103213 AND fvl148.language(+) = USERENV('LANG')
103214 ;
103218 IF g_log_enabled THEN
103215
103216 --
103217 BEGIN
103219 l_log_module := C_DEFAULT_MODULE||'.EventClass_168';
103220 END IF;
103221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103222 trace
103223 (p_msg => 'BEGIN of EventClass_168'
103224 ,p_level => C_LEVEL_PROCEDURE
103225 ,p_module => l_log_module);
103226 END IF;
103227
103228 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103229 trace
103230 (p_msg => 'p_application_id = '||p_application_id||
103231 ' - p_base_ledger_id = '||p_base_ledger_id||
103232 ' - p_target_ledger_id = '||p_target_ledger_id||
103233 ' - p_language = '||p_language||
103234 ' - p_currency_code = '||p_currency_code||
103235 ' - p_sla_ledger_id = '||p_sla_ledger_id
103236 ,p_level => C_LEVEL_STATEMENT
103237 ,p_module => l_log_module);
103238 END IF;
103239 --
103240 -- initialze arrays
103241 --
103242 g_array_event.DELETE;
103243 l_rec_array_event := l_null_rec_array_event;
103244 --
103245 --------------------------------------
103246 -- 4262811 Initialze MPA Line Number
103247 --------------------------------------
103248 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
103249
103250 --
103251
103252 --
103253 OPEN header_cur;
103254 --
103255 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103256 trace
103257 (p_msg => 'SQL - FETCH header_cur'
103258 ,p_level => C_LEVEL_STATEMENT
103259 ,p_module => l_log_module);
103260 END IF;
103261 --
103262 LOOP
103263 FETCH header_cur BULK COLLECT INTO
103264 l_array_entity_id
103265 , l_array_legal_entity_id
103266 , l_array_entity_code
103267 , l_array_transaction_num
103268 , l_array_event_id
103269 , l_array_class_code
103270 , l_array_event_type
103271 , l_array_event_number
103272 , l_array_event_date
103273 , l_array_transaction_date
103274 , l_array_reference_num_1
103275 , l_array_reference_num_2
103276 , l_array_reference_num_3
103277 , l_array_reference_num_4
103278 , l_array_reference_char_1
103279 , l_array_reference_char_2
103280 , l_array_reference_char_3
103281 , l_array_reference_char_4
103282 , l_array_reference_date_1
103283 , l_array_reference_date_2
103284 , l_array_reference_date_3
103285 , l_array_reference_date_4
103286 , l_array_event_created_by
103287 , l_array_budgetary_control_flag
103288 , l_array_source_2
103289 , l_array_source_3
103290 , l_array_source_4
103291 , l_array_source_5
103292 , l_array_source_6
103293 , l_array_source_7
103294 , l_array_source_16
103295 , l_array_source_16_meaning
103296 , l_array_source_17
103297 , l_array_source_20
103298 , l_array_source_34
103299 , l_array_source_42
103300 , l_array_source_42_meaning
103301 , l_array_source_49
103302 , l_array_source_50
103303 , l_array_source_67
103304 , l_array_source_83
103305 , l_array_source_91
103306 , l_array_source_104
103307 , l_array_source_105
103308 , l_array_source_131
103309 , l_array_source_132
103310 , l_array_source_133
103311 , l_array_source_160
103312 LIMIT l_rows;
103313 --
103314 IF (C_LEVEL_EVENT >= g_log_level) THEN
103315 trace
103316 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
103317 ,p_level => C_LEVEL_EVENT
103318 ,p_module => l_log_module);
103319 END IF;
103320 --
103321 EXIT WHEN l_array_entity_id.COUNT = 0;
103322
103323 -- initialize arrays
103324 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
103325 XLA_AE_LINES_PKG.g_rec_lines := NULL;
103326
103327 --
103328 -- Bug 4458708
103329 --
103330 XLA_AE_LINES_PKG.g_LineNumber := 0;
103331
103332
103333 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
103334 g_last_hdr_idx := l_array_event_id.LAST;
103335 --
103336 -- loop for the headers. Each iteration is for each header extract row
103337 -- fetched in header cursor
103338 --
103339 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
103340
103341 --
103342 -- set event info as cache for other routines to refer event attributes
103343 --
103344 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
103345 (p_application_id => p_application_id
103346 ,p_primary_ledger_id => p_primary_ledger_id
103347 ,p_base_ledger_id => p_base_ledger_id
103348 ,p_target_ledger_id => p_target_ledger_id
103349 ,p_entity_id => l_array_entity_id(hdr_idx)
103350 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
103351 ,p_entity_code => l_array_entity_code(hdr_idx)
103352 ,p_transaction_num => l_array_transaction_num(hdr_idx)
103353 ,p_event_id => l_array_event_id(hdr_idx)
103354 ,p_event_class_code => l_array_class_code(hdr_idx)
103355 ,p_event_type_code => l_array_event_type(hdr_idx)
103356 ,p_event_number => l_array_event_number(hdr_idx)
103357 ,p_event_date => l_array_event_date(hdr_idx)
103358 ,p_transaction_date => l_array_transaction_date(hdr_idx)
103359 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
103360 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
103361 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
103362 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
103363 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
103364 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
103368 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
103365 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
103366 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
103367 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
103369 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
103370 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
103371 ,p_event_created_by => l_array_event_created_by(hdr_idx)
103372 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
103373
103374 --
103375 -- set the status of entry to C_VALID (0)
103376 --
103377 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
103378
103379 --
103380 -- initialize a row for ae header
103381 --
103382 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
103383
103384 l_event_id := l_array_event_id(hdr_idx);
103385
103386 --
103387 -- storing the hdr_idx for event. May be used by line cursor.
103388 --
103389 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
103390
103391 --
103392 -- store sources from header extract. This can be improved to
103393 -- store only those sources from header extract that may be used in lines
103394 --
103395
103396 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
103397 g_array_event(l_event_id).array_value_date('source_3') := l_array_source_3(hdr_idx);
103398 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
103399 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
103400 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
103401 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
103402 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
103403 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
103404 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
103405 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
103406 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
103407 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
103408 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
103409 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
103410 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
103411 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
103412 g_array_event(l_event_id).array_value_num('source_83') := l_array_source_83(hdr_idx);
103413 g_array_event(l_event_id).array_value_char('source_91') := l_array_source_91(hdr_idx);
103414 g_array_event(l_event_id).array_value_num('source_104') := l_array_source_104(hdr_idx);
103415 g_array_event(l_event_id).array_value_num('source_105') := l_array_source_105(hdr_idx);
103416 g_array_event(l_event_id).array_value_date('source_131') := l_array_source_131(hdr_idx);
103417 g_array_event(l_event_id).array_value_num('source_132') := l_array_source_132(hdr_idx);
103418 g_array_event(l_event_id).array_value_char('source_133') := l_array_source_133(hdr_idx);
103419 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
103420
103421 --
103422 -- initilaize the status of ae headers for diffrent balance types
103423 -- the status is initialised to C_NOT_CREATED (2)
103424 --
103425 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103426 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103427 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103428
103429 --
103430 -- call api to validate and store accounting attributes for header
103431 --
103432
103433 ------------------------------------------------------------
103434 -- Accrual Reversal : to get date for Standard Source (NONE)
103435 ------------------------------------------------------------
103436 l_acc_rev_gl_date_source := NULL;
103437
103438 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
103439 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_4');
103440 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
103441 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_160');
103442 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
103443 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
103444 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
103445 l_rec_acct_attrs.array_date_value(4) :=
103446 xla_ae_sources_pkg.GetSystemSourceDate(
103447 p_source_code => 'XLA_EVENT_DATE'
103448 , p_source_type_code => 'Y'
103449 , p_source_application_id => 602
103450 );
103451
103452
103453 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
103454
103455 XLA_AE_HEADER_PKG.SetJeCategoryName;
103456
103457 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
103458 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
103459 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
103460 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
103461 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
103462
103463
103464 --
103465 xla_ae_header_pkg.SetHdrDescription(
103466 p_description => Description_1 (
103467 p_application_id => p_application_id
103468 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
103469 , p_source_3 => g_array_event(l_event_id).array_value_date('source_3')
103473 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
103470 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
103471 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
103472 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
103474 )
103475 );
103476 --
103477
103478 -- No header level analytical criteria
103479
103480 --
103481 --accounting attribute enhancement, bug 3612931
103482 --
103483 l_trx_reversal_source := SUBSTR(NULL, 1,30);
103484
103485 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
103486 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
103487
103488 xla_accounting_err_pkg.build_message
103489 (p_appli_s_name => 'XLA'
103490 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
103491 ,p_token_1 => 'ACCT_ATTR_NAME'
103492 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
103493 ,p_token_2 => 'PRODUCT_NAME'
103494 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
103495 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
103496 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
103497 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
103498
103499 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
103500 --
103501 -- following sets the accounting attributes needed to reverse
103502 -- accounting for a distributeion
103503 --
103504 xla_ae_lines_pkg.SetTrxReversalAttrs
103505 (p_event_id => l_event_id
103506 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
103507 ,p_trx_reversal_source => l_trx_reversal_source);
103508
103509 END IF;
103510
103511
103512 ----------------------------------------------------------------
103513 -- 4262811 - update the header statuses to invalid in need be
103514 ----------------------------------------------------------------
103515 --
103516 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
103517
103518
103519 -----------------------------------------------
103520 -- No accrual reversal for the event class/type
103521 -----------------------------------------------
103522 ----------------------------------------------------------------
103523
103524 --
103525 -- this ends the header loop iteration for one bulk fetch
103526 --
103527 END LOOP;
103528
103529 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
103530 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
103531
103532 --
103533 -- insert dummy rows into lines gt table that were created due to
103534 -- transaction reversals
103535 --
103536 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
103537 l_result := XLA_AE_LINES_PKG.InsertLines;
103538 END IF;
103539
103540 --
103541 -- reset the temp_line_num for each set of events fetched from header
103542 -- cursor rather than doing it for each new event in line cursor
103543 -- Bug 3939231
103544 --
103545 xla_ae_lines_pkg.g_temp_line_num := 0;
103546
103547
103548
103549 --
103550 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
103551 --
103552 --
103553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103554
103555 trace
103556 (p_msg => 'SQL - FETCH line_cur'
103557 ,p_level => C_LEVEL_STATEMENT
103558 ,p_module => l_log_module);
103559
103560 END IF;
103561 --
103562 --
103563 LOOP
103564 --
103565 FETCH line_cur BULK COLLECT INTO
103566 l_array_entity_id
103567 , l_array_legal_entity_id
103568 , l_array_entity_code
103569 , l_array_transaction_num
103570 , l_array_event_id
103571 , l_array_class_code
103572 , l_array_event_type
103573 , l_array_event_number
103574 , l_array_event_date
103575 , l_array_transaction_date
103576 , l_array_reference_num_1
103577 , l_array_reference_num_2
103578 , l_array_reference_num_3
103579 , l_array_reference_num_4
103580 , l_array_reference_char_1
103581 , l_array_reference_char_2
103582 , l_array_reference_char_3
103583 , l_array_reference_char_4
103584 , l_array_reference_date_1
103585 , l_array_reference_date_2
103586 , l_array_reference_date_3
103587 , l_array_reference_date_4
103588 , l_array_event_created_by
103589 , l_array_budgetary_control_flag
103590 , l_array_extract_line_num
103591 , l_array_source_18
103592 , l_array_source_19
103593 , l_array_source_19_meaning
103594 , l_array_source_29
103595 , l_array_source_35
103596 , l_array_source_48
103597 , l_array_source_52
103598 , l_array_source_54
103599 , l_array_source_60
103600 , l_array_source_61
103601 , l_array_source_62
103602 , l_array_source_63
103603 , l_array_source_64
103604 , l_array_source_64_meaning
103605 , l_array_source_69
103606 , l_array_source_70
103607 , l_array_source_73
103608 , l_array_source_74
103609 , l_array_source_77
103610 , l_array_source_78
103611 , l_array_source_79
103612 , l_array_source_79_meaning
103613 , l_array_source_82
103614 , l_array_source_84
103615 , l_array_source_85
103616 , l_array_source_86
103617 , l_array_source_87
103618 , l_array_source_88
103619 , l_array_source_89
103620 , l_array_source_90
103621 , l_array_source_92
103622 , l_array_source_93
103623 , l_array_source_94
103627 , l_array_source_98
103624 , l_array_source_95
103625 , l_array_source_96
103626 , l_array_source_97
103628 , l_array_source_99
103629 , l_array_source_100
103630 , l_array_source_101
103631 , l_array_source_102
103632 , l_array_source_103
103633 , l_array_source_106
103634 , l_array_source_107
103635 , l_array_source_108
103636 , l_array_source_109
103637 , l_array_source_110
103638 , l_array_source_111
103639 , l_array_source_111_meaning
103640 , l_array_source_125
103641 , l_array_source_126
103642 , l_array_source_127
103643 , l_array_source_128
103644 , l_array_source_129
103645 , l_array_source_130
103646 , l_array_source_141
103647 , l_array_source_142
103648 , l_array_source_143
103649 , l_array_source_144
103650 , l_array_source_145
103651 , l_array_source_146
103652 , l_array_source_147
103653 , l_array_source_148
103654 , l_array_source_148_meaning
103655 , l_array_source_149
103656 , l_array_source_150
103657 LIMIT l_rows;
103658
103659 --
103660 IF (C_LEVEL_EVENT >= g_log_level) THEN
103661 trace
103662 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
103663 ,p_level => C_LEVEL_EVENT
103664 ,p_module => l_log_module);
103665 END IF;
103666 --
103667 EXIT WHEN l_array_entity_id.count = 0;
103668
103669 XLA_AE_LINES_PKG.g_rec_lines := null;
103670
103671 --
103672 -- Bug 4458708
103673 --
103674 XLA_AE_LINES_PKG.g_LineNumber := 0;
103675 --
103676 --
103677
103678 FOR Idx IN 1..l_array_event_id.count LOOP
103679 --
103680 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
103681 --
103682 l_event_id := l_array_event_id(idx); -- 5648433
103683
103684 --
103685 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
103686 --
103687
103688 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
103689 (g_array_event(l_event_id).array_value_num('header_index'))
103690 ,'N'
103691 ) <> 'Y'
103692 THEN
103693 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103694 trace
103695 (p_msg => 'Trancaction revesal option is not Y '
103696 ,p_level => C_LEVEL_STATEMENT
103697 ,p_module => l_log_module);
103698 END IF;
103699
103700 --
103701 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
103702 --
103703 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
103704 --
103705 -- set event info as cache for other routines to refer event attributes
103706 --
103707
103708 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
103709 l_previous_event_id := l_event_id;
103710
103711 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
103712 (p_application_id => p_application_id
103713 ,p_primary_ledger_id => p_primary_ledger_id
103714 ,p_base_ledger_id => p_base_ledger_id
103715 ,p_target_ledger_id => p_target_ledger_id
103716 ,p_entity_id => l_array_entity_id(Idx)
103717 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
103718 ,p_entity_code => l_array_entity_code(Idx)
103719 ,p_transaction_num => l_array_transaction_num(Idx)
103720 ,p_event_id => l_array_event_id(Idx)
103721 ,p_event_class_code => l_array_class_code(Idx)
103722 ,p_event_type_code => l_array_event_type(Idx)
103723 ,p_event_number => l_array_event_number(Idx)
103724 ,p_event_date => l_array_event_date(Idx)
103725 ,p_transaction_date => l_array_transaction_date(Idx)
103726 ,p_reference_num_1 => l_array_reference_num_1(Idx)
103727 ,p_reference_num_2 => l_array_reference_num_2(Idx)
103728 ,p_reference_num_3 => l_array_reference_num_3(Idx)
103729 ,p_reference_num_4 => l_array_reference_num_4(Idx)
103730 ,p_reference_char_1 => l_array_reference_char_1(Idx)
103731 ,p_reference_char_2 => l_array_reference_char_2(Idx)
103732 ,p_reference_char_3 => l_array_reference_char_3(Idx)
103733 ,p_reference_char_4 => l_array_reference_char_4(Idx)
103734 ,p_reference_date_1 => l_array_reference_date_1(Idx)
103735 ,p_reference_date_2 => l_array_reference_date_2(Idx)
103736 ,p_reference_date_3 => l_array_reference_date_3(Idx)
103737 ,p_reference_date_4 => l_array_reference_date_4(Idx)
103738 ,p_event_created_by => l_array_event_created_by(Idx)
103739 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
103740 --
103741 END IF;
103742
103743
103744
103745 --
103746 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
103747
103748 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
103749
103750 IF l_continue_with_lines THEN
103751 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
103752 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
103753
103754 xla_accounting_err_pkg.build_message
103755 (p_appli_s_name => 'XLA'
103756 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
103757 ,p_token_1 => 'LINE_NUMBER'
103758 ,p_value_1 => l_array_extract_line_num(Idx)
103759 ,p_token_2 => 'PRODUCT_NAME'
103760 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
103764
103761 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
103762 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
103763 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
103765 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
103766 --
103767 -- following sets the accounting attributes needed to reverse
103768 -- accounting for a distributeion
103769 --
103770
103771 --
103772 -- 5217187
103773 --
103774 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
103775 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
103776 g_array_event(l_event_id).array_value_num('header_index'));
103777 --
103778 --
103779
103780 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
103781 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_52(Idx);
103782 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
103783 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_82(Idx);
103784 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
103785 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_60(Idx);
103786 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
103787 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_88(Idx);
103788 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
103789 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_89(Idx);
103790 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
103791 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_90(Idx);
103792 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
103793 l_rec_rev_acct_attrs.array_char_value(8) := g_array_event(l_event_id).array_value_char('source_91');
103794 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
103795 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_92(Idx);
103796 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
103797 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_93(Idx);
103798 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
103799 l_rec_rev_acct_attrs.array_num_value(11) := l_array_source_94(Idx);
103800 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
103801 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_95(Idx);
103802 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
103803 l_rec_rev_acct_attrs.array_char_value(13) := g_array_event(l_event_id).array_value_char('source_91');
103804 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
103805 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_96(Idx);
103806 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
103807 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_97(Idx);
103808 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
103809 l_rec_rev_acct_attrs.array_char_value(16) := g_array_event(l_event_id).array_value_char('source_67');
103810 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
103811 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_106(Idx);
103812 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
103813 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_60(Idx);
103814 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
103815 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_69(Idx);
103816 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
103817 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_77(Idx);
103818 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
103819 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_70(Idx);
103820 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
103821 l_rec_rev_acct_attrs.array_num_value(22) := l_array_source_107(Idx);
103822 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
103823 l_rec_rev_acct_attrs.array_num_value(23) := l_array_source_108(Idx);
103824
103825
103826 xla_ae_lines_pkg.SetAcctReversalAttrs
103827 (p_event_id => l_event_id
103828 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
103829 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103830 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
103831 END IF;
103832
103833 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
103834 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
103835
103836 --
103837 AcctLineType_42 (
103838 p_application_id => p_application_id
103839 ,p_event_id => l_event_id
103840 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103841 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103842 ,p_actual_flag => l_actual_flag
103843 ,p_balance_type_code => l_balance_type_code
103844 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103845
103846 , p_source_29 => l_array_source_29(Idx)
103847 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
103848 , p_source_52 => l_array_source_52(Idx)
103849 , p_source_54 => l_array_source_54(Idx)
103850 , p_source_60 => l_array_source_60(Idx)
103851 , p_source_61 => l_array_source_61(Idx)
103852 , p_source_62 => l_array_source_62(Idx)
103853 , p_source_63 => l_array_source_63(Idx)
103854 , p_source_64 => l_array_source_64(Idx)
103855 , p_source_64_meaning => l_array_source_64_meaning(Idx)
103856 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103857 , p_source_69 => l_array_source_69(Idx)
103858 , p_source_70 => l_array_source_70(Idx)
103859 , p_source_77 => l_array_source_77(Idx)
103860 , p_source_78 => l_array_source_78(Idx)
103864 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103861 , p_source_79 => l_array_source_79(Idx)
103862 , p_source_79_meaning => l_array_source_79_meaning(Idx)
103863 , p_source_82 => l_array_source_82(Idx)
103865 , p_source_84 => l_array_source_84(Idx)
103866 , p_source_85 => l_array_source_85(Idx)
103867 , p_source_86 => l_array_source_86(Idx)
103868 , p_source_87 => l_array_source_87(Idx)
103869 , p_source_88 => l_array_source_88(Idx)
103870 , p_source_89 => l_array_source_89(Idx)
103871 , p_source_90 => l_array_source_90(Idx)
103872 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
103873 , p_source_92 => l_array_source_92(Idx)
103874 , p_source_93 => l_array_source_93(Idx)
103875 , p_source_94 => l_array_source_94(Idx)
103876 , p_source_95 => l_array_source_95(Idx)
103877 , p_source_96 => l_array_source_96(Idx)
103878 , p_source_97 => l_array_source_97(Idx)
103879 , p_source_98 => l_array_source_98(Idx)
103880 , p_source_99 => l_array_source_99(Idx)
103881 , p_source_100 => l_array_source_100(Idx)
103882 , p_source_101 => l_array_source_101(Idx)
103883 , p_source_102 => l_array_source_102(Idx)
103884 , p_source_103 => l_array_source_103(Idx)
103885 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
103886 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
103887 , p_source_106 => l_array_source_106(Idx)
103888 , p_source_107 => l_array_source_107(Idx)
103889 , p_source_108 => l_array_source_108(Idx)
103890 );
103891 If(l_balance_type_code = 'A') THEN
103892 l_actual_gain_loss_ref := l_gain_or_loss_ref;
103893 END IF;
103894
103895 --
103896
103897
103898 --
103899 AcctLineType_43 (
103900 p_application_id => p_application_id
103901 ,p_event_id => l_event_id
103902 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103903 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103904 ,p_actual_flag => l_actual_flag
103905 ,p_balance_type_code => l_balance_type_code
103906 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103907
103908 , p_source_29 => l_array_source_29(Idx)
103909 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
103910 , p_source_52 => l_array_source_52(Idx)
103911 , p_source_54 => l_array_source_54(Idx)
103912 , p_source_60 => l_array_source_60(Idx)
103913 , p_source_61 => l_array_source_61(Idx)
103914 , p_source_62 => l_array_source_62(Idx)
103915 , p_source_63 => l_array_source_63(Idx)
103916 , p_source_64 => l_array_source_64(Idx)
103917 , p_source_64_meaning => l_array_source_64_meaning(Idx)
103918 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103919 , p_source_69 => l_array_source_69(Idx)
103920 , p_source_70 => l_array_source_70(Idx)
103921 , p_source_77 => l_array_source_77(Idx)
103922 , p_source_78 => l_array_source_78(Idx)
103923 , p_source_79 => l_array_source_79(Idx)
103924 , p_source_79_meaning => l_array_source_79_meaning(Idx)
103925 , p_source_82 => l_array_source_82(Idx)
103926 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103927 , p_source_84 => l_array_source_84(Idx)
103928 , p_source_85 => l_array_source_85(Idx)
103929 , p_source_86 => l_array_source_86(Idx)
103930 , p_source_87 => l_array_source_87(Idx)
103931 , p_source_88 => l_array_source_88(Idx)
103932 , p_source_89 => l_array_source_89(Idx)
103933 , p_source_90 => l_array_source_90(Idx)
103934 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
103935 , p_source_92 => l_array_source_92(Idx)
103936 , p_source_93 => l_array_source_93(Idx)
103937 , p_source_94 => l_array_source_94(Idx)
103938 , p_source_95 => l_array_source_95(Idx)
103939 , p_source_96 => l_array_source_96(Idx)
103940 , p_source_97 => l_array_source_97(Idx)
103941 , p_source_98 => l_array_source_98(Idx)
103942 , p_source_101 => l_array_source_101(Idx)
103943 , p_source_102 => l_array_source_102(Idx)
103944 , p_source_103 => l_array_source_103(Idx)
103945 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
103946 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
103947 , p_source_106 => l_array_source_106(Idx)
103948 , p_source_107 => l_array_source_107(Idx)
103949 , p_source_108 => l_array_source_108(Idx)
103950 , p_source_109 => l_array_source_109(Idx)
103951 , p_source_110 => l_array_source_110(Idx)
103952 );
103953 If(l_balance_type_code = 'A') THEN
103954 l_actual_gain_loss_ref := l_gain_or_loss_ref;
103955 END IF;
103956
103957 --
103958
103959
103960 --
103961 AcctLineType_46 (
103962 p_application_id => p_application_id
103963 ,p_event_id => l_event_id
103964 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103965 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103966 ,p_actual_flag => l_actual_flag
103967 ,p_balance_type_code => l_balance_type_code
103968 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103969
103970 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
103971 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
103972 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
103973 , p_source_18 => l_array_source_18(Idx)
103974 , p_source_19 => l_array_source_19(Idx)
103975 , p_source_19_meaning => l_array_source_19_meaning(Idx)
103976 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
103977 , p_source_29 => l_array_source_29(Idx)
103978 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
103979 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
103980 , p_source_52 => l_array_source_52(Idx)
103981 , p_source_54 => l_array_source_54(Idx)
103982 , p_source_60 => l_array_source_60(Idx)
103983 , p_source_64 => l_array_source_64(Idx)
103984 , p_source_64_meaning => l_array_source_64_meaning(Idx)
103985 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
103986 , p_source_69 => l_array_source_69(Idx)
103987 , p_source_70 => l_array_source_70(Idx)
103991 , p_source_79_meaning => l_array_source_79_meaning(Idx)
103988 , p_source_77 => l_array_source_77(Idx)
103989 , p_source_78 => l_array_source_78(Idx)
103990 , p_source_79 => l_array_source_79(Idx)
103992 , p_source_82 => l_array_source_82(Idx)
103993 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
103994 , p_source_84 => l_array_source_84(Idx)
103995 , p_source_85 => l_array_source_85(Idx)
103996 , p_source_86 => l_array_source_86(Idx)
103997 , p_source_87 => l_array_source_87(Idx)
103998 , p_source_88 => l_array_source_88(Idx)
103999 , p_source_89 => l_array_source_89(Idx)
104000 , p_source_90 => l_array_source_90(Idx)
104001 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104002 , p_source_92 => l_array_source_92(Idx)
104003 , p_source_93 => l_array_source_93(Idx)
104004 , p_source_94 => l_array_source_94(Idx)
104005 , p_source_95 => l_array_source_95(Idx)
104006 , p_source_96 => l_array_source_96(Idx)
104007 , p_source_97 => l_array_source_97(Idx)
104008 , p_source_100 => l_array_source_100(Idx)
104009 , p_source_101 => l_array_source_101(Idx)
104010 , p_source_102 => l_array_source_102(Idx)
104011 , p_source_103 => l_array_source_103(Idx)
104012 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104013 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104014 , p_source_106 => l_array_source_106(Idx)
104015 , p_source_107 => l_array_source_107(Idx)
104016 , p_source_108 => l_array_source_108(Idx)
104017 );
104018 If(l_balance_type_code = 'A') THEN
104019 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104020 END IF;
104021
104022 --
104023
104024
104025 --
104026 AcctLineType_51 (
104027 p_application_id => p_application_id
104028 ,p_event_id => l_event_id
104029 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104030 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104031 ,p_actual_flag => l_actual_flag
104032 ,p_balance_type_code => l_balance_type_code
104033 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104034
104035 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104036 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104037 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104038 , p_source_18 => l_array_source_18(Idx)
104039 , p_source_19 => l_array_source_19(Idx)
104040 , p_source_19_meaning => l_array_source_19_meaning(Idx)
104041 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104042 , p_source_29 => l_array_source_29(Idx)
104043 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104044 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104045 , p_source_52 => l_array_source_52(Idx)
104046 , p_source_54 => l_array_source_54(Idx)
104047 , p_source_60 => l_array_source_60(Idx)
104048 , p_source_64 => l_array_source_64(Idx)
104049 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104050 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104051 , p_source_69 => l_array_source_69(Idx)
104052 , p_source_70 => l_array_source_70(Idx)
104053 , p_source_77 => l_array_source_77(Idx)
104054 , p_source_78 => l_array_source_78(Idx)
104055 , p_source_79 => l_array_source_79(Idx)
104056 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104057 , p_source_82 => l_array_source_82(Idx)
104058 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104059 , p_source_84 => l_array_source_84(Idx)
104060 , p_source_85 => l_array_source_85(Idx)
104061 , p_source_86 => l_array_source_86(Idx)
104062 , p_source_87 => l_array_source_87(Idx)
104063 , p_source_88 => l_array_source_88(Idx)
104064 , p_source_89 => l_array_source_89(Idx)
104065 , p_source_90 => l_array_source_90(Idx)
104066 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104067 , p_source_92 => l_array_source_92(Idx)
104068 , p_source_93 => l_array_source_93(Idx)
104069 , p_source_94 => l_array_source_94(Idx)
104070 , p_source_95 => l_array_source_95(Idx)
104071 , p_source_96 => l_array_source_96(Idx)
104072 , p_source_97 => l_array_source_97(Idx)
104073 , p_source_100 => l_array_source_100(Idx)
104074 , p_source_101 => l_array_source_101(Idx)
104075 , p_source_102 => l_array_source_102(Idx)
104076 , p_source_103 => l_array_source_103(Idx)
104077 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104078 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104079 , p_source_106 => l_array_source_106(Idx)
104080 , p_source_107 => l_array_source_107(Idx)
104081 , p_source_108 => l_array_source_108(Idx)
104082 , p_source_111 => l_array_source_111(Idx)
104083 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104084 );
104085 If(l_balance_type_code = 'A') THEN
104086 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104087 END IF;
104088
104089 --
104090
104091
104092 --
104093 AcctLineType_81 (
104094 p_application_id => p_application_id
104095 ,p_event_id => l_event_id
104096 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104097 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104098 ,p_actual_flag => l_actual_flag
104099 ,p_balance_type_code => l_balance_type_code
104100 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104101
104102 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104103 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104104 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104105 , p_source_18 => l_array_source_18(Idx)
104106 , p_source_19 => l_array_source_19(Idx)
104107 , p_source_19_meaning => l_array_source_19_meaning(Idx)
104108 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104109 , p_source_29 => l_array_source_29(Idx)
104110 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104114 , p_source_54 => l_array_source_54(Idx)
104111 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104112 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104113 , p_source_52 => l_array_source_52(Idx)
104115 , p_source_60 => l_array_source_60(Idx)
104116 , p_source_64 => l_array_source_64(Idx)
104117 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104118 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104119 , p_source_69 => l_array_source_69(Idx)
104120 , p_source_70 => l_array_source_70(Idx)
104121 , p_source_77 => l_array_source_77(Idx)
104122 , p_source_78 => l_array_source_78(Idx)
104123 , p_source_79 => l_array_source_79(Idx)
104124 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104125 , p_source_82 => l_array_source_82(Idx)
104126 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104127 , p_source_84 => l_array_source_84(Idx)
104128 , p_source_85 => l_array_source_85(Idx)
104129 , p_source_86 => l_array_source_86(Idx)
104130 , p_source_87 => l_array_source_87(Idx)
104131 , p_source_88 => l_array_source_88(Idx)
104132 , p_source_89 => l_array_source_89(Idx)
104133 , p_source_90 => l_array_source_90(Idx)
104134 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104135 , p_source_92 => l_array_source_92(Idx)
104136 , p_source_93 => l_array_source_93(Idx)
104137 , p_source_94 => l_array_source_94(Idx)
104138 , p_source_95 => l_array_source_95(Idx)
104139 , p_source_96 => l_array_source_96(Idx)
104140 , p_source_97 => l_array_source_97(Idx)
104141 , p_source_98 => l_array_source_98(Idx)
104142 , p_source_99 => l_array_source_99(Idx)
104143 , p_source_100 => l_array_source_100(Idx)
104144 , p_source_101 => l_array_source_101(Idx)
104145 , p_source_102 => l_array_source_102(Idx)
104146 , p_source_103 => l_array_source_103(Idx)
104147 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104148 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104149 , p_source_106 => l_array_source_106(Idx)
104150 , p_source_107 => l_array_source_107(Idx)
104151 , p_source_108 => l_array_source_108(Idx)
104152 , p_source_111 => l_array_source_111(Idx)
104153 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104154 , p_source_125 => l_array_source_125(Idx)
104155 , p_source_126 => l_array_source_126(Idx)
104156 , p_source_127 => l_array_source_127(Idx)
104157 );
104158 If(l_balance_type_code = 'A') THEN
104159 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104160 END IF;
104161
104162 --
104163
104164
104165 --
104166 AcctLineType_83 (
104167 p_application_id => p_application_id
104168 ,p_event_id => l_event_id
104169 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104170 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104171 ,p_actual_flag => l_actual_flag
104172 ,p_balance_type_code => l_balance_type_code
104173 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104174
104175 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104176 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104177 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
104178 , p_source_18 => l_array_source_18(Idx)
104179 , p_source_19 => l_array_source_19(Idx)
104180 , p_source_19_meaning => l_array_source_19_meaning(Idx)
104181 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
104182 , p_source_29 => l_array_source_29(Idx)
104183 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
104184 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
104185 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104186 , p_source_52 => l_array_source_52(Idx)
104187 , p_source_54 => l_array_source_54(Idx)
104188 , p_source_60 => l_array_source_60(Idx)
104189 , p_source_64 => l_array_source_64(Idx)
104190 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104191 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104192 , p_source_69 => l_array_source_69(Idx)
104193 , p_source_70 => l_array_source_70(Idx)
104194 , p_source_77 => l_array_source_77(Idx)
104195 , p_source_78 => l_array_source_78(Idx)
104196 , p_source_79 => l_array_source_79(Idx)
104197 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104198 , p_source_82 => l_array_source_82(Idx)
104199 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104200 , p_source_84 => l_array_source_84(Idx)
104201 , p_source_85 => l_array_source_85(Idx)
104202 , p_source_86 => l_array_source_86(Idx)
104203 , p_source_87 => l_array_source_87(Idx)
104204 , p_source_88 => l_array_source_88(Idx)
104205 , p_source_89 => l_array_source_89(Idx)
104206 , p_source_90 => l_array_source_90(Idx)
104207 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104208 , p_source_92 => l_array_source_92(Idx)
104209 , p_source_93 => l_array_source_93(Idx)
104210 , p_source_94 => l_array_source_94(Idx)
104211 , p_source_95 => l_array_source_95(Idx)
104212 , p_source_96 => l_array_source_96(Idx)
104213 , p_source_97 => l_array_source_97(Idx)
104214 , p_source_98 => l_array_source_98(Idx)
104215 , p_source_101 => l_array_source_101(Idx)
104216 , p_source_102 => l_array_source_102(Idx)
104217 , p_source_103 => l_array_source_103(Idx)
104218 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104219 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104220 , p_source_106 => l_array_source_106(Idx)
104221 , p_source_107 => l_array_source_107(Idx)
104222 , p_source_108 => l_array_source_108(Idx)
104223 , p_source_109 => l_array_source_109(Idx)
104224 , p_source_110 => l_array_source_110(Idx)
104225 , p_source_111 => l_array_source_111(Idx)
104226 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104227 , p_source_128 => l_array_source_128(Idx)
104228 , p_source_129 => l_array_source_129(Idx)
104232 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104229 , p_source_130 => l_array_source_130(Idx)
104230 );
104231 If(l_balance_type_code = 'A') THEN
104233 END IF;
104234
104235 --
104236
104237
104238 --
104239 AcctLineType_85 (
104240 p_application_id => p_application_id
104241 ,p_event_id => l_event_id
104242 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104243 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104244 ,p_actual_flag => l_actual_flag
104245 ,p_balance_type_code => l_balance_type_code
104246 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104247
104248 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104249 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104250 , p_source_29 => l_array_source_29(Idx)
104251 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
104252 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104253 , p_source_52 => l_array_source_52(Idx)
104254 , p_source_54 => l_array_source_54(Idx)
104255 , p_source_60 => l_array_source_60(Idx)
104256 , p_source_64 => l_array_source_64(Idx)
104257 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104258 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104259 , p_source_69 => l_array_source_69(Idx)
104260 , p_source_70 => l_array_source_70(Idx)
104261 , p_source_77 => l_array_source_77(Idx)
104262 , p_source_78 => l_array_source_78(Idx)
104263 , p_source_82 => l_array_source_82(Idx)
104264 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104265 , p_source_84 => l_array_source_84(Idx)
104266 , p_source_85 => l_array_source_85(Idx)
104267 , p_source_86 => l_array_source_86(Idx)
104268 , p_source_87 => l_array_source_87(Idx)
104269 , p_source_88 => l_array_source_88(Idx)
104270 , p_source_89 => l_array_source_89(Idx)
104271 , p_source_90 => l_array_source_90(Idx)
104272 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104273 , p_source_92 => l_array_source_92(Idx)
104274 , p_source_93 => l_array_source_93(Idx)
104275 , p_source_94 => l_array_source_94(Idx)
104276 , p_source_95 => l_array_source_95(Idx)
104277 , p_source_96 => l_array_source_96(Idx)
104278 , p_source_97 => l_array_source_97(Idx)
104279 , p_source_98 => l_array_source_98(Idx)
104280 , p_source_100 => l_array_source_100(Idx)
104281 , p_source_101 => l_array_source_101(Idx)
104282 , p_source_102 => l_array_source_102(Idx)
104283 , p_source_103 => l_array_source_103(Idx)
104284 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104285 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104286 , p_source_106 => l_array_source_106(Idx)
104287 , p_source_107 => l_array_source_107(Idx)
104288 , p_source_108 => l_array_source_108(Idx)
104289 , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
104290 , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
104291 , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
104292 );
104293 If(l_balance_type_code = 'A') THEN
104294 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104295 END IF;
104296
104297 --
104298
104299
104300 --
104301 AcctLineType_86 (
104302 p_application_id => p_application_id
104303 ,p_event_id => l_event_id
104304 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104305 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104306 ,p_actual_flag => l_actual_flag
104307 ,p_balance_type_code => l_balance_type_code
104308 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104309
104310 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
104311 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
104312 , p_source_29 => l_array_source_29(Idx)
104313 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
104314 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104315 , p_source_52 => l_array_source_52(Idx)
104316 , p_source_54 => l_array_source_54(Idx)
104317 , p_source_60 => l_array_source_60(Idx)
104318 , p_source_64 => l_array_source_64(Idx)
104319 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104320 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104321 , p_source_69 => l_array_source_69(Idx)
104322 , p_source_70 => l_array_source_70(Idx)
104323 , p_source_77 => l_array_source_77(Idx)
104324 , p_source_78 => l_array_source_78(Idx)
104325 , p_source_82 => l_array_source_82(Idx)
104326 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104327 , p_source_84 => l_array_source_84(Idx)
104328 , p_source_85 => l_array_source_85(Idx)
104329 , p_source_86 => l_array_source_86(Idx)
104330 , p_source_87 => l_array_source_87(Idx)
104331 , p_source_88 => l_array_source_88(Idx)
104332 , p_source_89 => l_array_source_89(Idx)
104333 , p_source_90 => l_array_source_90(Idx)
104334 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104335 , p_source_92 => l_array_source_92(Idx)
104336 , p_source_93 => l_array_source_93(Idx)
104337 , p_source_94 => l_array_source_94(Idx)
104338 , p_source_95 => l_array_source_95(Idx)
104339 , p_source_96 => l_array_source_96(Idx)
104340 , p_source_97 => l_array_source_97(Idx)
104341 , p_source_98 => l_array_source_98(Idx)
104342 , p_source_101 => l_array_source_101(Idx)
104343 , p_source_102 => l_array_source_102(Idx)
104344 , p_source_103 => l_array_source_103(Idx)
104345 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104346 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104347 , p_source_106 => l_array_source_106(Idx)
104348 , p_source_107 => l_array_source_107(Idx)
104349 , p_source_108 => l_array_source_108(Idx)
104350 , p_source_110 => l_array_source_110(Idx)
104351 , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
104352 , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
104356 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104353 , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
104354 );
104355 If(l_balance_type_code = 'A') THEN
104357 END IF;
104358
104359 --
104360
104361
104362 --
104363 AcctLineType_90 (
104364 p_application_id => p_application_id
104365 ,p_event_id => l_event_id
104366 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104367 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104368 ,p_actual_flag => l_actual_flag
104369 ,p_balance_type_code => l_balance_type_code
104370 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104371
104372 , p_source_48 => l_array_source_48(Idx)
104373 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104374 , p_source_52 => l_array_source_52(Idx)
104375 , p_source_54 => l_array_source_54(Idx)
104376 , p_source_60 => l_array_source_60(Idx)
104377 , p_source_64 => l_array_source_64(Idx)
104378 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104379 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104380 , p_source_69 => l_array_source_69(Idx)
104381 , p_source_70 => l_array_source_70(Idx)
104382 , p_source_77 => l_array_source_77(Idx)
104383 , p_source_78 => l_array_source_78(Idx)
104384 , p_source_79 => l_array_source_79(Idx)
104385 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104386 , p_source_82 => l_array_source_82(Idx)
104387 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104388 , p_source_84 => l_array_source_84(Idx)
104389 , p_source_85 => l_array_source_85(Idx)
104390 , p_source_86 => l_array_source_86(Idx)
104391 , p_source_87 => l_array_source_87(Idx)
104392 , p_source_88 => l_array_source_88(Idx)
104393 , p_source_89 => l_array_source_89(Idx)
104394 , p_source_90 => l_array_source_90(Idx)
104395 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104396 , p_source_92 => l_array_source_92(Idx)
104397 , p_source_93 => l_array_source_93(Idx)
104398 , p_source_94 => l_array_source_94(Idx)
104399 , p_source_95 => l_array_source_95(Idx)
104400 , p_source_96 => l_array_source_96(Idx)
104401 , p_source_97 => l_array_source_97(Idx)
104402 , p_source_98 => l_array_source_98(Idx)
104403 , p_source_99 => l_array_source_99(Idx)
104404 , p_source_100 => l_array_source_100(Idx)
104405 , p_source_101 => l_array_source_101(Idx)
104406 , p_source_102 => l_array_source_102(Idx)
104407 , p_source_103 => l_array_source_103(Idx)
104408 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104409 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104410 , p_source_106 => l_array_source_106(Idx)
104411 , p_source_107 => l_array_source_107(Idx)
104412 , p_source_108 => l_array_source_108(Idx)
104413 , p_source_125 => l_array_source_125(Idx)
104414 , p_source_126 => l_array_source_126(Idx)
104415 , p_source_127 => l_array_source_127(Idx)
104416 );
104417 If(l_balance_type_code = 'A') THEN
104418 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104419 END IF;
104420
104421 --
104422
104423
104424 --
104425 AcctLineType_91 (
104426 p_application_id => p_application_id
104427 ,p_event_id => l_event_id
104428 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104429 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104430 ,p_actual_flag => l_actual_flag
104431 ,p_balance_type_code => l_balance_type_code
104432 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104433
104434 , p_source_48 => l_array_source_48(Idx)
104435 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104436 , p_source_52 => l_array_source_52(Idx)
104437 , p_source_54 => l_array_source_54(Idx)
104438 , p_source_60 => l_array_source_60(Idx)
104439 , p_source_64 => l_array_source_64(Idx)
104440 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104441 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104442 , p_source_69 => l_array_source_69(Idx)
104443 , p_source_70 => l_array_source_70(Idx)
104444 , p_source_77 => l_array_source_77(Idx)
104445 , p_source_78 => l_array_source_78(Idx)
104446 , p_source_79 => l_array_source_79(Idx)
104447 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104448 , p_source_82 => l_array_source_82(Idx)
104449 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104450 , p_source_84 => l_array_source_84(Idx)
104451 , p_source_85 => l_array_source_85(Idx)
104452 , p_source_86 => l_array_source_86(Idx)
104453 , p_source_87 => l_array_source_87(Idx)
104454 , p_source_88 => l_array_source_88(Idx)
104455 , p_source_89 => l_array_source_89(Idx)
104456 , p_source_90 => l_array_source_90(Idx)
104457 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104458 , p_source_92 => l_array_source_92(Idx)
104459 , p_source_93 => l_array_source_93(Idx)
104460 , p_source_94 => l_array_source_94(Idx)
104461 , p_source_95 => l_array_source_95(Idx)
104462 , p_source_96 => l_array_source_96(Idx)
104463 , p_source_97 => l_array_source_97(Idx)
104464 , p_source_98 => l_array_source_98(Idx)
104465 , p_source_101 => l_array_source_101(Idx)
104466 , p_source_102 => l_array_source_102(Idx)
104467 , p_source_103 => l_array_source_103(Idx)
104468 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104469 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104470 , p_source_106 => l_array_source_106(Idx)
104471 , p_source_107 => l_array_source_107(Idx)
104472 , p_source_108 => l_array_source_108(Idx)
104473 , p_source_109 => l_array_source_109(Idx)
104474 , p_source_110 => l_array_source_110(Idx)
104475 , p_source_128 => l_array_source_128(Idx)
104476 , p_source_129 => l_array_source_129(Idx)
104477 , p_source_130 => l_array_source_130(Idx)
104478 );
104479 If(l_balance_type_code = 'A') THEN
104480 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104481 END IF;
104482
104483 --
104484
104485
104486 --
104490 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104487 AcctLineType_105 (
104488 p_application_id => p_application_id
104489 ,p_event_id => l_event_id
104491 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104492 ,p_actual_flag => l_actual_flag
104493 ,p_balance_type_code => l_balance_type_code
104494 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104495
104496 , p_source_48 => l_array_source_48(Idx)
104497 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104498 , p_source_52 => l_array_source_52(Idx)
104499 , p_source_54 => l_array_source_54(Idx)
104500 , p_source_60 => l_array_source_60(Idx)
104501 , p_source_64 => l_array_source_64(Idx)
104502 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104503 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104504 , p_source_69 => l_array_source_69(Idx)
104505 , p_source_70 => l_array_source_70(Idx)
104506 , p_source_77 => l_array_source_77(Idx)
104507 , p_source_78 => l_array_source_78(Idx)
104508 , p_source_79 => l_array_source_79(Idx)
104509 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104510 , p_source_82 => l_array_source_82(Idx)
104511 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104512 , p_source_84 => l_array_source_84(Idx)
104513 , p_source_85 => l_array_source_85(Idx)
104514 , p_source_86 => l_array_source_86(Idx)
104515 , p_source_87 => l_array_source_87(Idx)
104516 , p_source_88 => l_array_source_88(Idx)
104517 , p_source_89 => l_array_source_89(Idx)
104518 , p_source_90 => l_array_source_90(Idx)
104519 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104520 , p_source_92 => l_array_source_92(Idx)
104521 , p_source_93 => l_array_source_93(Idx)
104522 , p_source_94 => l_array_source_94(Idx)
104523 , p_source_95 => l_array_source_95(Idx)
104524 , p_source_96 => l_array_source_96(Idx)
104525 , p_source_97 => l_array_source_97(Idx)
104526 , p_source_98 => l_array_source_98(Idx)
104527 , p_source_99 => l_array_source_99(Idx)
104528 , p_source_100 => l_array_source_100(Idx)
104529 , p_source_101 => l_array_source_101(Idx)
104530 , p_source_102 => l_array_source_102(Idx)
104531 , p_source_103 => l_array_source_103(Idx)
104532 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104533 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104534 , p_source_106 => l_array_source_106(Idx)
104535 , p_source_107 => l_array_source_107(Idx)
104536 , p_source_108 => l_array_source_108(Idx)
104537 , p_source_111 => l_array_source_111(Idx)
104538 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104539 , p_source_125 => l_array_source_125(Idx)
104540 , p_source_126 => l_array_source_126(Idx)
104541 , p_source_127 => l_array_source_127(Idx)
104542 );
104543 If(l_balance_type_code = 'A') THEN
104544 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104545 END IF;
104546
104547 --
104548
104549
104550 --
104551 AcctLineType_106 (
104552 p_application_id => p_application_id
104553 ,p_event_id => l_event_id
104554 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104555 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104556 ,p_actual_flag => l_actual_flag
104557 ,p_balance_type_code => l_balance_type_code
104558 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104559
104560 , p_source_48 => l_array_source_48(Idx)
104561 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104562 , p_source_52 => l_array_source_52(Idx)
104563 , p_source_54 => l_array_source_54(Idx)
104564 , p_source_60 => l_array_source_60(Idx)
104565 , p_source_64 => l_array_source_64(Idx)
104566 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104567 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104568 , p_source_69 => l_array_source_69(Idx)
104569 , p_source_70 => l_array_source_70(Idx)
104570 , p_source_77 => l_array_source_77(Idx)
104571 , p_source_78 => l_array_source_78(Idx)
104572 , p_source_79 => l_array_source_79(Idx)
104573 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104574 , p_source_82 => l_array_source_82(Idx)
104575 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104576 , p_source_84 => l_array_source_84(Idx)
104577 , p_source_85 => l_array_source_85(Idx)
104578 , p_source_86 => l_array_source_86(Idx)
104579 , p_source_87 => l_array_source_87(Idx)
104580 , p_source_88 => l_array_source_88(Idx)
104581 , p_source_89 => l_array_source_89(Idx)
104582 , p_source_90 => l_array_source_90(Idx)
104583 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104584 , p_source_92 => l_array_source_92(Idx)
104585 , p_source_93 => l_array_source_93(Idx)
104586 , p_source_94 => l_array_source_94(Idx)
104587 , p_source_95 => l_array_source_95(Idx)
104588 , p_source_96 => l_array_source_96(Idx)
104589 , p_source_97 => l_array_source_97(Idx)
104590 , p_source_98 => l_array_source_98(Idx)
104591 , p_source_101 => l_array_source_101(Idx)
104592 , p_source_102 => l_array_source_102(Idx)
104593 , p_source_103 => l_array_source_103(Idx)
104594 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104595 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104596 , p_source_106 => l_array_source_106(Idx)
104597 , p_source_107 => l_array_source_107(Idx)
104598 , p_source_108 => l_array_source_108(Idx)
104599 , p_source_109 => l_array_source_109(Idx)
104600 , p_source_110 => l_array_source_110(Idx)
104601 , p_source_111 => l_array_source_111(Idx)
104602 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104603 , p_source_125 => l_array_source_125(Idx)
104604 , p_source_129 => l_array_source_129(Idx)
104605 , p_source_130 => l_array_source_130(Idx)
104606 );
104607 If(l_balance_type_code = 'A') THEN
104608 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104609 END IF;
104610
104611 --
104612
104613
104614 --
104615 AcctLineType_110 (
104616 p_application_id => p_application_id
104620 ,p_actual_flag => l_actual_flag
104617 ,p_event_id => l_event_id
104618 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104619 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104621 ,p_balance_type_code => l_balance_type_code
104622 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104623
104624 , p_source_48 => l_array_source_48(Idx)
104625 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104626 , p_source_52 => l_array_source_52(Idx)
104627 , p_source_54 => l_array_source_54(Idx)
104628 , p_source_60 => l_array_source_60(Idx)
104629 , p_source_64 => l_array_source_64(Idx)
104630 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104631 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104632 , p_source_69 => l_array_source_69(Idx)
104633 , p_source_70 => l_array_source_70(Idx)
104634 , p_source_77 => l_array_source_77(Idx)
104635 , p_source_78 => l_array_source_78(Idx)
104636 , p_source_79 => l_array_source_79(Idx)
104637 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104638 , p_source_82 => l_array_source_82(Idx)
104639 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104640 , p_source_84 => l_array_source_84(Idx)
104641 , p_source_85 => l_array_source_85(Idx)
104642 , p_source_86 => l_array_source_86(Idx)
104643 , p_source_87 => l_array_source_87(Idx)
104644 , p_source_88 => l_array_source_88(Idx)
104645 , p_source_89 => l_array_source_89(Idx)
104646 , p_source_90 => l_array_source_90(Idx)
104647 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104648 , p_source_92 => l_array_source_92(Idx)
104649 , p_source_93 => l_array_source_93(Idx)
104650 , p_source_94 => l_array_source_94(Idx)
104651 , p_source_95 => l_array_source_95(Idx)
104652 , p_source_96 => l_array_source_96(Idx)
104653 , p_source_97 => l_array_source_97(Idx)
104654 , p_source_98 => l_array_source_98(Idx)
104655 , p_source_99 => l_array_source_99(Idx)
104656 , p_source_100 => l_array_source_100(Idx)
104657 , p_source_101 => l_array_source_101(Idx)
104658 , p_source_102 => l_array_source_102(Idx)
104659 , p_source_103 => l_array_source_103(Idx)
104660 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104661 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104662 , p_source_106 => l_array_source_106(Idx)
104663 , p_source_107 => l_array_source_107(Idx)
104664 , p_source_108 => l_array_source_108(Idx)
104665 , p_source_111 => l_array_source_111(Idx)
104666 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104667 , p_source_125 => l_array_source_125(Idx)
104668 , p_source_126 => l_array_source_126(Idx)
104669 , p_source_127 => l_array_source_127(Idx)
104670 );
104671 If(l_balance_type_code = 'A') THEN
104672 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104673 END IF;
104674
104675 --
104676
104677
104678 --
104679 AcctLineType_111 (
104680 p_application_id => p_application_id
104681 ,p_event_id => l_event_id
104682 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104683 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104684 ,p_actual_flag => l_actual_flag
104685 ,p_balance_type_code => l_balance_type_code
104686 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104687
104688 , p_source_48 => l_array_source_48(Idx)
104689 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104690 , p_source_52 => l_array_source_52(Idx)
104691 , p_source_54 => l_array_source_54(Idx)
104692 , p_source_60 => l_array_source_60(Idx)
104693 , p_source_64 => l_array_source_64(Idx)
104694 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104695 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104696 , p_source_69 => l_array_source_69(Idx)
104697 , p_source_70 => l_array_source_70(Idx)
104698 , p_source_77 => l_array_source_77(Idx)
104699 , p_source_78 => l_array_source_78(Idx)
104700 , p_source_79 => l_array_source_79(Idx)
104701 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104702 , p_source_82 => l_array_source_82(Idx)
104703 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104704 , p_source_84 => l_array_source_84(Idx)
104705 , p_source_85 => l_array_source_85(Idx)
104706 , p_source_86 => l_array_source_86(Idx)
104707 , p_source_87 => l_array_source_87(Idx)
104708 , p_source_88 => l_array_source_88(Idx)
104709 , p_source_89 => l_array_source_89(Idx)
104710 , p_source_90 => l_array_source_90(Idx)
104711 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104712 , p_source_92 => l_array_source_92(Idx)
104713 , p_source_93 => l_array_source_93(Idx)
104714 , p_source_94 => l_array_source_94(Idx)
104715 , p_source_95 => l_array_source_95(Idx)
104716 , p_source_96 => l_array_source_96(Idx)
104717 , p_source_97 => l_array_source_97(Idx)
104718 , p_source_98 => l_array_source_98(Idx)
104719 , p_source_101 => l_array_source_101(Idx)
104720 , p_source_102 => l_array_source_102(Idx)
104721 , p_source_103 => l_array_source_103(Idx)
104722 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104723 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104724 , p_source_106 => l_array_source_106(Idx)
104725 , p_source_107 => l_array_source_107(Idx)
104726 , p_source_108 => l_array_source_108(Idx)
104727 , p_source_109 => l_array_source_109(Idx)
104728 , p_source_110 => l_array_source_110(Idx)
104729 , p_source_111 => l_array_source_111(Idx)
104730 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104731 , p_source_128 => l_array_source_128(Idx)
104732 , p_source_129 => l_array_source_129(Idx)
104733 , p_source_130 => l_array_source_130(Idx)
104734 );
104735 If(l_balance_type_code = 'A') THEN
104736 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104737 END IF;
104738
104739 --
104740
104741
104742 --
104743 AcctLineType_118 (
104744 p_application_id => p_application_id
104745 ,p_event_id => l_event_id
104749 ,p_balance_type_code => l_balance_type_code
104746 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104747 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104748 ,p_actual_flag => l_actual_flag
104750 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104751
104752 , p_source_48 => l_array_source_48(Idx)
104753 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104754 , p_source_52 => l_array_source_52(Idx)
104755 , p_source_54 => l_array_source_54(Idx)
104756 , p_source_60 => l_array_source_60(Idx)
104757 , p_source_64 => l_array_source_64(Idx)
104758 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104759 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104760 , p_source_69 => l_array_source_69(Idx)
104761 , p_source_70 => l_array_source_70(Idx)
104762 , p_source_77 => l_array_source_77(Idx)
104763 , p_source_78 => l_array_source_78(Idx)
104764 , p_source_79 => l_array_source_79(Idx)
104765 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104766 , p_source_82 => l_array_source_82(Idx)
104767 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104768 , p_source_84 => l_array_source_84(Idx)
104769 , p_source_85 => l_array_source_85(Idx)
104770 , p_source_86 => l_array_source_86(Idx)
104771 , p_source_87 => l_array_source_87(Idx)
104772 , p_source_88 => l_array_source_88(Idx)
104773 , p_source_89 => l_array_source_89(Idx)
104774 , p_source_90 => l_array_source_90(Idx)
104775 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104776 , p_source_92 => l_array_source_92(Idx)
104777 , p_source_93 => l_array_source_93(Idx)
104778 , p_source_94 => l_array_source_94(Idx)
104779 , p_source_95 => l_array_source_95(Idx)
104780 , p_source_96 => l_array_source_96(Idx)
104781 , p_source_97 => l_array_source_97(Idx)
104782 , p_source_98 => l_array_source_98(Idx)
104783 , p_source_99 => l_array_source_99(Idx)
104784 , p_source_100 => l_array_source_100(Idx)
104785 , p_source_101 => l_array_source_101(Idx)
104786 , p_source_102 => l_array_source_102(Idx)
104787 , p_source_103 => l_array_source_103(Idx)
104788 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104789 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104790 , p_source_106 => l_array_source_106(Idx)
104791 , p_source_107 => l_array_source_107(Idx)
104792 , p_source_108 => l_array_source_108(Idx)
104793 , p_source_125 => l_array_source_125(Idx)
104794 , p_source_126 => l_array_source_126(Idx)
104795 , p_source_127 => l_array_source_127(Idx)
104796 );
104797 If(l_balance_type_code = 'A') THEN
104798 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104799 END IF;
104800
104801 --
104802
104803
104804 --
104805 AcctLineType_119 (
104806 p_application_id => p_application_id
104807 ,p_event_id => l_event_id
104808 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104809 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104810 ,p_actual_flag => l_actual_flag
104811 ,p_balance_type_code => l_balance_type_code
104812 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104813
104814 , p_source_48 => l_array_source_48(Idx)
104815 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104816 , p_source_52 => l_array_source_52(Idx)
104817 , p_source_54 => l_array_source_54(Idx)
104818 , p_source_60 => l_array_source_60(Idx)
104819 , p_source_64 => l_array_source_64(Idx)
104820 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104821 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104822 , p_source_69 => l_array_source_69(Idx)
104823 , p_source_70 => l_array_source_70(Idx)
104824 , p_source_77 => l_array_source_77(Idx)
104825 , p_source_78 => l_array_source_78(Idx)
104826 , p_source_79 => l_array_source_79(Idx)
104827 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104828 , p_source_82 => l_array_source_82(Idx)
104829 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104830 , p_source_84 => l_array_source_84(Idx)
104831 , p_source_85 => l_array_source_85(Idx)
104832 , p_source_86 => l_array_source_86(Idx)
104833 , p_source_87 => l_array_source_87(Idx)
104834 , p_source_88 => l_array_source_88(Idx)
104835 , p_source_89 => l_array_source_89(Idx)
104836 , p_source_90 => l_array_source_90(Idx)
104837 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104838 , p_source_92 => l_array_source_92(Idx)
104839 , p_source_93 => l_array_source_93(Idx)
104840 , p_source_94 => l_array_source_94(Idx)
104841 , p_source_95 => l_array_source_95(Idx)
104842 , p_source_96 => l_array_source_96(Idx)
104843 , p_source_97 => l_array_source_97(Idx)
104844 , p_source_98 => l_array_source_98(Idx)
104845 , p_source_101 => l_array_source_101(Idx)
104846 , p_source_102 => l_array_source_102(Idx)
104847 , p_source_103 => l_array_source_103(Idx)
104848 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104849 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104850 , p_source_106 => l_array_source_106(Idx)
104851 , p_source_107 => l_array_source_107(Idx)
104852 , p_source_108 => l_array_source_108(Idx)
104853 , p_source_109 => l_array_source_109(Idx)
104854 , p_source_110 => l_array_source_110(Idx)
104855 , p_source_128 => l_array_source_128(Idx)
104856 , p_source_129 => l_array_source_129(Idx)
104857 , p_source_130 => l_array_source_130(Idx)
104858 );
104859 If(l_balance_type_code = 'A') THEN
104860 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104861 END IF;
104862
104863 --
104864
104865
104866 --
104867 AcctLineType_126 (
104868 p_application_id => p_application_id
104869 ,p_event_id => l_event_id
104870 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104871 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104872 ,p_actual_flag => l_actual_flag
104873 ,p_balance_type_code => l_balance_type_code
104874 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104875
104879 , p_source_54 => l_array_source_54(Idx)
104876 , p_source_29 => l_array_source_29(Idx)
104877 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104878 , p_source_52 => l_array_source_52(Idx)
104880 , p_source_60 => l_array_source_60(Idx)
104881 , p_source_61 => l_array_source_61(Idx)
104882 , p_source_62 => l_array_source_62(Idx)
104883 , p_source_63 => l_array_source_63(Idx)
104884 , p_source_64 => l_array_source_64(Idx)
104885 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104886 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104887 , p_source_69 => l_array_source_69(Idx)
104888 , p_source_70 => l_array_source_70(Idx)
104889 , p_source_77 => l_array_source_77(Idx)
104890 , p_source_78 => l_array_source_78(Idx)
104891 , p_source_79 => l_array_source_79(Idx)
104892 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104893 , p_source_82 => l_array_source_82(Idx)
104894 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104895 , p_source_84 => l_array_source_84(Idx)
104896 , p_source_85 => l_array_source_85(Idx)
104897 , p_source_86 => l_array_source_86(Idx)
104898 , p_source_87 => l_array_source_87(Idx)
104899 , p_source_88 => l_array_source_88(Idx)
104900 , p_source_89 => l_array_source_89(Idx)
104901 , p_source_90 => l_array_source_90(Idx)
104902 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104903 , p_source_92 => l_array_source_92(Idx)
104904 , p_source_93 => l_array_source_93(Idx)
104905 , p_source_94 => l_array_source_94(Idx)
104906 , p_source_95 => l_array_source_95(Idx)
104907 , p_source_96 => l_array_source_96(Idx)
104908 , p_source_97 => l_array_source_97(Idx)
104909 , p_source_98 => l_array_source_98(Idx)
104910 , p_source_99 => l_array_source_99(Idx)
104911 , p_source_100 => l_array_source_100(Idx)
104912 , p_source_101 => l_array_source_101(Idx)
104913 , p_source_102 => l_array_source_102(Idx)
104914 , p_source_103 => l_array_source_103(Idx)
104915 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104916 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104917 , p_source_106 => l_array_source_106(Idx)
104918 , p_source_107 => l_array_source_107(Idx)
104919 , p_source_108 => l_array_source_108(Idx)
104920 , p_source_111 => l_array_source_111(Idx)
104921 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104922 );
104923 If(l_balance_type_code = 'A') THEN
104924 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104925 END IF;
104926
104927 --
104928
104929
104930 --
104931 AcctLineType_127 (
104932 p_application_id => p_application_id
104933 ,p_event_id => l_event_id
104934 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104935 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104936 ,p_actual_flag => l_actual_flag
104937 ,p_balance_type_code => l_balance_type_code
104938 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104939
104940 , p_source_29 => l_array_source_29(Idx)
104941 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
104942 , p_source_52 => l_array_source_52(Idx)
104943 , p_source_54 => l_array_source_54(Idx)
104944 , p_source_60 => l_array_source_60(Idx)
104945 , p_source_61 => l_array_source_61(Idx)
104946 , p_source_62 => l_array_source_62(Idx)
104947 , p_source_63 => l_array_source_63(Idx)
104948 , p_source_64 => l_array_source_64(Idx)
104949 , p_source_64_meaning => l_array_source_64_meaning(Idx)
104950 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
104951 , p_source_69 => l_array_source_69(Idx)
104952 , p_source_70 => l_array_source_70(Idx)
104953 , p_source_77 => l_array_source_77(Idx)
104954 , p_source_78 => l_array_source_78(Idx)
104955 , p_source_79 => l_array_source_79(Idx)
104956 , p_source_79_meaning => l_array_source_79_meaning(Idx)
104957 , p_source_82 => l_array_source_82(Idx)
104958 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
104959 , p_source_84 => l_array_source_84(Idx)
104960 , p_source_85 => l_array_source_85(Idx)
104961 , p_source_86 => l_array_source_86(Idx)
104962 , p_source_87 => l_array_source_87(Idx)
104963 , p_source_88 => l_array_source_88(Idx)
104964 , p_source_89 => l_array_source_89(Idx)
104965 , p_source_90 => l_array_source_90(Idx)
104966 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
104967 , p_source_92 => l_array_source_92(Idx)
104968 , p_source_93 => l_array_source_93(Idx)
104969 , p_source_94 => l_array_source_94(Idx)
104970 , p_source_95 => l_array_source_95(Idx)
104971 , p_source_96 => l_array_source_96(Idx)
104972 , p_source_97 => l_array_source_97(Idx)
104973 , p_source_98 => l_array_source_98(Idx)
104974 , p_source_101 => l_array_source_101(Idx)
104975 , p_source_102 => l_array_source_102(Idx)
104976 , p_source_103 => l_array_source_103(Idx)
104977 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
104978 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
104979 , p_source_106 => l_array_source_106(Idx)
104980 , p_source_107 => l_array_source_107(Idx)
104981 , p_source_108 => l_array_source_108(Idx)
104982 , p_source_109 => l_array_source_109(Idx)
104983 , p_source_110 => l_array_source_110(Idx)
104984 , p_source_111 => l_array_source_111(Idx)
104985 , p_source_111_meaning => l_array_source_111_meaning(Idx)
104986 );
104987 If(l_balance_type_code = 'A') THEN
104988 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104989 END IF;
104990
104991 --
104992
104993
104994 --
104995 AcctLineType_128 (
104996 p_application_id => p_application_id
104997 ,p_event_id => l_event_id
104998 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104999 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105000 ,p_actual_flag => l_actual_flag
105001 ,p_balance_type_code => l_balance_type_code
105002 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105003
105004 , p_source_48 => l_array_source_48(Idx)
105008 , p_source_60 => l_array_source_60(Idx)
105005 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105006 , p_source_52 => l_array_source_52(Idx)
105007 , p_source_54 => l_array_source_54(Idx)
105009 , p_source_64 => l_array_source_64(Idx)
105010 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105011 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105012 , p_source_69 => l_array_source_69(Idx)
105013 , p_source_70 => l_array_source_70(Idx)
105014 , p_source_77 => l_array_source_77(Idx)
105015 , p_source_78 => l_array_source_78(Idx)
105016 , p_source_79 => l_array_source_79(Idx)
105017 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105018 , p_source_82 => l_array_source_82(Idx)
105019 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105020 , p_source_84 => l_array_source_84(Idx)
105021 , p_source_85 => l_array_source_85(Idx)
105022 , p_source_86 => l_array_source_86(Idx)
105023 , p_source_87 => l_array_source_87(Idx)
105024 , p_source_88 => l_array_source_88(Idx)
105025 , p_source_89 => l_array_source_89(Idx)
105026 , p_source_90 => l_array_source_90(Idx)
105027 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105028 , p_source_92 => l_array_source_92(Idx)
105029 , p_source_93 => l_array_source_93(Idx)
105030 , p_source_94 => l_array_source_94(Idx)
105031 , p_source_95 => l_array_source_95(Idx)
105032 , p_source_96 => l_array_source_96(Idx)
105033 , p_source_97 => l_array_source_97(Idx)
105034 , p_source_98 => l_array_source_98(Idx)
105035 , p_source_99 => l_array_source_99(Idx)
105036 , p_source_100 => l_array_source_100(Idx)
105037 , p_source_101 => l_array_source_101(Idx)
105038 , p_source_102 => l_array_source_102(Idx)
105039 , p_source_103 => l_array_source_103(Idx)
105040 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105041 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105042 , p_source_106 => l_array_source_106(Idx)
105043 , p_source_107 => l_array_source_107(Idx)
105044 , p_source_108 => l_array_source_108(Idx)
105045 , p_source_111 => l_array_source_111(Idx)
105046 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105047 , p_source_125 => l_array_source_125(Idx)
105048 , p_source_126 => l_array_source_126(Idx)
105049 , p_source_127 => l_array_source_127(Idx)
105050 );
105051 If(l_balance_type_code = 'A') THEN
105052 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105053 END IF;
105054
105055 --
105056
105057
105058 --
105059 AcctLineType_129 (
105060 p_application_id => p_application_id
105061 ,p_event_id => l_event_id
105062 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105063 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105064 ,p_actual_flag => l_actual_flag
105065 ,p_balance_type_code => l_balance_type_code
105066 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105067
105068 , p_source_48 => l_array_source_48(Idx)
105069 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105070 , p_source_52 => l_array_source_52(Idx)
105071 , p_source_54 => l_array_source_54(Idx)
105072 , p_source_60 => l_array_source_60(Idx)
105073 , p_source_64 => l_array_source_64(Idx)
105074 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105075 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105076 , p_source_69 => l_array_source_69(Idx)
105077 , p_source_70 => l_array_source_70(Idx)
105078 , p_source_77 => l_array_source_77(Idx)
105079 , p_source_78 => l_array_source_78(Idx)
105080 , p_source_79 => l_array_source_79(Idx)
105081 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105082 , p_source_82 => l_array_source_82(Idx)
105083 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105084 , p_source_84 => l_array_source_84(Idx)
105085 , p_source_85 => l_array_source_85(Idx)
105086 , p_source_86 => l_array_source_86(Idx)
105087 , p_source_87 => l_array_source_87(Idx)
105088 , p_source_88 => l_array_source_88(Idx)
105089 , p_source_89 => l_array_source_89(Idx)
105090 , p_source_90 => l_array_source_90(Idx)
105091 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105092 , p_source_92 => l_array_source_92(Idx)
105093 , p_source_93 => l_array_source_93(Idx)
105094 , p_source_94 => l_array_source_94(Idx)
105095 , p_source_95 => l_array_source_95(Idx)
105096 , p_source_96 => l_array_source_96(Idx)
105097 , p_source_97 => l_array_source_97(Idx)
105098 , p_source_98 => l_array_source_98(Idx)
105099 , p_source_101 => l_array_source_101(Idx)
105100 , p_source_102 => l_array_source_102(Idx)
105101 , p_source_103 => l_array_source_103(Idx)
105102 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105103 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105104 , p_source_106 => l_array_source_106(Idx)
105105 , p_source_107 => l_array_source_107(Idx)
105106 , p_source_108 => l_array_source_108(Idx)
105107 , p_source_109 => l_array_source_109(Idx)
105108 , p_source_110 => l_array_source_110(Idx)
105109 , p_source_111 => l_array_source_111(Idx)
105110 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105111 , p_source_128 => l_array_source_128(Idx)
105112 , p_source_129 => l_array_source_129(Idx)
105113 , p_source_130 => l_array_source_130(Idx)
105114 );
105115 If(l_balance_type_code = 'A') THEN
105116 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105117 END IF;
105118
105119 --
105120
105121
105122 --
105123 AcctLineType_134 (
105124 p_application_id => p_application_id
105125 ,p_event_id => l_event_id
105126 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105127 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105128 ,p_actual_flag => l_actual_flag
105129 ,p_balance_type_code => l_balance_type_code
105130 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105131
105132 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105133 , p_source_52 => l_array_source_52(Idx)
105137 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105134 , p_source_54 => l_array_source_54(Idx)
105135 , p_source_60 => l_array_source_60(Idx)
105136 , p_source_64 => l_array_source_64(Idx)
105138 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105139 , p_source_69 => l_array_source_69(Idx)
105140 , p_source_70 => l_array_source_70(Idx)
105141 , p_source_77 => l_array_source_77(Idx)
105142 , p_source_78 => l_array_source_78(Idx)
105143 , p_source_82 => l_array_source_82(Idx)
105144 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105145 , p_source_88 => l_array_source_88(Idx)
105146 , p_source_89 => l_array_source_89(Idx)
105147 , p_source_90 => l_array_source_90(Idx)
105148 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105149 , p_source_92 => l_array_source_92(Idx)
105150 , p_source_93 => l_array_source_93(Idx)
105151 , p_source_94 => l_array_source_94(Idx)
105152 , p_source_95 => l_array_source_95(Idx)
105153 , p_source_96 => l_array_source_96(Idx)
105154 , p_source_97 => l_array_source_97(Idx)
105155 , p_source_98 => l_array_source_98(Idx)
105156 , p_source_100 => l_array_source_100(Idx)
105157 , p_source_101 => l_array_source_101(Idx)
105158 , p_source_102 => l_array_source_102(Idx)
105159 , p_source_103 => l_array_source_103(Idx)
105160 , p_source_106 => l_array_source_106(Idx)
105161 , p_source_107 => l_array_source_107(Idx)
105162 , p_source_108 => l_array_source_108(Idx)
105163 , p_source_141 => l_array_source_141(Idx)
105164 , p_source_142 => l_array_source_142(Idx)
105165 , p_source_143 => l_array_source_143(Idx)
105166 , p_source_144 => l_array_source_144(Idx)
105167 );
105168 If(l_balance_type_code = 'A') THEN
105169 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105170 END IF;
105171
105172 --
105173
105174
105175 --
105176 AcctLineType_135 (
105177 p_application_id => p_application_id
105178 ,p_event_id => l_event_id
105179 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105180 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105181 ,p_actual_flag => l_actual_flag
105182 ,p_balance_type_code => l_balance_type_code
105183 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105184
105185 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105186 , p_source_52 => l_array_source_52(Idx)
105187 , p_source_54 => l_array_source_54(Idx)
105188 , p_source_60 => l_array_source_60(Idx)
105189 , p_source_64 => l_array_source_64(Idx)
105190 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105191 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105192 , p_source_69 => l_array_source_69(Idx)
105193 , p_source_70 => l_array_source_70(Idx)
105194 , p_source_77 => l_array_source_77(Idx)
105195 , p_source_78 => l_array_source_78(Idx)
105196 , p_source_82 => l_array_source_82(Idx)
105197 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105198 , p_source_88 => l_array_source_88(Idx)
105199 , p_source_89 => l_array_source_89(Idx)
105200 , p_source_90 => l_array_source_90(Idx)
105201 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105202 , p_source_92 => l_array_source_92(Idx)
105203 , p_source_93 => l_array_source_93(Idx)
105204 , p_source_94 => l_array_source_94(Idx)
105205 , p_source_95 => l_array_source_95(Idx)
105206 , p_source_96 => l_array_source_96(Idx)
105207 , p_source_97 => l_array_source_97(Idx)
105208 , p_source_98 => l_array_source_98(Idx)
105209 , p_source_101 => l_array_source_101(Idx)
105210 , p_source_102 => l_array_source_102(Idx)
105211 , p_source_103 => l_array_source_103(Idx)
105212 , p_source_106 => l_array_source_106(Idx)
105213 , p_source_107 => l_array_source_107(Idx)
105214 , p_source_108 => l_array_source_108(Idx)
105215 , p_source_110 => l_array_source_110(Idx)
105216 , p_source_144 => l_array_source_144(Idx)
105217 , p_source_145 => l_array_source_145(Idx)
105218 , p_source_146 => l_array_source_146(Idx)
105219 , p_source_147 => l_array_source_147(Idx)
105220 );
105221 If(l_balance_type_code = 'A') THEN
105222 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105223 END IF;
105224
105225 --
105226
105227
105228 --
105229 AcctLineType_136 (
105230 p_application_id => p_application_id
105231 ,p_event_id => l_event_id
105232 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105233 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105234 ,p_actual_flag => l_actual_flag
105235 ,p_balance_type_code => l_balance_type_code
105236 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105237
105238 , p_source_48 => l_array_source_48(Idx)
105239 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105240 , p_source_52 => l_array_source_52(Idx)
105241 , p_source_54 => l_array_source_54(Idx)
105242 , p_source_60 => l_array_source_60(Idx)
105243 , p_source_64 => l_array_source_64(Idx)
105244 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105245 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105246 , p_source_69 => l_array_source_69(Idx)
105247 , p_source_70 => l_array_source_70(Idx)
105248 , p_source_77 => l_array_source_77(Idx)
105249 , p_source_78 => l_array_source_78(Idx)
105250 , p_source_79 => l_array_source_79(Idx)
105251 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105252 , p_source_82 => l_array_source_82(Idx)
105253 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105254 , p_source_84 => l_array_source_84(Idx)
105255 , p_source_85 => l_array_source_85(Idx)
105256 , p_source_86 => l_array_source_86(Idx)
105257 , p_source_87 => l_array_source_87(Idx)
105258 , p_source_88 => l_array_source_88(Idx)
105259 , p_source_89 => l_array_source_89(Idx)
105260 , p_source_90 => l_array_source_90(Idx)
105261 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105262 , p_source_92 => l_array_source_92(Idx)
105263 , p_source_93 => l_array_source_93(Idx)
105264 , p_source_94 => l_array_source_94(Idx)
105268 , p_source_98 => l_array_source_98(Idx)
105265 , p_source_95 => l_array_source_95(Idx)
105266 , p_source_96 => l_array_source_96(Idx)
105267 , p_source_97 => l_array_source_97(Idx)
105269 , p_source_99 => l_array_source_99(Idx)
105270 , p_source_100 => l_array_source_100(Idx)
105271 , p_source_101 => l_array_source_101(Idx)
105272 , p_source_102 => l_array_source_102(Idx)
105273 , p_source_103 => l_array_source_103(Idx)
105274 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105275 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105276 , p_source_106 => l_array_source_106(Idx)
105277 , p_source_107 => l_array_source_107(Idx)
105278 , p_source_108 => l_array_source_108(Idx)
105279 , p_source_125 => l_array_source_125(Idx)
105280 , p_source_126 => l_array_source_126(Idx)
105281 , p_source_127 => l_array_source_127(Idx)
105282 );
105283 If(l_balance_type_code = 'A') THEN
105284 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105285 END IF;
105286
105287 --
105288
105289
105290 --
105291 AcctLineType_137 (
105292 p_application_id => p_application_id
105293 ,p_event_id => l_event_id
105294 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105295 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105296 ,p_actual_flag => l_actual_flag
105297 ,p_balance_type_code => l_balance_type_code
105298 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105299
105300 , p_source_48 => l_array_source_48(Idx)
105301 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105302 , p_source_52 => l_array_source_52(Idx)
105303 , p_source_54 => l_array_source_54(Idx)
105304 , p_source_60 => l_array_source_60(Idx)
105305 , p_source_64 => l_array_source_64(Idx)
105306 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105307 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105308 , p_source_69 => l_array_source_69(Idx)
105309 , p_source_70 => l_array_source_70(Idx)
105310 , p_source_77 => l_array_source_77(Idx)
105311 , p_source_78 => l_array_source_78(Idx)
105312 , p_source_79 => l_array_source_79(Idx)
105313 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105314 , p_source_82 => l_array_source_82(Idx)
105315 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105316 , p_source_84 => l_array_source_84(Idx)
105317 , p_source_85 => l_array_source_85(Idx)
105318 , p_source_86 => l_array_source_86(Idx)
105319 , p_source_87 => l_array_source_87(Idx)
105320 , p_source_88 => l_array_source_88(Idx)
105321 , p_source_89 => l_array_source_89(Idx)
105322 , p_source_90 => l_array_source_90(Idx)
105323 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105324 , p_source_92 => l_array_source_92(Idx)
105325 , p_source_93 => l_array_source_93(Idx)
105326 , p_source_94 => l_array_source_94(Idx)
105327 , p_source_95 => l_array_source_95(Idx)
105328 , p_source_96 => l_array_source_96(Idx)
105329 , p_source_97 => l_array_source_97(Idx)
105330 , p_source_98 => l_array_source_98(Idx)
105331 , p_source_101 => l_array_source_101(Idx)
105332 , p_source_102 => l_array_source_102(Idx)
105333 , p_source_103 => l_array_source_103(Idx)
105334 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105335 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105336 , p_source_106 => l_array_source_106(Idx)
105337 , p_source_107 => l_array_source_107(Idx)
105338 , p_source_108 => l_array_source_108(Idx)
105339 , p_source_109 => l_array_source_109(Idx)
105340 , p_source_110 => l_array_source_110(Idx)
105341 , p_source_128 => l_array_source_128(Idx)
105342 , p_source_129 => l_array_source_129(Idx)
105343 , p_source_130 => l_array_source_130(Idx)
105344 );
105345 If(l_balance_type_code = 'A') THEN
105346 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105347 END IF;
105348
105349 --
105350
105351
105352 --
105353 AcctLineType_143 (
105354 p_application_id => p_application_id
105355 ,p_event_id => l_event_id
105356 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105357 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105358 ,p_actual_flag => l_actual_flag
105359 ,p_balance_type_code => l_balance_type_code
105360 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105361
105362 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105363 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105364 , p_source_29 => l_array_source_29(Idx)
105365 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
105366 , p_source_35 => l_array_source_35(Idx)
105367 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105368 , p_source_52 => l_array_source_52(Idx)
105369 , p_source_54 => l_array_source_54(Idx)
105370 , p_source_60 => l_array_source_60(Idx)
105371 , p_source_64 => l_array_source_64(Idx)
105372 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105373 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105374 , p_source_69 => l_array_source_69(Idx)
105375 , p_source_70 => l_array_source_70(Idx)
105376 , p_source_73 => l_array_source_73(Idx)
105377 , p_source_74 => l_array_source_74(Idx)
105378 , p_source_77 => l_array_source_77(Idx)
105379 , p_source_78 => l_array_source_78(Idx)
105380 , p_source_79 => l_array_source_79(Idx)
105381 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105382 , p_source_82 => l_array_source_82(Idx)
105383 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105384 , p_source_88 => l_array_source_88(Idx)
105385 , p_source_89 => l_array_source_89(Idx)
105386 , p_source_90 => l_array_source_90(Idx)
105387 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105388 , p_source_92 => l_array_source_92(Idx)
105389 , p_source_93 => l_array_source_93(Idx)
105390 , p_source_94 => l_array_source_94(Idx)
105391 , p_source_95 => l_array_source_95(Idx)
105392 , p_source_96 => l_array_source_96(Idx)
105396 , p_source_101 => l_array_source_101(Idx)
105393 , p_source_97 => l_array_source_97(Idx)
105394 , p_source_98 => l_array_source_98(Idx)
105395 , p_source_100 => l_array_source_100(Idx)
105397 , p_source_102 => l_array_source_102(Idx)
105398 , p_source_103 => l_array_source_103(Idx)
105399 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105400 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105401 , p_source_106 => l_array_source_106(Idx)
105402 , p_source_107 => l_array_source_107(Idx)
105403 , p_source_108 => l_array_source_108(Idx)
105404 , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
105405 , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
105406 , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
105407 , p_source_148 => l_array_source_148(Idx)
105408 , p_source_148_meaning => l_array_source_148_meaning(Idx)
105409 , p_source_149 => l_array_source_149(Idx)
105410 , p_source_150 => l_array_source_150(Idx)
105411 );
105412 If(l_balance_type_code = 'A') THEN
105413 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105414 END IF;
105415
105416 --
105417
105418
105419 --
105420 AcctLineType_144 (
105421 p_application_id => p_application_id
105422 ,p_event_id => l_event_id
105423 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105424 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105425 ,p_actual_flag => l_actual_flag
105426 ,p_balance_type_code => l_balance_type_code
105427 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105428
105429 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105430 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105431 , p_source_29 => l_array_source_29(Idx)
105432 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
105433 , p_source_35 => l_array_source_35(Idx)
105434 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105435 , p_source_52 => l_array_source_52(Idx)
105436 , p_source_54 => l_array_source_54(Idx)
105437 , p_source_60 => l_array_source_60(Idx)
105438 , p_source_64 => l_array_source_64(Idx)
105439 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105440 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105441 , p_source_69 => l_array_source_69(Idx)
105442 , p_source_70 => l_array_source_70(Idx)
105443 , p_source_73 => l_array_source_73(Idx)
105444 , p_source_74 => l_array_source_74(Idx)
105445 , p_source_77 => l_array_source_77(Idx)
105446 , p_source_78 => l_array_source_78(Idx)
105447 , p_source_79 => l_array_source_79(Idx)
105448 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105449 , p_source_82 => l_array_source_82(Idx)
105450 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105451 , p_source_88 => l_array_source_88(Idx)
105452 , p_source_89 => l_array_source_89(Idx)
105453 , p_source_90 => l_array_source_90(Idx)
105454 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105455 , p_source_92 => l_array_source_92(Idx)
105456 , p_source_93 => l_array_source_93(Idx)
105457 , p_source_94 => l_array_source_94(Idx)
105458 , p_source_95 => l_array_source_95(Idx)
105459 , p_source_96 => l_array_source_96(Idx)
105460 , p_source_97 => l_array_source_97(Idx)
105461 , p_source_98 => l_array_source_98(Idx)
105462 , p_source_101 => l_array_source_101(Idx)
105463 , p_source_102 => l_array_source_102(Idx)
105464 , p_source_103 => l_array_source_103(Idx)
105465 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105466 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105467 , p_source_106 => l_array_source_106(Idx)
105468 , p_source_107 => l_array_source_107(Idx)
105469 , p_source_108 => l_array_source_108(Idx)
105470 , p_source_110 => l_array_source_110(Idx)
105471 , p_source_131 => g_array_event(l_event_id).array_value_date('source_131')
105472 , p_source_132 => g_array_event(l_event_id).array_value_num('source_132')
105473 , p_source_133 => g_array_event(l_event_id).array_value_char('source_133')
105474 , p_source_148 => l_array_source_148(Idx)
105475 , p_source_148_meaning => l_array_source_148_meaning(Idx)
105476 , p_source_149 => l_array_source_149(Idx)
105477 , p_source_150 => l_array_source_150(Idx)
105478 );
105479 If(l_balance_type_code = 'A') THEN
105480 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105481 END IF;
105482
105483 --
105484
105485
105486 --
105487 AcctLineType_145 (
105488 p_application_id => p_application_id
105489 ,p_event_id => l_event_id
105490 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105491 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105492 ,p_actual_flag => l_actual_flag
105493 ,p_balance_type_code => l_balance_type_code
105494 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105495
105496 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105497 , p_source_52 => l_array_source_52(Idx)
105498 , p_source_54 => l_array_source_54(Idx)
105499 , p_source_60 => l_array_source_60(Idx)
105500 , p_source_64 => l_array_source_64(Idx)
105501 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105502 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105503 , p_source_69 => l_array_source_69(Idx)
105504 , p_source_70 => l_array_source_70(Idx)
105505 , p_source_73 => l_array_source_73(Idx)
105506 , p_source_74 => l_array_source_74(Idx)
105507 , p_source_77 => l_array_source_77(Idx)
105508 , p_source_78 => l_array_source_78(Idx)
105509 , p_source_79 => l_array_source_79(Idx)
105510 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105511 , p_source_82 => l_array_source_82(Idx)
105512 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105513 , p_source_88 => l_array_source_88(Idx)
105514 , p_source_89 => l_array_source_89(Idx)
105515 , p_source_90 => l_array_source_90(Idx)
105516 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105520 , p_source_95 => l_array_source_95(Idx)
105517 , p_source_92 => l_array_source_92(Idx)
105518 , p_source_93 => l_array_source_93(Idx)
105519 , p_source_94 => l_array_source_94(Idx)
105521 , p_source_96 => l_array_source_96(Idx)
105522 , p_source_97 => l_array_source_97(Idx)
105523 , p_source_98 => l_array_source_98(Idx)
105524 , p_source_100 => l_array_source_100(Idx)
105525 , p_source_101 => l_array_source_101(Idx)
105526 , p_source_102 => l_array_source_102(Idx)
105527 , p_source_103 => l_array_source_103(Idx)
105528 , p_source_106 => l_array_source_106(Idx)
105529 , p_source_107 => l_array_source_107(Idx)
105530 , p_source_108 => l_array_source_108(Idx)
105531 , p_source_148 => l_array_source_148(Idx)
105532 , p_source_148_meaning => l_array_source_148_meaning(Idx)
105533 , p_source_149 => l_array_source_149(Idx)
105534 , p_source_150 => l_array_source_150(Idx)
105535 );
105536 If(l_balance_type_code = 'A') THEN
105537 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105538 END IF;
105539
105540 --
105541
105542
105543 --
105544 AcctLineType_146 (
105545 p_application_id => p_application_id
105546 ,p_event_id => l_event_id
105547 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105548 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105549 ,p_actual_flag => l_actual_flag
105550 ,p_balance_type_code => l_balance_type_code
105551 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105552
105553 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105554 , p_source_52 => l_array_source_52(Idx)
105555 , p_source_54 => l_array_source_54(Idx)
105556 , p_source_60 => l_array_source_60(Idx)
105557 , p_source_64 => l_array_source_64(Idx)
105558 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105559 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105560 , p_source_69 => l_array_source_69(Idx)
105561 , p_source_70 => l_array_source_70(Idx)
105562 , p_source_73 => l_array_source_73(Idx)
105563 , p_source_74 => l_array_source_74(Idx)
105564 , p_source_77 => l_array_source_77(Idx)
105565 , p_source_78 => l_array_source_78(Idx)
105566 , p_source_79 => l_array_source_79(Idx)
105567 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105568 , p_source_82 => l_array_source_82(Idx)
105569 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105570 , p_source_88 => l_array_source_88(Idx)
105571 , p_source_89 => l_array_source_89(Idx)
105572 , p_source_90 => l_array_source_90(Idx)
105573 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105574 , p_source_92 => l_array_source_92(Idx)
105575 , p_source_93 => l_array_source_93(Idx)
105576 , p_source_94 => l_array_source_94(Idx)
105577 , p_source_95 => l_array_source_95(Idx)
105578 , p_source_96 => l_array_source_96(Idx)
105579 , p_source_97 => l_array_source_97(Idx)
105580 , p_source_98 => l_array_source_98(Idx)
105581 , p_source_101 => l_array_source_101(Idx)
105582 , p_source_102 => l_array_source_102(Idx)
105583 , p_source_103 => l_array_source_103(Idx)
105584 , p_source_106 => l_array_source_106(Idx)
105585 , p_source_107 => l_array_source_107(Idx)
105586 , p_source_108 => l_array_source_108(Idx)
105587 , p_source_110 => l_array_source_110(Idx)
105588 , p_source_148 => l_array_source_148(Idx)
105589 , p_source_148_meaning => l_array_source_148_meaning(Idx)
105590 , p_source_149 => l_array_source_149(Idx)
105591 , p_source_150 => l_array_source_150(Idx)
105592 );
105593 If(l_balance_type_code = 'A') THEN
105594 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105595 END IF;
105596
105597 --
105598
105599
105600 --
105601 AcctLineType_158 (
105602 p_application_id => p_application_id
105603 ,p_event_id => l_event_id
105604 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105605 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105606 ,p_actual_flag => l_actual_flag
105607 ,p_balance_type_code => l_balance_type_code
105608 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105609
105610 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105611 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105612 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
105613 , p_source_18 => l_array_source_18(Idx)
105614 , p_source_19 => l_array_source_19(Idx)
105615 , p_source_19_meaning => l_array_source_19_meaning(Idx)
105616 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
105617 , p_source_29 => l_array_source_29(Idx)
105618 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
105619 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
105620 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105621 , p_source_52 => l_array_source_52(Idx)
105622 , p_source_54 => l_array_source_54(Idx)
105623 , p_source_60 => l_array_source_60(Idx)
105624 , p_source_64 => l_array_source_64(Idx)
105625 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105626 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105627 , p_source_69 => l_array_source_69(Idx)
105628 , p_source_70 => l_array_source_70(Idx)
105629 , p_source_77 => l_array_source_77(Idx)
105630 , p_source_78 => l_array_source_78(Idx)
105631 , p_source_79 => l_array_source_79(Idx)
105632 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105633 , p_source_82 => l_array_source_82(Idx)
105634 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105635 , p_source_84 => l_array_source_84(Idx)
105636 , p_source_85 => l_array_source_85(Idx)
105637 , p_source_86 => l_array_source_86(Idx)
105638 , p_source_87 => l_array_source_87(Idx)
105639 , p_source_88 => l_array_source_88(Idx)
105640 , p_source_89 => l_array_source_89(Idx)
105641 , p_source_90 => l_array_source_90(Idx)
105642 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105643 , p_source_92 => l_array_source_92(Idx)
105644 , p_source_93 => l_array_source_93(Idx)
105648 , p_source_97 => l_array_source_97(Idx)
105645 , p_source_94 => l_array_source_94(Idx)
105646 , p_source_95 => l_array_source_95(Idx)
105647 , p_source_96 => l_array_source_96(Idx)
105649 , p_source_98 => l_array_source_98(Idx)
105650 , p_source_99 => l_array_source_99(Idx)
105651 , p_source_100 => l_array_source_100(Idx)
105652 , p_source_101 => l_array_source_101(Idx)
105653 , p_source_102 => l_array_source_102(Idx)
105654 , p_source_103 => l_array_source_103(Idx)
105655 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105656 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105657 , p_source_106 => l_array_source_106(Idx)
105658 , p_source_107 => l_array_source_107(Idx)
105659 , p_source_108 => l_array_source_108(Idx)
105660 , p_source_111 => l_array_source_111(Idx)
105661 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105662 , p_source_125 => l_array_source_125(Idx)
105663 , p_source_126 => l_array_source_126(Idx)
105664 , p_source_127 => l_array_source_127(Idx)
105665 );
105666 If(l_balance_type_code = 'A') THEN
105667 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105668 END IF;
105669
105670 --
105671
105672
105673 --
105674 AcctLineType_159 (
105675 p_application_id => p_application_id
105676 ,p_event_id => l_event_id
105677 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105678 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105679 ,p_actual_flag => l_actual_flag
105680 ,p_balance_type_code => l_balance_type_code
105681 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105682
105683 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
105684 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
105685 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
105686 , p_source_18 => l_array_source_18(Idx)
105687 , p_source_19 => l_array_source_19(Idx)
105688 , p_source_19_meaning => l_array_source_19_meaning(Idx)
105689 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
105690 , p_source_29 => l_array_source_29(Idx)
105691 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
105692 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
105693 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105694 , p_source_52 => l_array_source_52(Idx)
105695 , p_source_54 => l_array_source_54(Idx)
105696 , p_source_60 => l_array_source_60(Idx)
105697 , p_source_64 => l_array_source_64(Idx)
105698 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105699 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105700 , p_source_69 => l_array_source_69(Idx)
105701 , p_source_70 => l_array_source_70(Idx)
105702 , p_source_77 => l_array_source_77(Idx)
105703 , p_source_78 => l_array_source_78(Idx)
105704 , p_source_79 => l_array_source_79(Idx)
105705 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105706 , p_source_82 => l_array_source_82(Idx)
105707 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105708 , p_source_84 => l_array_source_84(Idx)
105709 , p_source_85 => l_array_source_85(Idx)
105710 , p_source_86 => l_array_source_86(Idx)
105711 , p_source_87 => l_array_source_87(Idx)
105712 , p_source_88 => l_array_source_88(Idx)
105713 , p_source_89 => l_array_source_89(Idx)
105714 , p_source_90 => l_array_source_90(Idx)
105715 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105716 , p_source_92 => l_array_source_92(Idx)
105717 , p_source_93 => l_array_source_93(Idx)
105718 , p_source_94 => l_array_source_94(Idx)
105719 , p_source_95 => l_array_source_95(Idx)
105720 , p_source_96 => l_array_source_96(Idx)
105721 , p_source_97 => l_array_source_97(Idx)
105722 , p_source_98 => l_array_source_98(Idx)
105723 , p_source_101 => l_array_source_101(Idx)
105724 , p_source_102 => l_array_source_102(Idx)
105725 , p_source_103 => l_array_source_103(Idx)
105726 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105727 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105728 , p_source_106 => l_array_source_106(Idx)
105729 , p_source_107 => l_array_source_107(Idx)
105730 , p_source_108 => l_array_source_108(Idx)
105731 , p_source_109 => l_array_source_109(Idx)
105732 , p_source_110 => l_array_source_110(Idx)
105733 , p_source_111 => l_array_source_111(Idx)
105734 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105735 , p_source_128 => l_array_source_128(Idx)
105736 , p_source_129 => l_array_source_129(Idx)
105737 , p_source_130 => l_array_source_130(Idx)
105738 );
105739 If(l_balance_type_code = 'A') THEN
105740 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105741 END IF;
105742
105743 --
105744
105745
105746 --
105747 AcctLineType_160 (
105748 p_application_id => p_application_id
105749 ,p_event_id => l_event_id
105750 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105751 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105752 ,p_actual_flag => l_actual_flag
105753 ,p_balance_type_code => l_balance_type_code
105754 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105755
105756 , p_source_48 => l_array_source_48(Idx)
105757 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105758 , p_source_52 => l_array_source_52(Idx)
105759 , p_source_54 => l_array_source_54(Idx)
105760 , p_source_60 => l_array_source_60(Idx)
105761 , p_source_64 => l_array_source_64(Idx)
105762 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105763 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105764 , p_source_69 => l_array_source_69(Idx)
105765 , p_source_70 => l_array_source_70(Idx)
105766 , p_source_77 => l_array_source_77(Idx)
105767 , p_source_78 => l_array_source_78(Idx)
105768 , p_source_79 => l_array_source_79(Idx)
105769 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105770 , p_source_82 => l_array_source_82(Idx)
105774 , p_source_86 => l_array_source_86(Idx)
105771 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105772 , p_source_84 => l_array_source_84(Idx)
105773 , p_source_85 => l_array_source_85(Idx)
105775 , p_source_87 => l_array_source_87(Idx)
105776 , p_source_88 => l_array_source_88(Idx)
105777 , p_source_89 => l_array_source_89(Idx)
105778 , p_source_90 => l_array_source_90(Idx)
105779 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105780 , p_source_92 => l_array_source_92(Idx)
105781 , p_source_93 => l_array_source_93(Idx)
105782 , p_source_94 => l_array_source_94(Idx)
105783 , p_source_95 => l_array_source_95(Idx)
105784 , p_source_96 => l_array_source_96(Idx)
105785 , p_source_97 => l_array_source_97(Idx)
105786 , p_source_98 => l_array_source_98(Idx)
105787 , p_source_99 => l_array_source_99(Idx)
105788 , p_source_100 => l_array_source_100(Idx)
105789 , p_source_101 => l_array_source_101(Idx)
105790 , p_source_102 => l_array_source_102(Idx)
105791 , p_source_103 => l_array_source_103(Idx)
105792 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105793 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105794 , p_source_106 => l_array_source_106(Idx)
105795 , p_source_107 => l_array_source_107(Idx)
105796 , p_source_108 => l_array_source_108(Idx)
105797 , p_source_111 => l_array_source_111(Idx)
105798 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105799 , p_source_125 => l_array_source_125(Idx)
105800 , p_source_126 => l_array_source_126(Idx)
105801 , p_source_127 => l_array_source_127(Idx)
105802 );
105803 If(l_balance_type_code = 'A') THEN
105804 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105805 END IF;
105806
105807 --
105808
105809
105810 --
105811 AcctLineType_161 (
105812 p_application_id => p_application_id
105813 ,p_event_id => l_event_id
105814 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105815 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105816 ,p_actual_flag => l_actual_flag
105817 ,p_balance_type_code => l_balance_type_code
105818 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105819
105820 , p_source_48 => l_array_source_48(Idx)
105821 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105822 , p_source_52 => l_array_source_52(Idx)
105823 , p_source_54 => l_array_source_54(Idx)
105824 , p_source_60 => l_array_source_60(Idx)
105825 , p_source_64 => l_array_source_64(Idx)
105826 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105827 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105828 , p_source_69 => l_array_source_69(Idx)
105829 , p_source_70 => l_array_source_70(Idx)
105830 , p_source_77 => l_array_source_77(Idx)
105831 , p_source_78 => l_array_source_78(Idx)
105832 , p_source_79 => l_array_source_79(Idx)
105833 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105834 , p_source_82 => l_array_source_82(Idx)
105835 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105836 , p_source_84 => l_array_source_84(Idx)
105837 , p_source_85 => l_array_source_85(Idx)
105838 , p_source_86 => l_array_source_86(Idx)
105839 , p_source_87 => l_array_source_87(Idx)
105840 , p_source_88 => l_array_source_88(Idx)
105841 , p_source_89 => l_array_source_89(Idx)
105842 , p_source_90 => l_array_source_90(Idx)
105843 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105844 , p_source_92 => l_array_source_92(Idx)
105845 , p_source_93 => l_array_source_93(Idx)
105846 , p_source_94 => l_array_source_94(Idx)
105847 , p_source_95 => l_array_source_95(Idx)
105848 , p_source_96 => l_array_source_96(Idx)
105849 , p_source_97 => l_array_source_97(Idx)
105850 , p_source_98 => l_array_source_98(Idx)
105851 , p_source_101 => l_array_source_101(Idx)
105852 , p_source_102 => l_array_source_102(Idx)
105853 , p_source_103 => l_array_source_103(Idx)
105854 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105855 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105856 , p_source_106 => l_array_source_106(Idx)
105857 , p_source_107 => l_array_source_107(Idx)
105858 , p_source_108 => l_array_source_108(Idx)
105859 , p_source_109 => l_array_source_109(Idx)
105860 , p_source_110 => l_array_source_110(Idx)
105861 , p_source_111 => l_array_source_111(Idx)
105862 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105863 , p_source_128 => l_array_source_128(Idx)
105864 , p_source_129 => l_array_source_129(Idx)
105865 , p_source_130 => l_array_source_130(Idx)
105866 );
105867 If(l_balance_type_code = 'A') THEN
105868 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105869 END IF;
105870
105871 --
105872
105873
105874 --
105875 AcctLineType_162 (
105876 p_application_id => p_application_id
105877 ,p_event_id => l_event_id
105878 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105879 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105880 ,p_actual_flag => l_actual_flag
105881 ,p_balance_type_code => l_balance_type_code
105882 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105883
105884 , p_source_48 => l_array_source_48(Idx)
105885 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105886 , p_source_52 => l_array_source_52(Idx)
105887 , p_source_54 => l_array_source_54(Idx)
105888 , p_source_60 => l_array_source_60(Idx)
105889 , p_source_64 => l_array_source_64(Idx)
105890 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105891 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105892 , p_source_69 => l_array_source_69(Idx)
105893 , p_source_70 => l_array_source_70(Idx)
105894 , p_source_77 => l_array_source_77(Idx)
105895 , p_source_78 => l_array_source_78(Idx)
105896 , p_source_79 => l_array_source_79(Idx)
105897 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105898 , p_source_82 => l_array_source_82(Idx)
105899 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105903 , p_source_87 => l_array_source_87(Idx)
105900 , p_source_84 => l_array_source_84(Idx)
105901 , p_source_85 => l_array_source_85(Idx)
105902 , p_source_86 => l_array_source_86(Idx)
105904 , p_source_88 => l_array_source_88(Idx)
105905 , p_source_89 => l_array_source_89(Idx)
105906 , p_source_90 => l_array_source_90(Idx)
105907 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105908 , p_source_92 => l_array_source_92(Idx)
105909 , p_source_93 => l_array_source_93(Idx)
105910 , p_source_94 => l_array_source_94(Idx)
105911 , p_source_95 => l_array_source_95(Idx)
105912 , p_source_96 => l_array_source_96(Idx)
105913 , p_source_97 => l_array_source_97(Idx)
105914 , p_source_98 => l_array_source_98(Idx)
105915 , p_source_99 => l_array_source_99(Idx)
105916 , p_source_100 => l_array_source_100(Idx)
105917 , p_source_101 => l_array_source_101(Idx)
105918 , p_source_102 => l_array_source_102(Idx)
105919 , p_source_103 => l_array_source_103(Idx)
105920 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105921 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105922 , p_source_106 => l_array_source_106(Idx)
105923 , p_source_107 => l_array_source_107(Idx)
105924 , p_source_108 => l_array_source_108(Idx)
105925 , p_source_111 => l_array_source_111(Idx)
105926 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105927 , p_source_125 => l_array_source_125(Idx)
105928 , p_source_126 => l_array_source_126(Idx)
105929 , p_source_127 => l_array_source_127(Idx)
105930 );
105931 If(l_balance_type_code = 'A') THEN
105932 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105933 END IF;
105934
105935 --
105936
105937
105938 --
105939 AcctLineType_163 (
105940 p_application_id => p_application_id
105941 ,p_event_id => l_event_id
105942 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105943 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105944 ,p_actual_flag => l_actual_flag
105945 ,p_balance_type_code => l_balance_type_code
105946 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105947
105948 , p_source_48 => l_array_source_48(Idx)
105949 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
105950 , p_source_52 => l_array_source_52(Idx)
105951 , p_source_54 => l_array_source_54(Idx)
105952 , p_source_60 => l_array_source_60(Idx)
105953 , p_source_64 => l_array_source_64(Idx)
105954 , p_source_64_meaning => l_array_source_64_meaning(Idx)
105955 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
105956 , p_source_69 => l_array_source_69(Idx)
105957 , p_source_70 => l_array_source_70(Idx)
105958 , p_source_77 => l_array_source_77(Idx)
105959 , p_source_78 => l_array_source_78(Idx)
105960 , p_source_79 => l_array_source_79(Idx)
105961 , p_source_79_meaning => l_array_source_79_meaning(Idx)
105962 , p_source_82 => l_array_source_82(Idx)
105963 , p_source_83 => g_array_event(l_event_id).array_value_num('source_83')
105964 , p_source_84 => l_array_source_84(Idx)
105965 , p_source_85 => l_array_source_85(Idx)
105966 , p_source_86 => l_array_source_86(Idx)
105967 , p_source_87 => l_array_source_87(Idx)
105968 , p_source_88 => l_array_source_88(Idx)
105969 , p_source_89 => l_array_source_89(Idx)
105970 , p_source_90 => l_array_source_90(Idx)
105971 , p_source_91 => g_array_event(l_event_id).array_value_char('source_91')
105972 , p_source_92 => l_array_source_92(Idx)
105973 , p_source_93 => l_array_source_93(Idx)
105974 , p_source_94 => l_array_source_94(Idx)
105975 , p_source_95 => l_array_source_95(Idx)
105976 , p_source_96 => l_array_source_96(Idx)
105977 , p_source_97 => l_array_source_97(Idx)
105978 , p_source_98 => l_array_source_98(Idx)
105979 , p_source_101 => l_array_source_101(Idx)
105980 , p_source_102 => l_array_source_102(Idx)
105981 , p_source_103 => l_array_source_103(Idx)
105982 , p_source_104 => g_array_event(l_event_id).array_value_num('source_104')
105983 , p_source_105 => g_array_event(l_event_id).array_value_num('source_105')
105984 , p_source_106 => l_array_source_106(Idx)
105985 , p_source_107 => l_array_source_107(Idx)
105986 , p_source_108 => l_array_source_108(Idx)
105987 , p_source_109 => l_array_source_109(Idx)
105988 , p_source_110 => l_array_source_110(Idx)
105989 , p_source_111 => l_array_source_111(Idx)
105990 , p_source_111_meaning => l_array_source_111_meaning(Idx)
105991 , p_source_128 => l_array_source_128(Idx)
105992 , p_source_129 => l_array_source_129(Idx)
105993 , p_source_130 => l_array_source_130(Idx)
105994 );
105995 If(l_balance_type_code = 'A') THEN
105996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105997 END IF;
105998
105999 --
106000
106001 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
106002 -- or secondary ledger that has different currency with primary
106003 -- or alc that is calculated by sla
106004 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
106005 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y'))
106006
106007 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
106008 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
106009 AND (l_actual_flag = 'A')) THEN
106010 XLA_AE_LINES_PKG.CreateGainOrLossLines(
106011 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
106012 ,p_application_id => p_application_id
106013 ,p_amb_context_code => 'DEFAULT'
106014 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
106015 ,p_event_class_code => C_EVENT_CLASS_CODE
106016 ,p_event_type_code => C_EVENT_TYPE_CODE
106017
106018 ,p_gain_ccid => -1
106019 ,p_loss_ccid => -1
106020
106021 ,p_actual_flag => l_actual_flag
106022 ,p_enc_flag => null
106026 END IF;
106023 ,p_actual_g_l_ref => l_actual_gain_loss_ref
106024 ,p_enc_g_l_ref => null
106025 );
106027 END IF;
106028 END IF;
106029
106030 ELSE
106031 --
106032 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
106033 --
106034 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106035 trace
106036 (p_msg => 'Trancaction revesal option is Y'
106037 ,p_level => C_LEVEL_STATEMENT
106038 ,p_module => l_log_module);
106039 END IF;
106040 END IF;
106041
106042 END LOOP;
106043 l_result := XLA_AE_LINES_PKG.InsertLines ;
106044 end loop;
106045 close line_cur;
106046
106047
106048 --
106049 -- insert headers into xla_ae_headers_gt table
106050 --
106051 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
106052
106053 -- insert into errors table here.
106054
106055 END LOOP;
106056
106057 --
106058 -- 4865292
106059 --
106060 -- Compare g_hdr_extract_count with event count in
106061 -- CreateHeadersAndLines.
106062 --
106063 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
106064
106065 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106066 trace (p_msg => '# rows extracted from header extract objects '
106067 || ' (running total): '
106068 || g_hdr_extract_count
106069 ,p_level => C_LEVEL_STATEMENT
106070 ,p_module => l_log_module);
106071 END IF;
106072
106073 CLOSE header_cur;
106074 --
106075
106076 --
106077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106078 trace
106079 (p_msg => 'END of EventClass_168'
106080 ,p_level => C_LEVEL_PROCEDURE
106081 ,p_module => l_log_module);
106082 END IF;
106083 --
106084 RETURN l_result;
106085 EXCEPTION
106086 WHEN xla_exceptions_pkg.application_exception THEN
106087
106088 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
106089
106090
106091 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
106092
106093 RAISE;
106094
106095 WHEN NO_DATA_FOUND THEN
106096
106097 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
106098 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
106099
106100 FOR header_record IN header_cur
106101 LOOP
106102 l_array_header_events(header_record.event_id) := header_record.event_id;
106103 END LOOP;
106104
106105 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
106106 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
106107
106108 fnd_file.put_line(fnd_file.LOG, ' ');
106109 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
106110 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
106111 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
106112
106113 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
106114 LOOP
106115 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
106116 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
106117 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
106118 END IF;
106119 END LOOP;
106120
106121 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
106122 fnd_file.put_line(fnd_file.LOG, ' ');
106123
106124
106125 xla_exceptions_pkg.raise_message
106126 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_168');
106127
106128
106129 WHEN OTHERS THEN
106130 xla_exceptions_pkg.raise_message
106131 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_168');
106132 END EventClass_168;
106133 --
106134
106135 ---------------------------------------
106136 --
106137 -- PRIVATE PROCEDURE
106138 -- insert_sources_169
106139 --
106140 ----------------------------------------
106141 --
106142 PROCEDURE insert_sources_169(
106143 p_target_ledger_id IN NUMBER
106144 , p_language IN VARCHAR2
106145 , p_sla_ledger_id IN NUMBER
106146 , p_pad_start_date IN DATE
106147 , p_pad_end_date IN DATE
106148 )
106149 IS
106150
106151 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS_ALL';
106152 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS';
106153 p_apps_owner VARCHAR2(30);
106154 l_log_module VARCHAR2(240);
106155 BEGIN
106156 IF g_log_enabled THEN
106157 l_log_module := C_DEFAULT_MODULE||'.insert_sources_169';
106158 END IF;
106159 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106160
106161 trace
106162 (p_msg => 'BEGIN of insert_sources_169'
106163 ,p_level => C_LEVEL_PROCEDURE
106164 ,p_module => l_log_module);
106165
106166 END IF;
106167
106168 -- select APPS owner
106169 SELECT oracle_username
106170 INTO p_apps_owner
106171 FROM fnd_oracle_userid
106172 WHERE read_only_flag = 'U'
106173 ;
106174
106175 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106176 trace
106177 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
106178 ' - p_language = '||p_language||
106179 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
106180 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
106181 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
106185 END IF;
106182 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
106183 ,p_level => C_LEVEL_STATEMENT
106184 ,p_module => l_log_module);
106186
106187
106188 --
106189 INSERT INTO xla_diag_sources --hdr2
106190 (
106191 event_id
106192 , ledger_id
106193 , sla_ledger_id
106194 , description_language
106195 , object_name
106196 , object_type_code
106197 , line_number
106198 , source_application_id
106199 , source_type_code
106200 , source_code
106201 , source_value
106202 , source_meaning
106203 , created_by
106204 , creation_date
106205 , last_update_date
106206 , last_updated_by
106207 , last_update_login
106208 , program_update_date
106209 , program_application_id
106210 , program_id
106211 , request_id
106212 )
106213 SELECT
106214 event_id
106215 , p_target_ledger_id
106216 , p_sla_ledger_id
106217 , p_language
106218 , object_name
106219 , object_type_code
106220 , line_number
106221 , source_application_id
106222 , source_type_code
106223 , source_code
106224 , SUBSTR(source_value ,1,1996)
106225 , SUBSTR(source_meaning ,1,200)
106226 , xla_environment_pkg.g_Usr_Id
106227 , TRUNC(SYSDATE)
106228 , TRUNC(SYSDATE)
106229 , xla_environment_pkg.g_Usr_Id
106230 , xla_environment_pkg.g_Login_Id
106231 , TRUNC(SYSDATE)
106232 , xla_environment_pkg.g_Prog_Appl_Id
106233 , xla_environment_pkg.g_Prog_Id
106234 , xla_environment_pkg.g_Req_Id
106235 FROM (
106236 SELECT xet.event_id event_id
106237 , 0 line_number
106238 , CASE r
106239 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106240 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106241 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106242 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106243 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106244 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106245 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106246 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106247 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106248 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106249 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106250 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106251 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106252 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106253 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106254 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106255 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106256 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106257 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106258 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106259 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106260 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106261 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106262 WHEN 24 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106263 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
106264 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106265 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106266 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106267 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106268 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106269 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106270 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106271 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106272 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106273 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106274 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106275 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106276 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106277 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106278 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
106279
106280 ELSE null
106281 END object_name
106282 , CASE r
106283 WHEN 1 THEN 'HEADER'
106284 WHEN 2 THEN 'HEADER'
106285 WHEN 3 THEN 'HEADER'
106286 WHEN 4 THEN 'HEADER'
106287 WHEN 5 THEN 'HEADER'
106288 WHEN 6 THEN 'HEADER'
106289 WHEN 7 THEN 'HEADER'
106290 WHEN 8 THEN 'HEADER'
106291 WHEN 9 THEN 'HEADER'
106292 WHEN 10 THEN 'HEADER'
106293 WHEN 11 THEN 'HEADER'
106294 WHEN 12 THEN 'HEADER'
106295 WHEN 13 THEN 'HEADER'
106296 WHEN 14 THEN 'HEADER'
106297 WHEN 15 THEN 'HEADER'
106298 WHEN 16 THEN 'HEADER'
106299 WHEN 17 THEN 'HEADER'
106300 WHEN 18 THEN 'HEADER'
106301 WHEN 19 THEN 'HEADER'
106302 WHEN 20 THEN 'HEADER'
106303 WHEN 21 THEN 'HEADER'
106304 WHEN 22 THEN 'HEADER'
106305 WHEN 23 THEN 'HEADER'
106306 WHEN 24 THEN 'HEADER'
106307 WHEN 25 THEN 'HEADER'
106308 WHEN 26 THEN 'HEADER'
106309 WHEN 27 THEN 'HEADER'
106310 WHEN 28 THEN 'HEADER'
106311 WHEN 29 THEN 'HEADER'
106312 WHEN 30 THEN 'HEADER'
106313 WHEN 31 THEN 'HEADER'
106317 WHEN 35 THEN 'HEADER'
106314 WHEN 32 THEN 'HEADER'
106315 WHEN 33 THEN 'HEADER'
106316 WHEN 34 THEN 'HEADER'
106318 WHEN 36 THEN 'HEADER'
106319 WHEN 37 THEN 'HEADER'
106320 WHEN 38 THEN 'HEADER'
106321 WHEN 39 THEN 'HEADER'
106322 WHEN 40 THEN 'HEADER'
106323
106324 ELSE null
106325 END object_type_code
106326 , CASE r
106327 WHEN 1 THEN '200'
106328 WHEN 2 THEN '200'
106329 WHEN 3 THEN '200'
106330 WHEN 4 THEN '200'
106331 WHEN 5 THEN '200'
106332 WHEN 6 THEN '200'
106333 WHEN 7 THEN '200'
106334 WHEN 8 THEN '200'
106335 WHEN 9 THEN '200'
106336 WHEN 10 THEN '200'
106337 WHEN 11 THEN '200'
106338 WHEN 12 THEN '200'
106339 WHEN 13 THEN '200'
106340 WHEN 14 THEN '200'
106341 WHEN 15 THEN '200'
106342 WHEN 16 THEN '200'
106343 WHEN 17 THEN '200'
106344 WHEN 18 THEN '200'
106345 WHEN 19 THEN '200'
106346 WHEN 20 THEN '200'
106347 WHEN 21 THEN '200'
106348 WHEN 22 THEN '200'
106349 WHEN 23 THEN '200'
106350 WHEN 24 THEN '200'
106351 WHEN 25 THEN '200'
106352 WHEN 26 THEN '200'
106353 WHEN 27 THEN '200'
106354 WHEN 28 THEN '200'
106355 WHEN 29 THEN '200'
106356 WHEN 30 THEN '200'
106357 WHEN 31 THEN '200'
106358 WHEN 32 THEN '200'
106359 WHEN 33 THEN '200'
106360 WHEN 34 THEN '200'
106361 WHEN 35 THEN '200'
106362 WHEN 36 THEN '200'
106363 WHEN 37 THEN '200'
106364 WHEN 38 THEN '200'
106365 WHEN 39 THEN '200'
106366 WHEN 40 THEN '200'
106367
106368 ELSE null
106369 END source_application_id
106370 , 'S' source_type_code
106371 , CASE r
106372 WHEN 1 THEN 'DOC_SEQUENCE_NAME'
106373 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE'
106374 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER'
106375 WHEN 4 THEN 'AC_CHECK_DATE'
106376 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME'
106377 WHEN 6 THEN 'AC_CURRENCY_CODE'
106378 WHEN 7 THEN 'CGAC_AP_ASSET_CCID'
106379 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID'
106380 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD'
106381 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
106382 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID'
106383 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID'
106384 WHEN 13 THEN 'ASP_INTEREST_CCID'
106385 WHEN 14 THEN 'ASP_PRORATE_INT_ACROSS_DISTS'
106386 WHEN 15 THEN 'FSP_RETAINAGE_ACCOUNT'
106387 WHEN 16 THEN 'CGAC_BANK_CHARGES_CCID'
106388 WHEN 17 THEN 'CGAC_BANK_ERRORS_CCID'
106389 WHEN 18 THEN 'ASP_DISC_TAKEN_CCID'
106390 WHEN 19 THEN 'ASP_AUTO_OFFSET_FLAG'
106391 WHEN 20 THEN 'CGAC_GAIN_CCID'
106392 WHEN 21 THEN 'ASP_GAIN_CCID'
106393 WHEN 22 THEN 'CGAC_LOSS_CCID'
106394 WHEN 23 THEN 'ASP_LOSS_CCID'
106395 WHEN 24 THEN 'ASP_ROUNDING_ERROR_CCID'
106396 WHEN 25 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
106397 WHEN 26 THEN 'AC_VENDOR_ID'
106398 WHEN 27 THEN 'AC_VENDOR_SITE_ID'
106399 WHEN 28 THEN 'THIRD_PARTY_TYPE'
106400 WHEN 29 THEN 'PAYMENT_TYPE'
106401 WHEN 30 THEN 'APH_BANK_CURRENCY_CODE'
106402 WHEN 31 THEN 'APH_BANK_TO_BASE_XRATE_DATE'
106403 WHEN 32 THEN 'APH_BANK_TO_BASE_XRATE'
106404 WHEN 33 THEN 'APH_BANK_TO_BASE_XRATE_TYPE'
106405 WHEN 34 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
106406 WHEN 35 THEN 'AC_FUTURE_PAY_DUE_DATE'
106407 WHEN 36 THEN 'AC_EXCHANGE_DATE'
106408 WHEN 37 THEN 'AC_EXCHANGE_RATE'
106409 WHEN 38 THEN 'AC_EXCHANGE_RATE_TYPE'
106410 WHEN 39 THEN 'AC_DOC_CATEGORY_CODE'
106411 WHEN 40 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
106412
106413 ELSE null
106414 END source_code
106415 , CASE r
106416 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
106417 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
106418 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
106419 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
106420 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
106421 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
106422 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
106423 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
106424 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
106425 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
106426 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
106427 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
106428 WHEN 13 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
106429 WHEN 14 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
106430 WHEN 15 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
106431 WHEN 16 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
106432 WHEN 17 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
106436 WHEN 21 THEN TO_CHAR(h4.ASP_GAIN_CCID)
106433 WHEN 18 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
106434 WHEN 19 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
106435 WHEN 20 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
106437 WHEN 22 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
106438 WHEN 23 THEN TO_CHAR(h4.ASP_LOSS_CCID)
106439 WHEN 24 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
106440 WHEN 25 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
106441 WHEN 26 THEN TO_CHAR(h2.AC_VENDOR_ID)
106442 WHEN 27 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
106443 WHEN 28 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
106444 WHEN 29 THEN TO_CHAR(h2.PAYMENT_TYPE)
106445 WHEN 30 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
106446 WHEN 31 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
106447 WHEN 32 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
106448 WHEN 33 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
106449 WHEN 34 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
106450 WHEN 35 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
106451 WHEN 36 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
106452 WHEN 37 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
106453 WHEN 38 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
106454 WHEN 39 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
106455 WHEN 40 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
106456
106457 ELSE null
106458 END source_value
106459 , CASE r
106460 WHEN 9 THEN fvl15.meaning
106461 WHEN 10 THEN fvl16.meaning
106462 WHEN 19 THEN fvl42.meaning
106463 WHEN 29 THEN fvl71.meaning
106464 WHEN 34 THEN fvl117.meaning
106465
106466 ELSE null
106467 END source_meaning
106468 FROM xla_events_gt xet
106469 , AP_PAYMENT_EXTRACT_HEADER_V h2
106470 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
106471 , fnd_lookup_values fvl15
106472 , fnd_lookup_values fvl16
106473 , fnd_lookup_values fvl42
106474 , fnd_lookup_values fvl71
106475 , fnd_lookup_values fvl117
106476 ,(select rownum r from all_objects where rownum <= 40 and owner = p_apps_owner)
106477 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106478 AND xet.event_class_code = C_EVENT_CLASS_CODE
106479 AND h2.event_id = xet.event_id
106480 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
106481 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
106482 AND fvl15.view_application_id(+) = 200
106483 AND fvl15.language(+) = USERENV('LANG')
106484 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
106485 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
106486 AND fvl16.view_application_id(+) = 200
106487 AND fvl16.language(+) = USERENV('LANG')
106488 AND fvl42.lookup_type(+) = 'YES_NO'
106489 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
106490 AND fvl42.view_application_id(+) = 0
106491 AND fvl42.language(+) = USERENV('LANG')
106492 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
106493 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
106494 AND fvl71.view_application_id(+) = 200
106495 AND fvl71.language(+) = USERENV('LANG')
106496 AND fvl117.lookup_type(+) = 'YES_NO'
106497 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
106498 AND fvl117.view_application_id(+) = 0
106499 AND fvl117.language(+) = USERENV('LANG')
106500
106501 )
106502 ;
106503 --
106504 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106505
106506 trace
106507 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
106508 ,p_level => C_LEVEL_STATEMENT
106509 ,p_module => l_log_module);
106510
106511 END IF;
106512 --
106513
106514
106515
106516 --
106517 INSERT INTO xla_diag_sources --line2
106518 (
106519 event_id
106520 , ledger_id
106521 , sla_ledger_id
106522 , description_language
106523 , object_name
106524 , object_type_code
106525 , line_number
106526 , source_application_id
106527 , source_type_code
106528 , source_code
106529 , source_value
106530 , source_meaning
106531 , created_by
106532 , creation_date
106533 , last_update_date
106534 , last_updated_by
106535 , last_update_login
106536 , program_update_date
106537 , program_application_id
106538 , program_id
106539 , request_id
106540 )
106541 SELECT event_id
106542 , p_target_ledger_id
106543 , p_sla_ledger_id
106544 , p_language
106545 , object_name
106546 , object_type_code
106547 , line_number
106548 , source_application_id
106549 , source_type_code
106550 , source_code
106551 , SUBSTR(source_value,1,1996)
106552 , SUBSTR(source_meaning ,1,200)
106553 , xla_environment_pkg.g_Usr_Id
106554 , TRUNC(SYSDATE)
106555 , TRUNC(SYSDATE)
106556 , xla_environment_pkg.g_Usr_Id
106557 , xla_environment_pkg.g_Login_Id
106558 , TRUNC(SYSDATE)
106559 , xla_environment_pkg.g_Prog_Appl_Id
106560 , xla_environment_pkg.g_Prog_Id
106561 , xla_environment_pkg.g_Req_Id
106562 FROM (
106563 SELECT xet.event_id event_id
106564 , l1.line_number line_number
106565 , CASE r
106566 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106567 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106571 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106568 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106569 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106570 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106572 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106573 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106574 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106575 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106576 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106577 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106578 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106579 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106580 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106581 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106582 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106583 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106584 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106585 WHEN 20 THEN 'AP_PO_HEADERS_EXTRACT_V'
106586 WHEN 21 THEN 'AP_PO_HEADERS_EXTRACT_V'
106587 WHEN 22 THEN 'AP_PO_HEADERS_EXTRACT_V'
106588 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106589 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106590 WHEN 25 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
106591 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
106592 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106593 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106594 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106595 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106596 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106597 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106598 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106599 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106600 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106601 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106602 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
106603
106604 ELSE null
106605 END object_name
106606 , CASE r
106607 WHEN 1 THEN 'LINE'
106608 WHEN 2 THEN 'LINE'
106609 WHEN 3 THEN 'LINE'
106610 WHEN 4 THEN 'LINE'
106611 WHEN 5 THEN 'LINE'
106612 WHEN 6 THEN 'LINE'
106613 WHEN 7 THEN 'LINE'
106614 WHEN 8 THEN 'LINE'
106615 WHEN 9 THEN 'LINE'
106616 WHEN 10 THEN 'LINE'
106617 WHEN 11 THEN 'LINE'
106618 WHEN 12 THEN 'LINE'
106619 WHEN 13 THEN 'LINE'
106620 WHEN 14 THEN 'LINE'
106621 WHEN 15 THEN 'LINE'
106622 WHEN 16 THEN 'LINE'
106623 WHEN 17 THEN 'LINE'
106624 WHEN 18 THEN 'LINE'
106625 WHEN 19 THEN 'LINE'
106626 WHEN 20 THEN 'LINE'
106627 WHEN 21 THEN 'LINE'
106628 WHEN 22 THEN 'LINE'
106629 WHEN 23 THEN 'LINE'
106630 WHEN 24 THEN 'LINE'
106631 WHEN 25 THEN 'LINE'
106632 WHEN 26 THEN 'LINE'
106633 WHEN 27 THEN 'LINE'
106634 WHEN 28 THEN 'LINE'
106635 WHEN 29 THEN 'LINE'
106636 WHEN 30 THEN 'LINE'
106637 WHEN 31 THEN 'LINE'
106638 WHEN 32 THEN 'LINE'
106639 WHEN 33 THEN 'LINE'
106640 WHEN 34 THEN 'LINE'
106641 WHEN 35 THEN 'LINE'
106642 WHEN 36 THEN 'LINE'
106643 WHEN 37 THEN 'LINE'
106644
106645 ELSE null
106646 END object_type_code
106647 , CASE r
106648 WHEN 1 THEN '200'
106649 WHEN 2 THEN '200'
106650 WHEN 3 THEN '200'
106651 WHEN 4 THEN '200'
106652 WHEN 5 THEN '200'
106653 WHEN 6 THEN '200'
106654 WHEN 7 THEN '200'
106655 WHEN 8 THEN '200'
106656 WHEN 9 THEN '200'
106657 WHEN 10 THEN '200'
106658 WHEN 11 THEN '200'
106659 WHEN 12 THEN '200'
106660 WHEN 13 THEN '200'
106661 WHEN 14 THEN '200'
106662 WHEN 15 THEN '200'
106663 WHEN 16 THEN '200'
106664 WHEN 17 THEN '200'
106665 WHEN 18 THEN '200'
106666 WHEN 19 THEN '200'
106667 WHEN 20 THEN '200'
106668 WHEN 21 THEN '200'
106669 WHEN 22 THEN '200'
106670 WHEN 23 THEN '200'
106671 WHEN 24 THEN '200'
106672 WHEN 25 THEN '200'
106673 WHEN 26 THEN '200'
106674 WHEN 27 THEN '200'
106675 WHEN 28 THEN '200'
106676 WHEN 29 THEN '200'
106677 WHEN 30 THEN '200'
106678 WHEN 31 THEN '200'
106679 WHEN 32 THEN '200'
106680 WHEN 33 THEN '200'
106681 WHEN 34 THEN '200'
106682 WHEN 35 THEN '200'
106683 WHEN 36 THEN '200'
106684 WHEN 37 THEN '200'
106685
106686 ELSE null
106687 END source_application_id
106688 , 'S' source_type_code
106689 , CASE r
106690 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
106694 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
106691 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
106692 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
106693 WHEN 4 THEN 'AID_DIST_CCID'
106695 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID'
106696 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT'
106697 WHEN 8 THEN 'POD_CCID'
106698 WHEN 9 THEN 'PO_VARIANCE_ACCOUNT'
106699 WHEN 10 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
106700 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
106701 WHEN 12 THEN 'APHD_AMOUNT'
106702 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID'
106703 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE'
106704 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE'
106705 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID'
106706 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID'
106707 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID'
106708 WHEN 19 THEN 'DISTRIBUTION_LINK_TYPE'
106709 WHEN 20 THEN 'POH_RATE_DATE'
106710 WHEN 21 THEN 'POH_RATE'
106711 WHEN 22 THEN 'POH_RATE_TYPE'
106712 WHEN 23 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
106713 WHEN 24 THEN 'APHD_REV_PAY_HIST_DIST_ID'
106714 WHEN 25 THEN 'TAX_LINE_ID'
106715 WHEN 26 THEN 'SUMMARY_TAX_LINE_ID'
106716 WHEN 27 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
106717 WHEN 28 THEN 'AI_INVOICE_TYPE_PAID'
106718 WHEN 29 THEN 'APHD_INVOICE_BASE_AMT'
106719 WHEN 30 THEN 'INV_CLR_BASE_AMT_DIFF'
106720 WHEN 31 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR'
106721 WHEN 32 THEN 'MAT_CLR_BASE_AMT_DIFF'
106722 WHEN 33 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR'
106723 WHEN 34 THEN 'PMT_CLR_BASE_AMT_DIFF'
106724 WHEN 35 THEN 'BF_RETAINED_INV_DIST_ID_CLR'
106725 WHEN 36 THEN 'BF_RETAINED_INV_ID_CLR'
106726 WHEN 37 THEN 'AWT_AT_PMT_TIME'
106727
106728 ELSE null
106729 END source_code
106730 , CASE r
106731 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
106732 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
106733 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
106734 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
106735 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
106736 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
106737 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
106738 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
106739 WHEN 9 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
106740 WHEN 10 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
106741 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
106742 WHEN 12 THEN TO_CHAR(l1.APHD_AMOUNT)
106743 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
106744 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
106745 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
106746 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
106747 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
106748 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
106749 WHEN 19 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
106750 WHEN 20 THEN TO_CHAR(l3.POH_RATE_DATE)
106751 WHEN 21 THEN TO_CHAR(l3.POH_RATE)
106752 WHEN 22 THEN TO_CHAR(l3.POH_RATE_TYPE)
106753 WHEN 23 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
106754 WHEN 24 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
106755 WHEN 25 THEN TO_CHAR(l5.TAX_LINE_ID)
106756 WHEN 26 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
106757 WHEN 27 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
106758 WHEN 28 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
106759 WHEN 29 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
106760 WHEN 30 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
106761 WHEN 31 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
106762 WHEN 32 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
106763 WHEN 33 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
106764 WHEN 34 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
106765 WHEN 35 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_CLR)
106766 WHEN 36 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_CLR)
106767 WHEN 37 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
106768
106769 ELSE null
106770 END source_value
106771 , CASE r
106772 WHEN 1 THEN fvl19.meaning
106773 WHEN 5 THEN fvl32.meaning
106774 WHEN 10 THEN fvl51.meaning
106775 WHEN 23 THEN fvl64.meaning
106776 WHEN 27 THEN fvl111.meaning
106777 WHEN 28 THEN fvl112.meaning
106778 WHEN 37 THEN fvl155.meaning
106779
106780 ELSE null
106781 END source_meaning
106782 FROM xla_events_gt xet
106783 , AP_PAYMENT_EXTRACT_DETAILS_V l1
106784 , AP_PO_HEADERS_EXTRACT_V l3
106785 , ZX_AP_DEF_TAX_EXTRACT_V l5
106786 , fnd_lookup_values fvl19
106787 , fnd_lookup_values fvl32
106788 , fnd_lookup_values fvl51
106789 , fnd_lookup_values fvl64
106790 , fnd_lookup_values fvl111
106791 , fnd_lookup_values fvl112
106792 , fnd_lookup_values fvl155
106793 , (select rownum r from all_objects where rownum <= 37 and owner = p_apps_owner)
106794 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106795 AND xet.event_class_code = C_EVENT_CLASS_CODE
106796 AND l1.event_id = xet.event_id
106800 AND fvl19.language(+) = USERENV('LANG')
106797 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
106798 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
106799 AND fvl19.view_application_id(+) = 201
106801 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
106802 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
106803 AND fvl32.view_application_id(+) = 200
106804 AND fvl32.language(+) = USERENV('LANG')
106805 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
106806 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
106807 AND fvl51.view_application_id(+) = 200
106808 AND fvl51.language(+) = USERENV('LANG')
106809 AND fvl64.lookup_type(+) = 'YES_NO'
106810 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
106811 AND fvl64.view_application_id(+) = 0
106812 AND fvl64.language(+) = USERENV('LANG')
106813 AND fvl111.lookup_type(+) = 'YES_NO'
106814 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
106815 AND fvl111.view_application_id(+) = 0
106816 AND fvl111.language(+) = USERENV('LANG')
106817 AND fvl112.lookup_type(+) = 'INVOICE TYPE'
106818 AND fvl112.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
106819 AND fvl112.view_application_id(+) = 200
106820 AND fvl112.language(+) = USERENV('LANG')
106821 AND fvl155.lookup_type(+) = 'YES_NO'
106822 AND fvl155.lookup_code(+) = l1.AWT_AT_PMT_TIME
106823 AND fvl155.view_application_id(+) = 0
106824 AND fvl155.language(+) = USERENV('LANG')
106825
106826 )
106827 ;
106828 --
106829 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106830
106831 trace
106832 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
106833 ,p_level => C_LEVEL_STATEMENT
106834 ,p_module => l_log_module);
106835
106836 END IF;
106837
106838
106839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106840 trace
106841 (p_msg => 'END of insert_sources_169'
106842 ,p_level => C_LEVEL_PROCEDURE
106843 ,p_module => l_log_module);
106844 END IF;
106845 EXCEPTION
106846 WHEN xla_exceptions_pkg.application_exception THEN
106847 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106848 trace
106849 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106850 ,p_level => C_LEVEL_EXCEPTION
106851 ,p_module => l_log_module);
106852 END IF;
106853 RAISE;
106854 WHEN OTHERS THEN
106855 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106856 trace
106857 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106858 ,p_level => C_LEVEL_EXCEPTION
106859 ,p_module => l_log_module);
106860 END IF;
106861 xla_exceptions_pkg.raise_message
106862 (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_169');
106863 END insert_sources_169;
106864 --
106865
106866 ---------------------------------------
106867 --
106868 -- PRIVATE FUNCTION
106869 -- EventClass_169
106870 --
106871 ----------------------------------------
106872 --
106873 FUNCTION EventClass_169
106874 (p_application_id IN NUMBER
106875 ,p_base_ledger_id IN NUMBER
106876 ,p_target_ledger_id IN NUMBER
106877 ,p_language IN VARCHAR2
106878 ,p_currency_code IN VARCHAR2
106879 ,p_sla_ledger_id IN NUMBER
106880 ,p_pad_start_date IN DATE
106881 ,p_pad_end_date IN DATE
106882 ,p_primary_ledger_id IN NUMBER)
106883 RETURN BOOLEAN IS
106884 --
106885 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS_ALL';
106886 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECONCILED PAYMENTS';
106887
106888 l_calculate_acctd_flag VARCHAR2(1) :='N';
106889 l_calculate_g_l_flag VARCHAR2(1) :='N';
106890 --
106891 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106892 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106893 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106894 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106895 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106896 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106897 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106898 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106899 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106900 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106901 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106902 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106903 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106904 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106905 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106906 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106907 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106908 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106909 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106910 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106911 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106912 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106913 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
106917
106914 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106915 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
106916 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
106918 l_event_id NUMBER;
106919 l_previous_event_id NUMBER;
106920 l_first_event_id NUMBER;
106921 l_last_event_id NUMBER;
106922
106923 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
106924 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
106925 --
106926 --
106927 l_result BOOLEAN := TRUE;
106928 l_rows NUMBER := 1000;
106929 l_event_type_name VARCHAR2(80) := 'All';
106930 l_event_class_name VARCHAR2(80) := 'Reconciled Payments';
106931 l_description VARCHAR2(4000);
106932 l_transaction_reversal NUMBER;
106933 l_ae_header_id NUMBER;
106934 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
106935 l_log_module VARCHAR2(240);
106936 --
106937 l_acct_reversal_source VARCHAR2(30);
106938 l_trx_reversal_source VARCHAR2(30);
106939
106940 l_continue_with_lines BOOLEAN := TRUE;
106941 --
106942 l_acc_rev_gl_date_source DATE; -- 4262811
106943 --
106944 type t_array_event_id is table of number index by binary_integer;
106945
106946 l_rec_array_event t_rec_array_event;
106947 l_null_rec_array_event t_rec_array_event;
106948 l_array_ae_header_id xla_number_array_type;
106949 l_actual_flag VARCHAR2(1) := NULL;
106950 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
106951 l_balance_type_code VARCHAR2(1) :=NULL;
106952 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
106953
106954 --
106955 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
106956 --
106957
106958 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
106959 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
106960 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
106961 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
106962 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
106963 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
106964 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
106965 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
106966 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
106967 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
106968 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106969 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106970 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
106971 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
106972 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
106973 TYPE t_array_source_37 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
106974 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
106975 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
106976 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
106977 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106978 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
106979 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106980 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
106981 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
106982 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
106983 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
106984 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
106985 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
106986 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
106987 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
106988 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
106989 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
106990 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106991 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
106992 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
106993 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
106997 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
106994 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
106995 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106996 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
106998
106999 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
107000 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107001 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107002 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
107003 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
107004 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
107005 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
107006 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
107007 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
107008 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
107009 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
107010 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
107011 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
107012 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
107013 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
107014 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107015 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
107016 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107017 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
107018 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
107019 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
107020 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
107021 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
107022 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
107023 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
107024 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
107025 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
107026 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
107027 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
107028 TYPE t_array_source_134 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107029 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
107030 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107031 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
107032 TYPE t_array_source_139 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
107033 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
107034 TYPE t_array_source_152 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
107035 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
107036
107037 l_array_source_5 t_array_source_5;
107038 l_array_source_8 t_array_source_8;
107039 l_array_source_9 t_array_source_9;
107040 l_array_source_10 t_array_source_10;
107041 l_array_source_11 t_array_source_11;
107042 l_array_source_12 t_array_source_12;
107043 l_array_source_13 t_array_source_13;
107044 l_array_source_14 t_array_source_14;
107045 l_array_source_15 t_array_source_15;
107046 l_array_source_15_meaning t_array_lookup_meaning;
107047 l_array_source_16 t_array_source_16;
107048 l_array_source_16_meaning t_array_lookup_meaning;
107049 l_array_source_17 t_array_source_17;
107050 l_array_source_20 t_array_source_20;
107051 l_array_source_27 t_array_source_27;
107052 l_array_source_28 t_array_source_28;
107053 l_array_source_34 t_array_source_34;
107054 l_array_source_37 t_array_source_37;
107055 l_array_source_38 t_array_source_38;
107056 l_array_source_39 t_array_source_39;
107057 l_array_source_42 t_array_source_42;
107058 l_array_source_42_meaning t_array_lookup_meaning;
107059 l_array_source_44 t_array_source_44;
107060 l_array_source_45 t_array_source_45;
107061 l_array_source_46 t_array_source_46;
107062 l_array_source_47 t_array_source_47;
107063 l_array_source_49 t_array_source_49;
107064 l_array_source_50 t_array_source_50;
107068 l_array_source_71 t_array_source_71;
107065 l_array_source_65 t_array_source_65;
107066 l_array_source_66 t_array_source_66;
107067 l_array_source_67 t_array_source_67;
107069 l_array_source_71_meaning t_array_lookup_meaning;
107070 l_array_source_113 t_array_source_113;
107071 l_array_source_114 t_array_source_114;
107072 l_array_source_115 t_array_source_115;
107073 l_array_source_116 t_array_source_116;
107074 l_array_source_117 t_array_source_117;
107075 l_array_source_117_meaning t_array_lookup_meaning;
107076 l_array_source_118 t_array_source_118;
107077 l_array_source_121 t_array_source_121;
107078 l_array_source_122 t_array_source_122;
107079 l_array_source_123 t_array_source_123;
107080 l_array_source_156 t_array_source_156;
107081 l_array_source_157 t_array_source_157;
107082
107083 l_array_source_19 t_array_source_19;
107084 l_array_source_19_meaning t_array_lookup_meaning;
107085 l_array_source_21 t_array_source_21;
107086 l_array_source_22 t_array_source_22;
107087 l_array_source_29 t_array_source_29;
107088 l_array_source_32 t_array_source_32;
107089 l_array_source_32_meaning t_array_lookup_meaning;
107090 l_array_source_35 t_array_source_35;
107091 l_array_source_36 t_array_source_36;
107092 l_array_source_40 t_array_source_40;
107093 l_array_source_41 t_array_source_41;
107094 l_array_source_51 t_array_source_51;
107095 l_array_source_51_meaning t_array_lookup_meaning;
107096 l_array_source_52 t_array_source_52;
107097 l_array_source_53 t_array_source_53;
107098 l_array_source_54 t_array_source_54;
107099 l_array_source_55 t_array_source_55;
107100 l_array_source_56 t_array_source_56;
107101 l_array_source_57 t_array_source_57;
107102 l_array_source_58 t_array_source_58;
107103 l_array_source_59 t_array_source_59;
107104 l_array_source_60 t_array_source_60;
107105 l_array_source_61 t_array_source_61;
107106 l_array_source_62 t_array_source_62;
107107 l_array_source_63 t_array_source_63;
107108 l_array_source_64 t_array_source_64;
107109 l_array_source_64_meaning t_array_lookup_meaning;
107110 l_array_source_68 t_array_source_68;
107111 l_array_source_69 t_array_source_69;
107112 l_array_source_70 t_array_source_70;
107113 l_array_source_111 t_array_source_111;
107114 l_array_source_111_meaning t_array_lookup_meaning;
107115 l_array_source_112 t_array_source_112;
107116 l_array_source_112_meaning t_array_lookup_meaning;
107117 l_array_source_119 t_array_source_119;
107118 l_array_source_134 t_array_source_134;
107119 l_array_source_136 t_array_source_136;
107120 l_array_source_137 t_array_source_137;
107121 l_array_source_138 t_array_source_138;
107122 l_array_source_139 t_array_source_139;
107123 l_array_source_151 t_array_source_151;
107124 l_array_source_152 t_array_source_152;
107125 l_array_source_155 t_array_source_155;
107126 l_array_source_155_meaning t_array_lookup_meaning;
107127
107128 --
107129 CURSOR header_cur
107130 IS
107131 SELECT /*+ leading(xet) cardinality(xet,1) */
107132 -- Event Class Code: RECONCILED PAYMENTS
107133 xet.entity_id
107134 ,xet.legal_entity_id
107135 ,xet.entity_code
107136 ,xet.transaction_number
107137 ,xet.event_id
107138 ,xet.event_class_code
107139 ,xet.event_type_code
107140 ,xet.event_number
107141 ,xet.event_date
107142 ,xet.transaction_date
107143 ,xet.reference_num_1
107144 ,xet.reference_num_2
107145 ,xet.reference_num_3
107146 ,xet.reference_num_4
107147 ,xet.reference_char_1
107148 ,xet.reference_char_2
107149 ,xet.reference_char_3
107150 ,xet.reference_char_4
107151 ,xet.reference_date_1
107152 ,xet.reference_date_2
107153 ,xet.reference_date_3
107154 ,xet.reference_date_4
107155 ,xet.event_created_by
107156 ,xet.budgetary_control_flag
107157 , h2.DOC_SEQUENCE_NAME source_5
107158 , h2.AC_DOC_SEQUENCE_VALUE source_8
107159 , h2.PAYMENT_TRANSACTION_NUMBER source_9
107160 , h2.AC_CHECK_DATE source_10
107161 , h2.CBA_BANK_ACCOUNT_NAME source_11
107162 , h2.AC_CURRENCY_CODE source_12
107163 , h2.CGAC_AP_ASSET_CCID source_13
107164 , h4.FSP_DISC_TAKEN_CCID source_14
107165 , h4.ASP_DISCOUNT_DIST_METHOD source_15
107166 , fvl15.meaning source_15_meaning
107167 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_16
107168 , fvl16.meaning source_16_meaning
107169 , h4.ASP_RATE_VAR_GAIN_CCID source_17
107170 , h4.ASP_RATE_VAR_LOSS_CCID source_20
107171 , h4.ASP_INTEREST_CCID source_27
107172 , h4.ASP_PRORATE_INT_ACROSS_DISTS source_28
107173 , h4.FSP_RETAINAGE_ACCOUNT source_34
107174 , h2.CGAC_BANK_CHARGES_CCID source_37
107175 , h2.CGAC_BANK_ERRORS_CCID source_38
107176 , h4.ASP_DISC_TAKEN_CCID source_39
107177 , h4.ASP_AUTO_OFFSET_FLAG source_42
107178 , fvl42.meaning source_42_meaning
107179 , h2.CGAC_GAIN_CCID source_44
107180 , h4.ASP_GAIN_CCID source_45
107181 , h2.CGAC_LOSS_CCID source_46
107182 , h4.ASP_LOSS_CCID source_47
107183 , h4.ASP_ROUNDING_ERROR_CCID source_49
107184 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_50
107185 , h2.AC_VENDOR_ID source_65
107186 , h2.AC_VENDOR_SITE_ID source_66
107187 , h2.THIRD_PARTY_TYPE source_67
107188 , h2.PAYMENT_TYPE source_71
107189 , fvl71.meaning source_71_meaning
107190 , h2.APH_BANK_CURRENCY_CODE source_113
107191 , h2.APH_BANK_TO_BASE_XRATE_DATE source_114
107192 , h2.APH_BANK_TO_BASE_XRATE source_115
107193 , h2.APH_BANK_TO_BASE_XRATE_TYPE source_116
107194 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_117
107195 , fvl117.meaning source_117_meaning
107196 , h2.AC_FUTURE_PAY_DUE_DATE source_118
107200 , h2.AC_DOC_CATEGORY_CODE source_156
107197 , h2.AC_EXCHANGE_DATE source_121
107198 , h2.AC_EXCHANGE_RATE source_122
107199 , h2.AC_EXCHANGE_RATE_TYPE source_123
107201 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_157
107202 FROM xla_events_gt xet
107203 , AP_PAYMENT_EXTRACT_HEADER_V h2
107204 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
107205 , fnd_lookup_values fvl15
107206 , fnd_lookup_values fvl16
107207 , fnd_lookup_values fvl42
107208 , fnd_lookup_values fvl71
107209 , fnd_lookup_values fvl117
107210 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
107211 and xet.event_class_code = C_EVENT_CLASS_CODE
107212 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
107213 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
107214 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
107215 AND fvl15.view_application_id(+) = 200
107216 AND fvl15.language(+) = USERENV('LANG')
107217 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
107218 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
107219 AND fvl16.view_application_id(+) = 200
107220 AND fvl16.language(+) = USERENV('LANG')
107221 AND fvl42.lookup_type(+) = 'YES_NO'
107222 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
107223 AND fvl42.view_application_id(+) = 0
107224 AND fvl42.language(+) = USERENV('LANG')
107225 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
107226 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
107227 AND fvl71.view_application_id(+) = 200
107228 AND fvl71.language(+) = USERENV('LANG')
107229 AND fvl117.lookup_type(+) = 'YES_NO'
107230 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
107231 AND fvl117.view_application_id(+) = 0
107232 AND fvl117.language(+) = USERENV('LANG')
107233
107234 ORDER BY event_id
107235 ;
107236
107237
107238 --
107239 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
107240 IS
107241 SELECT /*+ leading(xet) cardinality(xet,1) */
107242 -- Event Class Code: RECONCILED PAYMENTS
107243 xet.entity_id
107244 ,xet.legal_entity_id
107245 ,xet.entity_code
107246 ,xet.transaction_number
107247 ,xet.event_id
107248 ,xet.event_class_code
107249 ,xet.event_type_code
107250 ,xet.event_number
107251 ,xet.event_date
107252 ,xet.transaction_date
107253 ,xet.reference_num_1
107254 ,xet.reference_num_2
107255 ,xet.reference_num_3
107256 ,xet.reference_num_4
107257 ,xet.reference_char_1
107258 ,xet.reference_char_2
107259 ,xet.reference_char_3
107260 ,xet.reference_char_4
107261 ,xet.reference_date_1
107262 ,xet.reference_date_2
107263 ,xet.reference_date_3
107264 ,xet.reference_date_4
107265 ,xet.event_created_by
107266 ,xet.budgetary_control_flag
107267 , l1.LINE_NUMBER
107268 , l1.RELATED_INV_DIST_DEST_TYPE source_19
107269 , fvl19.meaning source_19_meaning
107270 , l1.APHD_PAYMENT_BASE_AMT source_21
107271 , l1.APHD_CLEARING_BASE_AMT source_22
107272 , l1.AID_DIST_CCID source_29
107273 , l1.AID_LINE_TYPE_LOOKUP_CODE source_32
107274 , fvl32.meaning source_32_meaning
107275 , l1.AID_RET_RELATED_DIST_CCID source_35
107276 , l1.AWT_RELATED_DIST_ACCOUNT source_36
107277 , l1.POD_CCID source_40
107278 , l1.PO_VARIANCE_ACCOUNT source_41
107279 , l1.APHD_PAY_DIST_LOOKUP_CODE source_51
107280 , fvl51.meaning source_51_meaning
107281 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_52
107282 , l1.APHD_AMOUNT source_53
107283 , l1.BUS_FLOW_AP_APP_ID source_54
107284 , l1.BUS_FLOW_PAYMENT_DIST_TYPE source_55
107285 , l1.BUS_FLOW_PAYMENT_ENTITY_CODE source_56
107286 , l1.BUS_FLOW_PAYMENT_DIST_ID source_57
107287 , l1.BUS_FLOW_PAYMENT_ID source_58
107288 , l1.APHD_PAYMENT_HIST_DIST_ID source_59
107289 , l1.DISTRIBUTION_LINK_TYPE source_60
107290 , l3.POH_RATE_DATE source_61
107291 , l3.POH_RATE source_62
107292 , l3.POH_RATE_TYPE source_63
107293 , l1.OVERRIDE_ACCTD_AMT_FLAG source_64
107294 , fvl64.meaning source_64_meaning
107295 , l1.APHD_REV_PAY_HIST_DIST_ID source_68
107296 , l5.TAX_LINE_ID source_69
107297 , l5.SUMMARY_TAX_LINE_ID source_70
107298 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_111
107299 , fvl111.meaning source_111_meaning
107300 , l1.AI_INVOICE_TYPE_PAID source_112
107301 , fvl112.meaning source_112_meaning
107302 , l1.APHD_INVOICE_BASE_AMT source_119
107303 , l1.INV_CLR_BASE_AMT_DIFF source_134
107304 , l1.MAT_CLR_GAIN_LOSS_INDICATOR source_136
107305 , l1.MAT_CLR_BASE_AMT_DIFF source_137
107306 , l1.PMT_CLR_GAIN_LOSS_INDICATOR source_138
107307 , l1.PMT_CLR_BASE_AMT_DIFF source_139
107308 , l1.BF_RETAINED_INV_DIST_ID_CLR source_151
107309 , l1.BF_RETAINED_INV_ID_CLR source_152
107310 , l1.AWT_AT_PMT_TIME source_155
107311 , fvl155.meaning source_155_meaning
107312 FROM xla_events_gt xet
107313 , AP_PAYMENT_EXTRACT_DETAILS_V l1
107314 , AP_PO_HEADERS_EXTRACT_V l3
107315 , ZX_AP_DEF_TAX_EXTRACT_V l5
107316 , fnd_lookup_values fvl19
107317 , fnd_lookup_values fvl32
107318 , fnd_lookup_values fvl51
107319 , fnd_lookup_values fvl64
107320 , fnd_lookup_values fvl111
107321 , fnd_lookup_values fvl112
107322 , fnd_lookup_values fvl155
107323 WHERE xet.event_id between x_first_event_id and x_last_event_id
107324 and xet.event_date between p_pad_start_date and p_pad_end_date
107325 and xet.event_class_code = C_EVENT_CLASS_CODE
107326 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
107327 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
107331 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
107328 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
107329 AND fvl19.view_application_id(+) = 201
107330 AND fvl19.language(+) = USERENV('LANG')
107332 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
107333 AND fvl32.view_application_id(+) = 200
107334 AND fvl32.language(+) = USERENV('LANG')
107335 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
107336 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
107337 AND fvl51.view_application_id(+) = 200
107338 AND fvl51.language(+) = USERENV('LANG')
107339 AND fvl64.lookup_type(+) = 'YES_NO'
107340 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
107341 AND fvl64.view_application_id(+) = 0
107342 AND fvl64.language(+) = USERENV('LANG')
107343 AND fvl111.lookup_type(+) = 'YES_NO'
107344 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
107345 AND fvl111.view_application_id(+) = 0
107346 AND fvl111.language(+) = USERENV('LANG')
107347 AND fvl112.lookup_type(+) = 'INVOICE TYPE'
107348 AND fvl112.lookup_code(+) = l1.AI_INVOICE_TYPE_PAID
107349 AND fvl112.view_application_id(+) = 200
107350 AND fvl112.language(+) = USERENV('LANG')
107351 AND fvl155.lookup_type(+) = 'YES_NO'
107352 AND fvl155.lookup_code(+) = l1.AWT_AT_PMT_TIME
107353 AND fvl155.view_application_id(+) = 0
107354 AND fvl155.language(+) = USERENV('LANG')
107355 ;
107356
107357 --
107358 BEGIN
107359 IF g_log_enabled THEN
107360 l_log_module := C_DEFAULT_MODULE||'.EventClass_169';
107361 END IF;
107362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107363 trace
107364 (p_msg => 'BEGIN of EventClass_169'
107365 ,p_level => C_LEVEL_PROCEDURE
107366 ,p_module => l_log_module);
107367 END IF;
107368
107369 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107370 trace
107371 (p_msg => 'p_application_id = '||p_application_id||
107372 ' - p_base_ledger_id = '||p_base_ledger_id||
107373 ' - p_target_ledger_id = '||p_target_ledger_id||
107374 ' - p_language = '||p_language||
107375 ' - p_currency_code = '||p_currency_code||
107376 ' - p_sla_ledger_id = '||p_sla_ledger_id
107377 ,p_level => C_LEVEL_STATEMENT
107378 ,p_module => l_log_module);
107379 END IF;
107380 --
107381 -- initialze arrays
107382 --
107383 g_array_event.DELETE;
107384 l_rec_array_event := l_null_rec_array_event;
107385 --
107386 --------------------------------------
107387 -- 4262811 Initialze MPA Line Number
107388 --------------------------------------
107389 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
107390
107391 --
107392
107393 --
107394 OPEN header_cur;
107395 --
107396 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107397 trace
107398 (p_msg => 'SQL - FETCH header_cur'
107399 ,p_level => C_LEVEL_STATEMENT
107400 ,p_module => l_log_module);
107401 END IF;
107402 --
107403 LOOP
107404 FETCH header_cur BULK COLLECT INTO
107405 l_array_entity_id
107406 , l_array_legal_entity_id
107407 , l_array_entity_code
107408 , l_array_transaction_num
107409 , l_array_event_id
107410 , l_array_class_code
107411 , l_array_event_type
107412 , l_array_event_number
107413 , l_array_event_date
107414 , l_array_transaction_date
107415 , l_array_reference_num_1
107416 , l_array_reference_num_2
107417 , l_array_reference_num_3
107418 , l_array_reference_num_4
107419 , l_array_reference_char_1
107420 , l_array_reference_char_2
107421 , l_array_reference_char_3
107422 , l_array_reference_char_4
107423 , l_array_reference_date_1
107424 , l_array_reference_date_2
107425 , l_array_reference_date_3
107426 , l_array_reference_date_4
107427 , l_array_event_created_by
107428 , l_array_budgetary_control_flag
107429 , l_array_source_5
107430 , l_array_source_8
107431 , l_array_source_9
107432 , l_array_source_10
107433 , l_array_source_11
107434 , l_array_source_12
107435 , l_array_source_13
107436 , l_array_source_14
107437 , l_array_source_15
107438 , l_array_source_15_meaning
107439 , l_array_source_16
107440 , l_array_source_16_meaning
107441 , l_array_source_17
107442 , l_array_source_20
107443 , l_array_source_27
107444 , l_array_source_28
107445 , l_array_source_34
107446 , l_array_source_37
107447 , l_array_source_38
107448 , l_array_source_39
107449 , l_array_source_42
107450 , l_array_source_42_meaning
107451 , l_array_source_44
107452 , l_array_source_45
107453 , l_array_source_46
107454 , l_array_source_47
107455 , l_array_source_49
107456 , l_array_source_50
107457 , l_array_source_65
107458 , l_array_source_66
107459 , l_array_source_67
107460 , l_array_source_71
107461 , l_array_source_71_meaning
107462 , l_array_source_113
107463 , l_array_source_114
107464 , l_array_source_115
107465 , l_array_source_116
107466 , l_array_source_117
107467 , l_array_source_117_meaning
107468 , l_array_source_118
107469 , l_array_source_121
107470 , l_array_source_122
107471 , l_array_source_123
107472 , l_array_source_156
107473 , l_array_source_157
107474 LIMIT l_rows;
107475 --
107476 IF (C_LEVEL_EVENT >= g_log_level) THEN
107477 trace
107478 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
107482 --
107479 ,p_level => C_LEVEL_EVENT
107480 ,p_module => l_log_module);
107481 END IF;
107483 EXIT WHEN l_array_entity_id.COUNT = 0;
107484
107485 -- initialize arrays
107486 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
107487 XLA_AE_LINES_PKG.g_rec_lines := NULL;
107488
107489 --
107490 -- Bug 4458708
107491 --
107492 XLA_AE_LINES_PKG.g_LineNumber := 0;
107493
107494
107495 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
107496 g_last_hdr_idx := l_array_event_id.LAST;
107497 --
107498 -- loop for the headers. Each iteration is for each header extract row
107499 -- fetched in header cursor
107500 --
107501 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
107502
107503 --
107504 -- set event info as cache for other routines to refer event attributes
107505 --
107506 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
107507 (p_application_id => p_application_id
107508 ,p_primary_ledger_id => p_primary_ledger_id
107509 ,p_base_ledger_id => p_base_ledger_id
107510 ,p_target_ledger_id => p_target_ledger_id
107511 ,p_entity_id => l_array_entity_id(hdr_idx)
107512 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
107513 ,p_entity_code => l_array_entity_code(hdr_idx)
107514 ,p_transaction_num => l_array_transaction_num(hdr_idx)
107515 ,p_event_id => l_array_event_id(hdr_idx)
107516 ,p_event_class_code => l_array_class_code(hdr_idx)
107517 ,p_event_type_code => l_array_event_type(hdr_idx)
107518 ,p_event_number => l_array_event_number(hdr_idx)
107519 ,p_event_date => l_array_event_date(hdr_idx)
107520 ,p_transaction_date => l_array_transaction_date(hdr_idx)
107521 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
107522 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
107523 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
107524 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
107525 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
107526 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
107527 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
107528 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
107529 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
107530 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
107531 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
107532 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
107533 ,p_event_created_by => l_array_event_created_by(hdr_idx)
107534 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
107535
107536 --
107537 -- set the status of entry to C_VALID (0)
107538 --
107539 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
107540
107541 --
107542 -- initialize a row for ae header
107543 --
107544 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
107545
107546 l_event_id := l_array_event_id(hdr_idx);
107547
107548 --
107549 -- storing the hdr_idx for event. May be used by line cursor.
107550 --
107551 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
107552
107553 --
107554 -- store sources from header extract. This can be improved to
107555 -- store only those sources from header extract that may be used in lines
107556 --
107557
107558 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
107559 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
107560 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
107561 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
107562 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
107563 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
107564 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
107565 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
107566 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
107567 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
107568 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
107569 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
107570 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
107571 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
107572 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
107573 g_array_event(l_event_id).array_value_char('source_28') := l_array_source_28(hdr_idx);
107574 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
107575 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
107576 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
107577 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
107578 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
107579 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
107580 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
107581 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
107582 g_array_event(l_event_id).array_value_num('source_46') := l_array_source_46(hdr_idx);
107583 g_array_event(l_event_id).array_value_num('source_47') := l_array_source_47(hdr_idx);
107584 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
107585 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
107589 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
107586 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
107587 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
107588 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
107590 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
107591 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
107592 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
107593 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
107594 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
107595 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
107596 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
107597 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
107598 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
107599 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
107600 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
107601 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
107602 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
107603
107604 --
107605 -- initilaize the status of ae headers for diffrent balance types
107606 -- the status is initialised to C_NOT_CREATED (2)
107607 --
107608 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107609 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107610 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
107611
107612 --
107613 -- call api to validate and store accounting attributes for header
107614 --
107615
107616 ------------------------------------------------------------
107617 -- Accrual Reversal : to get date for Standard Source (NONE)
107618 ------------------------------------------------------------
107619 l_acc_rev_gl_date_source := NULL;
107620
107621 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
107622 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
107623 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
107624 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
107625 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
107626 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
107627 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
107628 l_rec_acct_attrs.array_date_value(4) :=
107629 xla_ae_sources_pkg.GetSystemSourceDate(
107630 p_source_code => 'XLA_EVENT_DATE'
107631 , p_source_type_code => 'Y'
107632 , p_source_application_id => 602
107633 );
107634
107635
107636 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
107637
107638 XLA_AE_HEADER_PKG.SetJeCategoryName;
107639
107640 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
107641 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
107642 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
107643 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
107644 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
107645
107646
107647 --
107648 xla_ae_header_pkg.SetHdrDescription(
107649 p_description => Description_2 (
107650 p_application_id => p_application_id
107651 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
107652 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
107653 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
107654 , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
107655 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
107656 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
107657 )
107658 );
107659 --
107660
107661 -- No header level analytical criteria
107662
107663 --
107664 --accounting attribute enhancement, bug 3612931
107665 --
107666 l_trx_reversal_source := SUBSTR(NULL, 1,30);
107667
107668 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
107669 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
107670
107671 xla_accounting_err_pkg.build_message
107672 (p_appli_s_name => 'XLA'
107673 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
107674 ,p_token_1 => 'ACCT_ATTR_NAME'
107675 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
107676 ,p_token_2 => 'PRODUCT_NAME'
107677 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
107678 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
107679 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
107680 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
107681
107682 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
107683 --
107684 -- following sets the accounting attributes needed to reverse
107685 -- accounting for a distributeion
107686 --
107687 xla_ae_lines_pkg.SetTrxReversalAttrs
107688 (p_event_id => l_event_id
107689 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
107690 ,p_trx_reversal_source => l_trx_reversal_source);
107694
107691
107692 END IF;
107693
107695 ----------------------------------------------------------------
107696 -- 4262811 - update the header statuses to invalid in need be
107697 ----------------------------------------------------------------
107698 --
107699 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
107700
107701
107702 -----------------------------------------------
107703 -- No accrual reversal for the event class/type
107704 -----------------------------------------------
107705 ----------------------------------------------------------------
107706
107707 --
107708 -- this ends the header loop iteration for one bulk fetch
107709 --
107710 END LOOP;
107711
107712 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
107713 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
107714
107715 --
107716 -- insert dummy rows into lines gt table that were created due to
107717 -- transaction reversals
107718 --
107719 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
107720 l_result := XLA_AE_LINES_PKG.InsertLines;
107721 END IF;
107722
107723 --
107724 -- reset the temp_line_num for each set of events fetched from header
107725 -- cursor rather than doing it for each new event in line cursor
107726 -- Bug 3939231
107727 --
107728 xla_ae_lines_pkg.g_temp_line_num := 0;
107729
107730
107731
107732 --
107733 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
107734 --
107735 --
107736 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107737
107738 trace
107739 (p_msg => 'SQL - FETCH line_cur'
107740 ,p_level => C_LEVEL_STATEMENT
107741 ,p_module => l_log_module);
107742
107743 END IF;
107744 --
107745 --
107746 LOOP
107747 --
107748 FETCH line_cur BULK COLLECT INTO
107749 l_array_entity_id
107750 , l_array_legal_entity_id
107751 , l_array_entity_code
107752 , l_array_transaction_num
107753 , l_array_event_id
107754 , l_array_class_code
107755 , l_array_event_type
107756 , l_array_event_number
107757 , l_array_event_date
107758 , l_array_transaction_date
107759 , l_array_reference_num_1
107760 , l_array_reference_num_2
107761 , l_array_reference_num_3
107762 , l_array_reference_num_4
107763 , l_array_reference_char_1
107764 , l_array_reference_char_2
107765 , l_array_reference_char_3
107766 , l_array_reference_char_4
107767 , l_array_reference_date_1
107768 , l_array_reference_date_2
107769 , l_array_reference_date_3
107770 , l_array_reference_date_4
107771 , l_array_event_created_by
107772 , l_array_budgetary_control_flag
107773 , l_array_extract_line_num
107774 , l_array_source_19
107775 , l_array_source_19_meaning
107776 , l_array_source_21
107777 , l_array_source_22
107778 , l_array_source_29
107779 , l_array_source_32
107780 , l_array_source_32_meaning
107781 , l_array_source_35
107782 , l_array_source_36
107783 , l_array_source_40
107784 , l_array_source_41
107785 , l_array_source_51
107786 , l_array_source_51_meaning
107787 , l_array_source_52
107788 , l_array_source_53
107789 , l_array_source_54
107790 , l_array_source_55
107791 , l_array_source_56
107792 , l_array_source_57
107793 , l_array_source_58
107794 , l_array_source_59
107795 , l_array_source_60
107796 , l_array_source_61
107797 , l_array_source_62
107798 , l_array_source_63
107799 , l_array_source_64
107800 , l_array_source_64_meaning
107801 , l_array_source_68
107802 , l_array_source_69
107803 , l_array_source_70
107804 , l_array_source_111
107805 , l_array_source_111_meaning
107806 , l_array_source_112
107807 , l_array_source_112_meaning
107808 , l_array_source_119
107809 , l_array_source_134
107810 , l_array_source_136
107811 , l_array_source_137
107812 , l_array_source_138
107813 , l_array_source_139
107814 , l_array_source_151
107815 , l_array_source_152
107816 , l_array_source_155
107817 , l_array_source_155_meaning
107818 LIMIT l_rows;
107819
107820 --
107821 IF (C_LEVEL_EVENT >= g_log_level) THEN
107822 trace
107823 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
107824 ,p_level => C_LEVEL_EVENT
107825 ,p_module => l_log_module);
107826 END IF;
107827 --
107828 EXIT WHEN l_array_entity_id.count = 0;
107829
107830 XLA_AE_LINES_PKG.g_rec_lines := null;
107831
107832 --
107833 -- Bug 4458708
107834 --
107835 XLA_AE_LINES_PKG.g_LineNumber := 0;
107836 --
107837 --
107838
107839 FOR Idx IN 1..l_array_event_id.count LOOP
107840 --
107841 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
107842 --
107843 l_event_id := l_array_event_id(idx); -- 5648433
107844
107845 --
107846 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
107847 --
107848
107849 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
107850 (g_array_event(l_event_id).array_value_num('header_index'))
107851 ,'N'
107852 ) <> 'Y'
107853 THEN
107854 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107855 trace
107856 (p_msg => 'Trancaction revesal option is not Y '
107857 ,p_level => C_LEVEL_STATEMENT
107858 ,p_module => l_log_module);
107862 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
107859 END IF;
107860
107861 --
107863 --
107864 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
107865 --
107866 -- set event info as cache for other routines to refer event attributes
107867 --
107868
107869 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
107870 l_previous_event_id := l_event_id;
107871
107872 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
107873 (p_application_id => p_application_id
107874 ,p_primary_ledger_id => p_primary_ledger_id
107875 ,p_base_ledger_id => p_base_ledger_id
107876 ,p_target_ledger_id => p_target_ledger_id
107877 ,p_entity_id => l_array_entity_id(Idx)
107878 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
107879 ,p_entity_code => l_array_entity_code(Idx)
107880 ,p_transaction_num => l_array_transaction_num(Idx)
107881 ,p_event_id => l_array_event_id(Idx)
107882 ,p_event_class_code => l_array_class_code(Idx)
107883 ,p_event_type_code => l_array_event_type(Idx)
107884 ,p_event_number => l_array_event_number(Idx)
107885 ,p_event_date => l_array_event_date(Idx)
107886 ,p_transaction_date => l_array_transaction_date(Idx)
107887 ,p_reference_num_1 => l_array_reference_num_1(Idx)
107888 ,p_reference_num_2 => l_array_reference_num_2(Idx)
107889 ,p_reference_num_3 => l_array_reference_num_3(Idx)
107890 ,p_reference_num_4 => l_array_reference_num_4(Idx)
107891 ,p_reference_char_1 => l_array_reference_char_1(Idx)
107892 ,p_reference_char_2 => l_array_reference_char_2(Idx)
107893 ,p_reference_char_3 => l_array_reference_char_3(Idx)
107894 ,p_reference_char_4 => l_array_reference_char_4(Idx)
107895 ,p_reference_date_1 => l_array_reference_date_1(Idx)
107896 ,p_reference_date_2 => l_array_reference_date_2(Idx)
107897 ,p_reference_date_3 => l_array_reference_date_3(Idx)
107898 ,p_reference_date_4 => l_array_reference_date_4(Idx)
107899 ,p_event_created_by => l_array_event_created_by(Idx)
107900 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
107901 --
107902 END IF;
107903
107904
107905
107906 --
107907 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
107908
107909 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
107910
107911 IF l_continue_with_lines THEN
107912 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
107913 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
107914
107915 xla_accounting_err_pkg.build_message
107916 (p_appli_s_name => 'XLA'
107917 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
107918 ,p_token_1 => 'LINE_NUMBER'
107919 ,p_value_1 => l_array_extract_line_num(Idx)
107920 ,p_token_2 => 'PRODUCT_NAME'
107921 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
107922 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
107923 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
107924 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
107925
107926 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
107927 --
107928 -- following sets the accounting attributes needed to reverse
107929 -- accounting for a distributeion
107930 --
107931
107932 --
107933 -- 5217187
107934 --
107935 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
107936 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
107937 g_array_event(l_event_id).array_value_num('header_index'));
107938 --
107939 --
107940
107941 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
107942 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_52(Idx);
107943 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
107944 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_59(Idx);
107945 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
107946 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_60(Idx);
107947 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
107948 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_67');
107949 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
107950 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_68(Idx);
107951 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
107952 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_60(Idx);
107953 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
107954 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_69(Idx);
107955 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
107956 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_69(Idx);
107957 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
107958 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_70(Idx);
107959
107960
107961 xla_ae_lines_pkg.SetAcctReversalAttrs
107962 (p_event_id => l_event_id
107963 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
107964 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107965 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
107966 END IF;
107967
107968 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
107972 AcctLineType_39 (
107969 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
107970
107971 --
107973 p_application_id => p_application_id
107974 ,p_event_id => l_event_id
107975 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107976 ,p_calculate_g_l_flag => l_calculate_g_l_flag
107977 ,p_actual_flag => l_actual_flag
107978 ,p_balance_type_code => l_balance_type_code
107979 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107980
107981 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
107982 , p_source_22 => l_array_source_22(Idx)
107983 , p_source_32 => l_array_source_32(Idx)
107984 , p_source_32_meaning => l_array_source_32_meaning(Idx)
107985 , p_source_40 => l_array_source_40(Idx)
107986 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
107987 , p_source_51 => l_array_source_51(Idx)
107988 , p_source_51_meaning => l_array_source_51_meaning(Idx)
107989 , p_source_52 => l_array_source_52(Idx)
107990 , p_source_53 => l_array_source_53(Idx)
107991 , p_source_54 => l_array_source_54(Idx)
107992 , p_source_55 => l_array_source_55(Idx)
107993 , p_source_56 => l_array_source_56(Idx)
107994 , p_source_57 => l_array_source_57(Idx)
107995 , p_source_58 => l_array_source_58(Idx)
107996 , p_source_59 => l_array_source_59(Idx)
107997 , p_source_60 => l_array_source_60(Idx)
107998 , p_source_61 => l_array_source_61(Idx)
107999 , p_source_62 => l_array_source_62(Idx)
108000 , p_source_63 => l_array_source_63(Idx)
108001 , p_source_64 => l_array_source_64(Idx)
108002 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108003 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108004 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108005 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108006 , p_source_68 => l_array_source_68(Idx)
108007 , p_source_69 => l_array_source_69(Idx)
108008 , p_source_70 => l_array_source_70(Idx)
108009 );
108010 If(l_balance_type_code = 'A') THEN
108011 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108012 END IF;
108013
108014 --
108015
108016
108017 --
108018 AcctLineType_44 (
108019 p_application_id => p_application_id
108020 ,p_event_id => l_event_id
108021 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108022 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108023 ,p_actual_flag => l_actual_flag
108024 ,p_balance_type_code => l_balance_type_code
108025 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108026
108027 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108028 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108029 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108030 , p_source_19 => l_array_source_19(Idx)
108031 , p_source_19_meaning => l_array_source_19_meaning(Idx)
108032 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108033 , p_source_21 => l_array_source_21(Idx)
108034 , p_source_22 => l_array_source_22(Idx)
108035 , p_source_29 => l_array_source_29(Idx)
108036 , p_source_32 => l_array_source_32(Idx)
108037 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108038 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108039 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108040 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108041 , p_source_51 => l_array_source_51(Idx)
108042 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108043 , p_source_52 => l_array_source_52(Idx)
108044 , p_source_53 => l_array_source_53(Idx)
108045 , p_source_54 => l_array_source_54(Idx)
108046 , p_source_55 => l_array_source_55(Idx)
108047 , p_source_56 => l_array_source_56(Idx)
108048 , p_source_57 => l_array_source_57(Idx)
108049 , p_source_58 => l_array_source_58(Idx)
108050 , p_source_59 => l_array_source_59(Idx)
108051 , p_source_60 => l_array_source_60(Idx)
108052 , p_source_64 => l_array_source_64(Idx)
108053 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108054 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108055 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108056 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108057 , p_source_68 => l_array_source_68(Idx)
108058 , p_source_69 => l_array_source_69(Idx)
108059 , p_source_70 => l_array_source_70(Idx)
108060 );
108061 If(l_balance_type_code = 'A') THEN
108062 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108063 END IF;
108064
108065 --
108066
108067
108068 --
108069 AcctLineType_48 (
108070 p_application_id => p_application_id
108071 ,p_event_id => l_event_id
108072 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108073 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108074 ,p_actual_flag => l_actual_flag
108075 ,p_balance_type_code => l_balance_type_code
108076 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108077
108078 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108079 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108080 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108081 , p_source_19 => l_array_source_19(Idx)
108082 , p_source_19_meaning => l_array_source_19_meaning(Idx)
108083 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108084 , p_source_21 => l_array_source_21(Idx)
108085 , p_source_22 => l_array_source_22(Idx)
108086 , p_source_29 => l_array_source_29(Idx)
108087 , p_source_32 => l_array_source_32(Idx)
108088 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108089 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108090 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108091 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108092 , p_source_51 => l_array_source_51(Idx)
108096 , p_source_54 => l_array_source_54(Idx)
108093 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108094 , p_source_52 => l_array_source_52(Idx)
108095 , p_source_53 => l_array_source_53(Idx)
108097 , p_source_55 => l_array_source_55(Idx)
108098 , p_source_56 => l_array_source_56(Idx)
108099 , p_source_57 => l_array_source_57(Idx)
108100 , p_source_58 => l_array_source_58(Idx)
108101 , p_source_59 => l_array_source_59(Idx)
108102 , p_source_60 => l_array_source_60(Idx)
108103 , p_source_64 => l_array_source_64(Idx)
108104 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108105 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108106 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108107 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108108 , p_source_68 => l_array_source_68(Idx)
108109 , p_source_69 => l_array_source_69(Idx)
108110 , p_source_70 => l_array_source_70(Idx)
108111 , p_source_111 => l_array_source_111(Idx)
108112 , p_source_111_meaning => l_array_source_111_meaning(Idx)
108113 );
108114 If(l_balance_type_code = 'A') THEN
108115 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108116 END IF;
108117
108118 --
108119
108120
108121 --
108122 AcctLineType_52 (
108123 p_application_id => p_application_id
108124 ,p_event_id => l_event_id
108125 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108126 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108127 ,p_actual_flag => l_actual_flag
108128 ,p_balance_type_code => l_balance_type_code
108129 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108130
108131 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108132 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108133 , p_source_22 => l_array_source_22(Idx)
108134 , p_source_29 => l_array_source_29(Idx)
108135 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
108136 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108137 , p_source_51 => l_array_source_51(Idx)
108138 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108139 , p_source_52 => l_array_source_52(Idx)
108140 , p_source_53 => l_array_source_53(Idx)
108141 , p_source_54 => l_array_source_54(Idx)
108142 , p_source_55 => l_array_source_55(Idx)
108143 , p_source_56 => l_array_source_56(Idx)
108144 , p_source_57 => l_array_source_57(Idx)
108145 , p_source_58 => l_array_source_58(Idx)
108146 , p_source_59 => l_array_source_59(Idx)
108147 , p_source_60 => l_array_source_60(Idx)
108148 , p_source_64 => l_array_source_64(Idx)
108149 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108150 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108151 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108152 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108153 , p_source_68 => l_array_source_68(Idx)
108154 , p_source_69 => l_array_source_69(Idx)
108155 , p_source_70 => l_array_source_70(Idx)
108156 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
108157 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108158 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108159 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108160 );
108161 If(l_balance_type_code = 'A') THEN
108162 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108163 END IF;
108164
108165 --
108166
108167
108168 --
108169 AcctLineType_53 (
108170 p_application_id => p_application_id
108171 ,p_event_id => l_event_id
108172 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108173 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108174 ,p_actual_flag => l_actual_flag
108175 ,p_balance_type_code => l_balance_type_code
108176 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108177
108178 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108179 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108180 , p_source_22 => l_array_source_22(Idx)
108181 , p_source_29 => l_array_source_29(Idx)
108182 , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
108183 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108184 , p_source_51 => l_array_source_51(Idx)
108185 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108186 , p_source_52 => l_array_source_52(Idx)
108187 , p_source_53 => l_array_source_53(Idx)
108188 , p_source_54 => l_array_source_54(Idx)
108189 , p_source_55 => l_array_source_55(Idx)
108190 , p_source_56 => l_array_source_56(Idx)
108191 , p_source_57 => l_array_source_57(Idx)
108192 , p_source_58 => l_array_source_58(Idx)
108193 , p_source_59 => l_array_source_59(Idx)
108194 , p_source_60 => l_array_source_60(Idx)
108195 , p_source_64 => l_array_source_64(Idx)
108196 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108197 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108198 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108199 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108200 , p_source_68 => l_array_source_68(Idx)
108201 , p_source_69 => l_array_source_69(Idx)
108202 , p_source_70 => l_array_source_70(Idx)
108203 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
108204 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108205 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108206 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108207 );
108208 If(l_balance_type_code = 'A') THEN
108209 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108210 END IF;
108211
108212 --
108213
108214
108215 --
108216 AcctLineType_54 (
108217 p_application_id => p_application_id
108218 ,p_event_id => l_event_id
108219 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108223 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108220 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108221 ,p_actual_flag => l_actual_flag
108222 ,p_balance_type_code => l_balance_type_code
108224
108225 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108226 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108227 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108228 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108229 , p_source_22 => l_array_source_22(Idx)
108230 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108231 , p_source_51 => l_array_source_51(Idx)
108232 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108233 , p_source_52 => l_array_source_52(Idx)
108234 , p_source_53 => l_array_source_53(Idx)
108235 , p_source_54 => l_array_source_54(Idx)
108236 , p_source_55 => l_array_source_55(Idx)
108237 , p_source_56 => l_array_source_56(Idx)
108238 , p_source_57 => l_array_source_57(Idx)
108239 , p_source_58 => l_array_source_58(Idx)
108240 , p_source_59 => l_array_source_59(Idx)
108241 , p_source_60 => l_array_source_60(Idx)
108242 , p_source_64 => l_array_source_64(Idx)
108243 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108244 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108245 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108246 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108247 , p_source_68 => l_array_source_68(Idx)
108248 , p_source_69 => l_array_source_69(Idx)
108249 , p_source_70 => l_array_source_70(Idx)
108250 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108251 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108252 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108253 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108254 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108255 );
108256 If(l_balance_type_code = 'A') THEN
108257 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108258 END IF;
108259
108260 --
108261
108262
108263 --
108264 AcctLineType_55 (
108265 p_application_id => p_application_id
108266 ,p_event_id => l_event_id
108267 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108268 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108269 ,p_actual_flag => l_actual_flag
108270 ,p_balance_type_code => l_balance_type_code
108271 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108272
108273 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108274 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108275 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108276 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108277 , p_source_22 => l_array_source_22(Idx)
108278 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108279 , p_source_51 => l_array_source_51(Idx)
108280 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108281 , p_source_52 => l_array_source_52(Idx)
108282 , p_source_53 => l_array_source_53(Idx)
108283 , p_source_54 => l_array_source_54(Idx)
108284 , p_source_55 => l_array_source_55(Idx)
108285 , p_source_56 => l_array_source_56(Idx)
108286 , p_source_57 => l_array_source_57(Idx)
108287 , p_source_58 => l_array_source_58(Idx)
108288 , p_source_59 => l_array_source_59(Idx)
108289 , p_source_60 => l_array_source_60(Idx)
108290 , p_source_64 => l_array_source_64(Idx)
108291 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108292 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108293 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108294 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108295 , p_source_68 => l_array_source_68(Idx)
108296 , p_source_69 => l_array_source_69(Idx)
108297 , p_source_70 => l_array_source_70(Idx)
108298 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108299 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108300 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108301 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108302 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108303 );
108304 If(l_balance_type_code = 'A') THEN
108305 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108306 END IF;
108307
108308 --
108309
108310
108311 --
108312 AcctLineType_56 (
108313 p_application_id => p_application_id
108314 ,p_event_id => l_event_id
108315 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108316 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108317 ,p_actual_flag => l_actual_flag
108318 ,p_balance_type_code => l_balance_type_code
108319 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108320
108321 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108322 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
108323 , p_source_22 => l_array_source_22(Idx)
108324 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108325 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108326 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108327 , p_source_51 => l_array_source_51(Idx)
108328 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108329 , p_source_52 => l_array_source_52(Idx)
108330 , p_source_53 => l_array_source_53(Idx)
108331 , p_source_54 => l_array_source_54(Idx)
108332 , p_source_55 => l_array_source_55(Idx)
108333 , p_source_56 => l_array_source_56(Idx)
108334 , p_source_57 => l_array_source_57(Idx)
108335 , p_source_58 => l_array_source_58(Idx)
108336 , p_source_59 => l_array_source_59(Idx)
108337 , p_source_60 => l_array_source_60(Idx)
108338 , p_source_64 => l_array_source_64(Idx)
108342 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108339 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108340 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108341 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108343 , p_source_68 => l_array_source_68(Idx)
108344 , p_source_69 => l_array_source_69(Idx)
108345 , p_source_70 => l_array_source_70(Idx)
108346 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108347 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108348 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108349 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
108350 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
108351 );
108352 If(l_balance_type_code = 'A') THEN
108353 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108354 END IF;
108355
108356 --
108357
108358
108359 --
108360 AcctLineType_57 (
108361 p_application_id => p_application_id
108362 ,p_event_id => l_event_id
108363 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108364 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108365 ,p_actual_flag => l_actual_flag
108366 ,p_balance_type_code => l_balance_type_code
108367 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108368
108369 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108370 , p_source_21 => l_array_source_21(Idx)
108371 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108372 , p_source_51 => l_array_source_51(Idx)
108373 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108374 , p_source_52 => l_array_source_52(Idx)
108375 , p_source_53 => l_array_source_53(Idx)
108376 , p_source_54 => l_array_source_54(Idx)
108377 , p_source_55 => l_array_source_55(Idx)
108378 , p_source_56 => l_array_source_56(Idx)
108379 , p_source_57 => l_array_source_57(Idx)
108380 , p_source_58 => l_array_source_58(Idx)
108381 , p_source_59 => l_array_source_59(Idx)
108382 , p_source_60 => l_array_source_60(Idx)
108383 , p_source_64 => l_array_source_64(Idx)
108384 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108385 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108386 , p_source_68 => l_array_source_68(Idx)
108387 , p_source_69 => l_array_source_69(Idx)
108388 , p_source_70 => l_array_source_70(Idx)
108389 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108390 );
108391 If(l_balance_type_code = 'A') THEN
108392 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108393 END IF;
108394
108395 --
108396
108397
108398 --
108399 AcctLineType_58 (
108400 p_application_id => p_application_id
108401 ,p_event_id => l_event_id
108402 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108403 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108404 ,p_actual_flag => l_actual_flag
108405 ,p_balance_type_code => l_balance_type_code
108406 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108407
108408 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108409 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108410 , p_source_51 => l_array_source_51(Idx)
108411 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108412 , p_source_52 => l_array_source_52(Idx)
108413 , p_source_53 => l_array_source_53(Idx)
108414 , p_source_54 => l_array_source_54(Idx)
108415 , p_source_55 => l_array_source_55(Idx)
108416 , p_source_56 => l_array_source_56(Idx)
108417 , p_source_57 => l_array_source_57(Idx)
108418 , p_source_58 => l_array_source_58(Idx)
108419 , p_source_59 => l_array_source_59(Idx)
108420 , p_source_60 => l_array_source_60(Idx)
108421 , p_source_64 => l_array_source_64(Idx)
108422 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108423 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108424 , p_source_68 => l_array_source_68(Idx)
108425 , p_source_69 => l_array_source_69(Idx)
108426 , p_source_70 => l_array_source_70(Idx)
108427 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108428 , p_source_119 => l_array_source_119(Idx)
108429 );
108430 If(l_balance_type_code = 'A') THEN
108431 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108432 END IF;
108433
108434 --
108435
108436
108437 --
108438 AcctLineType_77 (
108439 p_application_id => p_application_id
108440 ,p_event_id => l_event_id
108441 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108442 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108443 ,p_actual_flag => l_actual_flag
108444 ,p_balance_type_code => l_balance_type_code
108445 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108446
108447 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108448 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
108449 , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
108450 , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
108451 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108452 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108453 , p_source_21 => l_array_source_21(Idx)
108454 , p_source_29 => l_array_source_29(Idx)
108455 , p_source_32 => l_array_source_32(Idx)
108456 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108457 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
108458 , p_source_40 => l_array_source_40(Idx)
108459 , p_source_41 => l_array_source_41(Idx)
108460 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108461 , p_source_51 => l_array_source_51(Idx)
108462 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108463 , p_source_52 => l_array_source_52(Idx)
108464 , p_source_53 => l_array_source_53(Idx)
108465 , p_source_54 => l_array_source_54(Idx)
108466 , p_source_55 => l_array_source_55(Idx)
108470 , p_source_59 => l_array_source_59(Idx)
108467 , p_source_56 => l_array_source_56(Idx)
108468 , p_source_57 => l_array_source_57(Idx)
108469 , p_source_58 => l_array_source_58(Idx)
108471 , p_source_60 => l_array_source_60(Idx)
108472 , p_source_64 => l_array_source_64(Idx)
108473 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108474 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108475 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108476 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108477 , p_source_68 => l_array_source_68(Idx)
108478 , p_source_69 => l_array_source_69(Idx)
108479 , p_source_70 => l_array_source_70(Idx)
108480 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
108481 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
108482 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
108483 );
108484 If(l_balance_type_code = 'A') THEN
108485 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108486 END IF;
108487
108488 --
108489
108490
108491 --
108492 AcctLineType_80 (
108493 p_application_id => p_application_id
108494 ,p_event_id => l_event_id
108495 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108496 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108497 ,p_actual_flag => l_actual_flag
108498 ,p_balance_type_code => l_balance_type_code
108499 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108500
108501 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108502 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108503 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108504 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
108505 , p_source_19 => l_array_source_19(Idx)
108506 , p_source_19_meaning => l_array_source_19_meaning(Idx)
108507 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
108508 , p_source_21 => l_array_source_21(Idx)
108509 , p_source_22 => l_array_source_22(Idx)
108510 , p_source_29 => l_array_source_29(Idx)
108511 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
108512 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
108513 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108514 , p_source_51 => l_array_source_51(Idx)
108515 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108516 , p_source_52 => l_array_source_52(Idx)
108517 , p_source_53 => l_array_source_53(Idx)
108518 , p_source_54 => l_array_source_54(Idx)
108519 , p_source_55 => l_array_source_55(Idx)
108520 , p_source_56 => l_array_source_56(Idx)
108521 , p_source_57 => l_array_source_57(Idx)
108522 , p_source_58 => l_array_source_58(Idx)
108523 , p_source_59 => l_array_source_59(Idx)
108524 , p_source_60 => l_array_source_60(Idx)
108525 , p_source_64 => l_array_source_64(Idx)
108526 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108527 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108528 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108529 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108530 , p_source_68 => l_array_source_68(Idx)
108531 , p_source_69 => l_array_source_69(Idx)
108532 , p_source_70 => l_array_source_70(Idx)
108533 , p_source_111 => l_array_source_111(Idx)
108534 , p_source_111_meaning => l_array_source_111_meaning(Idx)
108535 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108536 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108537 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108538 );
108539 If(l_balance_type_code = 'A') THEN
108540 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108541 END IF;
108542
108543 --
108544
108545
108546 --
108547 AcctLineType_87 (
108548 p_application_id => p_application_id
108549 ,p_event_id => l_event_id
108550 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108551 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108552 ,p_actual_flag => l_actual_flag
108553 ,p_balance_type_code => l_balance_type_code
108554 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108555
108556 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108557 , p_source_22 => l_array_source_22(Idx)
108558 , p_source_29 => l_array_source_29(Idx)
108559 , p_source_32 => l_array_source_32(Idx)
108560 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108561 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108562 , p_source_51 => l_array_source_51(Idx)
108563 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108564 , p_source_52 => l_array_source_52(Idx)
108565 , p_source_53 => l_array_source_53(Idx)
108566 , p_source_54 => l_array_source_54(Idx)
108567 , p_source_55 => l_array_source_55(Idx)
108568 , p_source_56 => l_array_source_56(Idx)
108569 , p_source_57 => l_array_source_57(Idx)
108570 , p_source_58 => l_array_source_58(Idx)
108571 , p_source_59 => l_array_source_59(Idx)
108572 , p_source_60 => l_array_source_60(Idx)
108573 , p_source_64 => l_array_source_64(Idx)
108574 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108575 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108576 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108577 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108578 , p_source_68 => l_array_source_68(Idx)
108579 , p_source_69 => l_array_source_69(Idx)
108580 , p_source_70 => l_array_source_70(Idx)
108581 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108582 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108583 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108584 );
108585 If(l_balance_type_code = 'A') THEN
108586 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108587 END IF;
108588
108592 --
108589 --
108590
108591
108593 AcctLineType_95 (
108594 p_application_id => p_application_id
108595 ,p_event_id => l_event_id
108596 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108597 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108598 ,p_actual_flag => l_actual_flag
108599 ,p_balance_type_code => l_balance_type_code
108600 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108601
108602 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108603 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108604 , p_source_29 => l_array_source_29(Idx)
108605 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108606 , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108607 , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108608 , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108609 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108610 , p_source_51 => l_array_source_51(Idx)
108611 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108612 , p_source_52 => l_array_source_52(Idx)
108613 , p_source_53 => l_array_source_53(Idx)
108614 , p_source_54 => l_array_source_54(Idx)
108615 , p_source_55 => l_array_source_55(Idx)
108616 , p_source_56 => l_array_source_56(Idx)
108617 , p_source_57 => l_array_source_57(Idx)
108618 , p_source_58 => l_array_source_58(Idx)
108619 , p_source_59 => l_array_source_59(Idx)
108620 , p_source_60 => l_array_source_60(Idx)
108621 , p_source_64 => l_array_source_64(Idx)
108622 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108623 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108624 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108625 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108626 , p_source_68 => l_array_source_68(Idx)
108627 , p_source_69 => l_array_source_69(Idx)
108628 , p_source_70 => l_array_source_70(Idx)
108629 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108630 , p_source_134 => l_array_source_134(Idx)
108631 );
108632 If(l_balance_type_code = 'A') THEN
108633 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108634 END IF;
108635
108636 --
108637
108638
108639 --
108640 AcctLineType_97 (
108641 p_application_id => p_application_id
108642 ,p_event_id => l_event_id
108643 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108644 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108645 ,p_actual_flag => l_actual_flag
108646 ,p_balance_type_code => l_balance_type_code
108647 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108648
108649 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108650 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108651 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108652 , p_source_29 => l_array_source_29(Idx)
108653 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108654 , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108655 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108656 , p_source_51 => l_array_source_51(Idx)
108657 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108658 , p_source_52 => l_array_source_52(Idx)
108659 , p_source_53 => l_array_source_53(Idx)
108660 , p_source_54 => l_array_source_54(Idx)
108661 , p_source_55 => l_array_source_55(Idx)
108662 , p_source_56 => l_array_source_56(Idx)
108663 , p_source_57 => l_array_source_57(Idx)
108664 , p_source_58 => l_array_source_58(Idx)
108665 , p_source_59 => l_array_source_59(Idx)
108666 , p_source_60 => l_array_source_60(Idx)
108667 , p_source_64 => l_array_source_64(Idx)
108668 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108669 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108670 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108671 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108672 , p_source_68 => l_array_source_68(Idx)
108673 , p_source_69 => l_array_source_69(Idx)
108674 , p_source_70 => l_array_source_70(Idx)
108675 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108676 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108677 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108678 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108679 , p_source_136 => l_array_source_136(Idx)
108680 , p_source_137 => l_array_source_137(Idx)
108681 );
108682 If(l_balance_type_code = 'A') THEN
108683 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108684 END IF;
108685
108686 --
108687
108688
108689 --
108690 AcctLineType_98 (
108691 p_application_id => p_application_id
108692 ,p_event_id => l_event_id
108693 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108694 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108695 ,p_actual_flag => l_actual_flag
108696 ,p_balance_type_code => l_balance_type_code
108697 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108698
108699 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108700 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108701 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108702 , p_source_29 => l_array_source_29(Idx)
108703 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
108704 , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
108705 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108706 , p_source_51 => l_array_source_51(Idx)
108707 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108708 , p_source_52 => l_array_source_52(Idx)
108709 , p_source_53 => l_array_source_53(Idx)
108710 , p_source_54 => l_array_source_54(Idx)
108711 , p_source_55 => l_array_source_55(Idx)
108715 , p_source_59 => l_array_source_59(Idx)
108712 , p_source_56 => l_array_source_56(Idx)
108713 , p_source_57 => l_array_source_57(Idx)
108714 , p_source_58 => l_array_source_58(Idx)
108716 , p_source_60 => l_array_source_60(Idx)
108717 , p_source_64 => l_array_source_64(Idx)
108718 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108719 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108720 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108721 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108722 , p_source_68 => l_array_source_68(Idx)
108723 , p_source_69 => l_array_source_69(Idx)
108724 , p_source_70 => l_array_source_70(Idx)
108725 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108726 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108727 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108728 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108729 , p_source_138 => l_array_source_138(Idx)
108730 , p_source_139 => l_array_source_139(Idx)
108731 );
108732 If(l_balance_type_code = 'A') THEN
108733 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108734 END IF;
108735
108736 --
108737
108738
108739 --
108740 AcctLineType_100 (
108741 p_application_id => p_application_id
108742 ,p_event_id => l_event_id
108743 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108744 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108745 ,p_actual_flag => l_actual_flag
108746 ,p_balance_type_code => l_balance_type_code
108747 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108748
108749 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108750 , p_source_22 => l_array_source_22(Idx)
108751 , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
108752 , p_source_28 => g_array_event(l_event_id).array_value_char('source_28')
108753 , p_source_29 => l_array_source_29(Idx)
108754 , p_source_32 => l_array_source_32(Idx)
108755 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108756 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108757 , p_source_51 => l_array_source_51(Idx)
108758 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108759 , p_source_52 => l_array_source_52(Idx)
108760 , p_source_53 => l_array_source_53(Idx)
108761 , p_source_54 => l_array_source_54(Idx)
108762 , p_source_55 => l_array_source_55(Idx)
108763 , p_source_56 => l_array_source_56(Idx)
108764 , p_source_57 => l_array_source_57(Idx)
108765 , p_source_58 => l_array_source_58(Idx)
108766 , p_source_59 => l_array_source_59(Idx)
108767 , p_source_60 => l_array_source_60(Idx)
108768 , p_source_64 => l_array_source_64(Idx)
108769 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108770 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108771 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108772 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108773 , p_source_68 => l_array_source_68(Idx)
108774 , p_source_69 => l_array_source_69(Idx)
108775 , p_source_70 => l_array_source_70(Idx)
108776 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
108777 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
108778 , p_source_112 => l_array_source_112(Idx)
108779 , p_source_112_meaning => l_array_source_112_meaning(Idx)
108780 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108781 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108782 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108783 );
108784 If(l_balance_type_code = 'A') THEN
108785 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108786 END IF;
108787
108788 --
108789
108790
108791 --
108792 AcctLineType_102 (
108793 p_application_id => p_application_id
108794 ,p_event_id => l_event_id
108795 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108796 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108797 ,p_actual_flag => l_actual_flag
108798 ,p_balance_type_code => l_balance_type_code
108799 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108800
108801 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108802 , p_source_22 => l_array_source_22(Idx)
108803 , p_source_29 => l_array_source_29(Idx)
108804 , p_source_32 => l_array_source_32(Idx)
108805 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108806 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108807 , p_source_51 => l_array_source_51(Idx)
108808 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108809 , p_source_52 => l_array_source_52(Idx)
108810 , p_source_53 => l_array_source_53(Idx)
108811 , p_source_54 => l_array_source_54(Idx)
108812 , p_source_55 => l_array_source_55(Idx)
108813 , p_source_56 => l_array_source_56(Idx)
108814 , p_source_57 => l_array_source_57(Idx)
108815 , p_source_58 => l_array_source_58(Idx)
108816 , p_source_59 => l_array_source_59(Idx)
108817 , p_source_60 => l_array_source_60(Idx)
108818 , p_source_64 => l_array_source_64(Idx)
108819 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108820 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108821 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108822 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108823 , p_source_68 => l_array_source_68(Idx)
108824 , p_source_69 => l_array_source_69(Idx)
108825 , p_source_70 => l_array_source_70(Idx)
108826 , p_source_111 => l_array_source_111(Idx)
108827 , p_source_111_meaning => l_array_source_111_meaning(Idx)
108828 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108829 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108830 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108831 );
108832 If(l_balance_type_code = 'A') THEN
108836 --
108833 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108834 END IF;
108835
108837
108838
108839 --
108840 AcctLineType_107 (
108841 p_application_id => p_application_id
108842 ,p_event_id => l_event_id
108843 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108844 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108845 ,p_actual_flag => l_actual_flag
108846 ,p_balance_type_code => l_balance_type_code
108847 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108848
108849 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108850 , p_source_22 => l_array_source_22(Idx)
108851 , p_source_29 => l_array_source_29(Idx)
108852 , p_source_32 => l_array_source_32(Idx)
108853 , p_source_32_meaning => l_array_source_32_meaning(Idx)
108854 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108855 , p_source_51 => l_array_source_51(Idx)
108856 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108857 , p_source_52 => l_array_source_52(Idx)
108858 , p_source_53 => l_array_source_53(Idx)
108859 , p_source_54 => l_array_source_54(Idx)
108860 , p_source_55 => l_array_source_55(Idx)
108861 , p_source_56 => l_array_source_56(Idx)
108862 , p_source_57 => l_array_source_57(Idx)
108863 , p_source_58 => l_array_source_58(Idx)
108864 , p_source_59 => l_array_source_59(Idx)
108865 , p_source_60 => l_array_source_60(Idx)
108866 , p_source_64 => l_array_source_64(Idx)
108867 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108868 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108869 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108870 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108871 , p_source_68 => l_array_source_68(Idx)
108872 , p_source_69 => l_array_source_69(Idx)
108873 , p_source_70 => l_array_source_70(Idx)
108874 , p_source_111 => l_array_source_111(Idx)
108875 , p_source_111_meaning => l_array_source_111_meaning(Idx)
108876 , p_source_112 => l_array_source_112(Idx)
108877 , p_source_112_meaning => l_array_source_112_meaning(Idx)
108878 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108879 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108880 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108881 );
108882 If(l_balance_type_code = 'A') THEN
108883 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108884 END IF;
108885
108886 --
108887
108888
108889 --
108890 AcctLineType_112 (
108891 p_application_id => p_application_id
108892 ,p_event_id => l_event_id
108893 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108894 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108895 ,p_actual_flag => l_actual_flag
108896 ,p_balance_type_code => l_balance_type_code
108897 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108898
108899 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108900 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108901 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108902 , p_source_29 => l_array_source_29(Idx)
108903 , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108904 , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108905 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108906 , p_source_51 => l_array_source_51(Idx)
108907 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108908 , p_source_52 => l_array_source_52(Idx)
108909 , p_source_53 => l_array_source_53(Idx)
108910 , p_source_54 => l_array_source_54(Idx)
108911 , p_source_55 => l_array_source_55(Idx)
108912 , p_source_56 => l_array_source_56(Idx)
108913 , p_source_57 => l_array_source_57(Idx)
108914 , p_source_58 => l_array_source_58(Idx)
108915 , p_source_59 => l_array_source_59(Idx)
108916 , p_source_60 => l_array_source_60(Idx)
108917 , p_source_64 => l_array_source_64(Idx)
108918 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108919 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108920 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108921 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108922 , p_source_68 => l_array_source_68(Idx)
108923 , p_source_69 => l_array_source_69(Idx)
108924 , p_source_70 => l_array_source_70(Idx)
108925 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108926 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108927 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108928 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108929 , p_source_136 => l_array_source_136(Idx)
108930 , p_source_137 => l_array_source_137(Idx)
108931 );
108932 If(l_balance_type_code = 'A') THEN
108933 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108934 END IF;
108935
108936 --
108937
108938
108939 --
108940 AcctLineType_113 (
108941 p_application_id => p_application_id
108942 ,p_event_id => l_event_id
108943 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108944 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108945 ,p_actual_flag => l_actual_flag
108946 ,p_balance_type_code => l_balance_type_code
108947 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108948
108949 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
108950 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
108951 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
108952 , p_source_29 => l_array_source_29(Idx)
108953 , p_source_46 => g_array_event(l_event_id).array_value_num('source_46')
108954 , p_source_47 => g_array_event(l_event_id).array_value_num('source_47')
108955 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
108956 , p_source_51 => l_array_source_51(Idx)
108957 , p_source_51_meaning => l_array_source_51_meaning(Idx)
108961 , p_source_55 => l_array_source_55(Idx)
108958 , p_source_52 => l_array_source_52(Idx)
108959 , p_source_53 => l_array_source_53(Idx)
108960 , p_source_54 => l_array_source_54(Idx)
108962 , p_source_56 => l_array_source_56(Idx)
108963 , p_source_57 => l_array_source_57(Idx)
108964 , p_source_58 => l_array_source_58(Idx)
108965 , p_source_59 => l_array_source_59(Idx)
108966 , p_source_60 => l_array_source_60(Idx)
108967 , p_source_64 => l_array_source_64(Idx)
108968 , p_source_64_meaning => l_array_source_64_meaning(Idx)
108969 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
108970 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
108971 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
108972 , p_source_68 => l_array_source_68(Idx)
108973 , p_source_69 => l_array_source_69(Idx)
108974 , p_source_70 => l_array_source_70(Idx)
108975 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
108976 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
108977 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
108978 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
108979 , p_source_138 => l_array_source_138(Idx)
108980 , p_source_139 => l_array_source_139(Idx)
108981 );
108982 If(l_balance_type_code = 'A') THEN
108983 l_actual_gain_loss_ref := l_gain_or_loss_ref;
108984 END IF;
108985
108986 --
108987
108988
108989 --
108990 AcctLineType_115 (
108991 p_application_id => p_application_id
108992 ,p_event_id => l_event_id
108993 ,p_calculate_acctd_flag => l_calculate_acctd_flag
108994 ,p_calculate_g_l_flag => l_calculate_g_l_flag
108995 ,p_actual_flag => l_actual_flag
108996 ,p_balance_type_code => l_balance_type_code
108997 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
108998
108999 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109000 , p_source_22 => l_array_source_22(Idx)
109001 , p_source_29 => l_array_source_29(Idx)
109002 , p_source_32 => l_array_source_32(Idx)
109003 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109004 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109005 , p_source_51 => l_array_source_51(Idx)
109006 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109007 , p_source_52 => l_array_source_52(Idx)
109008 , p_source_53 => l_array_source_53(Idx)
109009 , p_source_54 => l_array_source_54(Idx)
109010 , p_source_55 => l_array_source_55(Idx)
109011 , p_source_56 => l_array_source_56(Idx)
109012 , p_source_57 => l_array_source_57(Idx)
109013 , p_source_58 => l_array_source_58(Idx)
109014 , p_source_59 => l_array_source_59(Idx)
109015 , p_source_60 => l_array_source_60(Idx)
109016 , p_source_64 => l_array_source_64(Idx)
109017 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109018 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109019 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109020 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109021 , p_source_68 => l_array_source_68(Idx)
109022 , p_source_69 => l_array_source_69(Idx)
109023 , p_source_70 => l_array_source_70(Idx)
109024 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109025 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109026 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109027 );
109028 If(l_balance_type_code = 'A') THEN
109029 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109030 END IF;
109031
109032 --
109033
109034
109035 --
109036 AcctLineType_120 (
109037 p_application_id => p_application_id
109038 ,p_event_id => l_event_id
109039 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109040 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109041 ,p_actual_flag => l_actual_flag
109042 ,p_balance_type_code => l_balance_type_code
109043 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109044
109045 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109046 , p_source_22 => l_array_source_22(Idx)
109047 , p_source_29 => l_array_source_29(Idx)
109048 , p_source_32 => l_array_source_32(Idx)
109049 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109050 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109051 , p_source_51 => l_array_source_51(Idx)
109052 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109053 , p_source_52 => l_array_source_52(Idx)
109054 , p_source_53 => l_array_source_53(Idx)
109055 , p_source_54 => l_array_source_54(Idx)
109056 , p_source_55 => l_array_source_55(Idx)
109057 , p_source_56 => l_array_source_56(Idx)
109058 , p_source_57 => l_array_source_57(Idx)
109059 , p_source_58 => l_array_source_58(Idx)
109060 , p_source_59 => l_array_source_59(Idx)
109061 , p_source_60 => l_array_source_60(Idx)
109062 , p_source_61 => l_array_source_61(Idx)
109063 , p_source_62 => l_array_source_62(Idx)
109064 , p_source_63 => l_array_source_63(Idx)
109065 , p_source_64 => l_array_source_64(Idx)
109066 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109067 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109068 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109069 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109070 , p_source_68 => l_array_source_68(Idx)
109071 , p_source_69 => l_array_source_69(Idx)
109072 , p_source_70 => l_array_source_70(Idx)
109073 , p_source_111 => l_array_source_111(Idx)
109074 , p_source_111_meaning => l_array_source_111_meaning(Idx)
109075 );
109076 If(l_balance_type_code = 'A') THEN
109077 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109078 END IF;
109079
109080 --
109081
109082
109083 --
109084 AcctLineType_123 (
109085 p_application_id => p_application_id
109086 ,p_event_id => l_event_id
109087 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109091 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109088 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109089 ,p_actual_flag => l_actual_flag
109090 ,p_balance_type_code => l_balance_type_code
109092
109093 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109094 , p_source_22 => l_array_source_22(Idx)
109095 , p_source_29 => l_array_source_29(Idx)
109096 , p_source_32 => l_array_source_32(Idx)
109097 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109098 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109099 , p_source_51 => l_array_source_51(Idx)
109100 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109101 , p_source_52 => l_array_source_52(Idx)
109102 , p_source_53 => l_array_source_53(Idx)
109103 , p_source_54 => l_array_source_54(Idx)
109104 , p_source_55 => l_array_source_55(Idx)
109105 , p_source_56 => l_array_source_56(Idx)
109106 , p_source_57 => l_array_source_57(Idx)
109107 , p_source_58 => l_array_source_58(Idx)
109108 , p_source_59 => l_array_source_59(Idx)
109109 , p_source_60 => l_array_source_60(Idx)
109110 , p_source_64 => l_array_source_64(Idx)
109111 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109112 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109113 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109114 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109115 , p_source_68 => l_array_source_68(Idx)
109116 , p_source_69 => l_array_source_69(Idx)
109117 , p_source_70 => l_array_source_70(Idx)
109118 , p_source_111 => l_array_source_111(Idx)
109119 , p_source_111_meaning => l_array_source_111_meaning(Idx)
109120 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109121 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109122 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109123 );
109124 If(l_balance_type_code = 'A') THEN
109125 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109126 END IF;
109127
109128 --
109129
109130
109131 --
109132 AcctLineType_131 (
109133 p_application_id => p_application_id
109134 ,p_event_id => l_event_id
109135 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109136 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109137 ,p_actual_flag => l_actual_flag
109138 ,p_balance_type_code => l_balance_type_code
109139 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109140
109141 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109142 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109143 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109144 , p_source_21 => l_array_source_21(Idx)
109145 , p_source_29 => l_array_source_29(Idx)
109146 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
109147 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109148 , p_source_51 => l_array_source_51(Idx)
109149 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109150 , p_source_52 => l_array_source_52(Idx)
109151 , p_source_53 => l_array_source_53(Idx)
109152 , p_source_54 => l_array_source_54(Idx)
109153 , p_source_55 => l_array_source_55(Idx)
109154 , p_source_56 => l_array_source_56(Idx)
109155 , p_source_57 => l_array_source_57(Idx)
109156 , p_source_58 => l_array_source_58(Idx)
109157 , p_source_59 => l_array_source_59(Idx)
109158 , p_source_60 => l_array_source_60(Idx)
109159 , p_source_64 => l_array_source_64(Idx)
109160 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109161 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109162 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109163 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109164 , p_source_68 => l_array_source_68(Idx)
109165 , p_source_69 => l_array_source_69(Idx)
109166 , p_source_70 => l_array_source_70(Idx)
109167 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
109168 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
109169 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
109170 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
109171 );
109172 If(l_balance_type_code = 'A') THEN
109173 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109174 END IF;
109175
109176 --
109177
109178
109179 --
109180 AcctLineType_133 (
109181 p_application_id => p_application_id
109182 ,p_event_id => l_event_id
109183 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109184 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109185 ,p_actual_flag => l_actual_flag
109186 ,p_balance_type_code => l_balance_type_code
109187 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109188
109189 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109190 , p_source_22 => l_array_source_22(Idx)
109191 , p_source_29 => l_array_source_29(Idx)
109192 , p_source_32 => l_array_source_32(Idx)
109193 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109194 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109195 , p_source_51 => l_array_source_51(Idx)
109196 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109197 , p_source_52 => l_array_source_52(Idx)
109198 , p_source_53 => l_array_source_53(Idx)
109199 , p_source_54 => l_array_source_54(Idx)
109200 , p_source_55 => l_array_source_55(Idx)
109201 , p_source_56 => l_array_source_56(Idx)
109202 , p_source_57 => l_array_source_57(Idx)
109203 , p_source_58 => l_array_source_58(Idx)
109204 , p_source_59 => l_array_source_59(Idx)
109205 , p_source_60 => l_array_source_60(Idx)
109206 , p_source_64 => l_array_source_64(Idx)
109207 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109208 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109209 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109213 , p_source_70 => l_array_source_70(Idx)
109210 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109211 , p_source_68 => l_array_source_68(Idx)
109212 , p_source_69 => l_array_source_69(Idx)
109214 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
109215 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
109216 , p_source_112 => l_array_source_112(Idx)
109217 , p_source_112_meaning => l_array_source_112_meaning(Idx)
109218 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109219 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109220 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109221 );
109222 If(l_balance_type_code = 'A') THEN
109223 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109224 END IF;
109225
109226 --
109227
109228
109229 --
109230 AcctLineType_138 (
109231 p_application_id => p_application_id
109232 ,p_event_id => l_event_id
109233 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109234 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109235 ,p_actual_flag => l_actual_flag
109236 ,p_balance_type_code => l_balance_type_code
109237 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109238
109239 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109240 , p_source_22 => l_array_source_22(Idx)
109241 , p_source_29 => l_array_source_29(Idx)
109242 , p_source_32 => l_array_source_32(Idx)
109243 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109244 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109245 , p_source_51 => l_array_source_51(Idx)
109246 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109247 , p_source_52 => l_array_source_52(Idx)
109248 , p_source_53 => l_array_source_53(Idx)
109249 , p_source_54 => l_array_source_54(Idx)
109250 , p_source_55 => l_array_source_55(Idx)
109251 , p_source_56 => l_array_source_56(Idx)
109252 , p_source_57 => l_array_source_57(Idx)
109253 , p_source_58 => l_array_source_58(Idx)
109254 , p_source_59 => l_array_source_59(Idx)
109255 , p_source_60 => l_array_source_60(Idx)
109256 , p_source_64 => l_array_source_64(Idx)
109257 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109258 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109259 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109260 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109261 , p_source_68 => l_array_source_68(Idx)
109262 , p_source_69 => l_array_source_69(Idx)
109263 , p_source_70 => l_array_source_70(Idx)
109264 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109265 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109266 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109267 );
109268 If(l_balance_type_code = 'A') THEN
109269 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109270 END IF;
109271
109272 --
109273
109274
109275 --
109276 AcctLineType_141 (
109277 p_application_id => p_application_id
109278 ,p_event_id => l_event_id
109279 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109280 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109281 ,p_actual_flag => l_actual_flag
109282 ,p_balance_type_code => l_balance_type_code
109283 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109284
109285 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109286 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109287 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109288 , p_source_22 => l_array_source_22(Idx)
109289 , p_source_29 => l_array_source_29(Idx)
109290 , p_source_32 => l_array_source_32(Idx)
109291 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109292 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
109293 , p_source_35 => l_array_source_35(Idx)
109294 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109295 , p_source_52 => l_array_source_52(Idx)
109296 , p_source_53 => l_array_source_53(Idx)
109297 , p_source_54 => l_array_source_54(Idx)
109298 , p_source_55 => l_array_source_55(Idx)
109299 , p_source_56 => l_array_source_56(Idx)
109300 , p_source_57 => l_array_source_57(Idx)
109301 , p_source_58 => l_array_source_58(Idx)
109302 , p_source_59 => l_array_source_59(Idx)
109303 , p_source_60 => l_array_source_60(Idx)
109304 , p_source_64 => l_array_source_64(Idx)
109305 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109306 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109307 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109308 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109309 , p_source_68 => l_array_source_68(Idx)
109310 , p_source_69 => l_array_source_69(Idx)
109311 , p_source_70 => l_array_source_70(Idx)
109312 , p_source_112 => l_array_source_112(Idx)
109313 , p_source_112_meaning => l_array_source_112_meaning(Idx)
109314 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109315 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109316 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109317 );
109318 If(l_balance_type_code = 'A') THEN
109319 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109320 END IF;
109321
109322 --
109323
109324
109325 --
109326 AcctLineType_147 (
109327 p_application_id => p_application_id
109328 ,p_event_id => l_event_id
109329 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109330 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109331 ,p_actual_flag => l_actual_flag
109332 ,p_balance_type_code => l_balance_type_code
109333 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109334
109335 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109336 , p_source_22 => l_array_source_22(Idx)
109340 , p_source_52 => l_array_source_52(Idx)
109337 , p_source_32 => l_array_source_32(Idx)
109338 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109339 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109341 , p_source_53 => l_array_source_53(Idx)
109342 , p_source_54 => l_array_source_54(Idx)
109343 , p_source_55 => l_array_source_55(Idx)
109344 , p_source_56 => l_array_source_56(Idx)
109345 , p_source_59 => l_array_source_59(Idx)
109346 , p_source_60 => l_array_source_60(Idx)
109347 , p_source_64 => l_array_source_64(Idx)
109348 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109349 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109350 , p_source_68 => l_array_source_68(Idx)
109351 , p_source_69 => l_array_source_69(Idx)
109352 , p_source_70 => l_array_source_70(Idx)
109353 , p_source_112 => l_array_source_112(Idx)
109354 , p_source_112_meaning => l_array_source_112_meaning(Idx)
109355 , p_source_151 => l_array_source_151(Idx)
109356 , p_source_152 => l_array_source_152(Idx)
109357 );
109358 If(l_balance_type_code = 'A') THEN
109359 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109360 END IF;
109361
109362 --
109363
109364
109365 --
109366 AcctLineType_149 (
109367 p_application_id => p_application_id
109368 ,p_event_id => l_event_id
109369 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109370 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109371 ,p_actual_flag => l_actual_flag
109372 ,p_balance_type_code => l_balance_type_code
109373 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109374
109375 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109376 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109377 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109378 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
109379 , p_source_19 => l_array_source_19(Idx)
109380 , p_source_19_meaning => l_array_source_19_meaning(Idx)
109381 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
109382 , p_source_21 => l_array_source_21(Idx)
109383 , p_source_22 => l_array_source_22(Idx)
109384 , p_source_29 => l_array_source_29(Idx)
109385 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
109386 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
109387 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109388 , p_source_51 => l_array_source_51(Idx)
109389 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109390 , p_source_52 => l_array_source_52(Idx)
109391 , p_source_53 => l_array_source_53(Idx)
109392 , p_source_54 => l_array_source_54(Idx)
109393 , p_source_55 => l_array_source_55(Idx)
109394 , p_source_56 => l_array_source_56(Idx)
109395 , p_source_57 => l_array_source_57(Idx)
109396 , p_source_58 => l_array_source_58(Idx)
109397 , p_source_59 => l_array_source_59(Idx)
109398 , p_source_60 => l_array_source_60(Idx)
109399 , p_source_64 => l_array_source_64(Idx)
109400 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109401 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109402 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109403 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109404 , p_source_68 => l_array_source_68(Idx)
109405 , p_source_69 => l_array_source_69(Idx)
109406 , p_source_70 => l_array_source_70(Idx)
109407 , p_source_111 => l_array_source_111(Idx)
109408 , p_source_111_meaning => l_array_source_111_meaning(Idx)
109409 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109410 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109411 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109412 );
109413 If(l_balance_type_code = 'A') THEN
109414 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109415 END IF;
109416
109417 --
109418
109419
109420 --
109421 AcctLineType_152 (
109422 p_application_id => p_application_id
109423 ,p_event_id => l_event_id
109424 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109425 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109426 ,p_actual_flag => l_actual_flag
109427 ,p_balance_type_code => l_balance_type_code
109428 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109429
109430 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109431 , p_source_22 => l_array_source_22(Idx)
109432 , p_source_29 => l_array_source_29(Idx)
109433 , p_source_32 => l_array_source_32(Idx)
109434 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109435 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109436 , p_source_51 => l_array_source_51(Idx)
109437 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109438 , p_source_52 => l_array_source_52(Idx)
109439 , p_source_53 => l_array_source_53(Idx)
109440 , p_source_54 => l_array_source_54(Idx)
109441 , p_source_55 => l_array_source_55(Idx)
109442 , p_source_56 => l_array_source_56(Idx)
109443 , p_source_57 => l_array_source_57(Idx)
109444 , p_source_58 => l_array_source_58(Idx)
109445 , p_source_59 => l_array_source_59(Idx)
109446 , p_source_60 => l_array_source_60(Idx)
109447 , p_source_64 => l_array_source_64(Idx)
109448 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109449 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109450 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109451 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109452 , p_source_68 => l_array_source_68(Idx)
109453 , p_source_69 => l_array_source_69(Idx)
109454 , p_source_70 => l_array_source_70(Idx)
109455 , p_source_111 => l_array_source_111(Idx)
109456 , p_source_111_meaning => l_array_source_111_meaning(Idx)
109457 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109458 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109462 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109459 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109460 );
109461 If(l_balance_type_code = 'A') THEN
109463 END IF;
109464
109465 --
109466
109467
109468 --
109469 AcctLineType_155 (
109470 p_application_id => p_application_id
109471 ,p_event_id => l_event_id
109472 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109473 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109474 ,p_actual_flag => l_actual_flag
109475 ,p_balance_type_code => l_balance_type_code
109476 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109477
109478 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
109479 , p_source_22 => l_array_source_22(Idx)
109480 , p_source_29 => l_array_source_29(Idx)
109481 , p_source_32 => l_array_source_32(Idx)
109482 , p_source_32_meaning => l_array_source_32_meaning(Idx)
109483 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109484 , p_source_51 => l_array_source_51(Idx)
109485 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109486 , p_source_52 => l_array_source_52(Idx)
109487 , p_source_53 => l_array_source_53(Idx)
109488 , p_source_54 => l_array_source_54(Idx)
109489 , p_source_55 => l_array_source_55(Idx)
109490 , p_source_56 => l_array_source_56(Idx)
109491 , p_source_57 => l_array_source_57(Idx)
109492 , p_source_58 => l_array_source_58(Idx)
109493 , p_source_59 => l_array_source_59(Idx)
109494 , p_source_60 => l_array_source_60(Idx)
109495 , p_source_64 => l_array_source_64(Idx)
109496 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109497 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109498 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109499 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109500 , p_source_68 => l_array_source_68(Idx)
109501 , p_source_69 => l_array_source_69(Idx)
109502 , p_source_70 => l_array_source_70(Idx)
109503 , p_source_111 => l_array_source_111(Idx)
109504 , p_source_111_meaning => l_array_source_111_meaning(Idx)
109505 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109506 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109507 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109508 );
109509 If(l_balance_type_code = 'A') THEN
109510 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109511 END IF;
109512
109513 --
109514
109515
109516 --
109517 AcctLineType_164 (
109518 p_application_id => p_application_id
109519 ,p_event_id => l_event_id
109520 ,p_calculate_acctd_flag => l_calculate_acctd_flag
109521 ,p_calculate_g_l_flag => l_calculate_g_l_flag
109522 ,p_actual_flag => l_actual_flag
109523 ,p_balance_type_code => l_balance_type_code
109524 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
109525
109526 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
109527 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
109528 , p_source_22 => l_array_source_22(Idx)
109529 , p_source_29 => l_array_source_29(Idx)
109530 , p_source_36 => l_array_source_36(Idx)
109531 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
109532 , p_source_51 => l_array_source_51(Idx)
109533 , p_source_51_meaning => l_array_source_51_meaning(Idx)
109534 , p_source_52 => l_array_source_52(Idx)
109535 , p_source_53 => l_array_source_53(Idx)
109536 , p_source_54 => l_array_source_54(Idx)
109537 , p_source_55 => l_array_source_55(Idx)
109538 , p_source_56 => l_array_source_56(Idx)
109539 , p_source_57 => l_array_source_57(Idx)
109540 , p_source_58 => l_array_source_58(Idx)
109541 , p_source_59 => l_array_source_59(Idx)
109542 , p_source_60 => l_array_source_60(Idx)
109543 , p_source_64 => l_array_source_64(Idx)
109544 , p_source_64_meaning => l_array_source_64_meaning(Idx)
109545 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
109546 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
109547 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
109548 , p_source_68 => l_array_source_68(Idx)
109549 , p_source_69 => l_array_source_69(Idx)
109550 , p_source_70 => l_array_source_70(Idx)
109551 , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
109552 , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
109553 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
109554 , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
109555 , p_source_155 => l_array_source_155(Idx)
109556 , p_source_155_meaning => l_array_source_155_meaning(Idx)
109557 );
109558 If(l_balance_type_code = 'A') THEN
109559 l_actual_gain_loss_ref := l_gain_or_loss_ref;
109560 END IF;
109561
109562 --
109563
109564 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
109565 -- or secondary ledger that has different currency with primary
109566 -- or alc that is calculated by sla
109567 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
109568 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y'))
109569
109570 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
109571 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
109572 AND (l_actual_flag = 'A')) THEN
109573 XLA_AE_LINES_PKG.CreateGainOrLossLines(
109574 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
109575 ,p_application_id => p_application_id
109576 ,p_amb_context_code => 'DEFAULT'
109577 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
109578 ,p_event_class_code => C_EVENT_CLASS_CODE
109582 ,p_loss_ccid => -1
109579 ,p_event_type_code => C_EVENT_TYPE_CODE
109580
109581 ,p_gain_ccid => -1
109583
109584 ,p_actual_flag => l_actual_flag
109585 ,p_enc_flag => null
109586 ,p_actual_g_l_ref => l_actual_gain_loss_ref
109587 ,p_enc_g_l_ref => null
109588 );
109589 END IF;
109590 END IF;
109591 END IF;
109592
109593 ELSE
109594 --
109595 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
109596 --
109597 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109598 trace
109599 (p_msg => 'Trancaction revesal option is Y'
109600 ,p_level => C_LEVEL_STATEMENT
109601 ,p_module => l_log_module);
109602 END IF;
109603 END IF;
109604
109605 END LOOP;
109606 l_result := XLA_AE_LINES_PKG.InsertLines ;
109607 end loop;
109608 close line_cur;
109609
109610
109611 --
109612 -- insert headers into xla_ae_headers_gt table
109613 --
109614 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
109615
109616 -- insert into errors table here.
109617
109618 END LOOP;
109619
109620 --
109621 -- 4865292
109622 --
109623 -- Compare g_hdr_extract_count with event count in
109624 -- CreateHeadersAndLines.
109625 --
109626 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
109627
109628 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109629 trace (p_msg => '# rows extracted from header extract objects '
109630 || ' (running total): '
109631 || g_hdr_extract_count
109632 ,p_level => C_LEVEL_STATEMENT
109633 ,p_module => l_log_module);
109634 END IF;
109635
109636 CLOSE header_cur;
109637 --
109638
109639 --
109640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109641 trace
109642 (p_msg => 'END of EventClass_169'
109643 ,p_level => C_LEVEL_PROCEDURE
109644 ,p_module => l_log_module);
109645 END IF;
109646 --
109647 RETURN l_result;
109648 EXCEPTION
109649 WHEN xla_exceptions_pkg.application_exception THEN
109650
109651 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
109652
109653
109654 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
109655
109656 RAISE;
109657
109658 WHEN NO_DATA_FOUND THEN
109659
109660 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
109661 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
109662
109663 FOR header_record IN header_cur
109664 LOOP
109665 l_array_header_events(header_record.event_id) := header_record.event_id;
109666 END LOOP;
109667
109668 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
109669 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
109670
109671 fnd_file.put_line(fnd_file.LOG, ' ');
109672 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
109673 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
109674 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
109675
109676 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
109677 LOOP
109678 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
109679 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
109680 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
109681 END IF;
109682 END LOOP;
109683
109684 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
109685 fnd_file.put_line(fnd_file.LOG, ' ');
109686
109687
109688 xla_exceptions_pkg.raise_message
109689 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_169');
109690
109691
109692 WHEN OTHERS THEN
109693 xla_exceptions_pkg.raise_message
109694 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_169');
109695 END EventClass_169;
109696 --
109697
109698 ---------------------------------------
109699 --
109700 -- PRIVATE PROCEDURE
109701 -- insert_sources_170
109702 --
109703 ----------------------------------------
109704 --
109705 PROCEDURE insert_sources_170(
109706 p_target_ledger_id IN NUMBER
109707 , p_language IN VARCHAR2
109708 , p_sla_ledger_id IN NUMBER
109709 , p_pad_start_date IN DATE
109710 , p_pad_end_date IN DATE
109711 )
109712 IS
109713
109714 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REFUNDS_ALL';
109715 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REFUNDS';
109716 p_apps_owner VARCHAR2(30);
109717 l_log_module VARCHAR2(240);
109718 BEGIN
109719 IF g_log_enabled THEN
109720 l_log_module := C_DEFAULT_MODULE||'.insert_sources_170';
109721 END IF;
109722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109723
109724 trace
109725 (p_msg => 'BEGIN of insert_sources_170'
109726 ,p_level => C_LEVEL_PROCEDURE
109727 ,p_module => l_log_module);
109728
109729 END IF;
109730
109731 -- select APPS owner
109732 SELECT oracle_username
109733 INTO p_apps_owner
109734 FROM fnd_oracle_userid
109735 WHERE read_only_flag = 'U'
109736 ;
109737
109738 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
109739 trace
109740 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
109744 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
109741 ' - p_language = '||p_language||
109742 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
109743 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
109745 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
109746 ,p_level => C_LEVEL_STATEMENT
109747 ,p_module => l_log_module);
109748 END IF;
109749
109750
109751 --
109752 INSERT INTO xla_diag_sources --hdr2
109753 (
109754 event_id
109755 , ledger_id
109756 , sla_ledger_id
109757 , description_language
109758 , object_name
109759 , object_type_code
109760 , line_number
109761 , source_application_id
109762 , source_type_code
109763 , source_code
109764 , source_value
109765 , source_meaning
109766 , created_by
109767 , creation_date
109768 , last_update_date
109769 , last_updated_by
109770 , last_update_login
109771 , program_update_date
109772 , program_application_id
109773 , program_id
109774 , request_id
109775 )
109776 SELECT
109777 event_id
109778 , p_target_ledger_id
109779 , p_sla_ledger_id
109780 , p_language
109781 , object_name
109782 , object_type_code
109783 , line_number
109784 , source_application_id
109785 , source_type_code
109786 , source_code
109787 , SUBSTR(source_value ,1,1996)
109788 , SUBSTR(source_meaning ,1,200)
109789 , xla_environment_pkg.g_Usr_Id
109790 , TRUNC(SYSDATE)
109791 , TRUNC(SYSDATE)
109792 , xla_environment_pkg.g_Usr_Id
109793 , xla_environment_pkg.g_Login_Id
109794 , TRUNC(SYSDATE)
109795 , xla_environment_pkg.g_Prog_Appl_Id
109796 , xla_environment_pkg.g_Prog_Id
109797 , xla_environment_pkg.g_Req_Id
109798 FROM (
109799 SELECT xet.event_id event_id
109800 , 0 line_number
109801 , CASE r
109802 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109803 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109804 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109805 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109806 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109807 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109808 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109809 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109810 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109811 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109812 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109813 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109814 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109815 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109816 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109817 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
109818 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109819 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109820 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109821 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109822 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109823 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109824 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109825 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109826 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109827 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109828 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109829 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V'
109830
109831 ELSE null
109832 END object_name
109833 , CASE r
109834 WHEN 1 THEN 'HEADER'
109835 WHEN 2 THEN 'HEADER'
109836 WHEN 3 THEN 'HEADER'
109837 WHEN 4 THEN 'HEADER'
109838 WHEN 5 THEN 'HEADER'
109839 WHEN 6 THEN 'HEADER'
109840 WHEN 7 THEN 'HEADER'
109841 WHEN 8 THEN 'HEADER'
109842 WHEN 9 THEN 'HEADER'
109843 WHEN 10 THEN 'HEADER'
109844 WHEN 11 THEN 'HEADER'
109845 WHEN 12 THEN 'HEADER'
109846 WHEN 13 THEN 'HEADER'
109847 WHEN 14 THEN 'HEADER'
109848 WHEN 15 THEN 'HEADER'
109849 WHEN 16 THEN 'HEADER'
109850 WHEN 17 THEN 'HEADER'
109851 WHEN 18 THEN 'HEADER'
109852 WHEN 19 THEN 'HEADER'
109853 WHEN 20 THEN 'HEADER'
109854 WHEN 21 THEN 'HEADER'
109855 WHEN 22 THEN 'HEADER'
109856 WHEN 23 THEN 'HEADER'
109857 WHEN 24 THEN 'HEADER'
109858 WHEN 25 THEN 'HEADER'
109859 WHEN 26 THEN 'HEADER'
109860 WHEN 27 THEN 'HEADER'
109861 WHEN 28 THEN 'HEADER'
109862
109863 ELSE null
109864 END object_type_code
109865 , CASE r
109866 WHEN 1 THEN '200'
109867 WHEN 2 THEN '200'
109868 WHEN 3 THEN '200'
109869 WHEN 4 THEN '200'
109870 WHEN 5 THEN '200'
109871 WHEN 6 THEN '200'
109872 WHEN 7 THEN '200'
109873 WHEN 8 THEN '200'
109874 WHEN 9 THEN '200'
109875 WHEN 10 THEN '200'
109876 WHEN 11 THEN '200'
109880 WHEN 15 THEN '200'
109877 WHEN 12 THEN '200'
109878 WHEN 13 THEN '200'
109879 WHEN 14 THEN '200'
109881 WHEN 16 THEN '200'
109882 WHEN 17 THEN '200'
109883 WHEN 18 THEN '200'
109884 WHEN 19 THEN '200'
109885 WHEN 20 THEN '200'
109886 WHEN 21 THEN '200'
109887 WHEN 22 THEN '200'
109888 WHEN 23 THEN '200'
109889 WHEN 24 THEN '200'
109890 WHEN 25 THEN '200'
109891 WHEN 26 THEN '200'
109892 WHEN 27 THEN '200'
109893 WHEN 28 THEN '200'
109894
109895 ELSE null
109896 END source_application_id
109897 , 'S' source_type_code
109898 , CASE r
109899 WHEN 1 THEN 'DOC_SEQUENCE_NAME'
109900 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE'
109901 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER'
109902 WHEN 4 THEN 'AC_CHECK_DATE'
109903 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME'
109904 WHEN 6 THEN 'AC_CURRENCY_CODE'
109905 WHEN 7 THEN 'CGAC_AP_ASSET_CCID'
109906 WHEN 8 THEN 'FSP_DISC_TAKEN_CCID'
109907 WHEN 9 THEN 'ASP_DISCOUNT_DIST_METHOD'
109908 WHEN 10 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE'
109909 WHEN 11 THEN 'ASP_RATE_VAR_GAIN_CCID'
109910 WHEN 12 THEN 'ASP_RATE_VAR_LOSS_CCID'
109911 WHEN 13 THEN 'CGAC_CASH_CLEARING_CCID'
109912 WHEN 14 THEN 'ASP_DISC_TAKEN_CCID'
109913 WHEN 15 THEN 'ASP_AUTO_OFFSET_FLAG'
109914 WHEN 16 THEN 'ASP_WHEN_TO_ACCOUNT_PMT'
109915 WHEN 17 THEN 'AC_VENDOR_ID'
109916 WHEN 18 THEN 'AC_VENDOR_SITE_ID'
109917 WHEN 19 THEN 'THIRD_PARTY_TYPE'
109918 WHEN 20 THEN 'PAYMENT_TYPE'
109919 WHEN 21 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG'
109920 WHEN 22 THEN 'AC_FUTURE_PAY_DUE_DATE'
109921 WHEN 23 THEN 'AC_EXCHANGE_DATE'
109922 WHEN 24 THEN 'AC_EXCHANGE_RATE'
109923 WHEN 25 THEN 'AC_EXCHANGE_RATE_TYPE'
109924 WHEN 26 THEN 'AC_DOC_CATEGORY_CODE'
109925 WHEN 27 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID'
109926 WHEN 28 THEN 'TRANSAC_REVERSAL_FLAG'
109927
109928 ELSE null
109929 END source_code
109930 , CASE r
109931 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
109932 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
109933 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
109934 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
109935 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
109936 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
109937 WHEN 7 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
109938 WHEN 8 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
109939 WHEN 9 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
109940 WHEN 10 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
109941 WHEN 11 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
109942 WHEN 12 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
109943 WHEN 13 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
109944 WHEN 14 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
109945 WHEN 15 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
109946 WHEN 16 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
109947 WHEN 17 THEN TO_CHAR(h2.AC_VENDOR_ID)
109948 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
109949 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
109950 WHEN 20 THEN TO_CHAR(h2.PAYMENT_TYPE)
109951 WHEN 21 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
109952 WHEN 22 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
109953 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
109954 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
109955 WHEN 25 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
109956 WHEN 26 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
109957 WHEN 27 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
109958 WHEN 28 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
109959
109960 ELSE null
109961 END source_value
109962 , CASE r
109963 WHEN 9 THEN fvl15.meaning
109964 WHEN 10 THEN fvl16.meaning
109965 WHEN 15 THEN fvl42.meaning
109966 WHEN 20 THEN fvl71.meaning
109967 WHEN 21 THEN fvl117.meaning
109968 WHEN 28 THEN fvl159.meaning
109969
109970 ELSE null
109971 END source_meaning
109972 FROM xla_events_gt xet
109973 , AP_PAYMENT_EXTRACT_HEADER_V h2
109974 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
109975 , fnd_lookup_values fvl15
109976 , fnd_lookup_values fvl16
109977 , fnd_lookup_values fvl42
109978 , fnd_lookup_values fvl71
109979 , fnd_lookup_values fvl117
109980 , fnd_lookup_values fvl159
109981 ,(select rownum r from all_objects where rownum <= 28 and owner = p_apps_owner)
109982 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
109983 AND xet.event_class_code = C_EVENT_CLASS_CODE
109984 AND h2.event_id = xet.event_id
109985 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
109986 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
109987 AND fvl15.view_application_id(+) = 200
109988 AND fvl15.language(+) = USERENV('LANG')
109989 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
109993 AND fvl42.lookup_type(+) = 'YES_NO'
109990 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
109991 AND fvl16.view_application_id(+) = 200
109992 AND fvl16.language(+) = USERENV('LANG')
109994 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
109995 AND fvl42.view_application_id(+) = 0
109996 AND fvl42.language(+) = USERENV('LANG')
109997 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
109998 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
109999 AND fvl71.view_application_id(+) = 200
110000 AND fvl71.language(+) = USERENV('LANG')
110001 AND fvl117.lookup_type(+) = 'YES_NO'
110002 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
110003 AND fvl117.view_application_id(+) = 0
110004 AND fvl117.language(+) = USERENV('LANG')
110005 AND fvl159.lookup_type(+) = 'YES_NO'
110006 AND fvl159.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
110007 AND fvl159.view_application_id(+) = 0
110008 AND fvl159.language(+) = USERENV('LANG')
110009
110010 )
110011 ;
110012 --
110013 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110014
110015 trace
110016 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
110017 ,p_level => C_LEVEL_STATEMENT
110018 ,p_module => l_log_module);
110019
110020 END IF;
110021 --
110022
110023
110024
110025 --
110026 INSERT INTO xla_diag_sources --line2
110027 (
110028 event_id
110029 , ledger_id
110030 , sla_ledger_id
110031 , description_language
110032 , object_name
110033 , object_type_code
110034 , line_number
110035 , source_application_id
110036 , source_type_code
110037 , source_code
110038 , source_value
110039 , source_meaning
110040 , created_by
110041 , creation_date
110042 , last_update_date
110043 , last_updated_by
110044 , last_update_login
110045 , program_update_date
110046 , program_application_id
110047 , program_id
110048 , request_id
110049 )
110050 SELECT event_id
110051 , p_target_ledger_id
110052 , p_sla_ledger_id
110053 , p_language
110054 , object_name
110055 , object_type_code
110056 , line_number
110057 , source_application_id
110058 , source_type_code
110059 , source_code
110060 , SUBSTR(source_value,1,1996)
110061 , SUBSTR(source_meaning ,1,200)
110062 , xla_environment_pkg.g_Usr_Id
110063 , TRUNC(SYSDATE)
110064 , TRUNC(SYSDATE)
110065 , xla_environment_pkg.g_Usr_Id
110066 , xla_environment_pkg.g_Login_Id
110067 , TRUNC(SYSDATE)
110068 , xla_environment_pkg.g_Prog_Appl_Id
110069 , xla_environment_pkg.g_Prog_Id
110070 , xla_environment_pkg.g_Req_Id
110071 FROM (
110072 SELECT xet.event_id event_id
110073 , l1.line_number line_number
110074 , CASE r
110075 WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110076 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110077 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110078 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110079 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110080 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110081 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110082 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110083 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110084 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110085 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110086 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110087 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110088 WHEN 14 THEN 'AP_PO_HEADERS_EXTRACT_V'
110089 WHEN 15 THEN 'AP_PO_HEADERS_EXTRACT_V'
110090 WHEN 16 THEN 'AP_PO_HEADERS_EXTRACT_V'
110091 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110092 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110093 WHEN 19 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
110094 WHEN 20 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
110095 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110096 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110097 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110098 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110099 WHEN 25 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
110100 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V'
110101
110102 ELSE null
110103 END object_name
110104 , CASE r
110105 WHEN 1 THEN 'LINE'
110106 WHEN 2 THEN 'LINE'
110107 WHEN 3 THEN 'LINE'
110108 WHEN 4 THEN 'LINE'
110109 WHEN 5 THEN 'LINE'
110110 WHEN 6 THEN 'LINE'
110111 WHEN 7 THEN 'LINE'
110112 WHEN 8 THEN 'LINE'
110113 WHEN 9 THEN 'LINE'
110114 WHEN 10 THEN 'LINE'
110115 WHEN 11 THEN 'LINE'
110116 WHEN 12 THEN 'LINE'
110117 WHEN 13 THEN 'LINE'
110118 WHEN 14 THEN 'LINE'
110119 WHEN 15 THEN 'LINE'
110120 WHEN 16 THEN 'LINE'
110121 WHEN 17 THEN 'LINE'
110122 WHEN 18 THEN 'LINE'
110123 WHEN 19 THEN 'LINE'
110124 WHEN 20 THEN 'LINE'
110125 WHEN 21 THEN 'LINE'
110126 WHEN 22 THEN 'LINE'
110127 WHEN 23 THEN 'LINE'
110128 WHEN 24 THEN 'LINE'
110132 ELSE null
110129 WHEN 25 THEN 'LINE'
110130 WHEN 26 THEN 'LINE'
110131
110133 END object_type_code
110134 , CASE r
110135 WHEN 1 THEN '200'
110136 WHEN 2 THEN '200'
110137 WHEN 3 THEN '200'
110138 WHEN 4 THEN '200'
110139 WHEN 5 THEN '200'
110140 WHEN 6 THEN '200'
110141 WHEN 7 THEN '200'
110142 WHEN 8 THEN '200'
110143 WHEN 9 THEN '200'
110144 WHEN 10 THEN '200'
110145 WHEN 11 THEN '200'
110146 WHEN 12 THEN '200'
110147 WHEN 13 THEN '200'
110148 WHEN 14 THEN '200'
110149 WHEN 15 THEN '200'
110150 WHEN 16 THEN '200'
110151 WHEN 17 THEN '200'
110152 WHEN 18 THEN '200'
110153 WHEN 19 THEN '200'
110154 WHEN 20 THEN '200'
110155 WHEN 21 THEN '200'
110156 WHEN 22 THEN '200'
110157 WHEN 23 THEN '200'
110158 WHEN 24 THEN '200'
110159 WHEN 25 THEN '200'
110160 WHEN 26 THEN '200'
110161
110162 ELSE null
110163 END source_application_id
110164 , 'S' source_type_code
110165 , CASE r
110166 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE'
110167 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT'
110168 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT'
110169 WHEN 4 THEN 'AID_DIST_CCID'
110170 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
110171 WHEN 6 THEN 'POD_CCID'
110172 WHEN 7 THEN 'PO_VARIANCE_ACCOUNT'
110173 WHEN 8 THEN 'APHD_PAY_DIST_LOOKUP_CODE'
110174 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
110175 WHEN 10 THEN 'APHD_AMOUNT'
110176 WHEN 11 THEN 'BUS_FLOW_AP_APP_ID'
110177 WHEN 12 THEN 'APHD_PAYMENT_HIST_DIST_ID'
110178 WHEN 13 THEN 'DISTRIBUTION_LINK_TYPE'
110179 WHEN 14 THEN 'POH_RATE_DATE'
110180 WHEN 15 THEN 'POH_RATE'
110181 WHEN 16 THEN 'POH_RATE_TYPE'
110182 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
110183 WHEN 18 THEN 'APHD_REV_PAY_HIST_DIST_ID'
110184 WHEN 19 THEN 'TAX_LINE_ID'
110185 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID'
110186 WHEN 21 THEN 'BUS_FLOW_INV_DIST_TYPE'
110187 WHEN 22 THEN 'BUS_FLOW_INV_ENTITY_CODE'
110188 WHEN 23 THEN 'BUS_FLOW_INV_DIST_ID'
110189 WHEN 24 THEN 'BUS_FLOW_INV_ID'
110190 WHEN 25 THEN 'REC_NREC_TAX_DIST_ID'
110191 WHEN 26 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
110192
110193 ELSE null
110194 END source_code
110195 , CASE r
110196 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
110197 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
110198 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
110199 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
110200 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
110201 WHEN 6 THEN TO_CHAR(l1.POD_CCID)
110202 WHEN 7 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
110203 WHEN 8 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
110204 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
110205 WHEN 10 THEN TO_CHAR(l1.APHD_AMOUNT)
110206 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
110207 WHEN 12 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
110208 WHEN 13 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
110209 WHEN 14 THEN TO_CHAR(l3.POH_RATE_DATE)
110210 WHEN 15 THEN TO_CHAR(l3.POH_RATE)
110211 WHEN 16 THEN TO_CHAR(l3.POH_RATE_TYPE)
110212 WHEN 17 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
110213 WHEN 18 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
110214 WHEN 19 THEN TO_CHAR(l5.TAX_LINE_ID)
110215 WHEN 20 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
110216 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
110217 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
110218 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
110219 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
110220 WHEN 25 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
110221 WHEN 26 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
110222
110223 ELSE null
110224 END source_value
110225 , CASE r
110226 WHEN 1 THEN fvl19.meaning
110227 WHEN 5 THEN fvl32.meaning
110228 WHEN 8 THEN fvl51.meaning
110229 WHEN 17 THEN fvl64.meaning
110230 WHEN 26 THEN fvl111.meaning
110231
110232 ELSE null
110233 END source_meaning
110234 FROM xla_events_gt xet
110235 , AP_PAYMENT_EXTRACT_DETAILS_V l1
110236 , AP_PO_HEADERS_EXTRACT_V l3
110237 , ZX_AP_DEF_TAX_EXTRACT_V l5
110238 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
110239 , fnd_lookup_values fvl19
110240 , fnd_lookup_values fvl32
110241 , fnd_lookup_values fvl51
110242 , fnd_lookup_values fvl64
110243 , fnd_lookup_values fvl111
110244 , (select rownum r from all_objects where rownum <= 26 and owner = p_apps_owner)
110245 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
110246 AND xet.event_class_code = C_EVENT_CLASS_CODE
110250 AND fvl19.view_application_id(+) = 201
110247 AND l1.event_id = xet.event_id
110248 AND l1.pod_po_header_id = l3.po_header_id (+) AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
110249 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
110251 AND fvl19.language(+) = USERENV('LANG')
110252 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
110253 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
110254 AND fvl32.view_application_id(+) = 200
110255 AND fvl32.language(+) = USERENV('LANG')
110256 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
110257 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
110258 AND fvl51.view_application_id(+) = 200
110259 AND fvl51.language(+) = USERENV('LANG')
110260 AND fvl64.lookup_type(+) = 'YES_NO'
110261 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
110262 AND fvl64.view_application_id(+) = 0
110263 AND fvl64.language(+) = USERENV('LANG')
110264 AND fvl111.lookup_type(+) = 'YES_NO'
110265 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
110266 AND fvl111.view_application_id(+) = 0
110267 AND fvl111.language(+) = USERENV('LANG')
110268
110269 )
110270 ;
110271 --
110272 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110273
110274 trace
110275 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
110276 ,p_level => C_LEVEL_STATEMENT
110277 ,p_module => l_log_module);
110278
110279 END IF;
110280
110281
110282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110283 trace
110284 (p_msg => 'END of insert_sources_170'
110285 ,p_level => C_LEVEL_PROCEDURE
110286 ,p_module => l_log_module);
110287 END IF;
110288 EXCEPTION
110289 WHEN xla_exceptions_pkg.application_exception THEN
110290 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
110291 trace
110292 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
110293 ,p_level => C_LEVEL_EXCEPTION
110294 ,p_module => l_log_module);
110295 END IF;
110296 RAISE;
110297 WHEN OTHERS THEN
110298 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
110299 trace
110300 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
110301 ,p_level => C_LEVEL_EXCEPTION
110302 ,p_module => l_log_module);
110303 END IF;
110304 xla_exceptions_pkg.raise_message
110305 (p_location => 'XLA_00200_AAD_S_000011_PKG.insert_sources_170');
110306 END insert_sources_170;
110307 --
110308
110309 ---------------------------------------
110310 --
110311 -- PRIVATE FUNCTION
110312 -- EventClass_170
110313 --
110314 ----------------------------------------
110315 --
110316 FUNCTION EventClass_170
110317 (p_application_id IN NUMBER
110318 ,p_base_ledger_id IN NUMBER
110319 ,p_target_ledger_id IN NUMBER
110320 ,p_language IN VARCHAR2
110321 ,p_currency_code IN VARCHAR2
110322 ,p_sla_ledger_id IN NUMBER
110323 ,p_pad_start_date IN DATE
110324 ,p_pad_end_date IN DATE
110325 ,p_primary_ledger_id IN NUMBER)
110326 RETURN BOOLEAN IS
110327 --
110328 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REFUNDS_ALL';
110329 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REFUNDS';
110330
110331 l_calculate_acctd_flag VARCHAR2(1) :='N';
110332 l_calculate_g_l_flag VARCHAR2(1) :='N';
110333 --
110334 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110335 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110336 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110337 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110338 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110339 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110340 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110341 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110342 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110343 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110344 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110345 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110346 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110347 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
110348 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110349 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110350 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110351 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
110352 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110353 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110354 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110355 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
110356 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
110357 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
110358 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
110359 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
110360
110361 l_event_id NUMBER;
110362 l_previous_event_id NUMBER;
110366 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
110363 l_first_event_id NUMBER;
110364 l_last_event_id NUMBER;
110365
110367 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
110368 --
110369 --
110370 l_result BOOLEAN := TRUE;
110371 l_rows NUMBER := 1000;
110372 l_event_type_name VARCHAR2(80) := 'All';
110373 l_event_class_name VARCHAR2(80) := 'Refunds';
110374 l_description VARCHAR2(4000);
110375 l_transaction_reversal NUMBER;
110376 l_ae_header_id NUMBER;
110377 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
110378 l_log_module VARCHAR2(240);
110379 --
110380 l_acct_reversal_source VARCHAR2(30);
110381 l_trx_reversal_source VARCHAR2(30);
110382
110383 l_continue_with_lines BOOLEAN := TRUE;
110384 --
110385 l_acc_rev_gl_date_source DATE; -- 4262811
110386 --
110387 type t_array_event_id is table of number index by binary_integer;
110388
110389 l_rec_array_event t_rec_array_event;
110390 l_null_rec_array_event t_rec_array_event;
110391 l_array_ae_header_id xla_number_array_type;
110392 l_actual_flag VARCHAR2(1) := NULL;
110393 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
110394 l_balance_type_code VARCHAR2(1) :=NULL;
110395 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
110396
110397 --
110398 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
110399 --
110400
110401 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
110402 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
110403 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
110404 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
110405 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
110406 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
110407 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
110408 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
110409 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
110410 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
110411 TYPE t_array_source_17 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
110412 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
110413 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
110414 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
110415 TYPE t_array_source_42 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
110416 TYPE t_array_source_50 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
110417 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
110418 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
110419 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
110420 TYPE t_array_source_71 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
110421 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110422 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
110423 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
110424 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
110425 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
110426 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
110427 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
110428 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
110429
110430 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
110431 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
110432 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
110433 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
110434 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
110435 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
110436 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
110437 TYPE t_array_source_51 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
110438 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
110439 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
110440 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
110444 TYPE t_array_source_62 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
110441 TYPE t_array_source_59 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110442 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
110443 TYPE t_array_source_61 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
110445 TYPE t_array_source_63 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
110446 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110447 TYPE t_array_source_68 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110448 TYPE t_array_source_69 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
110449 TYPE t_array_source_70 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
110450 TYPE t_array_source_73 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
110451 TYPE t_array_source_74 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
110452 TYPE t_array_source_75 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110453 TYPE t_array_source_76 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
110454 TYPE t_array_source_77 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
110455 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
110456
110457 l_array_source_5 t_array_source_5;
110458 l_array_source_8 t_array_source_8;
110459 l_array_source_9 t_array_source_9;
110460 l_array_source_10 t_array_source_10;
110461 l_array_source_11 t_array_source_11;
110462 l_array_source_12 t_array_source_12;
110463 l_array_source_13 t_array_source_13;
110464 l_array_source_14 t_array_source_14;
110465 l_array_source_15 t_array_source_15;
110466 l_array_source_15_meaning t_array_lookup_meaning;
110467 l_array_source_16 t_array_source_16;
110468 l_array_source_16_meaning t_array_lookup_meaning;
110469 l_array_source_17 t_array_source_17;
110470 l_array_source_20 t_array_source_20;
110471 l_array_source_33 t_array_source_33;
110472 l_array_source_39 t_array_source_39;
110473 l_array_source_42 t_array_source_42;
110474 l_array_source_42_meaning t_array_lookup_meaning;
110475 l_array_source_50 t_array_source_50;
110476 l_array_source_65 t_array_source_65;
110477 l_array_source_66 t_array_source_66;
110478 l_array_source_67 t_array_source_67;
110479 l_array_source_71 t_array_source_71;
110480 l_array_source_71_meaning t_array_lookup_meaning;
110481 l_array_source_117 t_array_source_117;
110482 l_array_source_117_meaning t_array_lookup_meaning;
110483 l_array_source_118 t_array_source_118;
110484 l_array_source_121 t_array_source_121;
110485 l_array_source_122 t_array_source_122;
110486 l_array_source_123 t_array_source_123;
110487 l_array_source_156 t_array_source_156;
110488 l_array_source_157 t_array_source_157;
110489 l_array_source_159 t_array_source_159;
110490 l_array_source_159_meaning t_array_lookup_meaning;
110491
110492 l_array_source_19 t_array_source_19;
110493 l_array_source_19_meaning t_array_lookup_meaning;
110494 l_array_source_21 t_array_source_21;
110495 l_array_source_22 t_array_source_22;
110496 l_array_source_29 t_array_source_29;
110497 l_array_source_32 t_array_source_32;
110498 l_array_source_32_meaning t_array_lookup_meaning;
110499 l_array_source_40 t_array_source_40;
110500 l_array_source_41 t_array_source_41;
110501 l_array_source_51 t_array_source_51;
110502 l_array_source_51_meaning t_array_lookup_meaning;
110503 l_array_source_52 t_array_source_52;
110504 l_array_source_53 t_array_source_53;
110505 l_array_source_54 t_array_source_54;
110506 l_array_source_59 t_array_source_59;
110507 l_array_source_60 t_array_source_60;
110508 l_array_source_61 t_array_source_61;
110509 l_array_source_62 t_array_source_62;
110510 l_array_source_63 t_array_source_63;
110511 l_array_source_64 t_array_source_64;
110512 l_array_source_64_meaning t_array_lookup_meaning;
110513 l_array_source_68 t_array_source_68;
110514 l_array_source_69 t_array_source_69;
110515 l_array_source_70 t_array_source_70;
110516 l_array_source_73 t_array_source_73;
110517 l_array_source_74 t_array_source_74;
110518 l_array_source_75 t_array_source_75;
110519 l_array_source_76 t_array_source_76;
110520 l_array_source_77 t_array_source_77;
110521 l_array_source_111 t_array_source_111;
110522 l_array_source_111_meaning t_array_lookup_meaning;
110523
110524 --
110525 CURSOR header_cur
110526 IS
110527 SELECT /*+ leading(xet) cardinality(xet,1) */
110528 -- Event Class Code: REFUNDS
110529 xet.entity_id
110530 ,xet.legal_entity_id
110531 ,xet.entity_code
110532 ,xet.transaction_number
110533 ,xet.event_id
110534 ,xet.event_class_code
110535 ,xet.event_type_code
110536 ,xet.event_number
110537 ,xet.event_date
110538 ,xet.transaction_date
110539 ,xet.reference_num_1
110540 ,xet.reference_num_2
110541 ,xet.reference_num_3
110542 ,xet.reference_num_4
110543 ,xet.reference_char_1
110544 ,xet.reference_char_2
110545 ,xet.reference_char_3
110546 ,xet.reference_char_4
110547 ,xet.reference_date_1
110548 ,xet.reference_date_2
110549 ,xet.reference_date_3
110550 ,xet.reference_date_4
110551 ,xet.event_created_by
110552 ,xet.budgetary_control_flag
110556 , h2.AC_CHECK_DATE source_10
110553 , h2.DOC_SEQUENCE_NAME source_5
110554 , h2.AC_DOC_SEQUENCE_VALUE source_8
110555 , h2.PAYMENT_TRANSACTION_NUMBER source_9
110557 , h2.CBA_BANK_ACCOUNT_NAME source_11
110558 , h2.AC_CURRENCY_CODE source_12
110559 , h2.CGAC_AP_ASSET_CCID source_13
110560 , h4.FSP_DISC_TAKEN_CCID source_14
110561 , h4.ASP_DISCOUNT_DIST_METHOD source_15
110562 , fvl15.meaning source_15_meaning
110563 , h4.ASP_AUTOMATIC_OFFSETS_VALUE source_16
110564 , fvl16.meaning source_16_meaning
110565 , h4.ASP_RATE_VAR_GAIN_CCID source_17
110566 , h4.ASP_RATE_VAR_LOSS_CCID source_20
110567 , h2.CGAC_CASH_CLEARING_CCID source_33
110568 , h4.ASP_DISC_TAKEN_CCID source_39
110569 , h4.ASP_AUTO_OFFSET_FLAG source_42
110570 , fvl42.meaning source_42_meaning
110571 , h4.ASP_WHEN_TO_ACCOUNT_PMT source_50
110572 , h2.AC_VENDOR_ID source_65
110573 , h2.AC_VENDOR_SITE_ID source_66
110574 , h2.THIRD_PARTY_TYPE source_67
110575 , h2.PAYMENT_TYPE source_71
110576 , fvl71.meaning source_71_meaning
110577 , h2.CBA_POOLED_BANK_ACOUNT_FLAG source_117
110578 , fvl117.meaning source_117_meaning
110579 , h2.AC_FUTURE_PAY_DUE_DATE source_118
110580 , h2.AC_EXCHANGE_DATE source_121
110581 , h2.AC_EXCHANGE_RATE source_122
110582 , h2.AC_EXCHANGE_RATE_TYPE source_123
110583 , h2.AC_DOC_CATEGORY_CODE source_156
110584 , h2.PAYMENT_DOCUMENT_SEQUENCE_ID source_157
110585 , h2.TRANSAC_REVERSAL_FLAG source_159
110586 , fvl159.meaning source_159_meaning
110587 FROM xla_events_gt xet
110588 , AP_PAYMENT_EXTRACT_HEADER_V h2
110589 , AP_SYSTEM_PARAMETERS_EXTRACT_V h4
110590 , fnd_lookup_values fvl15
110591 , fnd_lookup_values fvl16
110592 , fnd_lookup_values fvl42
110593 , fnd_lookup_values fvl71
110594 , fnd_lookup_values fvl117
110595 , fnd_lookup_values fvl159
110596 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
110597 and xet.event_class_code = C_EVENT_CLASS_CODE
110598 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
110599 AND h4.asp_org_id = h2.ac_org_id AND fvl15.lookup_type(+) = 'DISCOUNT_DIST_OPTIONS'
110600 AND fvl15.lookup_code(+) = h4.ASP_DISCOUNT_DIST_METHOD
110601 AND fvl15.view_application_id(+) = 200
110602 AND fvl15.language(+) = USERENV('LANG')
110603 AND fvl16.lookup_type(+) = 'LIABILITY FLEXBUILD METHOD'
110604 AND fvl16.lookup_code(+) = h4.ASP_AUTOMATIC_OFFSETS_VALUE
110605 AND fvl16.view_application_id(+) = 200
110606 AND fvl16.language(+) = USERENV('LANG')
110607 AND fvl42.lookup_type(+) = 'YES_NO'
110608 AND fvl42.lookup_code(+) = h4.ASP_AUTO_OFFSET_FLAG
110609 AND fvl42.view_application_id(+) = 0
110610 AND fvl42.language(+) = USERENV('LANG')
110611 AND fvl71.lookup_type(+) = 'PAYMENT TYPE'
110612 AND fvl71.lookup_code(+) = h2.PAYMENT_TYPE
110613 AND fvl71.view_application_id(+) = 200
110614 AND fvl71.language(+) = USERENV('LANG')
110615 AND fvl117.lookup_type(+) = 'YES_NO'
110616 AND fvl117.lookup_code(+) = h2.CBA_POOLED_BANK_ACOUNT_FLAG
110617 AND fvl117.view_application_id(+) = 0
110618 AND fvl117.language(+) = USERENV('LANG')
110619 AND fvl159.lookup_type(+) = 'YES_NO'
110620 AND fvl159.lookup_code(+) = h2.TRANSAC_REVERSAL_FLAG
110621 AND fvl159.view_application_id(+) = 0
110622 AND fvl159.language(+) = USERENV('LANG')
110623
110624 ORDER BY event_id
110625 ;
110626
110627
110628 --
110629 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
110630 IS
110631 SELECT /*+ leading(xet) cardinality(xet,1) */
110632 -- Event Class Code: REFUNDS
110633 xet.entity_id
110634 ,xet.legal_entity_id
110635 ,xet.entity_code
110636 ,xet.transaction_number
110637 ,xet.event_id
110638 ,xet.event_class_code
110639 ,xet.event_type_code
110640 ,xet.event_number
110641 ,xet.event_date
110642 ,xet.transaction_date
110643 ,xet.reference_num_1
110644 ,xet.reference_num_2
110645 ,xet.reference_num_3
110646 ,xet.reference_num_4
110647 ,xet.reference_char_1
110648 ,xet.reference_char_2
110649 ,xet.reference_char_3
110650 ,xet.reference_char_4
110651 ,xet.reference_date_1
110652 ,xet.reference_date_2
110653 ,xet.reference_date_3
110654 ,xet.reference_date_4
110655 ,xet.event_created_by
110656 ,xet.budgetary_control_flag
110657 , l1.LINE_NUMBER
110658 , l1.RELATED_INV_DIST_DEST_TYPE source_19
110659 , fvl19.meaning source_19_meaning
110660 , l1.APHD_PAYMENT_BASE_AMT source_21
110661 , l1.APHD_CLEARING_BASE_AMT source_22
110662 , l1.AID_DIST_CCID source_29
110663 , l1.AID_LINE_TYPE_LOOKUP_CODE source_32
110664 , fvl32.meaning source_32_meaning
110665 , l1.POD_CCID source_40
110666 , l1.PO_VARIANCE_ACCOUNT source_41
110667 , l1.APHD_PAY_DIST_LOOKUP_CODE source_51
110668 , fvl51.meaning source_51_meaning
110669 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_52
110670 , l1.APHD_AMOUNT source_53
110671 , l1.BUS_FLOW_AP_APP_ID source_54
110672 , l1.APHD_PAYMENT_HIST_DIST_ID source_59
110673 , l1.DISTRIBUTION_LINK_TYPE source_60
110674 , l3.POH_RATE_DATE source_61
110675 , l3.POH_RATE source_62
110676 , l3.POH_RATE_TYPE source_63
110677 , l1.OVERRIDE_ACCTD_AMT_FLAG source_64
110678 , fvl64.meaning source_64_meaning
110679 , l1.APHD_REV_PAY_HIST_DIST_ID source_68
110680 , l5.TAX_LINE_ID source_69
110681 , l5.SUMMARY_TAX_LINE_ID source_70
110682 , l1.BUS_FLOW_INV_DIST_TYPE source_73
110683 , l1.BUS_FLOW_INV_ENTITY_CODE source_74
110684 , l1.BUS_FLOW_INV_DIST_ID source_75
110685 , l1.BUS_FLOW_INV_ID source_76
110686 , l6.REC_NREC_TAX_DIST_ID source_77
110690 , AP_PAYMENT_EXTRACT_DETAILS_V l1
110687 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_111
110688 , fvl111.meaning source_111_meaning
110689 FROM xla_events_gt xet
110691 , AP_PO_HEADERS_EXTRACT_V l3
110692 , ZX_AP_DEF_TAX_EXTRACT_V l5
110693 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
110694 , fnd_lookup_values fvl19
110695 , fnd_lookup_values fvl32
110696 , fnd_lookup_values fvl51
110697 , fnd_lookup_values fvl64
110698 , fnd_lookup_values fvl111
110699 WHERE xet.event_id between x_first_event_id and x_last_event_id
110700 and xet.event_date between p_pad_start_date and p_pad_end_date
110701 and xet.event_class_code = C_EVENT_CLASS_CODE
110702 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
110703 AND l1.POD_PO_Header_Id = l3.PO_Header_Id (+) AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+) AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+) AND fvl19.lookup_type(+) = 'DESTINATION TYPE'
110704 AND fvl19.lookup_code(+) = l1.RELATED_INV_DIST_DEST_TYPE
110705 AND fvl19.view_application_id(+) = 201
110706 AND fvl19.language(+) = USERENV('LANG')
110707 AND fvl32.lookup_type(+) = 'INVOICE DISTRIBUTION TYPE'
110708 AND fvl32.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
110709 AND fvl32.view_application_id(+) = 200
110710 AND fvl32.language(+) = USERENV('LANG')
110711 AND fvl51.lookup_type(+) = 'PAY_DIST_TYPES'
110712 AND fvl51.lookup_code(+) = l1.APHD_PAY_DIST_LOOKUP_CODE
110713 AND fvl51.view_application_id(+) = 200
110714 AND fvl51.language(+) = USERENV('LANG')
110715 AND fvl64.lookup_type(+) = 'YES_NO'
110716 AND fvl64.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
110717 AND fvl64.view_application_id(+) = 0
110718 AND fvl64.language(+) = USERENV('LANG')
110719 AND fvl111.lookup_type(+) = 'YES_NO'
110720 AND fvl111.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
110721 AND fvl111.view_application_id(+) = 0
110722 AND fvl111.language(+) = USERENV('LANG')
110723 ;
110724
110725 --
110726 BEGIN
110727 IF g_log_enabled THEN
110728 l_log_module := C_DEFAULT_MODULE||'.EventClass_170';
110729 END IF;
110730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110731 trace
110732 (p_msg => 'BEGIN of EventClass_170'
110733 ,p_level => C_LEVEL_PROCEDURE
110734 ,p_module => l_log_module);
110735 END IF;
110736
110737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110738 trace
110739 (p_msg => 'p_application_id = '||p_application_id||
110740 ' - p_base_ledger_id = '||p_base_ledger_id||
110741 ' - p_target_ledger_id = '||p_target_ledger_id||
110742 ' - p_language = '||p_language||
110743 ' - p_currency_code = '||p_currency_code||
110744 ' - p_sla_ledger_id = '||p_sla_ledger_id
110745 ,p_level => C_LEVEL_STATEMENT
110746 ,p_module => l_log_module);
110747 END IF;
110748 --
110749 -- initialze arrays
110750 --
110751 g_array_event.DELETE;
110752 l_rec_array_event := l_null_rec_array_event;
110753 --
110754 --------------------------------------
110755 -- 4262811 Initialze MPA Line Number
110756 --------------------------------------
110757 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
110758
110759 --
110760
110761 --
110762 OPEN header_cur;
110763 --
110764 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
110765 trace
110766 (p_msg => 'SQL - FETCH header_cur'
110767 ,p_level => C_LEVEL_STATEMENT
110768 ,p_module => l_log_module);
110769 END IF;
110770 --
110771 LOOP
110772 FETCH header_cur BULK COLLECT INTO
110773 l_array_entity_id
110774 , l_array_legal_entity_id
110775 , l_array_entity_code
110776 , l_array_transaction_num
110777 , l_array_event_id
110778 , l_array_class_code
110779 , l_array_event_type
110780 , l_array_event_number
110781 , l_array_event_date
110782 , l_array_transaction_date
110783 , l_array_reference_num_1
110784 , l_array_reference_num_2
110785 , l_array_reference_num_3
110786 , l_array_reference_num_4
110787 , l_array_reference_char_1
110788 , l_array_reference_char_2
110789 , l_array_reference_char_3
110790 , l_array_reference_char_4
110791 , l_array_reference_date_1
110792 , l_array_reference_date_2
110793 , l_array_reference_date_3
110794 , l_array_reference_date_4
110795 , l_array_event_created_by
110796 , l_array_budgetary_control_flag
110797 , l_array_source_5
110798 , l_array_source_8
110799 , l_array_source_9
110800 , l_array_source_10
110801 , l_array_source_11
110802 , l_array_source_12
110803 , l_array_source_13
110804 , l_array_source_14
110805 , l_array_source_15
110806 , l_array_source_15_meaning
110807 , l_array_source_16
110808 , l_array_source_16_meaning
110809 , l_array_source_17
110810 , l_array_source_20
110811 , l_array_source_33
110812 , l_array_source_39
110813 , l_array_source_42
110814 , l_array_source_42_meaning
110815 , l_array_source_50
110816 , l_array_source_65
110817 , l_array_source_66
110818 , l_array_source_67
110819 , l_array_source_71
110820 , l_array_source_71_meaning
110821 , l_array_source_117
110822 , l_array_source_117_meaning
110823 , l_array_source_118
110824 , l_array_source_121
110825 , l_array_source_122
110826 , l_array_source_123
110827 , l_array_source_156
110828 , l_array_source_157
110829 , l_array_source_159
110830 , l_array_source_159_meaning
110831 LIMIT l_rows;
110832 --
110836 ,p_level => C_LEVEL_EVENT
110833 IF (C_LEVEL_EVENT >= g_log_level) THEN
110834 trace
110835 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
110837 ,p_module => l_log_module);
110838 END IF;
110839 --
110840 EXIT WHEN l_array_entity_id.COUNT = 0;
110841
110842 -- initialize arrays
110843 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
110844 XLA_AE_LINES_PKG.g_rec_lines := NULL;
110845
110846 --
110847 -- Bug 4458708
110848 --
110849 XLA_AE_LINES_PKG.g_LineNumber := 0;
110850
110851
110852 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
110853 g_last_hdr_idx := l_array_event_id.LAST;
110854 --
110855 -- loop for the headers. Each iteration is for each header extract row
110856 -- fetched in header cursor
110857 --
110858 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
110859
110860 --
110861 -- set event info as cache for other routines to refer event attributes
110862 --
110863 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
110864 (p_application_id => p_application_id
110865 ,p_primary_ledger_id => p_primary_ledger_id
110866 ,p_base_ledger_id => p_base_ledger_id
110867 ,p_target_ledger_id => p_target_ledger_id
110868 ,p_entity_id => l_array_entity_id(hdr_idx)
110869 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
110870 ,p_entity_code => l_array_entity_code(hdr_idx)
110871 ,p_transaction_num => l_array_transaction_num(hdr_idx)
110872 ,p_event_id => l_array_event_id(hdr_idx)
110873 ,p_event_class_code => l_array_class_code(hdr_idx)
110874 ,p_event_type_code => l_array_event_type(hdr_idx)
110875 ,p_event_number => l_array_event_number(hdr_idx)
110876 ,p_event_date => l_array_event_date(hdr_idx)
110877 ,p_transaction_date => l_array_transaction_date(hdr_idx)
110878 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
110879 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
110880 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
110881 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
110882 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
110883 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
110884 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
110885 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
110886 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
110887 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
110888 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
110889 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
110890 ,p_event_created_by => l_array_event_created_by(hdr_idx)
110891 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
110892
110893 --
110894 -- set the status of entry to C_VALID (0)
110895 --
110896 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
110897
110898 --
110899 -- initialize a row for ae header
110900 --
110901 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
110902
110903 l_event_id := l_array_event_id(hdr_idx);
110904
110905 --
110906 -- storing the hdr_idx for event. May be used by line cursor.
110907 --
110908 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
110909
110910 --
110911 -- store sources from header extract. This can be improved to
110912 -- store only those sources from header extract that may be used in lines
110913 --
110914
110915 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
110916 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
110917 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
110918 g_array_event(l_event_id).array_value_date('source_10') := l_array_source_10(hdr_idx);
110919 g_array_event(l_event_id).array_value_char('source_11') := l_array_source_11(hdr_idx);
110920 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
110921 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
110922 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
110923 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
110924 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
110925 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
110926 g_array_event(l_event_id).array_value_char('source_16_meaning') := l_array_source_16_meaning(hdr_idx);
110927 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
110928 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
110929 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
110930 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
110931 g_array_event(l_event_id).array_value_char('source_42') := l_array_source_42(hdr_idx);
110932 g_array_event(l_event_id).array_value_char('source_42_meaning') := l_array_source_42_meaning(hdr_idx);
110933 g_array_event(l_event_id).array_value_char('source_50') := l_array_source_50(hdr_idx);
110934 g_array_event(l_event_id).array_value_num('source_65') := l_array_source_65(hdr_idx);
110935 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
110936 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
110937 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
110938 g_array_event(l_event_id).array_value_char('source_71_meaning') := l_array_source_71_meaning(hdr_idx);
110939 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
110940 g_array_event(l_event_id).array_value_char('source_117_meaning') := l_array_source_117_meaning(hdr_idx);
110944 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
110941 g_array_event(l_event_id).array_value_date('source_118') := l_array_source_118(hdr_idx);
110942 g_array_event(l_event_id).array_value_date('source_121') := l_array_source_121(hdr_idx);
110943 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
110945 g_array_event(l_event_id).array_value_char('source_156') := l_array_source_156(hdr_idx);
110946 g_array_event(l_event_id).array_value_num('source_157') := l_array_source_157(hdr_idx);
110947 g_array_event(l_event_id).array_value_char('source_159') := l_array_source_159(hdr_idx);
110948 g_array_event(l_event_id).array_value_char('source_159_meaning') := l_array_source_159_meaning(hdr_idx);
110949
110950 --
110951 -- initilaize the status of ae headers for diffrent balance types
110952 -- the status is initialised to C_NOT_CREATED (2)
110953 --
110954 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110955 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110956 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
110957
110958 --
110959 -- call api to validate and store accounting attributes for header
110960 --
110961
110962 ------------------------------------------------------------
110963 -- Accrual Reversal : to get date for Standard Source (NONE)
110964 ------------------------------------------------------------
110965 l_acc_rev_gl_date_source := NULL;
110966
110967 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
110968 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_156');
110969 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
110970 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_157');
110971 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
110972 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_8');
110973 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
110974 l_rec_acct_attrs.array_date_value(4) :=
110975 xla_ae_sources_pkg.GetSystemSourceDate(
110976 p_source_code => 'XLA_EVENT_DATE'
110977 , p_source_type_code => 'Y'
110978 , p_source_application_id => 602
110979 );
110980 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
110981 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_159');
110982
110983
110984 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
110985
110986 XLA_AE_HEADER_PKG.SetJeCategoryName;
110987
110988 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
110989 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
110990 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
110991 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
110992 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
110993
110994
110995 --
110996 xla_ae_header_pkg.SetHdrDescription(
110997 p_description => Description_2 (
110998 p_application_id => p_application_id
110999 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
111000 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
111001 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
111002 , p_source_10 => g_array_event(l_event_id).array_value_date('source_10')
111003 , p_source_11 => g_array_event(l_event_id).array_value_char('source_11')
111004 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111005 )
111006 );
111007 --
111008
111009 -- No header level analytical criteria
111010
111011 --
111012 --accounting attribute enhancement, bug 3612931
111013 --
111014 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_159'), 1,30);
111015
111016 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
111017 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
111018
111019 xla_accounting_err_pkg.build_message
111020 (p_appli_s_name => 'XLA'
111021 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
111022 ,p_token_1 => 'ACCT_ATTR_NAME'
111023 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
111024 ,p_token_2 => 'PRODUCT_NAME'
111025 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
111026 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
111027 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
111028 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
111029
111030 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
111031 --
111032 -- following sets the accounting attributes needed to reverse
111033 -- accounting for a distributeion
111034 --
111035 xla_ae_lines_pkg.SetTrxReversalAttrs
111036 (p_event_id => l_event_id
111037 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
111038 ,p_trx_reversal_source => l_trx_reversal_source);
111039
111040 END IF;
111041
111042
111043 ----------------------------------------------------------------
111044 -- 4262811 - update the header statuses to invalid in need be
111045 ----------------------------------------------------------------
111046 --
111047 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
111048
111049
111050 -----------------------------------------------
111051 -- No accrual reversal for the event class/type
111052 -----------------------------------------------
111056 -- this ends the header loop iteration for one bulk fetch
111053 ----------------------------------------------------------------
111054
111055 --
111057 --
111058 END LOOP;
111059
111060 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
111061 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
111062
111063 --
111064 -- insert dummy rows into lines gt table that were created due to
111065 -- transaction reversals
111066 --
111067 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
111068 l_result := XLA_AE_LINES_PKG.InsertLines;
111069 END IF;
111070
111071 --
111072 -- reset the temp_line_num for each set of events fetched from header
111073 -- cursor rather than doing it for each new event in line cursor
111074 -- Bug 3939231
111075 --
111076 xla_ae_lines_pkg.g_temp_line_num := 0;
111077
111078
111079
111080 --
111081 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
111082 --
111083 --
111084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
111085
111086 trace
111087 (p_msg => 'SQL - FETCH line_cur'
111088 ,p_level => C_LEVEL_STATEMENT
111089 ,p_module => l_log_module);
111090
111091 END IF;
111092 --
111093 --
111094 LOOP
111095 --
111096 FETCH line_cur BULK COLLECT INTO
111097 l_array_entity_id
111098 , l_array_legal_entity_id
111099 , l_array_entity_code
111100 , l_array_transaction_num
111101 , l_array_event_id
111102 , l_array_class_code
111103 , l_array_event_type
111104 , l_array_event_number
111105 , l_array_event_date
111106 , l_array_transaction_date
111107 , l_array_reference_num_1
111108 , l_array_reference_num_2
111109 , l_array_reference_num_3
111110 , l_array_reference_num_4
111111 , l_array_reference_char_1
111112 , l_array_reference_char_2
111113 , l_array_reference_char_3
111114 , l_array_reference_char_4
111115 , l_array_reference_date_1
111116 , l_array_reference_date_2
111117 , l_array_reference_date_3
111118 , l_array_reference_date_4
111119 , l_array_event_created_by
111120 , l_array_budgetary_control_flag
111121 , l_array_extract_line_num
111122 , l_array_source_19
111123 , l_array_source_19_meaning
111124 , l_array_source_21
111125 , l_array_source_22
111126 , l_array_source_29
111127 , l_array_source_32
111128 , l_array_source_32_meaning
111129 , l_array_source_40
111130 , l_array_source_41
111131 , l_array_source_51
111132 , l_array_source_51_meaning
111133 , l_array_source_52
111134 , l_array_source_53
111135 , l_array_source_54
111136 , l_array_source_59
111137 , l_array_source_60
111138 , l_array_source_61
111139 , l_array_source_62
111140 , l_array_source_63
111141 , l_array_source_64
111142 , l_array_source_64_meaning
111143 , l_array_source_68
111144 , l_array_source_69
111145 , l_array_source_70
111146 , l_array_source_73
111147 , l_array_source_74
111148 , l_array_source_75
111149 , l_array_source_76
111150 , l_array_source_77
111151 , l_array_source_111
111152 , l_array_source_111_meaning
111153 LIMIT l_rows;
111154
111155 --
111156 IF (C_LEVEL_EVENT >= g_log_level) THEN
111157 trace
111158 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
111159 ,p_level => C_LEVEL_EVENT
111160 ,p_module => l_log_module);
111161 END IF;
111162 --
111163 EXIT WHEN l_array_entity_id.count = 0;
111164
111165 XLA_AE_LINES_PKG.g_rec_lines := null;
111166
111167 --
111168 -- Bug 4458708
111169 --
111170 XLA_AE_LINES_PKG.g_LineNumber := 0;
111171 --
111172 --
111173
111174 FOR Idx IN 1..l_array_event_id.count LOOP
111175 --
111176 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
111177 --
111178 l_event_id := l_array_event_id(idx); -- 5648433
111179
111180 --
111181 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
111182 --
111183
111184 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
111185 (g_array_event(l_event_id).array_value_num('header_index'))
111186 ,'N'
111187 ) <> 'Y'
111188 THEN
111189 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
111190 trace
111191 (p_msg => 'Trancaction revesal option is not Y '
111192 ,p_level => C_LEVEL_STATEMENT
111193 ,p_module => l_log_module);
111194 END IF;
111195
111196 --
111197 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
111198 --
111199 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
111200 --
111201 -- set event info as cache for other routines to refer event attributes
111202 --
111203
111204 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
111205 l_previous_event_id := l_event_id;
111206
111207 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
111208 (p_application_id => p_application_id
111209 ,p_primary_ledger_id => p_primary_ledger_id
111210 ,p_base_ledger_id => p_base_ledger_id
111211 ,p_target_ledger_id => p_target_ledger_id
111212 ,p_entity_id => l_array_entity_id(Idx)
111213 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
111214 ,p_entity_code => l_array_entity_code(Idx)
111215 ,p_transaction_num => l_array_transaction_num(Idx)
111219 ,p_event_number => l_array_event_number(Idx)
111216 ,p_event_id => l_array_event_id(Idx)
111217 ,p_event_class_code => l_array_class_code(Idx)
111218 ,p_event_type_code => l_array_event_type(Idx)
111220 ,p_event_date => l_array_event_date(Idx)
111221 ,p_transaction_date => l_array_transaction_date(Idx)
111222 ,p_reference_num_1 => l_array_reference_num_1(Idx)
111223 ,p_reference_num_2 => l_array_reference_num_2(Idx)
111224 ,p_reference_num_3 => l_array_reference_num_3(Idx)
111225 ,p_reference_num_4 => l_array_reference_num_4(Idx)
111226 ,p_reference_char_1 => l_array_reference_char_1(Idx)
111227 ,p_reference_char_2 => l_array_reference_char_2(Idx)
111228 ,p_reference_char_3 => l_array_reference_char_3(Idx)
111229 ,p_reference_char_4 => l_array_reference_char_4(Idx)
111230 ,p_reference_date_1 => l_array_reference_date_1(Idx)
111231 ,p_reference_date_2 => l_array_reference_date_2(Idx)
111232 ,p_reference_date_3 => l_array_reference_date_3(Idx)
111233 ,p_reference_date_4 => l_array_reference_date_4(Idx)
111234 ,p_event_created_by => l_array_event_created_by(Idx)
111235 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
111236 --
111237 END IF;
111238
111239
111240
111241 --
111242 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
111243
111244 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
111245
111246 IF l_continue_with_lines THEN
111247 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
111248 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
111249
111250 xla_accounting_err_pkg.build_message
111251 (p_appli_s_name => 'XLA'
111252 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
111253 ,p_token_1 => 'LINE_NUMBER'
111254 ,p_value_1 => l_array_extract_line_num(Idx)
111255 ,p_token_2 => 'PRODUCT_NAME'
111256 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
111257 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
111258 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
111259 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
111260
111261 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
111262 --
111263 -- following sets the accounting attributes needed to reverse
111264 -- accounting for a distributeion
111265 --
111266
111267 --
111268 -- 5217187
111269 --
111270 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
111271 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
111272 g_array_event(l_event_id).array_value_num('header_index'));
111273 --
111274 --
111275
111276 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
111277 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_52(Idx);
111278 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
111279 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_59(Idx);
111280 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
111281 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_60(Idx);
111282 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
111283 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_67');
111284 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
111285 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_68(Idx);
111286 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
111287 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_60(Idx);
111288 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
111289 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_69(Idx);
111290 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
111291 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_77(Idx);
111292 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
111293 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_70(Idx);
111294
111295
111296 xla_ae_lines_pkg.SetAcctReversalAttrs
111297 (p_event_id => l_event_id
111298 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
111299 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111300 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
111301 END IF;
111302
111303 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
111304 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
111305
111306 --
111307 AcctLineType_41 (
111308 p_application_id => p_application_id
111309 ,p_event_id => l_event_id
111310 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111311 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111312 ,p_actual_flag => l_actual_flag
111313 ,p_balance_type_code => l_balance_type_code
111314 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111315
111316 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111317 , p_source_21 => l_array_source_21(Idx)
111318 , p_source_32 => l_array_source_32(Idx)
111319 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111320 , p_source_40 => l_array_source_40(Idx)
111321 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111322 , p_source_51 => l_array_source_51(Idx)
111323 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111324 , p_source_52 => l_array_source_52(Idx)
111325 , p_source_53 => l_array_source_53(Idx)
111329 , p_source_61 => l_array_source_61(Idx)
111326 , p_source_54 => l_array_source_54(Idx)
111327 , p_source_59 => l_array_source_59(Idx)
111328 , p_source_60 => l_array_source_60(Idx)
111330 , p_source_62 => l_array_source_62(Idx)
111331 , p_source_63 => l_array_source_63(Idx)
111332 , p_source_64 => l_array_source_64(Idx)
111333 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111334 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111335 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111336 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111337 , p_source_68 => l_array_source_68(Idx)
111338 , p_source_69 => l_array_source_69(Idx)
111339 , p_source_70 => l_array_source_70(Idx)
111340 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111341 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111342 , p_source_73 => l_array_source_73(Idx)
111343 , p_source_74 => l_array_source_74(Idx)
111344 , p_source_75 => l_array_source_75(Idx)
111345 , p_source_76 => l_array_source_76(Idx)
111346 , p_source_77 => l_array_source_77(Idx)
111347 );
111348 If(l_balance_type_code = 'A') THEN
111349 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111350 END IF;
111351
111352 --
111353
111354
111355 --
111356 AcctLineType_47 (
111357 p_application_id => p_application_id
111358 ,p_event_id => l_event_id
111359 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111360 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111361 ,p_actual_flag => l_actual_flag
111362 ,p_balance_type_code => l_balance_type_code
111363 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111364
111365 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111366 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111367 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111368 , p_source_19 => l_array_source_19(Idx)
111369 , p_source_19_meaning => l_array_source_19_meaning(Idx)
111370 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111371 , p_source_21 => l_array_source_21(Idx)
111372 , p_source_22 => l_array_source_22(Idx)
111373 , p_source_29 => l_array_source_29(Idx)
111374 , p_source_32 => l_array_source_32(Idx)
111375 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111376 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111377 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111378 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111379 , p_source_52 => l_array_source_52(Idx)
111380 , p_source_54 => l_array_source_54(Idx)
111381 , p_source_59 => l_array_source_59(Idx)
111382 , p_source_60 => l_array_source_60(Idx)
111383 , p_source_64 => l_array_source_64(Idx)
111384 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111385 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111386 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111387 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111388 , p_source_68 => l_array_source_68(Idx)
111389 , p_source_69 => l_array_source_69(Idx)
111390 , p_source_70 => l_array_source_70(Idx)
111391 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111392 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111393 , p_source_73 => l_array_source_73(Idx)
111394 , p_source_74 => l_array_source_74(Idx)
111395 , p_source_75 => l_array_source_75(Idx)
111396 , p_source_76 => l_array_source_76(Idx)
111397 , p_source_77 => l_array_source_77(Idx)
111398 );
111399 If(l_balance_type_code = 'A') THEN
111400 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111401 END IF;
111402
111403 --
111404
111405
111406 --
111407 AcctLineType_50 (
111408 p_application_id => p_application_id
111409 ,p_event_id => l_event_id
111410 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111411 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111412 ,p_actual_flag => l_actual_flag
111413 ,p_balance_type_code => l_balance_type_code
111414 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111415
111416 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111417 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111418 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111419 , p_source_19 => l_array_source_19(Idx)
111420 , p_source_19_meaning => l_array_source_19_meaning(Idx)
111421 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111422 , p_source_21 => l_array_source_21(Idx)
111423 , p_source_22 => l_array_source_22(Idx)
111424 , p_source_29 => l_array_source_29(Idx)
111425 , p_source_32 => l_array_source_32(Idx)
111426 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111427 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111428 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111429 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111430 , p_source_51 => l_array_source_51(Idx)
111431 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111432 , p_source_52 => l_array_source_52(Idx)
111433 , p_source_54 => l_array_source_54(Idx)
111434 , p_source_59 => l_array_source_59(Idx)
111435 , p_source_60 => l_array_source_60(Idx)
111436 , p_source_64 => l_array_source_64(Idx)
111437 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111438 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111439 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111440 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111441 , p_source_68 => l_array_source_68(Idx)
111442 , p_source_69 => l_array_source_69(Idx)
111443 , p_source_70 => l_array_source_70(Idx)
111444 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111448 , p_source_75 => l_array_source_75(Idx)
111445 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111446 , p_source_73 => l_array_source_73(Idx)
111447 , p_source_74 => l_array_source_74(Idx)
111449 , p_source_76 => l_array_source_76(Idx)
111450 , p_source_77 => l_array_source_77(Idx)
111451 , p_source_111 => l_array_source_111(Idx)
111452 , p_source_111_meaning => l_array_source_111_meaning(Idx)
111453 );
111454 If(l_balance_type_code = 'A') THEN
111455 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111456 END IF;
111457
111458 --
111459
111460
111461 --
111462 AcctLineType_65 (
111463 p_application_id => p_application_id
111464 ,p_event_id => l_event_id
111465 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111466 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111467 ,p_actual_flag => l_actual_flag
111468 ,p_balance_type_code => l_balance_type_code
111469 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111470
111471 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111472 , p_source_21 => l_array_source_21(Idx)
111473 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111474 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111475 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111476 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111477 , p_source_51 => l_array_source_51(Idx)
111478 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111479 , p_source_52 => l_array_source_52(Idx)
111480 , p_source_53 => l_array_source_53(Idx)
111481 , p_source_54 => l_array_source_54(Idx)
111482 , p_source_59 => l_array_source_59(Idx)
111483 , p_source_60 => l_array_source_60(Idx)
111484 , p_source_64 => l_array_source_64(Idx)
111485 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111486 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111487 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111488 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111489 , p_source_68 => l_array_source_68(Idx)
111490 , p_source_69 => l_array_source_69(Idx)
111491 , p_source_70 => l_array_source_70(Idx)
111492 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111493 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111494 , p_source_73 => l_array_source_73(Idx)
111495 , p_source_74 => l_array_source_74(Idx)
111496 , p_source_75 => l_array_source_75(Idx)
111497 , p_source_76 => l_array_source_76(Idx)
111498 , p_source_77 => l_array_source_77(Idx)
111499 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111500 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111501 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111502 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111503 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111504 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111505 );
111506 If(l_balance_type_code = 'A') THEN
111507 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111508 END IF;
111509
111510 --
111511
111512
111513 --
111514 AcctLineType_66 (
111515 p_application_id => p_application_id
111516 ,p_event_id => l_event_id
111517 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111518 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111519 ,p_actual_flag => l_actual_flag
111520 ,p_balance_type_code => l_balance_type_code
111521 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111522
111523 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111524 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111525 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111526 , p_source_21 => l_array_source_21(Idx)
111527 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111528 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111529 , p_source_51 => l_array_source_51(Idx)
111530 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111531 , p_source_52 => l_array_source_52(Idx)
111532 , p_source_53 => l_array_source_53(Idx)
111533 , p_source_54 => l_array_source_54(Idx)
111534 , p_source_59 => l_array_source_59(Idx)
111535 , p_source_60 => l_array_source_60(Idx)
111536 , p_source_64 => l_array_source_64(Idx)
111537 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111538 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111539 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111540 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111541 , p_source_68 => l_array_source_68(Idx)
111542 , p_source_69 => l_array_source_69(Idx)
111543 , p_source_70 => l_array_source_70(Idx)
111544 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111545 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111546 , p_source_73 => l_array_source_73(Idx)
111547 , p_source_74 => l_array_source_74(Idx)
111548 , p_source_75 => l_array_source_75(Idx)
111549 , p_source_76 => l_array_source_76(Idx)
111550 , p_source_77 => l_array_source_77(Idx)
111551 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111552 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111553 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111554 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111555 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111556 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111557 );
111558 If(l_balance_type_code = 'A') THEN
111559 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111560 END IF;
111561
111562 --
111563
111564
111565 --
111569 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111566 AcctLineType_67 (
111567 p_application_id => p_application_id
111568 ,p_event_id => l_event_id
111570 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111571 ,p_actual_flag => l_actual_flag
111572 ,p_balance_type_code => l_balance_type_code
111573 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111574
111575 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111576 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111577 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111578 , p_source_21 => l_array_source_21(Idx)
111579 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
111580 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111581 , p_source_51 => l_array_source_51(Idx)
111582 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111583 , p_source_52 => l_array_source_52(Idx)
111584 , p_source_53 => l_array_source_53(Idx)
111585 , p_source_54 => l_array_source_54(Idx)
111586 , p_source_59 => l_array_source_59(Idx)
111587 , p_source_60 => l_array_source_60(Idx)
111588 , p_source_64 => l_array_source_64(Idx)
111589 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111590 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111591 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111592 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111593 , p_source_68 => l_array_source_68(Idx)
111594 , p_source_69 => l_array_source_69(Idx)
111595 , p_source_70 => l_array_source_70(Idx)
111596 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111597 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111598 , p_source_73 => l_array_source_73(Idx)
111599 , p_source_74 => l_array_source_74(Idx)
111600 , p_source_75 => l_array_source_75(Idx)
111601 , p_source_76 => l_array_source_76(Idx)
111602 , p_source_77 => l_array_source_77(Idx)
111603 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111604 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111605 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111606 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111607 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111608 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111609 );
111610 If(l_balance_type_code = 'A') THEN
111611 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111612 END IF;
111613
111614 --
111615
111616
111617 --
111618 AcctLineType_74 (
111619 p_application_id => p_application_id
111620 ,p_event_id => l_event_id
111621 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111622 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111623 ,p_actual_flag => l_actual_flag
111624 ,p_balance_type_code => l_balance_type_code
111625 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111626
111627 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111628 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111629 , p_source_21 => l_array_source_21(Idx)
111630 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111631 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111632 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111633 , p_source_51 => l_array_source_51(Idx)
111634 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111635 , p_source_52 => l_array_source_52(Idx)
111636 , p_source_53 => l_array_source_53(Idx)
111637 , p_source_54 => l_array_source_54(Idx)
111638 , p_source_59 => l_array_source_59(Idx)
111639 , p_source_60 => l_array_source_60(Idx)
111640 , p_source_64 => l_array_source_64(Idx)
111641 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111642 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111643 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111644 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111645 , p_source_68 => l_array_source_68(Idx)
111646 , p_source_69 => l_array_source_69(Idx)
111647 , p_source_70 => l_array_source_70(Idx)
111648 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111649 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111650 , p_source_73 => l_array_source_73(Idx)
111651 , p_source_74 => l_array_source_74(Idx)
111652 , p_source_75 => l_array_source_75(Idx)
111653 , p_source_76 => l_array_source_76(Idx)
111654 , p_source_77 => l_array_source_77(Idx)
111655 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111656 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111657 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111658 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111659 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111660 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111661 );
111662 If(l_balance_type_code = 'A') THEN
111663 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111664 END IF;
111665
111666 --
111667
111668
111669 --
111670 AcctLineType_75 (
111671 p_application_id => p_application_id
111672 ,p_event_id => l_event_id
111673 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111674 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111675 ,p_actual_flag => l_actual_flag
111676 ,p_balance_type_code => l_balance_type_code
111677 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111678
111679 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111680 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111681 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111685 , p_source_51 => l_array_source_51(Idx)
111682 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111683 , p_source_21 => l_array_source_21(Idx)
111684 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111686 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111687 , p_source_52 => l_array_source_52(Idx)
111688 , p_source_53 => l_array_source_53(Idx)
111689 , p_source_54 => l_array_source_54(Idx)
111690 , p_source_59 => l_array_source_59(Idx)
111691 , p_source_60 => l_array_source_60(Idx)
111692 , p_source_64 => l_array_source_64(Idx)
111693 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111694 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111695 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111696 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111697 , p_source_68 => l_array_source_68(Idx)
111698 , p_source_69 => l_array_source_69(Idx)
111699 , p_source_70 => l_array_source_70(Idx)
111700 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111701 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111702 , p_source_73 => l_array_source_73(Idx)
111703 , p_source_74 => l_array_source_74(Idx)
111704 , p_source_75 => l_array_source_75(Idx)
111705 , p_source_76 => l_array_source_76(Idx)
111706 , p_source_77 => l_array_source_77(Idx)
111707 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111708 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111709 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111710 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111711 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111712 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111713 );
111714 If(l_balance_type_code = 'A') THEN
111715 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111716 END IF;
111717
111718 --
111719
111720
111721 --
111722 AcctLineType_76 (
111723 p_application_id => p_application_id
111724 ,p_event_id => l_event_id
111725 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111726 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111727 ,p_actual_flag => l_actual_flag
111728 ,p_balance_type_code => l_balance_type_code
111729 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111730
111731 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111732 , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
111733 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111734 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111735 , p_source_21 => l_array_source_21(Idx)
111736 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111737 , p_source_51 => l_array_source_51(Idx)
111738 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111739 , p_source_52 => l_array_source_52(Idx)
111740 , p_source_53 => l_array_source_53(Idx)
111741 , p_source_54 => l_array_source_54(Idx)
111742 , p_source_59 => l_array_source_59(Idx)
111743 , p_source_60 => l_array_source_60(Idx)
111744 , p_source_64 => l_array_source_64(Idx)
111745 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111746 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111747 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111748 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111749 , p_source_68 => l_array_source_68(Idx)
111750 , p_source_69 => l_array_source_69(Idx)
111751 , p_source_70 => l_array_source_70(Idx)
111752 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111753 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111754 , p_source_73 => l_array_source_73(Idx)
111755 , p_source_74 => l_array_source_74(Idx)
111756 , p_source_75 => l_array_source_75(Idx)
111757 , p_source_76 => l_array_source_76(Idx)
111758 , p_source_77 => l_array_source_77(Idx)
111759 , p_source_117 => g_array_event(l_event_id).array_value_char('source_117')
111760 , p_source_117_meaning => g_array_event(l_event_id).array_value_char('source_117_meaning')
111761 , p_source_118 => g_array_event(l_event_id).array_value_date('source_118')
111762 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111763 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111764 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111765 );
111766 If(l_balance_type_code = 'A') THEN
111767 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111768 END IF;
111769
111770 --
111771
111772
111773 --
111774 AcctLineType_79 (
111775 p_application_id => p_application_id
111776 ,p_event_id => l_event_id
111777 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111778 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111779 ,p_actual_flag => l_actual_flag
111780 ,p_balance_type_code => l_balance_type_code
111781 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111782
111783 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111784 , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
111785 , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
111786 , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
111787 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111788 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111789 , p_source_21 => l_array_source_21(Idx)
111790 , p_source_29 => l_array_source_29(Idx)
111791 , p_source_32 => l_array_source_32(Idx)
111792 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111793 , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
111794 , p_source_40 => l_array_source_40(Idx)
111795 , p_source_41 => l_array_source_41(Idx)
111799 , p_source_52 => l_array_source_52(Idx)
111796 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111797 , p_source_51 => l_array_source_51(Idx)
111798 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111800 , p_source_53 => l_array_source_53(Idx)
111801 , p_source_54 => l_array_source_54(Idx)
111802 , p_source_59 => l_array_source_59(Idx)
111803 , p_source_60 => l_array_source_60(Idx)
111804 , p_source_64 => l_array_source_64(Idx)
111805 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111806 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111807 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111808 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111809 , p_source_68 => l_array_source_68(Idx)
111810 , p_source_69 => l_array_source_69(Idx)
111811 , p_source_70 => l_array_source_70(Idx)
111812 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111813 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111814 , p_source_73 => l_array_source_73(Idx)
111815 , p_source_74 => l_array_source_74(Idx)
111816 , p_source_75 => l_array_source_75(Idx)
111817 , p_source_76 => l_array_source_76(Idx)
111818 , p_source_77 => l_array_source_77(Idx)
111819 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111820 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111821 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111822 );
111823 If(l_balance_type_code = 'A') THEN
111824 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111825 END IF;
111826
111827 --
111828
111829
111830 --
111831 AcctLineType_84 (
111832 p_application_id => p_application_id
111833 ,p_event_id => l_event_id
111834 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111835 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111836 ,p_actual_flag => l_actual_flag
111837 ,p_balance_type_code => l_balance_type_code
111838 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111839
111840 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111841 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
111842 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
111843 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
111844 , p_source_19 => l_array_source_19(Idx)
111845 , p_source_19_meaning => l_array_source_19_meaning(Idx)
111846 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
111847 , p_source_21 => l_array_source_21(Idx)
111848 , p_source_22 => l_array_source_22(Idx)
111849 , p_source_29 => l_array_source_29(Idx)
111850 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
111851 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
111852 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111853 , p_source_51 => l_array_source_51(Idx)
111854 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111855 , p_source_52 => l_array_source_52(Idx)
111856 , p_source_53 => l_array_source_53(Idx)
111857 , p_source_54 => l_array_source_54(Idx)
111858 , p_source_59 => l_array_source_59(Idx)
111859 , p_source_60 => l_array_source_60(Idx)
111860 , p_source_64 => l_array_source_64(Idx)
111861 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111862 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111863 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111864 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111865 , p_source_68 => l_array_source_68(Idx)
111866 , p_source_69 => l_array_source_69(Idx)
111867 , p_source_70 => l_array_source_70(Idx)
111868 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111869 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111870 , p_source_73 => l_array_source_73(Idx)
111871 , p_source_74 => l_array_source_74(Idx)
111872 , p_source_75 => l_array_source_75(Idx)
111873 , p_source_76 => l_array_source_76(Idx)
111874 , p_source_77 => l_array_source_77(Idx)
111875 , p_source_111 => l_array_source_111(Idx)
111876 , p_source_111_meaning => l_array_source_111_meaning(Idx)
111877 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111878 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111879 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111880 );
111881 If(l_balance_type_code = 'A') THEN
111882 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111883 END IF;
111884
111885 --
111886
111887
111888 --
111889 AcctLineType_89 (
111890 p_application_id => p_application_id
111891 ,p_event_id => l_event_id
111892 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111893 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111894 ,p_actual_flag => l_actual_flag
111895 ,p_balance_type_code => l_balance_type_code
111896 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111897
111898 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111899 , p_source_21 => l_array_source_21(Idx)
111900 , p_source_29 => l_array_source_29(Idx)
111901 , p_source_32 => l_array_source_32(Idx)
111902 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111903 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111904 , p_source_51 => l_array_source_51(Idx)
111905 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111906 , p_source_52 => l_array_source_52(Idx)
111907 , p_source_53 => l_array_source_53(Idx)
111908 , p_source_54 => l_array_source_54(Idx)
111909 , p_source_59 => l_array_source_59(Idx)
111910 , p_source_60 => l_array_source_60(Idx)
111911 , p_source_64 => l_array_source_64(Idx)
111912 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111913 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111917 , p_source_69 => l_array_source_69(Idx)
111914 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111915 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111916 , p_source_68 => l_array_source_68(Idx)
111918 , p_source_70 => l_array_source_70(Idx)
111919 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111920 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111921 , p_source_73 => l_array_source_73(Idx)
111922 , p_source_74 => l_array_source_74(Idx)
111923 , p_source_75 => l_array_source_75(Idx)
111924 , p_source_76 => l_array_source_76(Idx)
111925 , p_source_77 => l_array_source_77(Idx)
111926 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111927 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111928 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111929 );
111930 If(l_balance_type_code = 'A') THEN
111931 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111932 END IF;
111933
111934 --
111935
111936
111937 --
111938 AcctLineType_104 (
111939 p_application_id => p_application_id
111940 ,p_event_id => l_event_id
111941 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111942 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111943 ,p_actual_flag => l_actual_flag
111944 ,p_balance_type_code => l_balance_type_code
111945 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111946
111947 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111948 , p_source_21 => l_array_source_21(Idx)
111949 , p_source_29 => l_array_source_29(Idx)
111950 , p_source_32 => l_array_source_32(Idx)
111951 , p_source_32_meaning => l_array_source_32_meaning(Idx)
111952 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
111953 , p_source_51 => l_array_source_51(Idx)
111954 , p_source_51_meaning => l_array_source_51_meaning(Idx)
111955 , p_source_52 => l_array_source_52(Idx)
111956 , p_source_53 => l_array_source_53(Idx)
111957 , p_source_54 => l_array_source_54(Idx)
111958 , p_source_59 => l_array_source_59(Idx)
111959 , p_source_60 => l_array_source_60(Idx)
111960 , p_source_64 => l_array_source_64(Idx)
111961 , p_source_64_meaning => l_array_source_64_meaning(Idx)
111962 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
111963 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
111964 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
111965 , p_source_68 => l_array_source_68(Idx)
111966 , p_source_69 => l_array_source_69(Idx)
111967 , p_source_70 => l_array_source_70(Idx)
111968 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
111969 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
111970 , p_source_73 => l_array_source_73(Idx)
111971 , p_source_74 => l_array_source_74(Idx)
111972 , p_source_75 => l_array_source_75(Idx)
111973 , p_source_76 => l_array_source_76(Idx)
111974 , p_source_77 => l_array_source_77(Idx)
111975 , p_source_111 => l_array_source_111(Idx)
111976 , p_source_111_meaning => l_array_source_111_meaning(Idx)
111977 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
111978 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
111979 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
111980 );
111981 If(l_balance_type_code = 'A') THEN
111982 l_actual_gain_loss_ref := l_gain_or_loss_ref;
111983 END IF;
111984
111985 --
111986
111987
111988 --
111989 AcctLineType_109 (
111990 p_application_id => p_application_id
111991 ,p_event_id => l_event_id
111992 ,p_calculate_acctd_flag => l_calculate_acctd_flag
111993 ,p_calculate_g_l_flag => l_calculate_g_l_flag
111994 ,p_actual_flag => l_actual_flag
111995 ,p_balance_type_code => l_balance_type_code
111996 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
111997
111998 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
111999 , p_source_21 => l_array_source_21(Idx)
112000 , p_source_29 => l_array_source_29(Idx)
112001 , p_source_32 => l_array_source_32(Idx)
112002 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112003 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112004 , p_source_51 => l_array_source_51(Idx)
112005 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112006 , p_source_52 => l_array_source_52(Idx)
112007 , p_source_53 => l_array_source_53(Idx)
112008 , p_source_54 => l_array_source_54(Idx)
112009 , p_source_59 => l_array_source_59(Idx)
112010 , p_source_60 => l_array_source_60(Idx)
112011 , p_source_64 => l_array_source_64(Idx)
112012 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112013 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112014 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112015 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112016 , p_source_68 => l_array_source_68(Idx)
112017 , p_source_69 => l_array_source_69(Idx)
112018 , p_source_70 => l_array_source_70(Idx)
112019 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112020 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112021 , p_source_73 => l_array_source_73(Idx)
112022 , p_source_74 => l_array_source_74(Idx)
112023 , p_source_75 => l_array_source_75(Idx)
112024 , p_source_76 => l_array_source_76(Idx)
112025 , p_source_77 => l_array_source_77(Idx)
112026 , p_source_111 => l_array_source_111(Idx)
112027 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112028 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112029 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112030 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112031 );
112032 If(l_balance_type_code = 'A') THEN
112033 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112034 END IF;
112035
112039 --
112036 --
112037
112038
112040 AcctLineType_117 (
112041 p_application_id => p_application_id
112042 ,p_event_id => l_event_id
112043 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112044 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112045 ,p_actual_flag => l_actual_flag
112046 ,p_balance_type_code => l_balance_type_code
112047 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112048
112049 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112050 , p_source_21 => l_array_source_21(Idx)
112051 , p_source_29 => l_array_source_29(Idx)
112052 , p_source_32 => l_array_source_32(Idx)
112053 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112054 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112055 , p_source_51 => l_array_source_51(Idx)
112056 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112057 , p_source_52 => l_array_source_52(Idx)
112058 , p_source_53 => l_array_source_53(Idx)
112059 , p_source_54 => l_array_source_54(Idx)
112060 , p_source_59 => l_array_source_59(Idx)
112061 , p_source_60 => l_array_source_60(Idx)
112062 , p_source_64 => l_array_source_64(Idx)
112063 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112064 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112065 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112066 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112067 , p_source_68 => l_array_source_68(Idx)
112068 , p_source_69 => l_array_source_69(Idx)
112069 , p_source_70 => l_array_source_70(Idx)
112070 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112071 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112072 , p_source_73 => l_array_source_73(Idx)
112073 , p_source_74 => l_array_source_74(Idx)
112074 , p_source_75 => l_array_source_75(Idx)
112075 , p_source_76 => l_array_source_76(Idx)
112076 , p_source_77 => l_array_source_77(Idx)
112077 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112078 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112079 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112080 );
112081 If(l_balance_type_code = 'A') THEN
112082 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112083 END IF;
112084
112085 --
112086
112087
112088 --
112089 AcctLineType_122 (
112090 p_application_id => p_application_id
112091 ,p_event_id => l_event_id
112092 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112093 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112094 ,p_actual_flag => l_actual_flag
112095 ,p_balance_type_code => l_balance_type_code
112096 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112097
112098 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112099 , p_source_21 => l_array_source_21(Idx)
112100 , p_source_29 => l_array_source_29(Idx)
112101 , p_source_32 => l_array_source_32(Idx)
112102 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112103 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112104 , p_source_51 => l_array_source_51(Idx)
112105 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112106 , p_source_52 => l_array_source_52(Idx)
112107 , p_source_53 => l_array_source_53(Idx)
112108 , p_source_54 => l_array_source_54(Idx)
112109 , p_source_59 => l_array_source_59(Idx)
112110 , p_source_60 => l_array_source_60(Idx)
112111 , p_source_61 => l_array_source_61(Idx)
112112 , p_source_62 => l_array_source_62(Idx)
112113 , p_source_63 => l_array_source_63(Idx)
112114 , p_source_64 => l_array_source_64(Idx)
112115 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112116 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112117 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112118 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112119 , p_source_68 => l_array_source_68(Idx)
112120 , p_source_69 => l_array_source_69(Idx)
112121 , p_source_70 => l_array_source_70(Idx)
112122 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112123 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112124 , p_source_73 => l_array_source_73(Idx)
112125 , p_source_74 => l_array_source_74(Idx)
112126 , p_source_75 => l_array_source_75(Idx)
112127 , p_source_76 => l_array_source_76(Idx)
112128 , p_source_77 => l_array_source_77(Idx)
112129 , p_source_111 => l_array_source_111(Idx)
112130 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112131 );
112132 If(l_balance_type_code = 'A') THEN
112133 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112134 END IF;
112135
112136 --
112137
112138
112139 --
112140 AcctLineType_125 (
112141 p_application_id => p_application_id
112142 ,p_event_id => l_event_id
112143 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112144 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112145 ,p_actual_flag => l_actual_flag
112146 ,p_balance_type_code => l_balance_type_code
112147 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112148
112149 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112150 , p_source_21 => l_array_source_21(Idx)
112151 , p_source_29 => l_array_source_29(Idx)
112152 , p_source_32 => l_array_source_32(Idx)
112153 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112154 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112155 , p_source_51 => l_array_source_51(Idx)
112156 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112157 , p_source_52 => l_array_source_52(Idx)
112158 , p_source_53 => l_array_source_53(Idx)
112159 , p_source_54 => l_array_source_54(Idx)
112160 , p_source_59 => l_array_source_59(Idx)
112161 , p_source_60 => l_array_source_60(Idx)
112162 , p_source_64 => l_array_source_64(Idx)
112163 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112167 , p_source_68 => l_array_source_68(Idx)
112164 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112165 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112166 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112168 , p_source_69 => l_array_source_69(Idx)
112169 , p_source_70 => l_array_source_70(Idx)
112170 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112171 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112172 , p_source_73 => l_array_source_73(Idx)
112173 , p_source_74 => l_array_source_74(Idx)
112174 , p_source_75 => l_array_source_75(Idx)
112175 , p_source_76 => l_array_source_76(Idx)
112176 , p_source_77 => l_array_source_77(Idx)
112177 , p_source_111 => l_array_source_111(Idx)
112178 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112179 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112180 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112181 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112182 );
112183 If(l_balance_type_code = 'A') THEN
112184 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112185 END IF;
112186
112187 --
112188
112189
112190 --
112191 AcctLineType_140 (
112192 p_application_id => p_application_id
112193 ,p_event_id => l_event_id
112194 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112195 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112196 ,p_actual_flag => l_actual_flag
112197 ,p_balance_type_code => l_balance_type_code
112198 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112199
112200 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112201 , p_source_21 => l_array_source_21(Idx)
112202 , p_source_29 => l_array_source_29(Idx)
112203 , p_source_32 => l_array_source_32(Idx)
112204 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112205 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112206 , p_source_51 => l_array_source_51(Idx)
112207 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112208 , p_source_52 => l_array_source_52(Idx)
112209 , p_source_53 => l_array_source_53(Idx)
112210 , p_source_54 => l_array_source_54(Idx)
112211 , p_source_59 => l_array_source_59(Idx)
112212 , p_source_60 => l_array_source_60(Idx)
112213 , p_source_64 => l_array_source_64(Idx)
112214 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112215 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112216 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112217 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112218 , p_source_68 => l_array_source_68(Idx)
112219 , p_source_69 => l_array_source_69(Idx)
112220 , p_source_70 => l_array_source_70(Idx)
112221 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112222 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112223 , p_source_73 => l_array_source_73(Idx)
112224 , p_source_74 => l_array_source_74(Idx)
112225 , p_source_75 => l_array_source_75(Idx)
112226 , p_source_76 => l_array_source_76(Idx)
112227 , p_source_77 => l_array_source_77(Idx)
112228 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112229 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112230 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112231 );
112232 If(l_balance_type_code = 'A') THEN
112233 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112234 END IF;
112235
112236 --
112237
112238
112239 --
112240 AcctLineType_151 (
112241 p_application_id => p_application_id
112242 ,p_event_id => l_event_id
112243 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112244 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112245 ,p_actual_flag => l_actual_flag
112246 ,p_balance_type_code => l_balance_type_code
112247 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112248
112249 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112250 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
112251 , p_source_16_meaning => g_array_event(l_event_id).array_value_char('source_16_meaning')
112252 , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
112253 , p_source_19 => l_array_source_19(Idx)
112254 , p_source_19_meaning => l_array_source_19_meaning(Idx)
112255 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
112256 , p_source_21 => l_array_source_21(Idx)
112257 , p_source_22 => l_array_source_22(Idx)
112258 , p_source_29 => l_array_source_29(Idx)
112259 , p_source_42 => g_array_event(l_event_id).array_value_char('source_42')
112260 , p_source_42_meaning => g_array_event(l_event_id).array_value_char('source_42_meaning')
112261 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112262 , p_source_51 => l_array_source_51(Idx)
112263 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112264 , p_source_52 => l_array_source_52(Idx)
112265 , p_source_53 => l_array_source_53(Idx)
112266 , p_source_54 => l_array_source_54(Idx)
112267 , p_source_59 => l_array_source_59(Idx)
112268 , p_source_60 => l_array_source_60(Idx)
112269 , p_source_64 => l_array_source_64(Idx)
112270 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112271 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112272 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112273 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112274 , p_source_68 => l_array_source_68(Idx)
112275 , p_source_69 => l_array_source_69(Idx)
112276 , p_source_70 => l_array_source_70(Idx)
112277 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112278 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112279 , p_source_73 => l_array_source_73(Idx)
112280 , p_source_74 => l_array_source_74(Idx)
112284 , p_source_111 => l_array_source_111(Idx)
112281 , p_source_75 => l_array_source_75(Idx)
112282 , p_source_76 => l_array_source_76(Idx)
112283 , p_source_77 => l_array_source_77(Idx)
112285 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112286 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112287 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112288 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112289 );
112290 If(l_balance_type_code = 'A') THEN
112291 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112292 END IF;
112293
112294 --
112295
112296
112297 --
112298 AcctLineType_154 (
112299 p_application_id => p_application_id
112300 ,p_event_id => l_event_id
112301 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112302 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112303 ,p_actual_flag => l_actual_flag
112304 ,p_balance_type_code => l_balance_type_code
112305 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112306
112307 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112308 , p_source_21 => l_array_source_21(Idx)
112309 , p_source_29 => l_array_source_29(Idx)
112310 , p_source_32 => l_array_source_32(Idx)
112311 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112312 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112313 , p_source_51 => l_array_source_51(Idx)
112314 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112315 , p_source_52 => l_array_source_52(Idx)
112316 , p_source_53 => l_array_source_53(Idx)
112317 , p_source_54 => l_array_source_54(Idx)
112318 , p_source_59 => l_array_source_59(Idx)
112319 , p_source_60 => l_array_source_60(Idx)
112320 , p_source_64 => l_array_source_64(Idx)
112321 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112322 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112323 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112324 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112325 , p_source_68 => l_array_source_68(Idx)
112326 , p_source_69 => l_array_source_69(Idx)
112327 , p_source_70 => l_array_source_70(Idx)
112328 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112329 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112330 , p_source_73 => l_array_source_73(Idx)
112331 , p_source_74 => l_array_source_74(Idx)
112332 , p_source_75 => l_array_source_75(Idx)
112333 , p_source_76 => l_array_source_76(Idx)
112334 , p_source_77 => l_array_source_77(Idx)
112335 , p_source_111 => l_array_source_111(Idx)
112336 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112337 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112338 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112339 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112340 );
112341 If(l_balance_type_code = 'A') THEN
112342 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112343 END IF;
112344
112345 --
112346
112347
112348 --
112349 AcctLineType_157 (
112350 p_application_id => p_application_id
112351 ,p_event_id => l_event_id
112352 ,p_calculate_acctd_flag => l_calculate_acctd_flag
112353 ,p_calculate_g_l_flag => l_calculate_g_l_flag
112354 ,p_actual_flag => l_actual_flag
112355 ,p_balance_type_code => l_balance_type_code
112356 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
112357
112358 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
112359 , p_source_21 => l_array_source_21(Idx)
112360 , p_source_29 => l_array_source_29(Idx)
112361 , p_source_32 => l_array_source_32(Idx)
112362 , p_source_32_meaning => l_array_source_32_meaning(Idx)
112363 , p_source_50 => g_array_event(l_event_id).array_value_char('source_50')
112364 , p_source_51 => l_array_source_51(Idx)
112365 , p_source_51_meaning => l_array_source_51_meaning(Idx)
112366 , p_source_52 => l_array_source_52(Idx)
112367 , p_source_53 => l_array_source_53(Idx)
112368 , p_source_54 => l_array_source_54(Idx)
112369 , p_source_59 => l_array_source_59(Idx)
112370 , p_source_60 => l_array_source_60(Idx)
112371 , p_source_64 => l_array_source_64(Idx)
112372 , p_source_64_meaning => l_array_source_64_meaning(Idx)
112373 , p_source_65 => g_array_event(l_event_id).array_value_num('source_65')
112374 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
112375 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
112376 , p_source_68 => l_array_source_68(Idx)
112377 , p_source_69 => l_array_source_69(Idx)
112378 , p_source_70 => l_array_source_70(Idx)
112379 , p_source_71 => g_array_event(l_event_id).array_value_char('source_71')
112380 , p_source_71_meaning => g_array_event(l_event_id).array_value_char('source_71_meaning')
112381 , p_source_73 => l_array_source_73(Idx)
112382 , p_source_74 => l_array_source_74(Idx)
112383 , p_source_75 => l_array_source_75(Idx)
112384 , p_source_76 => l_array_source_76(Idx)
112385 , p_source_77 => l_array_source_77(Idx)
112386 , p_source_111 => l_array_source_111(Idx)
112387 , p_source_111_meaning => l_array_source_111_meaning(Idx)
112388 , p_source_121 => g_array_event(l_event_id).array_value_date('source_121')
112389 , p_source_122 => g_array_event(l_event_id).array_value_num('source_122')
112390 , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
112391 );
112392 If(l_balance_type_code = 'A') THEN
112393 l_actual_gain_loss_ref := l_gain_or_loss_ref;
112394 END IF;
112395
112396 --
112397
112398 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
112399 -- or secondary ledger that has different currency with primary
112400 -- or alc that is calculated by sla
112401 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
112405 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
112402 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y'))
112403
112404 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
112406 AND (l_actual_flag = 'A')) THEN
112407 XLA_AE_LINES_PKG.CreateGainOrLossLines(
112408 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
112409 ,p_application_id => p_application_id
112410 ,p_amb_context_code => 'DEFAULT'
112411 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
112412 ,p_event_class_code => C_EVENT_CLASS_CODE
112413 ,p_event_type_code => C_EVENT_TYPE_CODE
112414
112415 ,p_gain_ccid => -1
112416 ,p_loss_ccid => -1
112417
112418 ,p_actual_flag => l_actual_flag
112419 ,p_enc_flag => null
112420 ,p_actual_g_l_ref => l_actual_gain_loss_ref
112421 ,p_enc_g_l_ref => null
112422 );
112423 END IF;
112424 END IF;
112425 END IF;
112426
112427 ELSE
112428 --
112429 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
112430 --
112431 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112432 trace
112433 (p_msg => 'Trancaction revesal option is Y'
112434 ,p_level => C_LEVEL_STATEMENT
112435 ,p_module => l_log_module);
112436 END IF;
112437 END IF;
112438
112439 END LOOP;
112440 l_result := XLA_AE_LINES_PKG.InsertLines ;
112441 end loop;
112442 close line_cur;
112443
112444
112445 --
112446 -- insert headers into xla_ae_headers_gt table
112447 --
112448 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
112449
112450 -- insert into errors table here.
112451
112452 END LOOP;
112453
112454 --
112455 -- 4865292
112456 --
112457 -- Compare g_hdr_extract_count with event count in
112458 -- CreateHeadersAndLines.
112459 --
112460 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
112461
112462 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112463 trace (p_msg => '# rows extracted from header extract objects '
112464 || ' (running total): '
112465 || g_hdr_extract_count
112466 ,p_level => C_LEVEL_STATEMENT
112467 ,p_module => l_log_module);
112468 END IF;
112469
112470 CLOSE header_cur;
112471 --
112472
112473 --
112474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112475 trace
112476 (p_msg => 'END of EventClass_170'
112477 ,p_level => C_LEVEL_PROCEDURE
112478 ,p_module => l_log_module);
112479 END IF;
112480 --
112481 RETURN l_result;
112482 EXCEPTION
112483 WHEN xla_exceptions_pkg.application_exception THEN
112484
112485 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
112486
112487
112488 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
112489
112490 RAISE;
112491
112492 WHEN NO_DATA_FOUND THEN
112493
112494 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
112495 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
112496
112497 FOR header_record IN header_cur
112498 LOOP
112499 l_array_header_events(header_record.event_id) := header_record.event_id;
112500 END LOOP;
112501
112502 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
112503 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
112504
112505 fnd_file.put_line(fnd_file.LOG, ' ');
112506 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
112507 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
112508 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
112509
112510 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
112511 LOOP
112512 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
112513 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
112514 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
112515 END IF;
112516 END LOOP;
112517
112518 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
112519 fnd_file.put_line(fnd_file.LOG, ' ');
112520
112521
112522 xla_exceptions_pkg.raise_message
112523 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_170');
112524
112525
112526 WHEN OTHERS THEN
112527 xla_exceptions_pkg.raise_message
112528 (p_location => 'XLA_00200_AAD_S_000011_PKG.EventClass_170');
112529 END EventClass_170;
112530 --
112531
112532 --
112533 --+============================================+
112534 --| |
112535 --| PRIVATE FUNCTION |
112536 --| |
112537 --+============================================+
112538 --
112539 FUNCTION CreateHeadersAndLines
112540 (p_application_id IN NUMBER
112541 ,p_base_ledger_id IN NUMBER
112542 ,p_target_ledger_id IN NUMBER
112543 ,p_pad_start_date IN DATE
112544 ,p_pad_end_date IN DATE
112545 ,p_primary_ledger_id IN NUMBER)
112546 RETURN BOOLEAN IS
112547 l_created BOOLEAN:=FALSE;
112548 l_event_id NUMBER;
112549 l_event_date DATE;
112550 l_language VARCHAR2(30);
112551 l_currency_code VARCHAR2(30);
112555 BEGIN
112552 l_sla_ledger_id NUMBER;
112553 l_log_module VARCHAR2(240);
112554
112556 --
112557 IF g_log_enabled THEN
112558 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
112559 END IF;
112560 --
112561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112562 trace
112563 (p_msg => 'BEGIN of CreateHeadersAndLines'
112564 ,p_level => C_LEVEL_PROCEDURE
112565 ,p_module => l_log_module);
112566 END IF;
112567
112568 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
112569 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
112570 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
112571
112572 --
112573 -- initialize array of lines with NULL
112574 --
112575 xla_ae_lines_pkg.SetNullLine;
112576
112577 --
112578 -- initialize header extract count -- Bug 4865292
112579 --
112580 g_hdr_extract_count:= 0;
112581
112582
112583 l_created := EventClass_166(
112584 p_application_id => p_application_id
112585 , p_base_ledger_id => p_base_ledger_id
112586 , p_target_ledger_id => p_target_ledger_id
112587 , p_language => l_language
112588 , p_currency_code => l_currency_code
112589 , p_sla_ledger_id => l_sla_ledger_id
112590 , p_pad_start_date => p_pad_start_date
112591 , p_pad_end_date => p_pad_end_date
112592 , p_primary_ledger_id => p_primary_ledger_id
112593 );
112594
112595
112596
112597 IF ( g_diagnostics_mode ='Y' ) THEN
112598
112599 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112600 trace
112601 (p_msg => 'CALL Transaction Objects Diagnostics'
112602 ,p_level => C_LEVEL_STATEMENT
112603 ,p_module => l_log_module);
112604
112605 END IF;
112606
112607 insert_sources_166(
112608 p_target_ledger_id => p_target_ledger_id
112609 , p_language => l_language
112610 , p_sla_ledger_id => l_sla_ledger_id
112611 , p_pad_start_date => p_pad_start_date
112612 , p_pad_end_date => p_pad_end_date
112613 );
112614
112615 END IF;
112616
112617 l_created := EventClass_167(
112618 p_application_id => p_application_id
112619 , p_base_ledger_id => p_base_ledger_id
112620 , p_target_ledger_id => p_target_ledger_id
112621 , p_language => l_language
112622 , p_currency_code => l_currency_code
112623 , p_sla_ledger_id => l_sla_ledger_id
112624 , p_pad_start_date => p_pad_start_date
112625 , p_pad_end_date => p_pad_end_date
112626 , p_primary_ledger_id => p_primary_ledger_id
112627 );
112628
112629
112630
112631 IF ( g_diagnostics_mode ='Y' ) THEN
112632
112633 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112634 trace
112635 (p_msg => 'CALL Transaction Objects Diagnostics'
112636 ,p_level => C_LEVEL_STATEMENT
112637 ,p_module => l_log_module);
112638
112639 END IF;
112640
112641 insert_sources_167(
112642 p_target_ledger_id => p_target_ledger_id
112643 , p_language => l_language
112644 , p_sla_ledger_id => l_sla_ledger_id
112645 , p_pad_start_date => p_pad_start_date
112646 , p_pad_end_date => p_pad_end_date
112647 );
112648
112649 END IF;
112650
112651 l_created := EventClass_168(
112652 p_application_id => p_application_id
112653 , p_base_ledger_id => p_base_ledger_id
112654 , p_target_ledger_id => p_target_ledger_id
112655 , p_language => l_language
112656 , p_currency_code => l_currency_code
112657 , p_sla_ledger_id => l_sla_ledger_id
112658 , p_pad_start_date => p_pad_start_date
112659 , p_pad_end_date => p_pad_end_date
112660 , p_primary_ledger_id => p_primary_ledger_id
112661 );
112662
112663
112664
112665 IF ( g_diagnostics_mode ='Y' ) THEN
112666
112667 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112668 trace
112669 (p_msg => 'CALL Transaction Objects Diagnostics'
112670 ,p_level => C_LEVEL_STATEMENT
112671 ,p_module => l_log_module);
112672
112673 END IF;
112674
112675 insert_sources_168(
112676 p_target_ledger_id => p_target_ledger_id
112677 , p_language => l_language
112678 , p_sla_ledger_id => l_sla_ledger_id
112679 , p_pad_start_date => p_pad_start_date
112680 , p_pad_end_date => p_pad_end_date
112681 );
112682
112683 END IF;
112684
112685 l_created := EventClass_169(
112686 p_application_id => p_application_id
112687 , p_base_ledger_id => p_base_ledger_id
112688 , p_target_ledger_id => p_target_ledger_id
112689 , p_language => l_language
112690 , p_currency_code => l_currency_code
112691 , p_sla_ledger_id => l_sla_ledger_id
112692 , p_pad_start_date => p_pad_start_date
112693 , p_pad_end_date => p_pad_end_date
112694 , p_primary_ledger_id => p_primary_ledger_id
112695 );
112696
112697
112698
112699 IF ( g_diagnostics_mode ='Y' ) THEN
112700
112701 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112702 trace
112703 (p_msg => 'CALL Transaction Objects Diagnostics'
112707 END IF;
112704 ,p_level => C_LEVEL_STATEMENT
112705 ,p_module => l_log_module);
112706
112708
112709 insert_sources_169(
112710 p_target_ledger_id => p_target_ledger_id
112711 , p_language => l_language
112712 , p_sla_ledger_id => l_sla_ledger_id
112713 , p_pad_start_date => p_pad_start_date
112714 , p_pad_end_date => p_pad_end_date
112715 );
112716
112717 END IF;
112718
112719 l_created := EventClass_170(
112720 p_application_id => p_application_id
112721 , p_base_ledger_id => p_base_ledger_id
112722 , p_target_ledger_id => p_target_ledger_id
112723 , p_language => l_language
112724 , p_currency_code => l_currency_code
112725 , p_sla_ledger_id => l_sla_ledger_id
112726 , p_pad_start_date => p_pad_start_date
112727 , p_pad_end_date => p_pad_end_date
112728 , p_primary_ledger_id => p_primary_ledger_id
112729 );
112730
112731
112732
112733 IF ( g_diagnostics_mode ='Y' ) THEN
112734
112735 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112736 trace
112737 (p_msg => 'CALL Transaction Objects Diagnostics'
112738 ,p_level => C_LEVEL_STATEMENT
112739 ,p_module => l_log_module);
112740
112741 END IF;
112742
112743 insert_sources_170(
112744 p_target_ledger_id => p_target_ledger_id
112745 , p_language => l_language
112746 , p_sla_ledger_id => l_sla_ledger_id
112747 , p_pad_start_date => p_pad_start_date
112748 , p_pad_end_date => p_pad_end_date
112749 );
112750
112751 END IF;
112752
112753
112754 --
112755 -- Bug 4865292
112756 -- When the number of events and that of header extract do not match,
112757 -- set the no header extract flag to indicate there are some issues
112758 -- in header extract.
112759 --
112760 -- Event count context is set in xla_accounting_pkg.unit_processor.
112761 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
112762 -- to report it as a general error.
112763 --
112764 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
112765 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
112766
112767 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112768 trace
112769 (p_msg => '# of extracted headers and events does not match'
112770 ,p_level => C_LEVEL_STATEMENT
112771 ,p_module => l_log_module);
112772
112773 trace
112774 (p_msg => '# of extracted headers: '
112775 ||g_hdr_extract_count
112776 ,p_level => C_LEVEL_STATEMENT
112777 ,p_module => l_log_module);
112778
112779 trace
112780 (p_msg => '# of events in xla_events_gt: '
112781 ||xla_context_pkg.get_event_count_context
112782 ,p_level => C_LEVEL_STATEMENT
112783 ,p_module => l_log_module);
112784
112785 trace
112786 (p_msg => 'Event No Header Extract Context: '
112787 ||xla_context_pkg.get_event_nohdr_context
112788 ,p_level => C_LEVEL_STATEMENT
112789 ,p_module => l_log_module);
112790
112791 END IF;
112792
112793
112794 xla_context_pkg.set_event_nohdr_context
112795 (p_nohdr_extract_flag => 'Y'
112796 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
112797
112798 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112799 trace
112800 (p_msg => 'No Header Extract Flag is set to Y'
112801 ,p_level => C_LEVEL_STATEMENT
112802 ,p_module => l_log_module);
112803 END IF;
112804
112805 END IF;
112806
112807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112808 trace
112809 (p_msg => 'END of CreateHeadersAndLines'
112810 ,p_level => C_LEVEL_PROCEDURE
112811 ,p_module => l_log_module);
112812 END IF;
112813
112814 RETURN l_created;
112815 EXCEPTION
112816 WHEN xla_exceptions_pkg.application_exception THEN
112817 RAISE;
112818 WHEN OTHERS THEN
112819 xla_exceptions_pkg.raise_message
112820 (p_location => 'XLA_00200_AAD_S_000011_PKG.CreateHeadersAndLines');
112821 END CreateHeadersAndLines;
112822 --
112823 --
112824
112825 --
112826 --+============================================+
112827 --| |
112828 --| PUBLIC FUNCTION |
112829 --| |
112830 --+============================================+
112831 --
112832 FUNCTION CreateJournalEntries
112833 (p_application_id IN NUMBER
112834 ,p_base_ledger_id IN NUMBER
112835 ,p_pad_start_date IN DATE
112836 ,p_pad_end_date IN DATE
112837 ,p_primary_ledger_id IN NUMBER)
112838 RETURN NUMBER IS
112839 l_log_module VARCHAR2(240);
112840 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
112841 l_temp_result BOOLEAN;
112842 l_result NUMBER;
112843 BEGIN
112844 --
112845 IF g_log_enabled THEN
112846 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
112847 END IF;
112848 --
112849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112850 trace
112851 (p_msg => 'BEGIN of CreateJournalEntries'||
112852 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
112853 ,p_level => C_LEVEL_PROCEDURE
112857
112854 ,p_module => l_log_module);
112855
112856 END IF;
112858 --
112859 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
112860
112861 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
112862 trace
112863 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
112864 ,p_level => C_LEVEL_STATEMENT
112865 ,p_module => l_log_module);
112866 END IF;
112867 --
112868 xla_ae_journal_entry_pkg.SetProductAcctDefinition
112869 (p_product_rule_code => 'CASH'
112870 ,p_product_rule_type_code => 'S'
112871 ,p_product_rule_version => ''
112872 ,p_product_rule_name => 'Cash Basis'
112873 ,p_amb_context_code => 'DEFAULT'
112874 );
112875
112876 l_array_ledgers :=
112877 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
112878 (p_base_ledger_id => p_base_ledger_id);
112879
112880 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
112881 l_temp_result :=
112882 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
112883 (p_application_id => p_application_id
112884 ,p_base_ledger_id => p_base_ledger_id
112885 ,p_target_ledger_id => l_array_ledgers(Idx)
112886 ,p_primary_ledger_id => p_primary_ledger_id
112887 ,p_pad_start_date => p_pad_start_date
112888 ,p_pad_end_date => p_pad_end_date);
112889
112890 l_temp_result :=
112891 l_temp_result AND
112892 CreateHeadersAndLines
112893 (p_application_id => p_application_id
112894 ,p_base_ledger_id => p_base_ledger_id
112895 ,p_target_ledger_id => l_array_ledgers(Idx)
112896 ,p_pad_start_date => p_pad_start_date
112897 ,p_pad_end_date => p_pad_end_date
112898 ,p_primary_ledger_id => p_primary_ledger_id
112899 );
112900 END LOOP;
112901
112902
112903 IF (g_diagnostics_mode = 'Y' AND
112904 C_LEVEL_UNEXPECTED >= g_log_level AND
112905 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
112906
112907 xla_accounting_dump_pkg.acctg_event_extract_log(
112908 p_application_id => p_application_id
112909 ,p_request_id => xla_environment_pkg.g_Req_Id
112910 );
112911
112912 END IF;
112913
112914 CASE l_temp_result
112915 WHEN TRUE THEN l_result := 0;
112916 ELSE l_result := 2;
112917 END CASE;
112918
112919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112920 trace
112921 (p_msg => 'return value. = '||TO_CHAR(l_result)
112922 ,p_level => C_LEVEL_PROCEDURE
112923 ,p_module => l_log_module);
112924 trace
112925 (p_msg => 'END of CreateJournalEntries '
112926 ,p_level => C_LEVEL_PROCEDURE
112927 ,p_module => l_log_module);
112928 END IF;
112929
112930 RETURN l_result;
112931 EXCEPTION
112932 WHEN xla_exceptions_pkg.application_exception THEN
112933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112934 trace
112935 (p_msg => 'ERROR. = '||sqlerrm
112936 ,p_level => C_LEVEL_PROCEDURE
112937 ,p_module => l_log_module);
112938 END IF;
112939 RAISE;
112940 WHEN OTHERS THEN
112941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112942 trace
112943 (p_msg => 'ERROR. = '||sqlerrm
112944 ,p_level => C_LEVEL_PROCEDURE
112945 ,p_module => l_log_module);
112946 END IF;
112947 xla_exceptions_pkg.raise_message
112948 (p_location => 'XLA_00200_AAD_S_000011_PKG.CreateJournalEntries');
112949 END CreateJournalEntries;
112950 --
112951 --=============================================================================
112952 --
112953 --
112954 --
112955 --
112956 --
112957 --
112958 --
112959 --
112960 --
112961 --
112962 --
112963 --
112964 --
112965 --
112966 --
112967 --
112968 --
112969 --
112970 --
112971 --
112972 --
112973 --
112974 --=============================================================================
112975 --=============================================================================
112976 -- *********** Initialization routine **********
112977 --=============================================================================
112978
112979 BEGIN
112980 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
112981 g_log_enabled := fnd_log.test
112982 (log_level => g_log_level
112983 ,module => C_DEFAULT_MODULE);
112984
112985 IF NOT g_log_enabled THEN
112986 g_log_level := C_LEVEL_LOG_DISABLED;
112987 END IF;
112988 --
112989 END XLA_00200_AAD_S_000011_PKG;
112990 --