[Home] [Help]
PACKAGE BODY: APPS.XLA_00200_AAD_S_000012_BC_PKG
Source
1 PACKAGE BODY XLA_00200_AAD_S_000012_BC_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_000012_BC_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Federal Payables AAD |
14 | Code : FV_PAYABLES_AAD |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 06:03:11 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_000012_BC_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_000012_BC_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_000012_BC_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_000012_BC_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 )
241 RETURN VARCHAR2
242 IS
243 l_component_type VARCHAR2(80) ;
244 l_component_code VARCHAR2(30) ;
245 l_component_type_code VARCHAR2(1) ;
246 l_component_appl_id INTEGER ;
247 l_amb_context_code VARCHAR2(30) ;
248 l_ledger_language VARCHAR2(30) ;
249 l_source VARCHAR2(1996) ;
250 l_description VARCHAR2(2000) ;
251 l_log_module VARCHAR2(240) ;
252 BEGIN
253 IF g_log_enabled THEN
254 l_log_module := C_DEFAULT_MODULE||'.Description_1';
255 END IF;
256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
257 trace
258 (p_msg => 'BEGIN of Description_1'
259 ,p_level => C_LEVEL_PROCEDURE
260 ,p_module => l_log_module);
261 END IF;
262
263 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
264 l_component_type := 'AMB_DESCRIPTION';
265 l_component_code := 'JE_INVOICE_DESCRIPTION';
266 l_component_type_code := 'S';
267 l_component_appl_id := 200;
268 l_amb_context_code := 'DEFAULT';
269 l_source := NULL;
270 l_description := NULL;
271
272
273 l_description := null;
274 l_description := SUBSTR(l_description,1,1996);
275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
276 trace
277 (p_msg => 'END of Description_1'
278 ,p_level => C_LEVEL_PROCEDURE
279 ,p_module => l_log_module);
280
281 END IF;
282 RETURN l_description;
283
284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
285 trace
286 (p_msg => 'END of Description_1'
287 ,p_level => C_LEVEL_PROCEDURE
288 ,p_module => l_log_module);
289 END IF;
290 RETURN NULL;
291 EXCEPTION
292 WHEN VALUE_ERROR THEN
293 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
294 trace
295 (p_msg => 'ERROR: '||sqlerrm
296 ,p_level => C_LEVEL_EXCEPTION
297 ,p_module => l_log_module);
298 END IF;
299 RAISE;
300 WHEN xla_exceptions_pkg.application_exception THEN
301 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
302 trace
303 (p_msg => 'ERROR: '||sqlerrm
304 ,p_level => C_LEVEL_EXCEPTION
305 ,p_module => l_log_module);
306 END IF;
307 RAISE;
308 WHEN OTHERS THEN
309 xla_exceptions_pkg.raise_message
310 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.Description_1');
311 END Description_1;
312
313 ---------------------------------------
314 --
315 -- PRIVATE FUNCTION
316 -- Description_2
317 --
318 ---------------------------------------
319 FUNCTION Description_2 (
320 p_application_id IN NUMBER
321 , p_ae_header_id IN NUMBER DEFAULT NULL
322 --Invoice Distribution Description
323 , p_source_1 IN VARCHAR2
324 )
325 RETURN VARCHAR2
326 IS
327 l_component_type VARCHAR2(80) ;
328 l_component_code VARCHAR2(30) ;
329 l_component_type_code VARCHAR2(1) ;
330 l_component_appl_id INTEGER ;
331 l_amb_context_code VARCHAR2(30) ;
332 l_ledger_language VARCHAR2(30) ;
333 l_source VARCHAR2(1996) ;
334 l_description VARCHAR2(2000) ;
335 l_log_module VARCHAR2(240) ;
336 BEGIN
337 IF g_log_enabled THEN
338 l_log_module := C_DEFAULT_MODULE||'.Description_2';
339 END IF;
340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
341 trace
342 (p_msg => 'BEGIN of Description_2'
343 ,p_level => C_LEVEL_PROCEDURE
344 ,p_module => l_log_module);
345 END IF;
346
347 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
348 l_component_type := 'AMB_DESCRIPTION';
349 l_component_code := 'JE_INV_DIST_DESCRIPTION';
350 l_component_type_code := 'S';
351 l_component_appl_id := 200;
352 l_amb_context_code := 'DEFAULT';
353 l_source := NULL;
354 l_description := NULL;
355
356
357
358 l_source := SUBSTR(p_source_1,1,1996);
359 IF l_source IS NOT NULL THEN
360 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
361 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
362 END IF;
363 l_description := SUBSTR(l_description,1,1996);
364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
365 trace
366 (p_msg => 'END of Description_2'
367 ,p_level => C_LEVEL_PROCEDURE
368 ,p_module => l_log_module);
369
370 END IF;
371 RETURN l_description;
372
373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
374 trace
375 (p_msg => 'END of Description_2'
376 ,p_level => C_LEVEL_PROCEDURE
377 ,p_module => l_log_module);
378 END IF;
379 RETURN NULL;
380 EXCEPTION
381 WHEN VALUE_ERROR THEN
382 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
383 trace
384 (p_msg => 'ERROR: '||sqlerrm
385 ,p_level => C_LEVEL_EXCEPTION
386 ,p_module => l_log_module);
387 END IF;
388 RAISE;
389 WHEN xla_exceptions_pkg.application_exception THEN
390 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
391 trace
392 (p_msg => 'ERROR: '||sqlerrm
393 ,p_level => C_LEVEL_EXCEPTION
394 ,p_module => l_log_module);
395 END IF;
396 RAISE;
397 WHEN OTHERS THEN
398 xla_exceptions_pkg.raise_message
399 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.Description_2');
400 END Description_2;
401
402 ---------------------------------------
403 --
404 -- PRIVATE FUNCTION
405 -- AcctDerRule_3
406 --
407 ---------------------------------------
408 FUNCTION AcctDerRule_3 (
409 p_application_id IN NUMBER
410 , p_ae_header_id IN NUMBER
411 , p_side IN VARCHAR2
412 --Invoice Distribution Account
413 , p_source_2 IN NUMBER
414 , x_transaction_coa_id OUT NOCOPY NUMBER
415 , x_accounting_coa_id OUT NOCOPY NUMBER
416 , x_value_type_code OUT NOCOPY VARCHAR2
417 )
418 RETURN NUMBER
419 IS
420 l_component_type VARCHAR2(80) ;
421 l_component_code VARCHAR2(30) ;
422 l_component_type_code VARCHAR2(1) ;
423 l_component_appl_id INTEGER ;
424 l_amb_context_code VARCHAR2(30) ;
425 l_log_module VARCHAR2(240) ;
426 l_output_value NUMBER ;
427 BEGIN
428 IF g_log_enabled THEN
429 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
430 END IF;
431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
432 trace
433 (p_msg => 'BEGIN of AcctDerRule_3'
434 ,p_level => C_LEVEL_PROCEDURE
435 ,p_module => l_log_module);
436 END IF;
437 --
438 l_component_type := 'AMB_ADR';
439 l_component_code := 'AP_INVOICE_DIST';
440 l_component_type_code := 'S';
441 l_component_appl_id := 200;
442 l_amb_context_code := 'DEFAULT';
443 x_transaction_coa_id := null;
444 x_accounting_coa_id := null;
445 --
446
447 --
448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
449 trace
450 (p_msg => 'END of AcctDerRule_3'
451 ,p_level => C_LEVEL_PROCEDURE
452 ,p_module => l_log_module);
453 END IF;
454 x_value_type_code := 'S';
455 l_output_value := TO_NUMBER(TO_NUMBER(p_source_2));
456 RETURN l_output_value;
457
458 --
459 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
460 trace
461 (p_msg => 'END of AcctDerRule_3(invalid)'
462 ,p_level => C_LEVEL_PROCEDURE
463 ,p_module => l_log_module);
464 END IF;
465 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
466 x_value_type_code := null;
467 l_output_value := null;
468 xla_accounting_err_pkg.build_message
469 (p_appli_s_name => 'XLA'
470 ,p_msg_name => 'XLA_AP_INVALID_ADR'
471 ,p_token_1 => 'COMPONENT_NAME'
472 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
473 l_component_type
474 , l_component_code
475 , l_component_type_code
476 , l_component_appl_id
477 , l_amb_context_code
478 )
479 ,p_token_2 => 'OWNER'
480 ,p_value_2 => xla_lookups_pkg.get_meaning(
481 'XLA_OWNER_TYPE'
482 ,l_component_type_code
483 )
484 ,p_token_3 => 'PAD_NAME'
485 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
486 ,p_token_4 => 'PAD_OWNER'
487 ,p_value_4 => xla_lookups_pkg.get_meaning(
488 'XLA_OWNER_TYPE'
489 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
490 )
491 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
492 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
493 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
494 ,p_ae_header_id => NULL
495 );
496 RETURN l_output_value;
497 EXCEPTION
498 WHEN xla_exceptions_pkg.application_exception THEN
499 RAISE;
500 WHEN OTHERS THEN
501 xla_exceptions_pkg.raise_message
502 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_3');
503 END AcctDerRule_3;
504 --
505
506 ---------------------------------------
507 --
508 -- PRIVATE FUNCTION
509 -- AcctDerRule_4
510 --
511 ---------------------------------------
512 FUNCTION AcctDerRule_4 (
513 p_application_id IN NUMBER
514 , p_ae_header_id IN NUMBER
515 , p_side IN VARCHAR2
516 , p_override_seg_flag IN VARCHAR2
517 , x_transaction_coa_id OUT NOCOPY NUMBER
518 , x_accounting_coa_id OUT NOCOPY NUMBER
519 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
520 , x_flex_value_set_id OUT NOCOPY NUMBER
521 , x_value_type_code OUT NOCOPY VARCHAR2
522 , x_value_combination_id OUT NOCOPY NUMBER
523 , x_value_segment_code OUT NOCOPY VARCHAR2
524 )
525 RETURN VARCHAR2
526 IS
527 l_component_type VARCHAR2(80) ;
528 l_component_code VARCHAR2(30) ;
529 l_component_type_code VARCHAR2(1) ;
530 l_component_appl_id INTEGER ;
531 l_amb_context_code VARCHAR2(30) ;
532 l_log_module VARCHAR2(240) ;
533 l_output_value VARCHAR2(30) ;
534 BEGIN
535 IF g_log_enabled THEN
536 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
537 END IF;
538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
539
540 trace
541 (p_msg => 'BEGIN of AcctDerRule_4'
542 ,p_level => C_LEVEL_PROCEDURE
543 ,p_module => l_log_module);
544
545 END IF;
546
547 l_component_type := 'AMB_ADR';
548 l_component_code := 'FV_310701_UNEXP_APPR_ACCT';
549 l_component_type_code := 'S';
550 l_component_appl_id := 200;
551 l_amb_context_code := 'DEFAULT';
552 x_transaction_coa_id := null;
553 x_accounting_coa_id := null;
554 x_flexfield_segment_code := null;
555 x_flex_value_set_id := 1009988 ;
556
557
558 --
559 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
560
561 trace
562 (p_msg => 'END of AcctDerRule_4'
563 ,p_level => C_LEVEL_PROCEDURE
564 ,p_module => l_log_module);
565
566 END IF;
567 x_value_combination_id := null ;
568 x_value_segment_code := null ;
569 x_value_type_code := 'C';
570 l_output_value := '310701';
571 RETURN l_output_value;
572
573
574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
575
576 trace
577 (p_msg => 'END of AcctDerRule_4(invalid)'
578 ,p_level => C_LEVEL_PROCEDURE
579 ,p_module => l_log_module);
580
581 END IF;
582
583 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
584 x_value_combination_id := null;
585 x_value_segment_code := null;
586 x_value_type_code := null;
587 l_output_value := null;
588 xla_accounting_err_pkg.build_message
589 (p_appli_s_name => 'XLA'
590 ,p_msg_name => 'XLA_AP_INVALID_ADR'
591 ,p_token_1 => 'COMPONENT_NAME'
592 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
593 l_component_type
594 , l_component_code
595 , l_component_type_code
596 , l_component_appl_id
597 , l_amb_context_code
598 )
599 ,p_token_2 => 'OWNER'
600 ,p_value_2 => xla_lookups_pkg.get_meaning(
601 'XLA_OWNER_TYPE'
602 ,l_component_type_code
603 )
604 ,p_token_3 => 'PAD_NAME'
605 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
606 ,p_token_4 => 'PAD_OWNER'
607 ,p_value_4 => xla_lookups_pkg.get_meaning(
608 'XLA_OWNER_TYPE'
609 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
610 )
611 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
612 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
613 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
614 ,p_ae_header_id => NULL
615 );
616 RETURN l_output_value;
617 EXCEPTION
618 WHEN xla_exceptions_pkg.application_exception THEN
619 RAISE;
620 WHEN OTHERS THEN
621 xla_exceptions_pkg.raise_message
622 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_4');
623 END AcctDerRule_4;
624 --
625
626 ---------------------------------------
627 --
628 -- PRIVATE FUNCTION
629 -- AcctDerRule_5
630 --
631 ---------------------------------------
632 FUNCTION AcctDerRule_5 (
633 p_application_id IN NUMBER
634 , p_ae_header_id IN NUMBER
635 , p_side IN VARCHAR2
636 , p_override_seg_flag IN VARCHAR2
637 --Federal Anticipation
638 , p_source_3 IN VARCHAR2
639 , x_transaction_coa_id OUT NOCOPY NUMBER
640 , x_accounting_coa_id OUT NOCOPY NUMBER
641 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
642 , x_flex_value_set_id OUT NOCOPY NUMBER
643 , x_value_type_code OUT NOCOPY VARCHAR2
644 , x_value_combination_id OUT NOCOPY NUMBER
645 , x_value_segment_code OUT NOCOPY VARCHAR2
646 )
647 RETURN VARCHAR2
648 IS
649 l_component_type VARCHAR2(80) ;
650 l_component_code VARCHAR2(30) ;
651 l_component_type_code VARCHAR2(1) ;
652 l_component_appl_id INTEGER ;
653 l_amb_context_code VARCHAR2(30) ;
654 l_log_module VARCHAR2(240) ;
655 l_output_value VARCHAR2(30) ;
656 BEGIN
657 IF g_log_enabled THEN
658 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
659 END IF;
660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
661
662 trace
663 (p_msg => 'BEGIN of AcctDerRule_5'
664 ,p_level => C_LEVEL_PROCEDURE
665 ,p_module => l_log_module);
666
667 END IF;
668
669 l_component_type := 'AMB_ADR';
670 l_component_code := 'FV_445002_DWD_PYA_ANCPT_ACCT';
671 l_component_type_code := 'S';
672 l_component_appl_id := 200;
673 l_amb_context_code := 'DEFAULT';
674 x_transaction_coa_id := null;
675 x_accounting_coa_id := null;
676 x_flexfield_segment_code := null;
677 x_flex_value_set_id := 1009988 ;
678
679
680 IF NVL(p_source_3,'
681 ') = 'Anticipated' OR
682 NVL(p_source_3,'
683 ') = 'Partial'
684 THEN
685 --
686 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
687
688 trace
689 (p_msg => 'END of AcctDerRule_5'
690 ,p_level => C_LEVEL_PROCEDURE
691 ,p_module => l_log_module);
692
693 END IF;
694 x_value_combination_id := null ;
695 x_value_segment_code := null ;
696 x_value_type_code := 'C';
697 l_output_value := '431002';
698 RETURN l_output_value;
699
700 ELSE
701 IF p_override_seg_flag = 'Y' THEN
702 RETURN '#$NO_OVERRIDE#$';
703 END IF;
704 END IF;
705
706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
707
708 trace
709 (p_msg => 'END of AcctDerRule_5(invalid)'
710 ,p_level => C_LEVEL_PROCEDURE
711 ,p_module => l_log_module);
712
713 END IF;
714
715 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
716 x_value_combination_id := null;
717 x_value_segment_code := null;
718 x_value_type_code := null;
719 l_output_value := null;
720 xla_accounting_err_pkg.build_message
721 (p_appli_s_name => 'XLA'
722 ,p_msg_name => 'XLA_AP_INVALID_ADR'
723 ,p_token_1 => 'COMPONENT_NAME'
724 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
725 l_component_type
726 , l_component_code
727 , l_component_type_code
728 , l_component_appl_id
729 , l_amb_context_code
730 )
731 ,p_token_2 => 'OWNER'
732 ,p_value_2 => xla_lookups_pkg.get_meaning(
733 'XLA_OWNER_TYPE'
734 ,l_component_type_code
735 )
736 ,p_token_3 => 'PAD_NAME'
737 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
738 ,p_token_4 => 'PAD_OWNER'
739 ,p_value_4 => xla_lookups_pkg.get_meaning(
740 'XLA_OWNER_TYPE'
741 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
742 )
743 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
744 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
745 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
746 ,p_ae_header_id => NULL
747 );
748 RETURN l_output_value;
749 EXCEPTION
750 WHEN xla_exceptions_pkg.application_exception THEN
751 RAISE;
752 WHEN OTHERS THEN
753 xla_exceptions_pkg.raise_message
754 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_5');
755 END AcctDerRule_5;
756 --
757
758 ---------------------------------------
759 --
760 -- PRIVATE FUNCTION
761 -- AcctDerRule_6
762 --
763 ---------------------------------------
764 FUNCTION AcctDerRule_6 (
765 p_application_id IN NUMBER
766 , p_ae_header_id IN NUMBER
767 , p_side IN VARCHAR2
768 , p_override_seg_flag IN VARCHAR2
769 --Federal Anticipation
770 , p_source_3 IN VARCHAR2
771 , x_transaction_coa_id OUT NOCOPY NUMBER
772 , x_accounting_coa_id OUT NOCOPY NUMBER
773 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
774 , x_flex_value_set_id OUT NOCOPY NUMBER
775 , x_value_type_code OUT NOCOPY VARCHAR2
776 , x_value_combination_id OUT NOCOPY NUMBER
777 , x_value_segment_code OUT NOCOPY VARCHAR2
778 )
779 RETURN VARCHAR2
780 IS
781 l_component_type VARCHAR2(80) ;
782 l_component_code VARCHAR2(30) ;
783 l_component_type_code VARCHAR2(1) ;
784 l_component_appl_id INTEGER ;
785 l_amb_context_code VARCHAR2(30) ;
786 l_log_module VARCHAR2(240) ;
787 l_output_value VARCHAR2(30) ;
788 BEGIN
789 IF g_log_enabled THEN
790 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
791 END IF;
792 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
793
794 trace
795 (p_msg => 'BEGIN of AcctDerRule_6'
796 ,p_level => C_LEVEL_PROCEDURE
797 ,p_module => l_log_module);
798
799 END IF;
800
801 l_component_type := 'AMB_ADR';
802 l_component_code := 'FV_445002_DWD_PYA_UNANCPT_ACCT';
803 l_component_type_code := 'S';
804 l_component_appl_id := 200;
805 l_amb_context_code := 'DEFAULT';
806 x_transaction_coa_id := null;
807 x_accounting_coa_id := null;
808 x_flexfield_segment_code := null;
809 x_flex_value_set_id := 1009988 ;
810
811
812 IF NVL(p_source_3,'
813 ') = 'UnAnticipated' OR
814 NVL(p_source_3,'
815 ') = 'Partial'
816 THEN
817 --
818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
819
820 trace
821 (p_msg => 'END of AcctDerRule_6'
822 ,p_level => C_LEVEL_PROCEDURE
823 ,p_module => l_log_module);
824
825 END IF;
826 x_value_combination_id := null ;
827 x_value_segment_code := null ;
828 x_value_type_code := 'C';
829 l_output_value := '445002';
830 RETURN l_output_value;
831
832 ELSE
833 IF p_override_seg_flag = 'Y' THEN
834 RETURN '#$NO_OVERRIDE#$';
835 END IF;
836 END IF;
837
838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
839
840 trace
841 (p_msg => 'END of AcctDerRule_6(invalid)'
842 ,p_level => C_LEVEL_PROCEDURE
843 ,p_module => l_log_module);
844
845 END IF;
846
847 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
848 x_value_combination_id := null;
849 x_value_segment_code := null;
850 x_value_type_code := null;
851 l_output_value := null;
852 xla_accounting_err_pkg.build_message
853 (p_appli_s_name => 'XLA'
854 ,p_msg_name => 'XLA_AP_INVALID_ADR'
855 ,p_token_1 => 'COMPONENT_NAME'
856 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
857 l_component_type
858 , l_component_code
859 , l_component_type_code
860 , l_component_appl_id
861 , l_amb_context_code
862 )
863 ,p_token_2 => 'OWNER'
864 ,p_value_2 => xla_lookups_pkg.get_meaning(
865 'XLA_OWNER_TYPE'
866 ,l_component_type_code
867 )
868 ,p_token_3 => 'PAD_NAME'
869 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
870 ,p_token_4 => 'PAD_OWNER'
871 ,p_value_4 => xla_lookups_pkg.get_meaning(
872 'XLA_OWNER_TYPE'
873 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
874 )
875 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
876 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
877 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
878 ,p_ae_header_id => NULL
879 );
880 RETURN l_output_value;
881 EXCEPTION
882 WHEN xla_exceptions_pkg.application_exception THEN
883 RAISE;
884 WHEN OTHERS THEN
885 xla_exceptions_pkg.raise_message
886 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_6');
887 END AcctDerRule_6;
888 --
889
890 ---------------------------------------
891 --
892 -- PRIVATE FUNCTION
893 -- AcctDerRule_7
894 --
895 ---------------------------------------
896 FUNCTION AcctDerRule_7 (
897 p_application_id IN NUMBER
898 , p_ae_header_id IN NUMBER
899 , p_side IN VARCHAR2
900 , p_override_seg_flag IN VARCHAR2
901 , x_transaction_coa_id OUT NOCOPY NUMBER
902 , x_accounting_coa_id OUT NOCOPY NUMBER
903 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
904 , x_flex_value_set_id OUT NOCOPY NUMBER
905 , x_value_type_code OUT NOCOPY VARCHAR2
906 , x_value_combination_id OUT NOCOPY NUMBER
907 , x_value_segment_code OUT NOCOPY VARCHAR2
908 )
909 RETURN VARCHAR2
910 IS
911 l_component_type VARCHAR2(80) ;
912 l_component_code VARCHAR2(30) ;
913 l_component_type_code VARCHAR2(1) ;
914 l_component_appl_id INTEGER ;
915 l_amb_context_code VARCHAR2(30) ;
916 l_log_module VARCHAR2(240) ;
917 l_output_value VARCHAR2(30) ;
918 BEGIN
919 IF g_log_enabled THEN
920 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
921 END IF;
922 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
923
924 trace
925 (p_msg => 'BEGIN of AcctDerRule_7'
926 ,p_level => C_LEVEL_PROCEDURE
927 ,p_module => l_log_module);
928
929 END IF;
930
931 l_component_type := 'AMB_ADR';
932 l_component_code := 'FV_465002_PAYABLES';
933 l_component_type_code := 'S';
934 l_component_appl_id := 200;
935 l_amb_context_code := 'DEFAULT';
936 x_transaction_coa_id := null;
937 x_accounting_coa_id := null;
938 x_flexfield_segment_code := null;
939 x_flex_value_set_id := 1009988 ;
940
941
942 --
943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
944
945 trace
946 (p_msg => 'END of AcctDerRule_7'
947 ,p_level => C_LEVEL_PROCEDURE
948 ,p_module => l_log_module);
949
950 END IF;
951 x_value_combination_id := null ;
952 x_value_segment_code := null ;
953 x_value_type_code := 'C';
954 l_output_value := '465002';
955 RETURN l_output_value;
956
957
958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
959
960 trace
961 (p_msg => 'END of AcctDerRule_7(invalid)'
962 ,p_level => C_LEVEL_PROCEDURE
963 ,p_module => l_log_module);
964
965 END IF;
966
967 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
968 x_value_combination_id := null;
969 x_value_segment_code := null;
970 x_value_type_code := null;
971 l_output_value := null;
972 xla_accounting_err_pkg.build_message
973 (p_appli_s_name => 'XLA'
974 ,p_msg_name => 'XLA_AP_INVALID_ADR'
975 ,p_token_1 => 'COMPONENT_NAME'
976 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
977 l_component_type
978 , l_component_code
979 , l_component_type_code
980 , l_component_appl_id
981 , l_amb_context_code
982 )
983 ,p_token_2 => 'OWNER'
984 ,p_value_2 => xla_lookups_pkg.get_meaning(
985 'XLA_OWNER_TYPE'
986 ,l_component_type_code
987 )
988 ,p_token_3 => 'PAD_NAME'
989 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
990 ,p_token_4 => 'PAD_OWNER'
991 ,p_value_4 => xla_lookups_pkg.get_meaning(
992 'XLA_OWNER_TYPE'
993 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
994 )
995 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
996 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
997 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
998 ,p_ae_header_id => NULL
999 );
1000 RETURN l_output_value;
1001 EXCEPTION
1002 WHEN xla_exceptions_pkg.application_exception THEN
1003 RAISE;
1004 WHEN OTHERS THEN
1005 xla_exceptions_pkg.raise_message
1006 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_7');
1007 END AcctDerRule_7;
1008 --
1009
1010 ---------------------------------------
1011 --
1012 -- PRIVATE FUNCTION
1013 -- AcctDerRule_8
1014 --
1015 ---------------------------------------
1016 FUNCTION AcctDerRule_8 (
1017 p_application_id IN NUMBER
1018 , p_ae_header_id IN NUMBER
1019 , p_side IN VARCHAR2
1020 , p_override_seg_flag IN VARCHAR2
1021 --Federal Fund Category
1022 , p_source_4 IN VARCHAR2
1023 --Federal Fund Expired Status
1024 , p_source_5 IN VARCHAR2
1025 --Federal Fund Category Description
1026 , p_source_6 IN VARCHAR2
1027 , x_transaction_coa_id OUT NOCOPY NUMBER
1028 , x_accounting_coa_id OUT NOCOPY NUMBER
1029 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1030 , x_flex_value_set_id OUT NOCOPY NUMBER
1031 , x_value_type_code OUT NOCOPY VARCHAR2
1032 , x_value_combination_id OUT NOCOPY NUMBER
1033 , x_value_segment_code OUT NOCOPY VARCHAR2
1034 )
1035 RETURN VARCHAR2
1036 IS
1037 l_component_type VARCHAR2(80) ;
1038 l_component_code VARCHAR2(30) ;
1039 l_component_type_code VARCHAR2(1) ;
1040 l_component_appl_id INTEGER ;
1041 l_amb_context_code VARCHAR2(30) ;
1042 l_log_module VARCHAR2(240) ;
1043 l_output_value VARCHAR2(30) ;
1044 BEGIN
1045 IF g_log_enabled THEN
1046 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1047 END IF;
1048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1049
1050 trace
1051 (p_msg => 'BEGIN of AcctDerRule_8'
1052 ,p_level => C_LEVEL_PROCEDURE
1053 ,p_module => l_log_module);
1054
1055 END IF;
1056
1057 l_component_type := 'AMB_ADR';
1058 l_component_code := 'FV_46X002_ALLOTMENT_RES_ACCT';
1059 l_component_type_code := 'S';
1060 l_component_appl_id := 200;
1061 l_amb_context_code := 'DEFAULT';
1062 x_transaction_coa_id := null;
1063 x_accounting_coa_id := null;
1064 x_flexfield_segment_code := null;
1065 x_flex_value_set_id := 1009988 ;
1066
1067
1068 IF (NVL(p_source_4,'
1069 ') = 'A' OR
1070 NVL(p_source_4,'
1071 ') = 'B' OR
1072 NVL(p_source_4,'
1073 ') = 'S' OR
1074 NVL(p_source_4,'
1075 ') = 'T') AND
1076 NVL(p_source_5,'
1077 ') = 'Unexpired'
1078 THEN
1079 --
1080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1081
1082 trace
1083 (p_msg => 'END of AcctDerRule_8'
1084 ,p_level => C_LEVEL_PROCEDURE
1085 ,p_module => l_log_module);
1086
1087 END IF;
1088 x_value_combination_id := null ;
1089 x_value_segment_code := null ;
1090 x_value_type_code := 'C';
1091 l_output_value := '461002';
1092 RETURN l_output_value;
1093
1094 ELSIF (NVL(p_source_4,'
1095 ') = 'C' OR
1096 NVL(p_source_4,'
1097 ') = 'R') AND
1098 NVL(p_source_5,'
1099 ') = 'Unexpired'
1100 THEN
1101 --
1102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1103
1104 trace
1105 (p_msg => 'END of AcctDerRule_8'
1106 ,p_level => C_LEVEL_PROCEDURE
1107 ,p_module => l_log_module);
1108
1109 END IF;
1110 x_value_combination_id := null ;
1111 x_value_segment_code := null ;
1112 x_value_type_code := 'C';
1113 l_output_value := '462002';
1114 RETURN l_output_value;
1115
1116 ELSIF NVL(p_source_6,'
1117 ') = 'Direct' OR
1118 NVL(p_source_5,'
1119 ') = 'Expired'
1120 THEN
1121 --
1122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1123
1124 trace
1125 (p_msg => 'END of AcctDerRule_8'
1126 ,p_level => C_LEVEL_PROCEDURE
1127 ,p_module => l_log_module);
1128
1129 END IF;
1130 x_value_combination_id := null ;
1131 x_value_segment_code := null ;
1132 x_value_type_code := 'C';
1133 l_output_value := '465002';
1134 RETURN l_output_value;
1135
1136 ELSE
1137 IF p_override_seg_flag = 'Y' THEN
1138 RETURN '#$NO_OVERRIDE#$';
1139 END IF;
1140 END IF;
1141
1142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1143
1144 trace
1145 (p_msg => 'END of AcctDerRule_8(invalid)'
1146 ,p_level => C_LEVEL_PROCEDURE
1147 ,p_module => l_log_module);
1148
1149 END IF;
1150
1151 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1152 x_value_combination_id := null;
1153 x_value_segment_code := null;
1154 x_value_type_code := null;
1155 l_output_value := null;
1156 xla_accounting_err_pkg.build_message
1157 (p_appli_s_name => 'XLA'
1158 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1159 ,p_token_1 => 'COMPONENT_NAME'
1160 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1161 l_component_type
1162 , l_component_code
1163 , l_component_type_code
1164 , l_component_appl_id
1165 , l_amb_context_code
1166 )
1167 ,p_token_2 => 'OWNER'
1168 ,p_value_2 => xla_lookups_pkg.get_meaning(
1169 'XLA_OWNER_TYPE'
1170 ,l_component_type_code
1171 )
1172 ,p_token_3 => 'PAD_NAME'
1173 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1174 ,p_token_4 => 'PAD_OWNER'
1175 ,p_value_4 => xla_lookups_pkg.get_meaning(
1176 'XLA_OWNER_TYPE'
1177 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1178 )
1179 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1180 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1181 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1182 ,p_ae_header_id => NULL
1183 );
1184 RETURN l_output_value;
1185 EXCEPTION
1186 WHEN xla_exceptions_pkg.application_exception THEN
1187 RAISE;
1188 WHEN OTHERS THEN
1189 xla_exceptions_pkg.raise_message
1190 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_8');
1191 END AcctDerRule_8;
1192 --
1193
1194 ---------------------------------------
1195 --
1196 -- PRIVATE FUNCTION
1197 -- AcctDerRule_9
1198 --
1199 ---------------------------------------
1200 FUNCTION AcctDerRule_9 (
1201 p_application_id IN NUMBER
1202 , p_ae_header_id IN NUMBER
1203 , p_side IN VARCHAR2
1204 , p_override_seg_flag IN VARCHAR2
1205 , x_transaction_coa_id OUT NOCOPY NUMBER
1206 , x_accounting_coa_id OUT NOCOPY NUMBER
1207 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1208 , x_flex_value_set_id OUT NOCOPY NUMBER
1209 , x_value_type_code OUT NOCOPY VARCHAR2
1210 , x_value_combination_id OUT NOCOPY NUMBER
1211 , x_value_segment_code OUT NOCOPY VARCHAR2
1212 )
1213 RETURN VARCHAR2
1214 IS
1215 l_component_type VARCHAR2(80) ;
1216 l_component_code VARCHAR2(30) ;
1217 l_component_type_code VARCHAR2(1) ;
1218 l_component_appl_id INTEGER ;
1219 l_amb_context_code VARCHAR2(30) ;
1220 l_log_module VARCHAR2(240) ;
1221 l_output_value VARCHAR2(30) ;
1222 BEGIN
1223 IF g_log_enabled THEN
1224 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1225 END IF;
1226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1227
1228 trace
1229 (p_msg => 'BEGIN of AcctDerRule_9'
1230 ,p_level => C_LEVEL_PROCEDURE
1231 ,p_module => l_log_module);
1232
1233 END IF;
1234
1235 l_component_type := 'AMB_ADR';
1236 l_component_code := 'FV_480101_PAYABLES';
1237 l_component_type_code := 'S';
1238 l_component_appl_id := 200;
1239 l_amb_context_code := 'DEFAULT';
1240 x_transaction_coa_id := null;
1241 x_accounting_coa_id := null;
1242 x_flexfield_segment_code := null;
1243 x_flex_value_set_id := 1009988 ;
1244
1245
1246 --
1247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1248
1249 trace
1250 (p_msg => 'END of AcctDerRule_9'
1251 ,p_level => C_LEVEL_PROCEDURE
1252 ,p_module => l_log_module);
1253
1254 END IF;
1255 x_value_combination_id := null ;
1256 x_value_segment_code := null ;
1257 x_value_type_code := 'C';
1258 l_output_value := '480101';
1259 RETURN l_output_value;
1260
1261
1262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1263
1264 trace
1265 (p_msg => 'END of AcctDerRule_9(invalid)'
1266 ,p_level => C_LEVEL_PROCEDURE
1267 ,p_module => l_log_module);
1268
1269 END IF;
1270
1271 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1272 x_value_combination_id := null;
1273 x_value_segment_code := null;
1274 x_value_type_code := null;
1275 l_output_value := null;
1276 xla_accounting_err_pkg.build_message
1277 (p_appli_s_name => 'XLA'
1278 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1279 ,p_token_1 => 'COMPONENT_NAME'
1280 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1281 l_component_type
1282 , l_component_code
1283 , l_component_type_code
1284 , l_component_appl_id
1285 , l_amb_context_code
1286 )
1287 ,p_token_2 => 'OWNER'
1288 ,p_value_2 => xla_lookups_pkg.get_meaning(
1289 'XLA_OWNER_TYPE'
1290 ,l_component_type_code
1291 )
1292 ,p_token_3 => 'PAD_NAME'
1296 'XLA_OWNER_TYPE'
1293 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1294 ,p_token_4 => 'PAD_OWNER'
1295 ,p_value_4 => xla_lookups_pkg.get_meaning(
1297 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1298 )
1299 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1300 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1301 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1302 ,p_ae_header_id => NULL
1303 );
1304 RETURN l_output_value;
1305 EXCEPTION
1306 WHEN xla_exceptions_pkg.application_exception THEN
1307 RAISE;
1308 WHEN OTHERS THEN
1309 xla_exceptions_pkg.raise_message
1310 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_9');
1311 END AcctDerRule_9;
1312 --
1313
1314 ---------------------------------------
1315 --
1316 -- PRIVATE FUNCTION
1317 -- AcctDerRule_10
1318 --
1319 ---------------------------------------
1320 FUNCTION AcctDerRule_10 (
1321 p_application_id IN NUMBER
1322 , p_ae_header_id IN NUMBER
1323 , p_side IN VARCHAR2
1324 , p_override_seg_flag IN VARCHAR2
1325 --Payment Status Flag of the Invoice
1326 , p_source_7 IN VARCHAR2
1327 , x_transaction_coa_id OUT NOCOPY NUMBER
1328 , x_accounting_coa_id OUT NOCOPY NUMBER
1329 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1330 , x_flex_value_set_id OUT NOCOPY NUMBER
1331 , x_value_type_code OUT NOCOPY VARCHAR2
1332 , x_value_combination_id OUT NOCOPY NUMBER
1333 , x_value_segment_code OUT NOCOPY VARCHAR2
1334 )
1335 RETURN VARCHAR2
1336 IS
1337 l_component_type VARCHAR2(80) ;
1338 l_component_code VARCHAR2(30) ;
1339 l_component_type_code VARCHAR2(1) ;
1340 l_component_appl_id INTEGER ;
1341 l_amb_context_code VARCHAR2(30) ;
1342 l_log_module VARCHAR2(240) ;
1343 l_output_value VARCHAR2(30) ;
1344 BEGIN
1345 IF g_log_enabled THEN
1346 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1347 END IF;
1348 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1349
1350 trace
1351 (p_msg => 'BEGIN of AcctDerRule_10'
1352 ,p_level => C_LEVEL_PROCEDURE
1353 ,p_module => l_log_module);
1354
1355 END IF;
1356
1357 l_component_type := 'AMB_ADR';
1358 l_component_code := 'FV_480X01_PAID_OBL_REV_DR';
1359 l_component_type_code := 'S';
1360 l_component_appl_id := 200;
1361 l_amb_context_code := 'DEFAULT';
1362 x_transaction_coa_id := null;
1363 x_accounting_coa_id := null;
1364 x_flexfield_segment_code := null;
1365 x_flex_value_set_id := 1009988 ;
1366
1367
1368 IF NVL(p_source_7,'
1369 ') = 'N'
1370 THEN
1371 --
1372 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1373
1374 trace
1375 (p_msg => 'END of AcctDerRule_10'
1376 ,p_level => C_LEVEL_PROCEDURE
1377 ,p_module => l_log_module);
1378
1379 END IF;
1380 x_value_combination_id := null ;
1381 x_value_segment_code := null ;
1382 x_value_type_code := 'C';
1383 l_output_value := '480101';
1384 RETURN l_output_value;
1385
1386 ELSIF NVL(p_source_7,'
1387 ') = 'Y' OR
1388 NVL(p_source_7,'
1389 ') = 'P'
1390 THEN
1391 --
1392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1393
1394 trace
1395 (p_msg => 'END of AcctDerRule_10'
1396 ,p_level => C_LEVEL_PROCEDURE
1397 ,p_module => l_log_module);
1398
1399 END IF;
1400 x_value_combination_id := null ;
1401 x_value_segment_code := null ;
1402 x_value_type_code := 'C';
1403 l_output_value := '480201';
1404 RETURN l_output_value;
1405
1406 ELSE
1407 IF p_override_seg_flag = 'Y' THEN
1408 RETURN '#$NO_OVERRIDE#$';
1409 END IF;
1410 END IF;
1411
1412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1413
1414 trace
1415 (p_msg => 'END of AcctDerRule_10(invalid)'
1416 ,p_level => C_LEVEL_PROCEDURE
1417 ,p_module => l_log_module);
1418
1419 END IF;
1420
1421 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1422 x_value_combination_id := null;
1423 x_value_segment_code := null;
1424 x_value_type_code := null;
1425 l_output_value := null;
1426 xla_accounting_err_pkg.build_message
1427 (p_appli_s_name => 'XLA'
1428 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1429 ,p_token_1 => 'COMPONENT_NAME'
1430 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1431 l_component_type
1432 , l_component_code
1433 , l_component_type_code
1434 , l_component_appl_id
1435 , l_amb_context_code
1436 )
1437 ,p_token_2 => 'OWNER'
1438 ,p_value_2 => xla_lookups_pkg.get_meaning(
1439 'XLA_OWNER_TYPE'
1440 ,l_component_type_code
1441 )
1442 ,p_token_3 => 'PAD_NAME'
1443 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1444 ,p_token_4 => 'PAD_OWNER'
1445 ,p_value_4 => xla_lookups_pkg.get_meaning(
1446 'XLA_OWNER_TYPE'
1447 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1448 )
1449 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1450 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1451 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1452 ,p_ae_header_id => NULL
1453 );
1454 RETURN l_output_value;
1455 EXCEPTION
1456 WHEN xla_exceptions_pkg.application_exception THEN
1457 RAISE;
1458 WHEN OTHERS THEN
1459 xla_exceptions_pkg.raise_message
1460 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_10');
1461 END AcctDerRule_10;
1462 --
1463
1464 ---------------------------------------
1465 --
1466 -- PRIVATE FUNCTION
1467 -- AcctDerRule_11
1468 --
1469 ---------------------------------------
1470 FUNCTION AcctDerRule_11 (
1471 p_application_id IN NUMBER
1472 , p_ae_header_id IN NUMBER
1473 , p_side IN VARCHAR2
1474 , p_override_seg_flag IN VARCHAR2
1475 , x_transaction_coa_id OUT NOCOPY NUMBER
1476 , x_accounting_coa_id OUT NOCOPY NUMBER
1477 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1478 , x_flex_value_set_id OUT NOCOPY NUMBER
1479 , x_value_type_code OUT NOCOPY VARCHAR2
1480 , x_value_combination_id OUT NOCOPY NUMBER
1481 , x_value_segment_code OUT NOCOPY VARCHAR2
1482 )
1483 RETURN VARCHAR2
1484 IS
1485 l_component_type VARCHAR2(80) ;
1486 l_component_code VARCHAR2(30) ;
1487 l_component_type_code VARCHAR2(1) ;
1488 l_component_appl_id INTEGER ;
1489 l_amb_context_code VARCHAR2(30) ;
1490 l_log_module VARCHAR2(240) ;
1491 l_output_value VARCHAR2(30) ;
1492 BEGIN
1493 IF g_log_enabled THEN
1494 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1495 END IF;
1496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1497
1498 trace
1499 (p_msg => 'BEGIN of AcctDerRule_11'
1500 ,p_level => C_LEVEL_PROCEDURE
1501 ,p_module => l_log_module);
1502
1503 END IF;
1504
1505 l_component_type := 'AMB_ADR';
1506 l_component_code := 'FV_48X101_PAYABLES';
1507 l_component_type_code := 'S';
1508 l_component_appl_id := 200;
1509 l_amb_context_code := 'DEFAULT';
1510 x_transaction_coa_id := null;
1511 x_accounting_coa_id := null;
1512 x_flexfield_segment_code := null;
1513 x_flex_value_set_id := 1009988 ;
1514
1515
1516 --
1517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1518
1519 trace
1520 (p_msg => 'END of AcctDerRule_11'
1521 ,p_level => C_LEVEL_PROCEDURE
1522 ,p_module => l_log_module);
1523
1524 END IF;
1525 x_value_combination_id := null ;
1526 x_value_segment_code := null ;
1527 x_value_type_code := 'C';
1528 l_output_value := '480101';
1529 RETURN l_output_value;
1530
1531
1532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1533
1534 trace
1535 (p_msg => 'END of AcctDerRule_11(invalid)'
1536 ,p_level => C_LEVEL_PROCEDURE
1537 ,p_module => l_log_module);
1538
1539 END IF;
1540
1541 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1542 x_value_combination_id := null;
1543 x_value_segment_code := null;
1544 x_value_type_code := null;
1545 l_output_value := null;
1546 xla_accounting_err_pkg.build_message
1547 (p_appli_s_name => 'XLA'
1548 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1549 ,p_token_1 => 'COMPONENT_NAME'
1550 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1551 l_component_type
1552 , l_component_code
1553 , l_component_type_code
1554 , l_component_appl_id
1555 , l_amb_context_code
1556 )
1557 ,p_token_2 => 'OWNER'
1558 ,p_value_2 => xla_lookups_pkg.get_meaning(
1559 'XLA_OWNER_TYPE'
1560 ,l_component_type_code
1561 )
1562 ,p_token_3 => 'PAD_NAME'
1563 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1564 ,p_token_4 => 'PAD_OWNER'
1565 ,p_value_4 => xla_lookups_pkg.get_meaning(
1566 'XLA_OWNER_TYPE'
1567 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1568 )
1569 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1570 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1571 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1572 ,p_ae_header_id => NULL
1573 );
1574 RETURN l_output_value;
1575 EXCEPTION
1576 WHEN xla_exceptions_pkg.application_exception THEN
1577 RAISE;
1578 WHEN OTHERS THEN
1579 xla_exceptions_pkg.raise_message
1580 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_11');
1581 END AcctDerRule_11;
1582 --
1583
1584 ---------------------------------------
1585 --
1586 -- PRIVATE FUNCTION
1587 -- AcctDerRule_12
1588 --
1589 ---------------------------------------
1590 FUNCTION AcctDerRule_12 (
1591 p_application_id IN NUMBER
1592 , p_ae_header_id IN NUMBER
1593 , p_side IN VARCHAR2
1594 , p_override_seg_flag IN VARCHAR2
1595 --Payment Status Flag of the Invoice
1596 , p_source_7 IN VARCHAR2
1597 --Invoice Distribution Type
1598 , p_source_8 IN VARCHAR2
1599 , p_source_8_meaning IN VARCHAR2
1600 --Federal Prior Year Flag
1601 , p_source_9 IN VARCHAR2
1602 --Invoice Distribution Encumbrance Amount
1603 , p_source_10 IN NUMBER
1604 --Accrue on Receipt Option
1605 , p_source_11 IN VARCHAR2
1606 , p_source_11_meaning IN VARCHAR2
1607 , x_transaction_coa_id OUT NOCOPY NUMBER
1608 , x_accounting_coa_id OUT NOCOPY NUMBER
1609 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1610 , x_flex_value_set_id OUT NOCOPY NUMBER
1611 , x_value_type_code OUT NOCOPY VARCHAR2
1612 , x_value_combination_id OUT NOCOPY NUMBER
1613 , x_value_segment_code OUT NOCOPY VARCHAR2
1614 )
1615 RETURN VARCHAR2
1616 IS
1617 l_component_type VARCHAR2(80) ;
1618 l_component_code VARCHAR2(30) ;
1619 l_component_type_code VARCHAR2(1) ;
1620 l_component_appl_id INTEGER ;
1621 l_amb_context_code VARCHAR2(30) ;
1622 l_log_module VARCHAR2(240) ;
1623 l_output_value VARCHAR2(30) ;
1624 BEGIN
1625 IF g_log_enabled THEN
1626 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1627 END IF;
1628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1629
1630 trace
1631 (p_msg => 'BEGIN of AcctDerRule_12'
1632 ,p_level => C_LEVEL_PROCEDURE
1633 ,p_module => l_log_module);
1634
1635 END IF;
1636
1637 l_component_type := 'AMB_ADR';
1638 l_component_code := 'FV_490X01_OBL_ACCOUNT';
1639 l_component_type_code := 'S';
1640 l_component_appl_id := 200;
1641 l_amb_context_code := 'DEFAULT';
1642 x_transaction_coa_id := null;
1643 x_accounting_coa_id := null;
1644 x_flexfield_segment_code := null;
1645 x_flex_value_set_id := 1009988 ;
1646
1647
1648 IF NVL(p_source_8,'
1649 ') = 'IPV' AND
1650 NVL(p_source_9,'
1651 ') = 'Y' AND
1652 p_source_10 < 0 AND
1653 NVL(p_source_11,'
1654 ') = 'Y'
1655 THEN
1656 --
1657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1658
1659 trace
1660 (p_msg => 'END of AcctDerRule_12'
1661 ,p_level => C_LEVEL_PROCEDURE
1662 ,p_module => l_log_module);
1663
1664 END IF;
1665 x_value_combination_id := null ;
1666 x_value_segment_code := null ;
1667 x_value_type_code := 'C';
1668 l_output_value := '497101';
1669 RETURN l_output_value;
1670
1671 ELSIF NVL(p_source_8,'
1672 ') = 'ITEM' AND
1673 (NVL(p_source_7,'
1674 ') = 'Y' OR
1675 NVL(p_source_7,'
1676 ') = 'P')
1677 THEN
1678 --
1679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1680
1681 trace
1682 (p_msg => 'END of AcctDerRule_12'
1683 ,p_level => C_LEVEL_PROCEDURE
1684 ,p_module => l_log_module);
1685
1686 END IF;
1687 x_value_combination_id := null ;
1688 x_value_segment_code := null ;
1689 x_value_type_code := 'C';
1690 l_output_value := '490201';
1691 RETURN l_output_value;
1692
1693 END IF;
1694
1695 --
1696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1697
1698 trace
1699 (p_msg => 'END of AcctDerRule_12'
1700 ,p_level => C_LEVEL_PROCEDURE
1701 ,p_module => l_log_module);
1702
1703 END IF;
1704 x_value_combination_id := null ;
1705 x_value_segment_code := null ;
1706 x_value_type_code := 'C';
1707 l_output_value := '490101';
1708 RETURN l_output_value;
1709
1710
1711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1712
1713 trace
1714 (p_msg => 'END of AcctDerRule_12(invalid)'
1715 ,p_level => C_LEVEL_PROCEDURE
1716 ,p_module => l_log_module);
1717
1718 END IF;
1719
1720 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1721 x_value_combination_id := null;
1722 x_value_segment_code := null;
1723 x_value_type_code := null;
1724 l_output_value := null;
1725 xla_accounting_err_pkg.build_message
1726 (p_appli_s_name => 'XLA'
1727 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1728 ,p_token_1 => 'COMPONENT_NAME'
1729 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1730 l_component_type
1731 , l_component_code
1732 , l_component_type_code
1733 , l_component_appl_id
1734 , l_amb_context_code
1735 )
1736 ,p_token_2 => 'OWNER'
1737 ,p_value_2 => xla_lookups_pkg.get_meaning(
1738 'XLA_OWNER_TYPE'
1739 ,l_component_type_code
1740 )
1741 ,p_token_3 => 'PAD_NAME'
1742 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1743 ,p_token_4 => 'PAD_OWNER'
1744 ,p_value_4 => xla_lookups_pkg.get_meaning(
1745 'XLA_OWNER_TYPE'
1746 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1747 )
1748 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1749 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1750 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1751 ,p_ae_header_id => NULL
1752 );
1753 RETURN l_output_value;
1754 EXCEPTION
1755 WHEN xla_exceptions_pkg.application_exception THEN
1756 RAISE;
1757 WHEN OTHERS THEN
1758 xla_exceptions_pkg.raise_message
1759 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_12');
1760 END AcctDerRule_12;
1761 --
1762
1763 ---------------------------------------
1764 --
1765 -- PRIVATE FUNCTION
1766 -- AcctDerRule_13
1767 --
1768 ---------------------------------------
1769 FUNCTION AcctDerRule_13 (
1770 p_application_id IN NUMBER
1771 , p_ae_header_id IN NUMBER
1772 , p_side IN VARCHAR2
1773 , p_override_seg_flag IN VARCHAR2
1774 , x_transaction_coa_id OUT NOCOPY NUMBER
1775 , x_accounting_coa_id OUT NOCOPY NUMBER
1776 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1777 , x_flex_value_set_id OUT NOCOPY NUMBER
1778 , x_value_type_code OUT NOCOPY VARCHAR2
1779 , x_value_combination_id OUT NOCOPY NUMBER
1780 , x_value_segment_code OUT NOCOPY VARCHAR2
1781 )
1782 RETURN VARCHAR2
1783 IS
1784 l_component_type VARCHAR2(80) ;
1785 l_component_code VARCHAR2(30) ;
1786 l_component_type_code VARCHAR2(1) ;
1787 l_component_appl_id INTEGER ;
1788 l_amb_context_code VARCHAR2(30) ;
1789 l_log_module VARCHAR2(240) ;
1790 l_output_value VARCHAR2(30) ;
1791 BEGIN
1792 IF g_log_enabled THEN
1793 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1794 END IF;
1795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1796
1797 trace
1798 (p_msg => 'BEGIN of AcctDerRule_13'
1799 ,p_level => C_LEVEL_PROCEDURE
1800 ,p_module => l_log_module);
1801
1802 END IF;
1803
1804 l_component_type := 'AMB_ADR';
1805 l_component_code := 'FV_497101_DWD_PYA_DR';
1806 l_component_type_code := 'S';
1807 l_component_appl_id := 200;
1808 l_amb_context_code := 'DEFAULT';
1809 x_transaction_coa_id := null;
1810 x_accounting_coa_id := null;
1811 x_flexfield_segment_code := null;
1812 x_flex_value_set_id := 1009988 ;
1813
1814
1815 --
1816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1817
1818 trace
1819 (p_msg => 'END of AcctDerRule_13'
1820 ,p_level => C_LEVEL_PROCEDURE
1821 ,p_module => l_log_module);
1822
1823 END IF;
1824 x_value_combination_id := null ;
1825 x_value_segment_code := null ;
1826 x_value_type_code := 'C';
1827 l_output_value := '487101';
1828 RETURN l_output_value;
1829
1830
1831 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1832
1833 trace
1834 (p_msg => 'END of AcctDerRule_13(invalid)'
1835 ,p_level => C_LEVEL_PROCEDURE
1836 ,p_module => l_log_module);
1837
1838 END IF;
1839
1840 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1841 x_value_combination_id := null;
1842 x_value_segment_code := null;
1843 x_value_type_code := null;
1844 l_output_value := null;
1845 xla_accounting_err_pkg.build_message
1846 (p_appli_s_name => 'XLA'
1847 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1848 ,p_token_1 => 'COMPONENT_NAME'
1849 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1850 l_component_type
1851 , l_component_code
1852 , l_component_type_code
1853 , l_component_appl_id
1854 , l_amb_context_code
1855 )
1856 ,p_token_2 => 'OWNER'
1857 ,p_value_2 => xla_lookups_pkg.get_meaning(
1858 'XLA_OWNER_TYPE'
1859 ,l_component_type_code
1860 )
1861 ,p_token_3 => 'PAD_NAME'
1862 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1863 ,p_token_4 => 'PAD_OWNER'
1864 ,p_value_4 => xla_lookups_pkg.get_meaning(
1865 'XLA_OWNER_TYPE'
1866 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1867 )
1868 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1869 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1870 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1871 ,p_ae_header_id => NULL
1872 );
1873 RETURN l_output_value;
1874 EXCEPTION
1875 WHEN xla_exceptions_pkg.application_exception THEN
1876 RAISE;
1877 WHEN OTHERS THEN
1878 xla_exceptions_pkg.raise_message
1879 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_13');
1880 END AcctDerRule_13;
1881 --
1882
1883 ---------------------------------------
1884 --
1885 -- PRIVATE FUNCTION
1886 -- AcctDerRule_14
1887 --
1888 ---------------------------------------
1889 FUNCTION AcctDerRule_14 (
1890 p_application_id IN NUMBER
1891 , p_ae_header_id IN NUMBER
1892 , p_side IN VARCHAR2
1893 , p_override_seg_flag IN VARCHAR2
1894 --Accrue on Receipt Option
1895 , p_source_11 IN VARCHAR2
1896 , p_source_11_meaning IN VARCHAR2
1897 --Purchase Order Distribution Identifier
1898 , p_source_12 IN NUMBER
1899 , x_transaction_coa_id OUT NOCOPY NUMBER
1900 , x_accounting_coa_id OUT NOCOPY NUMBER
1901 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1902 , x_flex_value_set_id OUT NOCOPY NUMBER
1903 , x_value_type_code OUT NOCOPY VARCHAR2
1904 , x_value_combination_id OUT NOCOPY NUMBER
1905 , x_value_segment_code OUT NOCOPY VARCHAR2
1906 )
1907 RETURN VARCHAR2
1908 IS
1909 l_component_type VARCHAR2(80) ;
1910 l_component_code VARCHAR2(30) ;
1911 l_component_type_code VARCHAR2(1) ;
1912 l_component_appl_id INTEGER ;
1913 l_amb_context_code VARCHAR2(30) ;
1914 l_log_module VARCHAR2(240) ;
1915 l_output_value VARCHAR2(30) ;
1916 BEGIN
1917 IF g_log_enabled THEN
1918 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
1919 END IF;
1920 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1921
1922 trace
1923 (p_msg => 'BEGIN of AcctDerRule_14'
1924 ,p_level => C_LEVEL_PROCEDURE
1925 ,p_module => l_log_module);
1926
1927 END IF;
1928
1929 l_component_type := 'AMB_ADR';
1930 l_component_code := 'FV_4X9101_UPWARD_PYA_CR';
1931 l_component_type_code := 'S';
1932 l_component_appl_id := 200;
1933 l_amb_context_code := 'DEFAULT';
1934 x_transaction_coa_id := null;
1935 x_accounting_coa_id := null;
1936 x_flexfield_segment_code := null;
1937 x_flex_value_set_id := 1009988 ;
1938
1939
1940 IF NVL(p_source_11,'
1941 ') <> 'Y' AND
1942 p_source_12 IS NOT NULL
1943 THEN
1944 --
1945 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1946
1947 trace
1948 (p_msg => 'END of AcctDerRule_14'
1949 ,p_level => C_LEVEL_PROCEDURE
1950 ,p_module => l_log_module);
1951
1952 END IF;
1953 x_value_combination_id := null ;
1954 x_value_segment_code := null ;
1955 x_value_type_code := 'C';
1956 l_output_value := '488101';
1957 RETURN l_output_value;
1958
1959 ELSIF (NVL(p_source_11,'
1960 ') = 'Y' AND
1961 p_source_12 IS NOT NULL ) OR
1962 p_source_12 IS NULL
1963 THEN
1964 --
1965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1966
1967 trace
1968 (p_msg => 'END of AcctDerRule_14'
1969 ,p_level => C_LEVEL_PROCEDURE
1970 ,p_module => l_log_module);
1971
1972 END IF;
1973 x_value_combination_id := null ;
1974 x_value_segment_code := null ;
1975 x_value_type_code := 'C';
1976 l_output_value := '498101';
1977 RETURN l_output_value;
1978
1979 ELSE
1980 IF p_override_seg_flag = 'Y' THEN
1981 RETURN '#$NO_OVERRIDE#$';
1982 END IF;
1986
1983 END IF;
1984
1985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1987 trace
1988 (p_msg => 'END of AcctDerRule_14(invalid)'
1989 ,p_level => C_LEVEL_PROCEDURE
1990 ,p_module => l_log_module);
1991
1992 END IF;
1993
1994 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1995 x_value_combination_id := null;
1996 x_value_segment_code := null;
1997 x_value_type_code := null;
1998 l_output_value := null;
1999 xla_accounting_err_pkg.build_message
2000 (p_appli_s_name => 'XLA'
2001 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2002 ,p_token_1 => 'COMPONENT_NAME'
2003 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2004 l_component_type
2005 , l_component_code
2006 , l_component_type_code
2007 , l_component_appl_id
2008 , l_amb_context_code
2009 )
2010 ,p_token_2 => 'OWNER'
2011 ,p_value_2 => xla_lookups_pkg.get_meaning(
2012 'XLA_OWNER_TYPE'
2013 ,l_component_type_code
2014 )
2015 ,p_token_3 => 'PAD_NAME'
2016 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2017 ,p_token_4 => 'PAD_OWNER'
2018 ,p_value_4 => xla_lookups_pkg.get_meaning(
2019 'XLA_OWNER_TYPE'
2020 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2021 )
2022 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2023 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2024 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2025 ,p_ae_header_id => NULL
2026 );
2027 RETURN l_output_value;
2028 EXCEPTION
2029 WHEN xla_exceptions_pkg.application_exception THEN
2030 RAISE;
2031 WHEN OTHERS THEN
2032 xla_exceptions_pkg.raise_message
2033 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_14');
2034 END AcctDerRule_14;
2035 --
2036
2037 ---------------------------------------
2038 --
2039 -- PRIVATE FUNCTION
2040 -- AcctDerRule_15
2041 --
2042 ---------------------------------------
2043 FUNCTION AcctDerRule_15 (
2044 p_application_id IN NUMBER
2045 , p_ae_header_id IN NUMBER
2046 , p_side IN VARCHAR2
2047 , p_override_seg_flag IN VARCHAR2
2048 , x_transaction_coa_id OUT NOCOPY NUMBER
2049 , x_accounting_coa_id OUT NOCOPY NUMBER
2050 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2051 , x_flex_value_set_id OUT NOCOPY NUMBER
2052 , x_value_type_code OUT NOCOPY VARCHAR2
2053 , x_value_combination_id OUT NOCOPY NUMBER
2054 , x_value_segment_code OUT NOCOPY VARCHAR2
2055 )
2056 RETURN VARCHAR2
2057 IS
2058 l_component_type VARCHAR2(80) ;
2059 l_component_code VARCHAR2(30) ;
2060 l_component_type_code VARCHAR2(1) ;
2061 l_component_appl_id INTEGER ;
2062 l_amb_context_code VARCHAR2(30) ;
2063 l_log_module VARCHAR2(240) ;
2064 l_output_value VARCHAR2(30) ;
2065 BEGIN
2066 IF g_log_enabled THEN
2067 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2068 END IF;
2069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2070
2071 trace
2072 (p_msg => 'BEGIN of AcctDerRule_15'
2073 ,p_level => C_LEVEL_PROCEDURE
2074 ,p_module => l_log_module);
2075
2076 END IF;
2077
2078 l_component_type := 'AMB_ADR';
2079 l_component_code := 'FV_570001_UNEXP_APPR_ACCT';
2080 l_component_type_code := 'S';
2081 l_component_appl_id := 200;
2082 l_amb_context_code := 'DEFAULT';
2083 x_transaction_coa_id := null;
2084 x_accounting_coa_id := null;
2085 x_flexfield_segment_code := null;
2086 x_flex_value_set_id := 1009988 ;
2087
2088
2089 --
2090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2091
2092 trace
2093 (p_msg => 'END of AcctDerRule_15'
2094 ,p_level => C_LEVEL_PROCEDURE
2095 ,p_module => l_log_module);
2096
2097 END IF;
2098 x_value_combination_id := null ;
2099 x_value_segment_code := null ;
2100 x_value_type_code := 'C';
2101 l_output_value := '570001';
2102 RETURN l_output_value;
2103
2104
2105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2106
2107 trace
2108 (p_msg => 'END of AcctDerRule_15(invalid)'
2109 ,p_level => C_LEVEL_PROCEDURE
2110 ,p_module => l_log_module);
2111
2112 END IF;
2113
2114 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2115 x_value_combination_id := null;
2116 x_value_segment_code := null;
2117 x_value_type_code := null;
2118 l_output_value := null;
2119 xla_accounting_err_pkg.build_message
2120 (p_appli_s_name => 'XLA'
2121 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2122 ,p_token_1 => 'COMPONENT_NAME'
2123 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2124 l_component_type
2125 , l_component_code
2126 , l_component_type_code
2127 , l_component_appl_id
2128 , l_amb_context_code
2129 )
2130 ,p_token_2 => 'OWNER'
2131 ,p_value_2 => xla_lookups_pkg.get_meaning(
2132 'XLA_OWNER_TYPE'
2133 ,l_component_type_code
2134 )
2135 ,p_token_3 => 'PAD_NAME'
2136 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2137 ,p_token_4 => 'PAD_OWNER'
2138 ,p_value_4 => xla_lookups_pkg.get_meaning(
2139 'XLA_OWNER_TYPE'
2140 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2141 )
2142 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2143 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2144 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2145 ,p_ae_header_id => NULL
2146 );
2147 RETURN l_output_value;
2148 EXCEPTION
2149 WHEN xla_exceptions_pkg.application_exception THEN
2150 RAISE;
2151 WHEN OTHERS THEN
2152 xla_exceptions_pkg.raise_message
2153 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_15');
2154 END AcctDerRule_15;
2155 --
2156
2157 ---------------------------------------
2158 --
2159 -- PRIVATE FUNCTION
2160 -- AcctDerRule_16
2161 --
2162 ---------------------------------------
2163 FUNCTION AcctDerRule_16 (
2164 p_application_id IN NUMBER
2165 , p_ae_header_id IN NUMBER
2166 , p_side IN VARCHAR2
2167 , p_override_seg_flag IN VARCHAR2
2168 --Federal Prior Year Flag
2169 , p_source_9 IN VARCHAR2
2170 --Accrue on Receipt Option
2171 , p_source_11 IN VARCHAR2
2172 , p_source_11_meaning IN VARCHAR2
2173 --Purchase Order Distribution Identifier
2174 , p_source_12 IN NUMBER
2175 , x_transaction_coa_id OUT NOCOPY NUMBER
2176 , x_accounting_coa_id OUT NOCOPY NUMBER
2177 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
2178 , x_flex_value_set_id OUT NOCOPY NUMBER
2179 , x_value_type_code OUT NOCOPY VARCHAR2
2180 , x_value_combination_id OUT NOCOPY NUMBER
2181 , x_value_segment_code OUT NOCOPY VARCHAR2
2182 )
2183 RETURN VARCHAR2
2184 IS
2185 l_component_type VARCHAR2(80) ;
2186 l_component_code VARCHAR2(30) ;
2187 l_component_type_code VARCHAR2(1) ;
2188 l_component_appl_id INTEGER ;
2189 l_amb_context_code VARCHAR2(30) ;
2190 l_log_module VARCHAR2(240) ;
2191 l_output_value VARCHAR2(30) ;
2192 BEGIN
2193 IF g_log_enabled THEN
2194 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2195 END IF;
2196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2197
2198 trace
2199 (p_msg => 'BEGIN of AcctDerRule_16'
2200 ,p_level => C_LEVEL_PROCEDURE
2201 ,p_module => l_log_module);
2202
2203 END IF;
2204
2205 l_component_type := 'AMB_ADR';
2206 l_component_code := 'FV_QUAN_VAR_ACC_CR';
2207 l_component_type_code := 'S';
2208 l_component_appl_id := 200;
2209 l_amb_context_code := 'DEFAULT';
2210 x_transaction_coa_id := null;
2211 x_accounting_coa_id := null;
2212 x_flexfield_segment_code := null;
2213 x_flex_value_set_id := 1009988 ;
2214
2215
2216 IF NVL(p_source_9,'
2217 ') = 'Y' AND
2218 (NVL(p_source_11,'
2219 ') <> 'Y' AND
2220 p_source_12 IS NOT NULL )
2221 THEN
2222 --
2223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2224
2225 trace
2226 (p_msg => 'END of AcctDerRule_16'
2227 ,p_level => C_LEVEL_PROCEDURE
2228 ,p_module => l_log_module);
2229
2230 END IF;
2231 x_value_combination_id := null ;
2232 x_value_segment_code := null ;
2233 x_value_type_code := 'C';
2234 l_output_value := '488101';
2235 RETURN l_output_value;
2236
2237 ELSIF (p_source_12 IS NULL OR
2238 (NVL(p_source_11,'
2239 ') = 'Y' AND
2240 p_source_12 IS NOT NULL )
2241 ) AND NVL(p_source_9,'
2242 ') = 'Y'
2243 THEN
2244 --
2245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2246
2247 trace
2248 (p_msg => 'END of AcctDerRule_16'
2249 ,p_level => C_LEVEL_PROCEDURE
2250 ,p_module => l_log_module);
2251
2252 END IF;
2253 x_value_combination_id := null ;
2254 x_value_segment_code := null ;
2255 x_value_type_code := 'C';
2256 l_output_value := '498101';
2257 RETURN l_output_value;
2258
2259 ELSIF NVL(p_source_9,'
2260 ') = 'N'
2261 THEN
2262 --
2263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2264
2265 trace
2266 (p_msg => 'END of AcctDerRule_16'
2267 ,p_level => C_LEVEL_PROCEDURE
2268 ,p_module => l_log_module);
2269
2270 END IF;
2271 x_value_combination_id := null ;
2272 x_value_segment_code := null ;
2273 x_value_type_code := 'C';
2274 l_output_value := '490101';
2275 RETURN l_output_value;
2276
2277 ELSE
2278 IF p_override_seg_flag = 'Y' THEN
2279 RETURN '#$NO_OVERRIDE#$';
2280 END IF;
2281 END IF;
2282
2283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2284
2285 trace
2286 (p_msg => 'END of AcctDerRule_16(invalid)'
2287 ,p_level => C_LEVEL_PROCEDURE
2288 ,p_module => l_log_module);
2289
2290 END IF;
2291
2292 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2293 x_value_combination_id := null;
2294 x_value_segment_code := null;
2295 x_value_type_code := null;
2296 l_output_value := null;
2297 xla_accounting_err_pkg.build_message
2298 (p_appli_s_name => 'XLA'
2299 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2300 ,p_token_1 => 'COMPONENT_NAME'
2301 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2302 l_component_type
2303 , l_component_code
2304 , l_component_type_code
2305 , l_component_appl_id
2306 , l_amb_context_code
2307 )
2308 ,p_token_2 => 'OWNER'
2309 ,p_value_2 => xla_lookups_pkg.get_meaning(
2310 'XLA_OWNER_TYPE'
2311 ,l_component_type_code
2312 )
2313 ,p_token_3 => 'PAD_NAME'
2314 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2315 ,p_token_4 => 'PAD_OWNER'
2316 ,p_value_4 => xla_lookups_pkg.get_meaning(
2317 'XLA_OWNER_TYPE'
2318 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2319 )
2320 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2321 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2322 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2323 ,p_ae_header_id => NULL
2324 );
2325 RETURN l_output_value;
2326 EXCEPTION
2327 WHEN xla_exceptions_pkg.application_exception THEN
2328 RAISE;
2329 WHEN OTHERS THEN
2330 xla_exceptions_pkg.raise_message
2331 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctDerRule_16');
2332 END AcctDerRule_16;
2333 --
2334
2335 ---------------------------------------
2336 --
2337 -- PRIVATE FUNCTION
2338 -- AcctLineType_17
2339 --
2340 ---------------------------------------
2341 PROCEDURE AcctLineType_17 (
2342 p_application_id IN NUMBER
2343 ,p_event_id IN NUMBER
2344 ,p_calculate_acctd_flag IN VARCHAR2
2345 ,p_calculate_g_l_flag IN VARCHAR2
2346 ,p_actual_flag IN OUT VARCHAR2
2347 ,p_balance_type_code OUT VARCHAR2
2348 ,p_gain_or_loss_ref OUT VARCHAR2
2349
2350 --Invoice Distribution Description
2351 , p_source_1 IN VARCHAR2
2352 --Invoice Distribution Account
2353 , p_source_2 IN NUMBER
2354 --Federal Anticipation
2355 , p_source_3 IN VARCHAR2
2356 --Invoice Distribution Type
2357 , p_source_8 IN VARCHAR2
2358 , p_source_8_meaning IN VARCHAR2
2359 --Federal Prior Year Flag
2360 , p_source_9 IN VARCHAR2
2361 --Invoice Type
2362 , p_source_13 IN VARCHAR2
2363 , p_source_13_meaning IN VARCHAR2
2364 --Federal Adjustment Type
2365 , p_source_14 IN VARCHAR2
2366 --Accounting Reversal Indicator
2367 , p_source_15 IN VARCHAR2
2368 --Distribution Link Type
2369 , p_source_17 IN VARCHAR2
2370 --Allocation to Main Distribution Identifier
2371 , p_source_19 IN NUMBER
2372 --Invoice Identifier
2373 , p_source_20 IN NUMBER
2374 --Business Flow Accounts Payable Application Identifier
2375 , p_source_21 IN NUMBER
2376 --Business Flow Invoice Distribution Type
2377 , p_source_22 IN VARCHAR2
2378 --Business Flow Invoice Entity Code
2379 , p_source_23 IN VARCHAR2
2380 --Business Flow Invoice Distribution Identifier
2381 , p_source_24 IN NUMBER
2382 --Business Flow Invoice Identifier
2383 , p_source_25 IN NUMBER
2384 --Invoice Distribution Identifier
2385 , p_source_26 IN NUMBER
2386 --Payables Encumbrance Upgrade Credit Account
2387 , p_source_27 IN NUMBER
2388 --Payables Encumbrance Upgrade Credit Amount
2389 , p_source_28 IN NUMBER
2390 --Invoice Currency Code
2391 , p_source_29 IN VARCHAR2
2392 --Payables Encumbrance Upgrade Credit Base Amount
2393 , p_source_30 IN NUMBER
2394 --Payables Encumbrance Upgrade Debit Account
2395 , p_source_31 IN NUMBER
2396 --Payables Encumbrance Upgrade Debit Amount
2397 , p_source_32 IN NUMBER
2398 --Payables Encumbrance Upgrade Debit Base Amount
2399 , p_source_33 IN NUMBER
2400 --Payables Encumbrance Upgrade Option
2401 , p_source_34 IN VARCHAR2
2402 --Federal Anticipated Amt
2403 , p_source_35 IN NUMBER
2404 --Invoice Exchange Date
2405 , p_source_36 IN DATE
2406 --Invoice Exchange Rate
2407 , p_source_37 IN NUMBER
2408 --Invoice Exchange Rate Type
2409 , p_source_38 IN VARCHAR2
2410 --Deferred Accounting End Date
2411 , p_source_39 IN DATE
2412 --Deferred Accounting Option
2413 , p_source_40 IN VARCHAR2
2414 --Deferred Accounting Start Date
2415 , p_source_41 IN DATE
2416 --Override Accounted Amount Indicator
2417 , p_source_42 IN VARCHAR2
2418 , p_source_42_meaning IN VARCHAR2
2419 --Invoice Supplier Identifier
2420 , p_source_43 IN NUMBER
2421 --Invoice Supplier Site Identifier
2422 , p_source_44 IN NUMBER
2423 --Third Party Type
2424 , p_source_45 IN VARCHAR2
2425 --Parent Reversal Identifier
2426 , p_source_46 IN NUMBER
2427 --Invoice Distribution Statistical Amount
2428 , p_source_47 IN NUMBER
2429 --Invoice Distribution Tax Line Identifier
2430 , p_source_48 IN NUMBER
2431 --Invoice Distribution Tax Distribution Identifier from Tax
2432 , p_source_49 IN NUMBER
2433 --Invoice Distribution Summary Tax Line Identifier
2434 , p_source_50 IN NUMBER
2435 --Payables Upgrade Credit Encumbrance Type Identifier
2436 , p_source_51 IN NUMBER
2437 --Payables Upgrade Debit Encumbrance Type Identifier
2438 , p_source_52 IN NUMBER
2439 )
2440 IS
2441
2442 l_component_type VARCHAR2(80);
2443 l_component_code VARCHAR2(30);
2444 l_component_type_code VARCHAR2(1);
2445 l_component_appl_id INTEGER;
2446 l_amb_context_code VARCHAR2(30);
2447 l_entity_code VARCHAR2(30);
2448 l_event_class_code VARCHAR2(30);
2449 l_ae_header_id NUMBER;
2450 l_event_type_code VARCHAR2(30);
2451 l_line_definition_code VARCHAR2(30);
2452 l_line_definition_owner_code VARCHAR2(1);
2453 --
2454 -- adr variables
2455 l_segment VARCHAR2(30);
2456 l_ccid NUMBER;
2457 l_adr_transaction_coa_id NUMBER;
2458 l_adr_accounting_coa_id NUMBER;
2459 l_adr_flexfield_segment_code VARCHAR2(30);
2460 l_adr_flex_value_set_id NUMBER;
2461 l_adr_value_type_code VARCHAR2(30);
2462 l_adr_value_combination_id NUMBER;
2463 l_adr_value_segment_code VARCHAR2(30);
2464
2465 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2466 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2467 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2468 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2469
2470 -- 4262811 Variables ------------------------------------------------------------------------------------------
2471 l_entered_amt_idx NUMBER;
2472 l_accted_amt_idx NUMBER;
2473 l_acc_rev_flag VARCHAR2(1);
2474 l_accrual_line_num NUMBER;
2475 l_tmp_amt NUMBER;
2476 l_acc_rev_natural_side_code VARCHAR2(1);
2477
2478 l_num_entries NUMBER;
2479 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2480 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2481 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2482 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2483 l_recog_line_1 NUMBER;
2484 l_recog_line_2 NUMBER;
2485
2486 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2487 l_bflow_applied_to_amt NUMBER; -- 5132302
2488 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2489
2490 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2491
2492 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2493 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2494
2495 ---------------------------------------------------------------------------------------------------------------
2496
2497
2498 --
2499 -- bulk performance
2500 --
2501 l_balance_type_code VARCHAR2(1);
2502 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2503 l_log_module VARCHAR2(240);
2504
2505 --
2506 -- Upgrade strategy
2507 --
2508 l_actual_upg_option VARCHAR2(1);
2509 l_enc_upg_option VARCHAR2(1);
2510
2511 --
2512 BEGIN
2513 --
2514 IF g_log_enabled THEN
2515 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_17';
2516 END IF;
2517 --
2518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2519
2520 trace
2521 (p_msg => 'BEGIN of AcctLineType_17'
2522 ,p_level => C_LEVEL_PROCEDURE
2523 ,p_module => l_log_module);
2524
2525 END IF;
2526 --
2527 l_component_type := 'AMB_JLT';
2528 l_component_code := 'FV_AP_CM_ DWD_ANPT_PYA_CR';
2529 l_component_type_code := 'S';
2530 l_component_appl_id := 200;
2531 l_amb_context_code := 'DEFAULT';
2532 l_entity_code := 'AP_INVOICES';
2533 l_event_class_code := 'CREDIT MEMOS';
2534 l_event_type_code := 'CREDIT MEMOS_ALL';
2535 l_line_definition_owner_code := 'S';
2536 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
2537 --
2538 l_balance_type_code := 'A';
2539 l_segment := NULL;
2540 l_ccid := NULL;
2541 l_adr_transaction_coa_id := NULL;
2542 l_adr_accounting_coa_id := NULL;
2543 l_adr_flexfield_segment_code := NULL;
2544 l_adr_flex_value_set_id := NULL;
2545 l_adr_value_type_code := NULL;
2546 l_adr_value_combination_id := NULL;
2547 l_adr_value_segment_code := NULL;
2548
2549 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
2550 l_bflow_class_code := ''; -- 4219869 Business Flow
2551 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2552 l_budgetary_control_flag := 'Y';
2553
2554 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2555 l_bflow_applied_to_amt := NULL; -- 5132302
2556 l_entered_amt_idx := NULL; -- 4262811
2557 l_accted_amt_idx := NULL; -- 4262811
2558 l_acc_rev_flag := NULL; -- 4262811
2559 l_accrual_line_num := NULL; -- 4262811
2560 l_tmp_amt := NULL; -- 4262811
2561 --
2562
2563 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2564 l_balance_type_code <> 'B' THEN
2565 IF NVL(p_source_9,'
2566 ') = 'Y' AND
2567 NVL(p_source_13,'
2568 ') = 'CREDIT' AND
2569 (NVL(p_source_8,'
2570 ') = 'ITEM' OR
2571 NVL(p_source_8,'
2572 ') = 'ACCRUAL' OR
2573 NVL(p_source_8,'
2574 ') = 'FREIGHT' OR
2575 NVL(p_source_8,'
2576 ') = 'MISCELLANEOUS' OR
2577 NVL(p_source_8,'
2578 ') = 'IPV') AND
2579 NVL(p_source_14,'
2580 ') = 'Downward' AND
2581 (NVL(p_source_3,'
2582 ') = 'Anticipated' OR
2583 NVL(p_source_3,'
2584 ') = 'Partial')
2585 THEN
2586
2587 --
2588 XLA_AE_LINES_PKG.SetNewLine;
2589
2590 p_balance_type_code := l_balance_type_code;
2591 -- set the flag so later we will know whether the gain loss line needs to be created
2592
2593 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2594 p_actual_flag :='A';
2595 END IF;
2596
2597 --
2598 -- bulk performance
2599 --
2600 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2601 p_header_num => 0); -- 4262811
2602 --
2603 -- set accounting line options
2604 --
2605 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2606 p_natural_side_code => 'D'
2607 , p_gain_or_loss_flag => 'N'
2608 , p_gl_transfer_mode_code => 'S'
2609 , p_acct_entry_type_code => 'A'
2610 , p_switch_side_flag => 'N'
2611 , p_merge_duplicate_code => 'N'
2612 );
2613 --
2614 l_acc_rev_natural_side_code := 'C'; -- 4262811
2615 --
2616 --
2617 -- set accounting line type info
2618 --
2619 xla_ae_lines_pkg.SetAcctLineType
2620 (p_component_type => l_component_type
2621 ,p_event_type_code => l_event_type_code
2622 ,p_line_definition_owner_code => l_line_definition_owner_code
2623 ,p_line_definition_code => l_line_definition_code
2624 ,p_accounting_line_code => l_component_code
2625 ,p_accounting_line_type_code => l_component_type_code
2626 ,p_accounting_line_appl_id => l_component_appl_id
2627 ,p_amb_context_code => l_amb_context_code
2628 ,p_entity_code => l_entity_code
2629 ,p_event_class_code => l_event_class_code);
2630 --
2631 -- set accounting class
2632 --
2633 xla_ae_lines_pkg.SetAcctClass(
2634 p_accounting_class_code => 'ACCOUNTSPAYABLE'
2635 , p_ae_header_id => l_ae_header_id
2636 );
2637
2638 --
2639 -- set rounding class
2640 --
2641 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2642 'ACCOUNTSPAYABLE';
2643
2644 --
2645 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2646 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2647 --
2648 -- bulk performance
2649 --
2650 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2651
2652 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2653 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2654
2655 -- 4955764
2656 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2657 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2658
2659 -- 4458381 Public Sector Enh
2660
2661 --
2662 -- set accounting attributes for the line type
2663 --
2664 l_entered_amt_idx := 23;
2665 l_accted_amt_idx := 28;
2666 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2667 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2668 l_rec_acct_attrs.array_char_value(1) := p_source_15;
2669 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2670 l_rec_acct_attrs.array_num_value(2) :=
2671 xla_ae_sources_pkg.GetSystemSourceNum(
2672 p_source_code => 'XLA_EVENT_APPL_ID'
2673 , p_source_type_code => 'Y'
2674 , p_source_application_id => 602
2675 );
2676 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2677 l_rec_acct_attrs.array_char_value(3) := p_source_17;
2678 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2679 l_rec_acct_attrs.array_char_value(4) :=
2680 xla_ae_sources_pkg.GetSystemSourceChar(
2681 p_source_code => 'XLA_ENTITY_CODE'
2682 , p_source_type_code => 'Y'
2683 , p_source_application_id => 602
2684 );
2685 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2686 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
2687 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2688 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
2689 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2690 l_rec_acct_attrs.array_num_value(7) := p_source_21;
2691 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2692 l_rec_acct_attrs.array_char_value(8) := p_source_22;
2693 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2694 l_rec_acct_attrs.array_char_value(9) := p_source_23;
2695 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2696 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
2697 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2698 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
2699 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
2700 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
2701 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
2702 l_rec_acct_attrs.array_char_value(13) := p_source_17;
2703 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
2704 l_rec_acct_attrs.array_num_value(14) := p_source_27;
2705 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
2706 l_rec_acct_attrs.array_num_value(15) := p_source_28;
2707 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
2708 l_rec_acct_attrs.array_char_value(16) := p_source_29;
2709 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
2710 l_rec_acct_attrs.array_num_value(17) := p_source_30;
2711 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
2712 l_rec_acct_attrs.array_num_value(18) := p_source_31;
2713 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
2714 l_rec_acct_attrs.array_num_value(19) := p_source_32;
2715 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
2716 l_rec_acct_attrs.array_char_value(20) := p_source_29;
2717 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
2718 l_rec_acct_attrs.array_num_value(21) := p_source_33;
2719 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
2720 l_rec_acct_attrs.array_char_value(22) := p_source_34;
2721 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
2722 l_rec_acct_attrs.array_num_value(23) := p_source_35;
2723 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
2724 l_rec_acct_attrs.array_char_value(24) := p_source_29;
2725 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
2726 l_rec_acct_attrs.array_date_value(25) := p_source_36;
2727 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
2728 l_rec_acct_attrs.array_num_value(26) := p_source_37;
2729 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
2730 l_rec_acct_attrs.array_char_value(27) := p_source_38;
2731 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
2732 l_rec_acct_attrs.array_num_value(28) := p_source_35;
2733 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
2734 l_rec_acct_attrs.array_date_value(29) := p_source_39;
2735 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
2736 l_rec_acct_attrs.array_char_value(30) := p_source_40;
2737 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
2738 l_rec_acct_attrs.array_date_value(31) := p_source_41;
2739 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
2740 l_rec_acct_attrs.array_char_value(32) := p_source_42;
2741 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
2742 l_rec_acct_attrs.array_num_value(33) := p_source_43;
2743 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
2744 l_rec_acct_attrs.array_num_value(34) := p_source_44;
2745 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
2746 l_rec_acct_attrs.array_char_value(35) := p_source_45;
2747 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
2748 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
2749 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
2750 l_rec_acct_attrs.array_char_value(37) := p_source_17;
2751 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
2752 l_rec_acct_attrs.array_num_value(38) := p_source_47;
2753 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
2754 l_rec_acct_attrs.array_num_value(39) := p_source_48;
2755 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
2756 l_rec_acct_attrs.array_num_value(40) := p_source_49;
2757 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
2758 l_rec_acct_attrs.array_num_value(41) := p_source_50;
2759 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
2760 l_rec_acct_attrs.array_num_value(42) := p_source_51;
2761 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
2762 l_rec_acct_attrs.array_num_value(43) := p_source_52;
2763
2764 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2765 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2766
2767 ---------------------------------------------------------------------------------------------------------------
2768 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2769 ---------------------------------------------------------------------------------------------------------------
2770 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2771
2772 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2773 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2774
2775 IF xla_accounting_cache_pkg.GetValueChar
2776 (p_source_code => 'LEDGER_CATEGORY_CODE'
2777 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2778 AND l_bflow_method_code = 'PRIOR_ENTRY'
2779 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2780 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2781 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2782 )
2783 THEN
2784 xla_ae_lines_pkg.BflowUpgEntry
2785 (p_business_method_code => l_bflow_method_code
2786 ,p_business_class_code => l_bflow_class_code
2787 ,p_balance_type => l_balance_type_code);
2788 ELSE
2789 NULL;
2790 -- No business flow processing for business flow method of NONE.
2791 END IF;
2792
2793 --
2794 -- call analytical criteria
2795 --
2796
2797 --
2798 -- call description
2799 --
2800
2801 xla_ae_lines_pkg.SetLineDescription(
2802 p_ae_header_id => l_ae_header_id
2803 ,p_description => Description_2 (
2804 p_application_id => p_application_id
2805 , p_ae_header_id => l_ae_header_id
2806 , p_source_1 => p_source_1
2807 )
2808 );
2809
2810
2811 --
2812 -- call ADRs
2813 -- Bug 4922099
2814 --
2815 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2816 (NVL(l_actual_upg_option, 'N') = 'O') OR
2817 (NVL(l_enc_upg_option, 'N') = 'O')
2818 )
2819 THEN
2820 NULL;
2821 --
2822 --
2823
2824 l_ccid := AcctDerRule_3(
2825 p_application_id => p_application_id
2826 , p_ae_header_id => l_ae_header_id
2827 , p_source_2 => p_source_2
2828 , x_transaction_coa_id => l_adr_transaction_coa_id
2829 , x_accounting_coa_id => l_adr_accounting_coa_id
2830 , x_value_type_code => l_adr_value_type_code
2831 , p_side => 'NA'
2832 );
2833
2834 xla_ae_lines_pkg.set_ccid(
2835 p_code_combination_id => l_ccid
2836 , p_value_type_code => l_adr_value_type_code
2837 , p_transaction_coa_id => l_adr_transaction_coa_id
2838 , p_accounting_coa_id => l_adr_accounting_coa_id
2839 , p_adr_code => 'AP_INVOICE_DIST'
2840 , p_adr_type_code => 'S'
2841 , p_component_type => l_component_type
2842 , p_component_code => l_component_code
2843 , p_component_type_code => l_component_type_code
2844 , p_component_appl_id => l_component_appl_id
2845 , p_amb_context_code => l_amb_context_code
2846 , p_side => 'NA'
2847 );
2848
2849
2850 l_segment := AcctDerRule_5(
2851 p_application_id => p_application_id
2852 , p_ae_header_id => l_ae_header_id
2853 , p_source_3 => p_source_3
2854 , x_transaction_coa_id => l_adr_transaction_coa_id
2855 , x_accounting_coa_id => l_adr_accounting_coa_id
2856 , x_flexfield_segment_code => l_adr_flexfield_segment_code
2857 , x_flex_value_set_id => l_adr_flex_value_set_id
2858 , x_value_type_code => l_adr_value_type_code
2859 , x_value_combination_id => l_adr_value_combination_id
2860 , x_value_segment_code => l_adr_value_segment_code
2861 , p_side => 'NA'
2862 , p_override_seg_flag => 'Y'
2863 );
2864
2865 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
2866
2867 xla_ae_lines_pkg.set_segment(
2868 p_to_segment_code => 'GL_ACCOUNT'
2869 , p_segment_value => l_segment
2870 , p_from_segment_code => l_adr_value_segment_code
2871 , p_from_combination_id => l_adr_value_combination_id
2872 , p_value_type_code => l_adr_value_type_code
2873 , p_transaction_coa_id => l_adr_transaction_coa_id
2874 , p_accounting_coa_id => l_adr_accounting_coa_id
2875 , p_flexfield_segment_code => l_adr_flexfield_segment_code
2876 , p_flex_value_set_id => l_adr_flex_value_set_id
2877 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
2878 , p_adr_type_code => 'S'
2879 , p_component_type => l_component_type
2880 , p_component_code => l_component_code
2881 , p_component_type_code => l_component_type_code
2882 , p_component_appl_id => l_component_appl_id
2883 , p_amb_context_code => l_amb_context_code
2884 , p_entity_code => 'AP_INVOICES'
2885 , p_event_class_code => 'CREDIT MEMOS'
2886 , p_side => 'NA'
2887 );
2888
2889 END IF;
2890
2891 --
2892 --
2893 END IF;
2894 --
2895 -- Bug 4922099
2896 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2897 (NVL(l_enc_upg_option, 'N') = 'O')
2898 ) AND
2899 (l_bflow_method_code = 'PRIOR_ENTRY')
2900 )
2901 THEN
2902 IF
2903 --
2904 1 = 2
2905 --
2906 THEN
2907 xla_accounting_err_pkg.build_message
2908 (p_appli_s_name => 'XLA'
2909 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2910 ,p_token_1 => 'LINE_NUMBER'
2911 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2912 ,p_token_2 => 'LINE_TYPE_NAME'
2913 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2914 l_component_type
2915 ,l_component_code
2916 ,l_component_type_code
2917 ,l_component_appl_id
2918 ,l_amb_context_code
2919 ,l_entity_code
2920 ,l_event_class_code
2921 )
2922 ,p_token_3 => 'OWNER'
2923 ,p_value_3 => xla_lookups_pkg.get_meaning(
2924 p_lookup_type => 'XLA_OWNER_TYPE'
2925 ,p_lookup_code => l_component_type_code
2926 )
2927 ,p_token_4 => 'PRODUCT_NAME'
2928 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2929 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2930 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2931 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2932 ,p_ae_header_id => NULL
2933 );
2934
2935 IF (C_LEVEL_ERROR>= g_log_level) THEN
2936 trace
2937 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2938 ,p_level => C_LEVEL_ERROR
2939 ,p_module => l_log_module);
2940 END IF;
2941 END IF;
2942 END IF;
2943 --
2944 --
2945 ------------------------------------------------------------------------------------------------
2946 -- 4219869 Business Flow
2947 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2948 -- Prior Entry. Currently, the following code is always generated.
2949 ------------------------------------------------------------------------------------------------
2950 XLA_AE_LINES_PKG.ValidateCurrentLine;
2951
2952 ------------------------------------------------------------------------------------
2953 -- 4219869 Business Flow
2954 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2955 ------------------------------------------------------------------------------------
2956 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2957
2958 ----------------------------------------------------------------------------------
2959 -- 4219869 Business Flow
2960 -- Update journal entry status -- Need to generate this within IF <condition>
2961 ----------------------------------------------------------------------------------
2962 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2963 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2964 ,p_balance_type_code => l_balance_type_code
2965 );
2966
2967 -------------------------------------------------------------------------------------------
2968 -- 4262811 - Generate the Accrual Reversal lines
2969 -------------------------------------------------------------------------------------------
2970 BEGIN
2971 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2972 (g_array_event(p_event_id).array_value_num('header_index'));
2973 IF l_acc_rev_flag IS NULL THEN
2974 l_acc_rev_flag := 'N';
2975 END IF;
2976 EXCEPTION
2977 WHEN OTHERS THEN
2978 l_acc_rev_flag := 'N';
2979 END;
2980 --
2981 IF (l_acc_rev_flag = 'Y') THEN
2982
2983 -- 4645092 ------------------------------------------------------------------------------
2984 -- To allow MPA report to determine if it should generate report process
2985 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2986 ------------------------------------------------------------------------------------------
2987
2988 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2989 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2990 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
2991 -- call ADRs
2992 -- Bug 4922099
2993 --
2994 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2995 (NVL(l_actual_upg_option, 'N') = 'O') OR
2996 (NVL(l_enc_upg_option, 'N') = 'O')
2997 )
2998 THEN
2999 NULL;
3000 --
3001 --
3002
3003 l_ccid := AcctDerRule_3(
3004 p_application_id => p_application_id
3005 , p_ae_header_id => l_ae_header_id
3006 , p_source_2 => p_source_2
3007 , x_transaction_coa_id => l_adr_transaction_coa_id
3008 , x_accounting_coa_id => l_adr_accounting_coa_id
3009 , x_value_type_code => l_adr_value_type_code
3010 , p_side => 'NA'
3011 );
3012
3013 xla_ae_lines_pkg.set_ccid(
3014 p_code_combination_id => l_ccid
3015 , p_value_type_code => l_adr_value_type_code
3016 , p_transaction_coa_id => l_adr_transaction_coa_id
3017 , p_accounting_coa_id => l_adr_accounting_coa_id
3018 , p_adr_code => 'AP_INVOICE_DIST'
3019 , p_adr_type_code => 'S'
3020 , p_component_type => l_component_type
3021 , p_component_code => l_component_code
3022 , p_component_type_code => l_component_type_code
3023 , p_component_appl_id => l_component_appl_id
3024 , p_amb_context_code => l_amb_context_code
3025 , p_side => 'NA'
3026 );
3027
3028
3029 l_segment := AcctDerRule_5(
3030 p_application_id => p_application_id
3031 , p_ae_header_id => l_ae_header_id
3032 , p_source_3 => p_source_3
3033 , x_transaction_coa_id => l_adr_transaction_coa_id
3034 , x_accounting_coa_id => l_adr_accounting_coa_id
3035 , x_flexfield_segment_code => l_adr_flexfield_segment_code
3036 , x_flex_value_set_id => l_adr_flex_value_set_id
3037 , x_value_type_code => l_adr_value_type_code
3038 , x_value_combination_id => l_adr_value_combination_id
3039 , x_value_segment_code => l_adr_value_segment_code
3040 , p_side => 'NA'
3041 , p_override_seg_flag => 'Y'
3042 );
3043
3044 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
3045
3046 xla_ae_lines_pkg.set_segment(
3047 p_to_segment_code => 'GL_ACCOUNT'
3048 , p_segment_value => l_segment
3049 , p_from_segment_code => l_adr_value_segment_code
3050 , p_from_combination_id => l_adr_value_combination_id
3051 , p_value_type_code => l_adr_value_type_code
3052 , p_transaction_coa_id => l_adr_transaction_coa_id
3053 , p_accounting_coa_id => l_adr_accounting_coa_id
3054 , p_flexfield_segment_code => l_adr_flexfield_segment_code
3055 , p_flex_value_set_id => l_adr_flex_value_set_id
3056 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
3057 , p_adr_type_code => 'S'
3058 , p_component_type => l_component_type
3059 , p_component_code => l_component_code
3060 , p_component_type_code => l_component_type_code
3061 , p_component_appl_id => l_component_appl_id
3062 , p_amb_context_code => l_amb_context_code
3063 , p_entity_code => 'AP_INVOICES'
3064 , p_event_class_code => 'CREDIT MEMOS'
3065 , p_side => 'NA'
3066 );
3067
3068 END IF;
3069
3070 --
3071 --
3072 END IF;
3073
3074 --
3075 -- Update the line information that should be overwritten
3076 --
3077 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3078 p_header_num => 1);
3079 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3080
3081 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3082
3083 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3084 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3085 END IF;
3086
3087 --
3088 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3089 --
3090 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3091 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3092 ELSE
3093 ---------------------------------------------------------------------------------------------------
3094 -- 4262811a Switch Sign
3095 ---------------------------------------------------------------------------------------------------
3096 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3097 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3098 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3099 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3100 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3101 -- 5132302
3102 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3103 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3104
3105 END IF;
3106
3107 -- 4955764
3108 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3109 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3110
3111
3112 XLA_AE_LINES_PKG.ValidateCurrentLine;
3113 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3114
3115 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3116 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3117 ,p_balance_type_code => l_balance_type_code);
3118
3119 END IF;
3120
3121 -----------------------------------------------------------------------------------------
3122 -- 4262811 Multiperiod Accounting
3123 -----------------------------------------------------------------------------------------
3124 -- No MPA option is assigned.
3125
3126
3127 END IF;
3128 END IF;
3129 --
3130
3131 --
3132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3133 trace
3134 (p_msg => 'END of AcctLineType_17'
3135 ,p_level => C_LEVEL_PROCEDURE
3136 ,p_module => l_log_module);
3137 END IF;
3138 --
3139 EXCEPTION
3140 WHEN xla_exceptions_pkg.application_exception THEN
3141 RAISE;
3142 WHEN OTHERS THEN
3143 xla_exceptions_pkg.raise_message
3144 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_17');
3145 END AcctLineType_17;
3146 --
3147
3148 ---------------------------------------
3149 --
3150 -- PRIVATE FUNCTION
3151 -- AcctLineType_18
3152 --
3153 ---------------------------------------
3154 PROCEDURE AcctLineType_18 (
3155 p_application_id IN NUMBER
3156 ,p_event_id IN NUMBER
3157 ,p_calculate_acctd_flag IN VARCHAR2
3158 ,p_calculate_g_l_flag IN VARCHAR2
3159 ,p_actual_flag IN OUT VARCHAR2
3160 ,p_balance_type_code OUT VARCHAR2
3161 ,p_gain_or_loss_ref OUT VARCHAR2
3162
3163 --Invoice Distribution Description
3164 , p_source_1 IN VARCHAR2
3165 --Invoice Distribution Account
3166 , p_source_2 IN NUMBER
3167 --Invoice Distribution Type
3168 , p_source_8 IN VARCHAR2
3169 , p_source_8_meaning IN VARCHAR2
3170 --Federal Prior Year Flag
3171 , p_source_9 IN VARCHAR2
3172 --Invoice Type
3173 , p_source_13 IN VARCHAR2
3174 , p_source_13_meaning IN VARCHAR2
3175 --Federal Adjustment Type
3176 , p_source_14 IN VARCHAR2
3177 --Accounting Reversal Indicator
3178 , p_source_15 IN VARCHAR2
3179 --Distribution Link Type
3180 , p_source_17 IN VARCHAR2
3181 --Allocation to Main Distribution Identifier
3182 , p_source_19 IN NUMBER
3183 --Invoice Identifier
3184 , p_source_20 IN NUMBER
3185 --Business Flow Accounts Payable Application Identifier
3186 , p_source_21 IN NUMBER
3187 --Business Flow Invoice Distribution Type
3188 , p_source_22 IN VARCHAR2
3189 --Business Flow Invoice Entity Code
3190 , p_source_23 IN VARCHAR2
3191 --Business Flow Invoice Distribution Identifier
3192 , p_source_24 IN NUMBER
3193 --Business Flow Invoice Identifier
3194 , p_source_25 IN NUMBER
3195 --Invoice Distribution Identifier
3196 , p_source_26 IN NUMBER
3197 --Payables Encumbrance Upgrade Credit Account
3198 , p_source_27 IN NUMBER
3199 --Payables Encumbrance Upgrade Credit Amount
3200 , p_source_28 IN NUMBER
3201 --Invoice Currency Code
3202 , p_source_29 IN VARCHAR2
3203 --Payables Encumbrance Upgrade Credit Base Amount
3204 , p_source_30 IN NUMBER
3205 --Payables Encumbrance Upgrade Debit Account
3206 , p_source_31 IN NUMBER
3207 --Payables Encumbrance Upgrade Debit Amount
3208 , p_source_32 IN NUMBER
3209 --Payables Encumbrance Upgrade Debit Base Amount
3210 , p_source_33 IN NUMBER
3211 --Payables Encumbrance Upgrade Option
3212 , p_source_34 IN VARCHAR2
3213 --Federal Anticipated Amt
3214 , p_source_35 IN NUMBER
3215 --Invoice Exchange Date
3216 , p_source_36 IN DATE
3217 --Invoice Exchange Rate
3218 , p_source_37 IN NUMBER
3219 --Invoice Exchange Rate Type
3220 , p_source_38 IN VARCHAR2
3221 --Deferred Accounting End Date
3222 , p_source_39 IN DATE
3223 --Deferred Accounting Option
3224 , p_source_40 IN VARCHAR2
3225 --Deferred Accounting Start Date
3226 , p_source_41 IN DATE
3227 --Override Accounted Amount Indicator
3228 , p_source_42 IN VARCHAR2
3229 , p_source_42_meaning IN VARCHAR2
3230 --Invoice Supplier Identifier
3231 , p_source_43 IN NUMBER
3232 --Invoice Supplier Site Identifier
3233 , p_source_44 IN NUMBER
3234 --Third Party Type
3235 , p_source_45 IN VARCHAR2
3236 --Parent Reversal Identifier
3237 , p_source_46 IN NUMBER
3238 --Invoice Distribution Statistical Amount
3239 , p_source_47 IN NUMBER
3240 --Invoice Distribution Tax Line Identifier
3241 , p_source_48 IN NUMBER
3242 --Invoice Distribution Tax Distribution Identifier from Tax
3243 , p_source_49 IN NUMBER
3244 --Invoice Distribution Summary Tax Line Identifier
3245 , p_source_50 IN NUMBER
3246 --Payables Upgrade Credit Encumbrance Type Identifier
3247 , p_source_51 IN NUMBER
3248 --Payables Upgrade Debit Encumbrance Type Identifier
3249 , p_source_52 IN NUMBER
3250 --Invoice Distribution Encumbrance Ledger Amount
3251 , p_source_53 IN NUMBER
3252 )
3253 IS
3254
3255 l_component_type VARCHAR2(80);
3256 l_component_code VARCHAR2(30);
3257 l_component_type_code VARCHAR2(1);
3258 l_component_appl_id INTEGER;
3259 l_amb_context_code VARCHAR2(30);
3260 l_entity_code VARCHAR2(30);
3261 l_event_class_code VARCHAR2(30);
3262 l_ae_header_id NUMBER;
3263 l_event_type_code VARCHAR2(30);
3264 l_line_definition_code VARCHAR2(30);
3265 l_line_definition_owner_code VARCHAR2(1);
3266 --
3267 -- adr variables
3268 l_segment VARCHAR2(30);
3269 l_ccid NUMBER;
3270 l_adr_transaction_coa_id NUMBER;
3271 l_adr_accounting_coa_id NUMBER;
3272 l_adr_flexfield_segment_code VARCHAR2(30);
3273 l_adr_flex_value_set_id NUMBER;
3274 l_adr_value_type_code VARCHAR2(30);
3275 l_adr_value_combination_id NUMBER;
3276 l_adr_value_segment_code VARCHAR2(30);
3277
3278 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3279 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3280 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3281 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3282
3283 -- 4262811 Variables ------------------------------------------------------------------------------------------
3284 l_entered_amt_idx NUMBER;
3285 l_accted_amt_idx NUMBER;
3286 l_acc_rev_flag VARCHAR2(1);
3287 l_accrual_line_num NUMBER;
3288 l_tmp_amt NUMBER;
3289 l_acc_rev_natural_side_code VARCHAR2(1);
3290
3291 l_num_entries NUMBER;
3292 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3293 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3294 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3295 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3296 l_recog_line_1 NUMBER;
3297 l_recog_line_2 NUMBER;
3298
3299 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3300 l_bflow_applied_to_amt NUMBER; -- 5132302
3301 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3302
3303 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3304
3305 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3306 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3307
3308 ---------------------------------------------------------------------------------------------------------------
3309
3310
3311 --
3312 -- bulk performance
3313 --
3314 l_balance_type_code VARCHAR2(1);
3315 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3316 l_log_module VARCHAR2(240);
3317
3318 --
3319 -- Upgrade strategy
3320 --
3321 l_actual_upg_option VARCHAR2(1);
3322 l_enc_upg_option VARCHAR2(1);
3323
3324 --
3325 BEGIN
3326 --
3327 IF g_log_enabled THEN
3328 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_18';
3329 END IF;
3330 --
3331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3332
3333 trace
3334 (p_msg => 'BEGIN of AcctLineType_18'
3335 ,p_level => C_LEVEL_PROCEDURE
3336 ,p_module => l_log_module);
3337
3338 END IF;
3339 --
3340 l_component_type := 'AMB_JLT';
3341 l_component_code := 'FV_AP_CM_ DWD_ANPT_PYA_DR';
3342 l_component_type_code := 'S';
3343 l_component_appl_id := 200;
3344 l_amb_context_code := 'DEFAULT';
3345 l_entity_code := 'AP_INVOICES';
3346 l_event_class_code := 'CREDIT MEMOS';
3347 l_event_type_code := 'CREDIT MEMOS_ALL';
3348 l_line_definition_owner_code := 'S';
3349 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
3350 --
3351 l_balance_type_code := 'A';
3352 l_segment := NULL;
3353 l_ccid := NULL;
3354 l_adr_transaction_coa_id := NULL;
3355 l_adr_accounting_coa_id := NULL;
3356 l_adr_flexfield_segment_code := NULL;
3357 l_adr_flex_value_set_id := NULL;
3358 l_adr_value_type_code := NULL;
3359 l_adr_value_combination_id := NULL;
3360 l_adr_value_segment_code := NULL;
3361
3362 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3363 l_bflow_class_code := ''; -- 4219869 Business Flow
3364 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3365 l_budgetary_control_flag := 'Y';
3366
3367 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3368 l_bflow_applied_to_amt := NULL; -- 5132302
3369 l_entered_amt_idx := NULL; -- 4262811
3370 l_accted_amt_idx := NULL; -- 4262811
3371 l_acc_rev_flag := NULL; -- 4262811
3372 l_accrual_line_num := NULL; -- 4262811
3373 l_tmp_amt := NULL; -- 4262811
3374 --
3375
3376 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3377 l_balance_type_code <> 'B' THEN
3378 IF NVL(p_source_9,'
3379 ') = 'Y' AND
3380 NVL(p_source_13,'
3381 ') = 'CREDIT' AND
3382 NVL(p_source_14,'
3383 ') = 'Downward' AND
3384 (NVL(p_source_8,'
3385 ') = 'ITEM' OR
3386 NVL(p_source_8,'
3387 ') = 'ACCRUAL' OR
3388 NVL(p_source_8,'
3389 ') = 'FREIGHT' OR
3390 NVL(p_source_8,'
3391 ') = 'MISCELLANEOUS' OR
3392 NVL(p_source_8,'
3393 ') = 'IPV')
3394 THEN
3395
3396 --
3397 XLA_AE_LINES_PKG.SetNewLine;
3398
3399 p_balance_type_code := l_balance_type_code;
3400 -- set the flag so later we will know whether the gain loss line needs to be created
3401
3402 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3403 p_actual_flag :='A';
3404 END IF;
3405
3406 --
3407 -- bulk performance
3408 --
3409 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3410 p_header_num => 0); -- 4262811
3411 --
3412 -- set accounting line options
3413 --
3414 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3415 p_natural_side_code => 'C'
3416 , p_gain_or_loss_flag => 'N'
3417 , p_gl_transfer_mode_code => 'S'
3418 , p_acct_entry_type_code => 'A'
3419 , p_switch_side_flag => 'N'
3420 , p_merge_duplicate_code => 'N'
3421 );
3422 --
3423 l_acc_rev_natural_side_code := 'D'; -- 4262811
3424 --
3425 --
3426 -- set accounting line type info
3427 --
3428 xla_ae_lines_pkg.SetAcctLineType
3429 (p_component_type => l_component_type
3430 ,p_event_type_code => l_event_type_code
3431 ,p_line_definition_owner_code => l_line_definition_owner_code
3432 ,p_line_definition_code => l_line_definition_code
3433 ,p_accounting_line_code => l_component_code
3434 ,p_accounting_line_type_code => l_component_type_code
3435 ,p_accounting_line_appl_id => l_component_appl_id
3436 ,p_amb_context_code => l_amb_context_code
3437 ,p_entity_code => l_entity_code
3438 ,p_event_class_code => l_event_class_code);
3439 --
3440 -- set accounting class
3441 --
3442 xla_ae_lines_pkg.SetAcctClass(
3443 p_accounting_class_code => 'ACCOUNTSPAYABLE'
3444 , p_ae_header_id => l_ae_header_id
3445 );
3446
3447 --
3448 -- set rounding class
3449 --
3450 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3451 'ACCOUNTSPAYABLE';
3452
3453 --
3454 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3455 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3456 --
3457 -- bulk performance
3458 --
3459 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3460
3461 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3462 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3463
3464 -- 4955764
3465 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3466 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3467
3468 -- 4458381 Public Sector Enh
3469
3470 --
3471 -- set accounting attributes for the line type
3472 --
3473 l_entered_amt_idx := 23;
3474 l_accted_amt_idx := 28;
3475 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3476 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3477 l_rec_acct_attrs.array_char_value(1) := p_source_15;
3478 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
3479 l_rec_acct_attrs.array_num_value(2) :=
3480 xla_ae_sources_pkg.GetSystemSourceNum(
3481 p_source_code => 'XLA_EVENT_APPL_ID'
3482 , p_source_type_code => 'Y'
3483 , p_source_application_id => 602
3484 );
3485 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
3486 l_rec_acct_attrs.array_char_value(3) := p_source_17;
3487 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
3488 l_rec_acct_attrs.array_char_value(4) :=
3489 xla_ae_sources_pkg.GetSystemSourceChar(
3490 p_source_code => 'XLA_ENTITY_CODE'
3491 , p_source_type_code => 'Y'
3492 , p_source_application_id => 602
3493 );
3494 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
3495 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
3496 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
3497 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
3498 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
3499 l_rec_acct_attrs.array_num_value(7) := p_source_21;
3500 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3501 l_rec_acct_attrs.array_char_value(8) := p_source_22;
3502 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
3503 l_rec_acct_attrs.array_char_value(9) := p_source_23;
3504 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
3505 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
3506 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3507 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
3508 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
3509 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
3510 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
3511 l_rec_acct_attrs.array_char_value(13) := p_source_17;
3512 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
3513 l_rec_acct_attrs.array_num_value(14) := p_source_27;
3514 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
3515 l_rec_acct_attrs.array_num_value(15) := p_source_28;
3516 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
3517 l_rec_acct_attrs.array_char_value(16) := p_source_29;
3518 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
3519 l_rec_acct_attrs.array_num_value(17) := p_source_30;
3520 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
3521 l_rec_acct_attrs.array_num_value(18) := p_source_31;
3522 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
3523 l_rec_acct_attrs.array_num_value(19) := p_source_32;
3524 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
3525 l_rec_acct_attrs.array_char_value(20) := p_source_29;
3526 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
3527 l_rec_acct_attrs.array_num_value(21) := p_source_33;
3528 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
3529 l_rec_acct_attrs.array_char_value(22) := p_source_34;
3530 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
3531 l_rec_acct_attrs.array_num_value(23) := p_source_35;
3532 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
3533 l_rec_acct_attrs.array_char_value(24) := p_source_29;
3534 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
3535 l_rec_acct_attrs.array_date_value(25) := p_source_36;
3536 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
3537 l_rec_acct_attrs.array_num_value(26) := p_source_37;
3538 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
3539 l_rec_acct_attrs.array_char_value(27) := p_source_38;
3540 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
3541 l_rec_acct_attrs.array_num_value(28) := p_source_53;
3542 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
3543 l_rec_acct_attrs.array_date_value(29) := p_source_39;
3544 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
3545 l_rec_acct_attrs.array_char_value(30) := p_source_40;
3546 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
3547 l_rec_acct_attrs.array_date_value(31) := p_source_41;
3548 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
3549 l_rec_acct_attrs.array_char_value(32) := p_source_42;
3550 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
3551 l_rec_acct_attrs.array_num_value(33) := p_source_43;
3552 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
3553 l_rec_acct_attrs.array_num_value(34) := p_source_44;
3554 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
3555 l_rec_acct_attrs.array_char_value(35) := p_source_45;
3556 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
3557 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
3558 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
3559 l_rec_acct_attrs.array_char_value(37) := p_source_17;
3560 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
3561 l_rec_acct_attrs.array_num_value(38) := p_source_47;
3562 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
3563 l_rec_acct_attrs.array_num_value(39) := p_source_48;
3564 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
3565 l_rec_acct_attrs.array_num_value(40) := p_source_49;
3566 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
3567 l_rec_acct_attrs.array_num_value(41) := p_source_50;
3568 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
3569 l_rec_acct_attrs.array_num_value(42) := p_source_51;
3570 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
3571 l_rec_acct_attrs.array_num_value(43) := p_source_52;
3572
3573 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3574 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3575
3576 ---------------------------------------------------------------------------------------------------------------
3577 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3578 ---------------------------------------------------------------------------------------------------------------
3579 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3580
3581 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3582 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3583
3584 IF xla_accounting_cache_pkg.GetValueChar
3585 (p_source_code => 'LEDGER_CATEGORY_CODE'
3586 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3587 AND l_bflow_method_code = 'PRIOR_ENTRY'
3588 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3589 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3590 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3591 )
3592 THEN
3593 xla_ae_lines_pkg.BflowUpgEntry
3594 (p_business_method_code => l_bflow_method_code
3595 ,p_business_class_code => l_bflow_class_code
3596 ,p_balance_type => l_balance_type_code);
3597 ELSE
3598 NULL;
3599 -- No business flow processing for business flow method of NONE.
3600 END IF;
3601
3602 --
3603 -- call analytical criteria
3604 --
3605
3606 --
3607 -- call description
3608 --
3609
3610 xla_ae_lines_pkg.SetLineDescription(
3611 p_ae_header_id => l_ae_header_id
3612 ,p_description => Description_2 (
3613 p_application_id => p_application_id
3614 , p_ae_header_id => l_ae_header_id
3615 , p_source_1 => p_source_1
3616 )
3617 );
3618
3619
3620 --
3621 -- call ADRs
3622 -- Bug 4922099
3623 --
3624 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3625 (NVL(l_actual_upg_option, 'N') = 'O') OR
3626 (NVL(l_enc_upg_option, 'N') = 'O')
3627 )
3628 THEN
3629 NULL;
3630 --
3631 --
3632
3633 l_ccid := AcctDerRule_3(
3634 p_application_id => p_application_id
3635 , p_ae_header_id => l_ae_header_id
3636 , p_source_2 => p_source_2
3637 , x_transaction_coa_id => l_adr_transaction_coa_id
3638 , x_accounting_coa_id => l_adr_accounting_coa_id
3639 , x_value_type_code => l_adr_value_type_code
3640 , p_side => 'NA'
3641 );
3642
3643 xla_ae_lines_pkg.set_ccid(
3644 p_code_combination_id => l_ccid
3645 , p_value_type_code => l_adr_value_type_code
3646 , p_transaction_coa_id => l_adr_transaction_coa_id
3647 , p_accounting_coa_id => l_adr_accounting_coa_id
3648 , p_adr_code => 'AP_INVOICE_DIST'
3649 , p_adr_type_code => 'S'
3650 , p_component_type => l_component_type
3651 , p_component_code => l_component_code
3652 , p_component_type_code => l_component_type_code
3653 , p_component_appl_id => l_component_appl_id
3654 , p_amb_context_code => l_amb_context_code
3655 , p_side => 'NA'
3656 );
3657
3658
3659 l_segment := AcctDerRule_13(
3660 p_application_id => p_application_id
3661 , p_ae_header_id => l_ae_header_id
3662 , x_transaction_coa_id => l_adr_transaction_coa_id
3663 , x_accounting_coa_id => l_adr_accounting_coa_id
3664 , x_flexfield_segment_code => l_adr_flexfield_segment_code
3665 , x_flex_value_set_id => l_adr_flex_value_set_id
3666 , x_value_type_code => l_adr_value_type_code
3667 , x_value_combination_id => l_adr_value_combination_id
3668 , x_value_segment_code => l_adr_value_segment_code
3669 , p_side => 'NA'
3670 , p_override_seg_flag => 'Y'
3671 );
3672
3673 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
3674
3675 xla_ae_lines_pkg.set_segment(
3676 p_to_segment_code => 'GL_ACCOUNT'
3677 , p_segment_value => l_segment
3678 , p_from_segment_code => l_adr_value_segment_code
3679 , p_from_combination_id => l_adr_value_combination_id
3680 , p_value_type_code => l_adr_value_type_code
3681 , p_transaction_coa_id => l_adr_transaction_coa_id
3682 , p_accounting_coa_id => l_adr_accounting_coa_id
3683 , p_flexfield_segment_code => l_adr_flexfield_segment_code
3684 , p_flex_value_set_id => l_adr_flex_value_set_id
3685 , p_adr_code => 'FV_497101_DWD_PYA_DR'
3686 , p_adr_type_code => 'S'
3687 , p_component_type => l_component_type
3688 , p_component_code => l_component_code
3689 , p_component_type_code => l_component_type_code
3690 , p_component_appl_id => l_component_appl_id
3691 , p_amb_context_code => l_amb_context_code
3692 , p_entity_code => 'AP_INVOICES'
3693 , p_event_class_code => 'CREDIT MEMOS'
3694 , p_side => 'NA'
3695 );
3696
3697 END IF;
3698
3699 --
3700 --
3701 END IF;
3702 --
3703 -- Bug 4922099
3704 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3705 (NVL(l_enc_upg_option, 'N') = 'O')
3706 ) AND
3707 (l_bflow_method_code = 'PRIOR_ENTRY')
3708 )
3709 THEN
3710 IF
3711 --
3712 1 = 2
3713 --
3714 THEN
3715 xla_accounting_err_pkg.build_message
3716 (p_appli_s_name => 'XLA'
3717 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3718 ,p_token_1 => 'LINE_NUMBER'
3719 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3720 ,p_token_2 => 'LINE_TYPE_NAME'
3721 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3722 l_component_type
3723 ,l_component_code
3724 ,l_component_type_code
3725 ,l_component_appl_id
3726 ,l_amb_context_code
3727 ,l_entity_code
3728 ,l_event_class_code
3729 )
3730 ,p_token_3 => 'OWNER'
3731 ,p_value_3 => xla_lookups_pkg.get_meaning(
3732 p_lookup_type => 'XLA_OWNER_TYPE'
3733 ,p_lookup_code => l_component_type_code
3734 )
3735 ,p_token_4 => 'PRODUCT_NAME'
3736 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3737 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3738 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3739 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3740 ,p_ae_header_id => NULL
3741 );
3742
3743 IF (C_LEVEL_ERROR>= g_log_level) THEN
3744 trace
3745 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3746 ,p_level => C_LEVEL_ERROR
3747 ,p_module => l_log_module);
3748 END IF;
3749 END IF;
3750 END IF;
3751 --
3752 --
3753 ------------------------------------------------------------------------------------------------
3754 -- 4219869 Business Flow
3755 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3756 -- Prior Entry. Currently, the following code is always generated.
3757 ------------------------------------------------------------------------------------------------
3758 XLA_AE_LINES_PKG.ValidateCurrentLine;
3759
3760 ------------------------------------------------------------------------------------
3761 -- 4219869 Business Flow
3762 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3763 ------------------------------------------------------------------------------------
3764 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3765
3766 ----------------------------------------------------------------------------------
3767 -- 4219869 Business Flow
3768 -- Update journal entry status -- Need to generate this within IF <condition>
3769 ----------------------------------------------------------------------------------
3770 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3771 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3772 ,p_balance_type_code => l_balance_type_code
3773 );
3774
3775 -------------------------------------------------------------------------------------------
3776 -- 4262811 - Generate the Accrual Reversal lines
3777 -------------------------------------------------------------------------------------------
3778 BEGIN
3779 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3780 (g_array_event(p_event_id).array_value_num('header_index'));
3781 IF l_acc_rev_flag IS NULL THEN
3782 l_acc_rev_flag := 'N';
3783 END IF;
3784 EXCEPTION
3785 WHEN OTHERS THEN
3786 l_acc_rev_flag := 'N';
3787 END;
3788 --
3789 IF (l_acc_rev_flag = 'Y') THEN
3790
3791 -- 4645092 ------------------------------------------------------------------------------
3792 -- To allow MPA report to determine if it should generate report process
3793 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3794 ------------------------------------------------------------------------------------------
3795
3796 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3797 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3798 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
3799 -- call ADRs
3800 -- Bug 4922099
3804 (NVL(l_enc_upg_option, 'N') = 'O')
3801 --
3802 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3803 (NVL(l_actual_upg_option, 'N') = 'O') OR
3805 )
3806 THEN
3807 NULL;
3808 --
3809 --
3810
3811 l_ccid := AcctDerRule_3(
3812 p_application_id => p_application_id
3813 , p_ae_header_id => l_ae_header_id
3814 , p_source_2 => p_source_2
3815 , x_transaction_coa_id => l_adr_transaction_coa_id
3816 , x_accounting_coa_id => l_adr_accounting_coa_id
3817 , x_value_type_code => l_adr_value_type_code
3818 , p_side => 'NA'
3819 );
3820
3821 xla_ae_lines_pkg.set_ccid(
3822 p_code_combination_id => l_ccid
3823 , p_value_type_code => l_adr_value_type_code
3824 , p_transaction_coa_id => l_adr_transaction_coa_id
3825 , p_accounting_coa_id => l_adr_accounting_coa_id
3826 , p_adr_code => 'AP_INVOICE_DIST'
3827 , p_adr_type_code => 'S'
3828 , p_component_type => l_component_type
3829 , p_component_code => l_component_code
3830 , p_component_type_code => l_component_type_code
3831 , p_component_appl_id => l_component_appl_id
3832 , p_amb_context_code => l_amb_context_code
3833 , p_side => 'NA'
3834 );
3835
3836
3837 l_segment := AcctDerRule_13(
3838 p_application_id => p_application_id
3839 , p_ae_header_id => l_ae_header_id
3840 , x_transaction_coa_id => l_adr_transaction_coa_id
3841 , x_accounting_coa_id => l_adr_accounting_coa_id
3842 , x_flexfield_segment_code => l_adr_flexfield_segment_code
3843 , x_flex_value_set_id => l_adr_flex_value_set_id
3844 , x_value_type_code => l_adr_value_type_code
3845 , x_value_combination_id => l_adr_value_combination_id
3846 , x_value_segment_code => l_adr_value_segment_code
3847 , p_side => 'NA'
3848 , p_override_seg_flag => 'Y'
3849 );
3850
3851 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
3852
3853 xla_ae_lines_pkg.set_segment(
3854 p_to_segment_code => 'GL_ACCOUNT'
3855 , p_segment_value => l_segment
3856 , p_from_segment_code => l_adr_value_segment_code
3857 , p_from_combination_id => l_adr_value_combination_id
3858 , p_value_type_code => l_adr_value_type_code
3859 , p_transaction_coa_id => l_adr_transaction_coa_id
3860 , p_accounting_coa_id => l_adr_accounting_coa_id
3861 , p_flexfield_segment_code => l_adr_flexfield_segment_code
3862 , p_flex_value_set_id => l_adr_flex_value_set_id
3863 , p_adr_code => 'FV_497101_DWD_PYA_DR'
3864 , p_adr_type_code => 'S'
3865 , p_component_type => l_component_type
3866 , p_component_code => l_component_code
3867 , p_component_type_code => l_component_type_code
3868 , p_component_appl_id => l_component_appl_id
3869 , p_amb_context_code => l_amb_context_code
3870 , p_entity_code => 'AP_INVOICES'
3871 , p_event_class_code => 'CREDIT MEMOS'
3872 , p_side => 'NA'
3873 );
3874
3875 END IF;
3876
3877 --
3878 --
3879 END IF;
3880
3881 --
3882 -- Update the line information that should be overwritten
3883 --
3884 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3885 p_header_num => 1);
3886 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3887
3888 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3889
3890 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3891 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3892 END IF;
3893
3894 --
3895 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3896 --
3897 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3898 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3899 ELSE
3900 ---------------------------------------------------------------------------------------------------
3901 -- 4262811a Switch Sign
3902 ---------------------------------------------------------------------------------------------------
3903 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3904 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3906 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3907 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3908 -- 5132302
3909 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3910 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3911
3912 END IF;
3913
3914 -- 4955764
3915 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3916 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3917
3918
3919 XLA_AE_LINES_PKG.ValidateCurrentLine;
3920 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3921
3922 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3923 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3924 ,p_balance_type_code => l_balance_type_code);
3925
3926 END IF;
3927
3928 -----------------------------------------------------------------------------------------
3929 -- 4262811 Multiperiod Accounting
3930 -----------------------------------------------------------------------------------------
3931 -- No MPA option is assigned.
3932
3933
3934 END IF;
3935 END IF;
3936 --
3937
3938 --
3939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3940 trace
3941 (p_msg => 'END of AcctLineType_18'
3942 ,p_level => C_LEVEL_PROCEDURE
3943 ,p_module => l_log_module);
3944 END IF;
3945 --
3946 EXCEPTION
3947 WHEN xla_exceptions_pkg.application_exception THEN
3948 RAISE;
3949 WHEN OTHERS THEN
3950 xla_exceptions_pkg.raise_message
3951 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_18');
3952 END AcctLineType_18;
3953 --
3954
3955 ---------------------------------------
3956 --
3957 -- PRIVATE FUNCTION
3958 -- AcctLineType_19
3959 --
3960 ---------------------------------------
3961 PROCEDURE AcctLineType_19 (
3962 p_application_id IN NUMBER
3963 ,p_event_id IN NUMBER
3964 ,p_calculate_acctd_flag IN VARCHAR2
3965 ,p_calculate_g_l_flag IN VARCHAR2
3966 ,p_actual_flag IN OUT VARCHAR2
3967 ,p_balance_type_code OUT VARCHAR2
3968 ,p_gain_or_loss_ref OUT VARCHAR2
3969
3970 --Invoice Distribution Description
3971 , p_source_1 IN VARCHAR2
3972 --Invoice Distribution Account
3973 , p_source_2 IN NUMBER
3974 --Federal Anticipation
3975 , p_source_3 IN VARCHAR2
3976 --Invoice Distribution Type
3977 , p_source_8 IN VARCHAR2
3978 , p_source_8_meaning IN VARCHAR2
3979 --Federal Prior Year Flag
3980 , p_source_9 IN VARCHAR2
3981 --Invoice Type
3982 , p_source_13 IN VARCHAR2
3983 , p_source_13_meaning IN VARCHAR2
3984 --Federal Adjustment Type
3985 , p_source_14 IN VARCHAR2
3986 --Accounting Reversal Indicator
3987 , p_source_15 IN VARCHAR2
3988 --Distribution Link Type
3989 , p_source_17 IN VARCHAR2
3990 --Allocation to Main Distribution Identifier
3991 , p_source_19 IN NUMBER
3992 --Invoice Identifier
3993 , p_source_20 IN NUMBER
3994 --Business Flow Accounts Payable Application Identifier
3995 , p_source_21 IN NUMBER
3996 --Business Flow Invoice Distribution Type
3997 , p_source_22 IN VARCHAR2
3998 --Business Flow Invoice Entity Code
3999 , p_source_23 IN VARCHAR2
4000 --Business Flow Invoice Distribution Identifier
4001 , p_source_24 IN NUMBER
4002 --Business Flow Invoice Identifier
4003 , p_source_25 IN NUMBER
4004 --Invoice Distribution Identifier
4005 , p_source_26 IN NUMBER
4006 --Payables Encumbrance Upgrade Credit Account
4007 , p_source_27 IN NUMBER
4008 --Payables Encumbrance Upgrade Credit Amount
4009 , p_source_28 IN NUMBER
4010 --Invoice Currency Code
4011 , p_source_29 IN VARCHAR2
4012 --Payables Encumbrance Upgrade Credit Base Amount
4013 , p_source_30 IN NUMBER
4014 --Payables Encumbrance Upgrade Debit Account
4015 , p_source_31 IN NUMBER
4016 --Payables Encumbrance Upgrade Debit Amount
4017 , p_source_32 IN NUMBER
4018 --Payables Encumbrance Upgrade Debit Base Amount
4019 , p_source_33 IN NUMBER
4020 --Payables Encumbrance Upgrade Option
4021 , p_source_34 IN VARCHAR2
4022 --Invoice Exchange Date
4023 , p_source_36 IN DATE
4024 --Invoice Exchange Rate
4025 , p_source_37 IN NUMBER
4026 --Invoice Exchange Rate Type
4027 , p_source_38 IN VARCHAR2
4028 --Deferred Accounting End Date
4029 , p_source_39 IN DATE
4030 --Deferred Accounting Option
4031 , p_source_40 IN VARCHAR2
4032 --Deferred Accounting Start Date
4033 , p_source_41 IN DATE
4034 --Override Accounted Amount Indicator
4035 , p_source_42 IN VARCHAR2
4036 , p_source_42_meaning IN VARCHAR2
4037 --Invoice Supplier Identifier
4038 , p_source_43 IN NUMBER
4039 --Invoice Supplier Site Identifier
4040 , p_source_44 IN NUMBER
4041 --Third Party Type
4042 , p_source_45 IN VARCHAR2
4043 --Parent Reversal Identifier
4044 , p_source_46 IN NUMBER
4045 --Invoice Distribution Statistical Amount
4046 , p_source_47 IN NUMBER
4047 --Invoice Distribution Tax Line Identifier
4048 , p_source_48 IN NUMBER
4049 --Invoice Distribution Tax Distribution Identifier from Tax
4050 , p_source_49 IN NUMBER
4051 --Invoice Distribution Summary Tax Line Identifier
4052 , p_source_50 IN NUMBER
4053 --Payables Upgrade Credit Encumbrance Type Identifier
4054 , p_source_51 IN NUMBER
4055 --Payables Upgrade Debit Encumbrance Type Identifier
4056 , p_source_52 IN NUMBER
4060 IS
4057 --Federal Unanticipated Amt
4058 , p_source_54 IN NUMBER
4059 )
4061
4062 l_component_type VARCHAR2(80);
4063 l_component_code VARCHAR2(30);
4064 l_component_type_code VARCHAR2(1);
4065 l_component_appl_id INTEGER;
4066 l_amb_context_code VARCHAR2(30);
4067 l_entity_code VARCHAR2(30);
4068 l_event_class_code VARCHAR2(30);
4069 l_ae_header_id NUMBER;
4070 l_event_type_code VARCHAR2(30);
4071 l_line_definition_code VARCHAR2(30);
4072 l_line_definition_owner_code VARCHAR2(1);
4073 --
4074 -- adr variables
4075 l_segment VARCHAR2(30);
4076 l_ccid NUMBER;
4077 l_adr_transaction_coa_id NUMBER;
4078 l_adr_accounting_coa_id NUMBER;
4079 l_adr_flexfield_segment_code VARCHAR2(30);
4080 l_adr_flex_value_set_id NUMBER;
4081 l_adr_value_type_code VARCHAR2(30);
4082 l_adr_value_combination_id NUMBER;
4083 l_adr_value_segment_code VARCHAR2(30);
4084
4085 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4086 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4087 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4088 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4089
4090 -- 4262811 Variables ------------------------------------------------------------------------------------------
4091 l_entered_amt_idx NUMBER;
4092 l_accted_amt_idx NUMBER;
4093 l_acc_rev_flag VARCHAR2(1);
4094 l_accrual_line_num NUMBER;
4095 l_tmp_amt NUMBER;
4096 l_acc_rev_natural_side_code VARCHAR2(1);
4097
4098 l_num_entries NUMBER;
4099 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4100 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4101 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4102 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4103 l_recog_line_1 NUMBER;
4104 l_recog_line_2 NUMBER;
4105
4106 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4107 l_bflow_applied_to_amt NUMBER; -- 5132302
4108 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4109
4110 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4111
4112 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4113 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4114
4115 ---------------------------------------------------------------------------------------------------------------
4116
4117
4118 --
4119 -- bulk performance
4120 --
4121 l_balance_type_code VARCHAR2(1);
4122 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4123 l_log_module VARCHAR2(240);
4124
4125 --
4126 -- Upgrade strategy
4127 --
4128 l_actual_upg_option VARCHAR2(1);
4129 l_enc_upg_option VARCHAR2(1);
4130
4131 --
4132 BEGIN
4133 --
4134 IF g_log_enabled THEN
4135 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_19';
4136 END IF;
4137 --
4138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4139
4140 trace
4141 (p_msg => 'BEGIN of AcctLineType_19'
4142 ,p_level => C_LEVEL_PROCEDURE
4143 ,p_module => l_log_module);
4144
4145 END IF;
4146 --
4147 l_component_type := 'AMB_JLT';
4148 l_component_code := 'FV_AP_CM_ DWD_UNANPT_PYA_CR';
4149 l_component_type_code := 'S';
4150 l_component_appl_id := 200;
4151 l_amb_context_code := 'DEFAULT';
4152 l_entity_code := 'AP_INVOICES';
4153 l_event_class_code := 'CREDIT MEMOS';
4154 l_event_type_code := 'CREDIT MEMOS_ALL';
4155 l_line_definition_owner_code := 'S';
4156 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
4157 --
4158 l_balance_type_code := 'A';
4159 l_segment := NULL;
4160 l_ccid := NULL;
4161 l_adr_transaction_coa_id := NULL;
4162 l_adr_accounting_coa_id := NULL;
4163 l_adr_flexfield_segment_code := NULL;
4164 l_adr_flex_value_set_id := NULL;
4165 l_adr_value_type_code := NULL;
4166 l_adr_value_combination_id := NULL;
4167 l_adr_value_segment_code := NULL;
4168
4169 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4170 l_bflow_class_code := ''; -- 4219869 Business Flow
4171 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4172 l_budgetary_control_flag := 'Y';
4173
4174 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4175 l_bflow_applied_to_amt := NULL; -- 5132302
4176 l_entered_amt_idx := NULL; -- 4262811
4177 l_accted_amt_idx := NULL; -- 4262811
4178 l_acc_rev_flag := NULL; -- 4262811
4179 l_accrual_line_num := NULL; -- 4262811
4180 l_tmp_amt := NULL; -- 4262811
4181 --
4182
4183 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4184 l_balance_type_code <> 'B' THEN
4185 IF NVL(p_source_13,'
4186 ') = 'CREDIT' AND
4187 NVL(p_source_9,'
4188 ') = 'Y' AND
4189 (NVL(p_source_8,'
4190 ') = 'ITEM' OR
4191 NVL(p_source_8,'
4192 ') = 'ACCRUAL' OR
4193 NVL(p_source_8,'
4194 ') = 'FREIGHT' OR
4195 NVL(p_source_8,'
4196 ') = 'MISCELLANEOUS' OR
4197 NVL(p_source_8,'
4198 ') = 'IPV') AND
4199 NVL(p_source_14,'
4200 ') = 'Downward' AND
4201 (NVL(p_source_3,'
4202 ') = 'UnAnticipated' OR
4203 NVL(p_source_3,'
4204 ') = 'Partial')
4205 THEN
4206
4207 --
4208 XLA_AE_LINES_PKG.SetNewLine;
4209
4210 p_balance_type_code := l_balance_type_code;
4211 -- set the flag so later we will know whether the gain loss line needs to be created
4212
4213 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4214 p_actual_flag :='A';
4215 END IF;
4216
4217 --
4218 -- bulk performance
4219 --
4220 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4221 p_header_num => 0); -- 4262811
4222 --
4223 -- set accounting line options
4224 --
4225 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4226 p_natural_side_code => 'D'
4227 , p_gain_or_loss_flag => 'N'
4228 , p_gl_transfer_mode_code => 'S'
4229 , p_acct_entry_type_code => 'A'
4230 , p_switch_side_flag => 'N'
4231 , p_merge_duplicate_code => 'N'
4232 );
4233 --
4234 l_acc_rev_natural_side_code := 'C'; -- 4262811
4235 --
4236 --
4237 -- set accounting line type info
4238 --
4239 xla_ae_lines_pkg.SetAcctLineType
4240 (p_component_type => l_component_type
4241 ,p_event_type_code => l_event_type_code
4242 ,p_line_definition_owner_code => l_line_definition_owner_code
4243 ,p_line_definition_code => l_line_definition_code
4244 ,p_accounting_line_code => l_component_code
4245 ,p_accounting_line_type_code => l_component_type_code
4246 ,p_accounting_line_appl_id => l_component_appl_id
4247 ,p_amb_context_code => l_amb_context_code
4248 ,p_entity_code => l_entity_code
4249 ,p_event_class_code => l_event_class_code);
4250 --
4251 -- set accounting class
4252 --
4253 xla_ae_lines_pkg.SetAcctClass(
4254 p_accounting_class_code => 'ACCOUNTSPAYABLE'
4255 , p_ae_header_id => l_ae_header_id
4256 );
4257
4258 --
4259 -- set rounding class
4260 --
4261 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4262 'ACCOUNTSPAYABLE';
4263
4264 --
4265 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4266 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4267 --
4268 -- bulk performance
4269 --
4270 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4271
4272 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4273 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4274
4275 -- 4955764
4276 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4277 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4278
4279 -- 4458381 Public Sector Enh
4280
4281 --
4282 -- set accounting attributes for the line type
4283 --
4284 l_entered_amt_idx := 23;
4285 l_accted_amt_idx := 28;
4286 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4287 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4288 l_rec_acct_attrs.array_char_value(1) := p_source_15;
4289 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
4290 l_rec_acct_attrs.array_num_value(2) :=
4291 xla_ae_sources_pkg.GetSystemSourceNum(
4292 p_source_code => 'XLA_EVENT_APPL_ID'
4293 , p_source_type_code => 'Y'
4294 , p_source_application_id => 602
4295 );
4296 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
4297 l_rec_acct_attrs.array_char_value(3) := p_source_17;
4298 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
4299 l_rec_acct_attrs.array_char_value(4) :=
4300 xla_ae_sources_pkg.GetSystemSourceChar(
4301 p_source_code => 'XLA_ENTITY_CODE'
4302 , p_source_type_code => 'Y'
4303 , p_source_application_id => 602
4304 );
4305 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
4306 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
4307 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
4308 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
4309 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
4310 l_rec_acct_attrs.array_num_value(7) := p_source_21;
4311 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4312 l_rec_acct_attrs.array_char_value(8) := p_source_22;
4313 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
4314 l_rec_acct_attrs.array_char_value(9) := p_source_23;
4315 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
4316 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
4317 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4318 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
4319 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
4320 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
4321 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
4322 l_rec_acct_attrs.array_char_value(13) := p_source_17;
4323 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
4324 l_rec_acct_attrs.array_num_value(14) := p_source_27;
4325 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
4326 l_rec_acct_attrs.array_num_value(15) := p_source_28;
4327 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
4328 l_rec_acct_attrs.array_char_value(16) := p_source_29;
4329 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
4330 l_rec_acct_attrs.array_num_value(17) := p_source_30;
4331 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
4332 l_rec_acct_attrs.array_num_value(18) := p_source_31;
4333 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
4334 l_rec_acct_attrs.array_num_value(19) := p_source_32;
4335 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
4336 l_rec_acct_attrs.array_char_value(20) := p_source_29;
4337 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
4338 l_rec_acct_attrs.array_num_value(21) := p_source_33;
4339 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
4340 l_rec_acct_attrs.array_char_value(22) := p_source_34;
4341 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
4342 l_rec_acct_attrs.array_num_value(23) := p_source_54;
4343 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
4344 l_rec_acct_attrs.array_char_value(24) := p_source_29;
4345 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
4346 l_rec_acct_attrs.array_date_value(25) := p_source_36;
4347 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
4348 l_rec_acct_attrs.array_num_value(26) := p_source_37;
4349 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
4350 l_rec_acct_attrs.array_char_value(27) := p_source_38;
4351 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
4352 l_rec_acct_attrs.array_num_value(28) := p_source_54;
4353 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
4354 l_rec_acct_attrs.array_date_value(29) := p_source_39;
4355 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
4356 l_rec_acct_attrs.array_char_value(30) := p_source_40;
4357 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
4358 l_rec_acct_attrs.array_date_value(31) := p_source_41;
4359 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
4360 l_rec_acct_attrs.array_char_value(32) := p_source_42;
4361 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
4362 l_rec_acct_attrs.array_num_value(33) := p_source_43;
4363 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
4364 l_rec_acct_attrs.array_num_value(34) := p_source_44;
4365 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
4366 l_rec_acct_attrs.array_char_value(35) := p_source_45;
4367 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
4368 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
4369 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
4370 l_rec_acct_attrs.array_char_value(37) := p_source_17;
4371 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
4372 l_rec_acct_attrs.array_num_value(38) := p_source_47;
4373 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
4374 l_rec_acct_attrs.array_num_value(39) := p_source_48;
4375 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
4376 l_rec_acct_attrs.array_num_value(40) := p_source_49;
4377 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
4378 l_rec_acct_attrs.array_num_value(41) := p_source_50;
4379 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
4380 l_rec_acct_attrs.array_num_value(42) := p_source_51;
4381 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
4382 l_rec_acct_attrs.array_num_value(43) := p_source_52;
4383
4384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4386
4387 ---------------------------------------------------------------------------------------------------------------
4388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4389 ---------------------------------------------------------------------------------------------------------------
4390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4391
4392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4394
4395 IF xla_accounting_cache_pkg.GetValueChar
4396 (p_source_code => 'LEDGER_CATEGORY_CODE'
4397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4398 AND l_bflow_method_code = 'PRIOR_ENTRY'
4399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4402 )
4403 THEN
4404 xla_ae_lines_pkg.BflowUpgEntry
4405 (p_business_method_code => l_bflow_method_code
4406 ,p_business_class_code => l_bflow_class_code
4407 ,p_balance_type => l_balance_type_code);
4408 ELSE
4409 NULL;
4410 -- No business flow processing for business flow method of NONE.
4411 END IF;
4412
4413 --
4414 -- call analytical criteria
4415 --
4416
4417 --
4418 -- call description
4419 --
4420
4421 xla_ae_lines_pkg.SetLineDescription(
4422 p_ae_header_id => l_ae_header_id
4423 ,p_description => Description_2 (
4424 p_application_id => p_application_id
4425 , p_ae_header_id => l_ae_header_id
4426 , p_source_1 => p_source_1
4427 )
4428 );
4429
4430
4431 --
4432 -- call ADRs
4433 -- Bug 4922099
4434 --
4435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4436 (NVL(l_actual_upg_option, 'N') = 'O') OR
4437 (NVL(l_enc_upg_option, 'N') = 'O')
4438 )
4439 THEN
4440 NULL;
4441 --
4442 --
4443
4444 l_ccid := AcctDerRule_3(
4445 p_application_id => p_application_id
4446 , p_ae_header_id => l_ae_header_id
4447 , p_source_2 => p_source_2
4448 , x_transaction_coa_id => l_adr_transaction_coa_id
4449 , x_accounting_coa_id => l_adr_accounting_coa_id
4450 , x_value_type_code => l_adr_value_type_code
4451 , p_side => 'NA'
4452 );
4453
4454 xla_ae_lines_pkg.set_ccid(
4455 p_code_combination_id => l_ccid
4456 , p_value_type_code => l_adr_value_type_code
4457 , p_transaction_coa_id => l_adr_transaction_coa_id
4458 , p_accounting_coa_id => l_adr_accounting_coa_id
4459 , p_adr_code => 'AP_INVOICE_DIST'
4460 , p_adr_type_code => 'S'
4461 , p_component_type => l_component_type
4462 , p_component_code => l_component_code
4463 , p_component_type_code => l_component_type_code
4464 , p_component_appl_id => l_component_appl_id
4465 , p_amb_context_code => l_amb_context_code
4466 , p_side => 'NA'
4467 );
4468
4469
4470 l_segment := AcctDerRule_5(
4471 p_application_id => p_application_id
4472 , p_ae_header_id => l_ae_header_id
4473 , p_source_3 => p_source_3
4474 , x_transaction_coa_id => l_adr_transaction_coa_id
4475 , x_accounting_coa_id => l_adr_accounting_coa_id
4476 , x_flexfield_segment_code => l_adr_flexfield_segment_code
4477 , x_flex_value_set_id => l_adr_flex_value_set_id
4478 , x_value_type_code => l_adr_value_type_code
4479 , x_value_combination_id => l_adr_value_combination_id
4480 , x_value_segment_code => l_adr_value_segment_code
4481 , p_side => 'NA'
4482 , p_override_seg_flag => 'Y'
4483 );
4484
4485 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
4486
4487 xla_ae_lines_pkg.set_segment(
4488 p_to_segment_code => 'GL_ACCOUNT'
4489 , p_segment_value => l_segment
4490 , p_from_segment_code => l_adr_value_segment_code
4491 , p_from_combination_id => l_adr_value_combination_id
4492 , p_value_type_code => l_adr_value_type_code
4493 , p_transaction_coa_id => l_adr_transaction_coa_id
4494 , p_accounting_coa_id => l_adr_accounting_coa_id
4495 , p_flexfield_segment_code => l_adr_flexfield_segment_code
4496 , p_flex_value_set_id => l_adr_flex_value_set_id
4497 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
4498 , p_adr_type_code => 'S'
4499 , p_component_type => l_component_type
4500 , p_component_code => l_component_code
4501 , p_component_type_code => l_component_type_code
4502 , p_component_appl_id => l_component_appl_id
4503 , p_amb_context_code => l_amb_context_code
4504 , p_entity_code => 'AP_INVOICES'
4505 , p_event_class_code => 'CREDIT MEMOS'
4506 , p_side => 'NA'
4507 );
4508
4509 END IF;
4510
4511 --
4512 --
4513 END IF;
4514 --
4515 -- Bug 4922099
4516 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4517 (NVL(l_enc_upg_option, 'N') = 'O')
4518 ) AND
4519 (l_bflow_method_code = 'PRIOR_ENTRY')
4520 )
4521 THEN
4522 IF
4523 --
4524 1 = 2
4525 --
4526 THEN
4527 xla_accounting_err_pkg.build_message
4528 (p_appli_s_name => 'XLA'
4529 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4530 ,p_token_1 => 'LINE_NUMBER'
4531 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4532 ,p_token_2 => 'LINE_TYPE_NAME'
4533 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4534 l_component_type
4535 ,l_component_code
4539 ,l_entity_code
4536 ,l_component_type_code
4537 ,l_component_appl_id
4538 ,l_amb_context_code
4540 ,l_event_class_code
4541 )
4542 ,p_token_3 => 'OWNER'
4543 ,p_value_3 => xla_lookups_pkg.get_meaning(
4544 p_lookup_type => 'XLA_OWNER_TYPE'
4545 ,p_lookup_code => l_component_type_code
4546 )
4547 ,p_token_4 => 'PRODUCT_NAME'
4548 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
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
4555 IF (C_LEVEL_ERROR>= g_log_level) THEN
4556 trace
4557 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4558 ,p_level => C_LEVEL_ERROR
4559 ,p_module => l_log_module);
4560 END IF;
4561 END IF;
4562 END IF;
4563 --
4564 --
4565 ------------------------------------------------------------------------------------------------
4566 -- 4219869 Business Flow
4567 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4568 -- Prior Entry. Currently, the following code is always generated.
4569 ------------------------------------------------------------------------------------------------
4570 XLA_AE_LINES_PKG.ValidateCurrentLine;
4571
4572 ------------------------------------------------------------------------------------
4573 -- 4219869 Business Flow
4574 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4575 ------------------------------------------------------------------------------------
4576 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4577
4578 ----------------------------------------------------------------------------------
4579 -- 4219869 Business Flow
4580 -- Update journal entry status -- Need to generate this within IF <condition>
4581 ----------------------------------------------------------------------------------
4582 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4583 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4584 ,p_balance_type_code => l_balance_type_code
4585 );
4586
4587 -------------------------------------------------------------------------------------------
4588 -- 4262811 - Generate the Accrual Reversal lines
4589 -------------------------------------------------------------------------------------------
4590 BEGIN
4591 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4592 (g_array_event(p_event_id).array_value_num('header_index'));
4593 IF l_acc_rev_flag IS NULL THEN
4594 l_acc_rev_flag := 'N';
4595 END IF;
4596 EXCEPTION
4597 WHEN OTHERS THEN
4598 l_acc_rev_flag := 'N';
4599 END;
4600 --
4601 IF (l_acc_rev_flag = 'Y') THEN
4602
4603 -- 4645092 ------------------------------------------------------------------------------
4604 -- To allow MPA report to determine if it should generate report process
4605 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4606 ------------------------------------------------------------------------------------------
4607
4608 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4609 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4610 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
4611 -- call ADRs
4612 -- Bug 4922099
4613 --
4614 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4615 (NVL(l_actual_upg_option, 'N') = 'O') OR
4616 (NVL(l_enc_upg_option, 'N') = 'O')
4617 )
4618 THEN
4619 NULL;
4620 --
4621 --
4622
4623 l_ccid := AcctDerRule_3(
4624 p_application_id => p_application_id
4625 , p_ae_header_id => l_ae_header_id
4626 , p_source_2 => p_source_2
4627 , x_transaction_coa_id => l_adr_transaction_coa_id
4628 , x_accounting_coa_id => l_adr_accounting_coa_id
4629 , x_value_type_code => l_adr_value_type_code
4630 , p_side => 'NA'
4631 );
4632
4633 xla_ae_lines_pkg.set_ccid(
4634 p_code_combination_id => l_ccid
4635 , p_value_type_code => l_adr_value_type_code
4636 , p_transaction_coa_id => l_adr_transaction_coa_id
4637 , p_accounting_coa_id => l_adr_accounting_coa_id
4638 , p_adr_code => 'AP_INVOICE_DIST'
4639 , p_adr_type_code => 'S'
4640 , p_component_type => l_component_type
4641 , p_component_code => l_component_code
4645 , p_side => 'NA'
4642 , p_component_type_code => l_component_type_code
4643 , p_component_appl_id => l_component_appl_id
4644 , p_amb_context_code => l_amb_context_code
4646 );
4647
4648
4649 l_segment := AcctDerRule_5(
4650 p_application_id => p_application_id
4651 , p_ae_header_id => l_ae_header_id
4652 , p_source_3 => p_source_3
4653 , x_transaction_coa_id => l_adr_transaction_coa_id
4654 , x_accounting_coa_id => l_adr_accounting_coa_id
4655 , x_flexfield_segment_code => l_adr_flexfield_segment_code
4656 , x_flex_value_set_id => l_adr_flex_value_set_id
4657 , x_value_type_code => l_adr_value_type_code
4658 , x_value_combination_id => l_adr_value_combination_id
4659 , x_value_segment_code => l_adr_value_segment_code
4660 , p_side => 'NA'
4661 , p_override_seg_flag => 'Y'
4662 );
4663
4664 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
4665
4666 xla_ae_lines_pkg.set_segment(
4667 p_to_segment_code => 'GL_ACCOUNT'
4668 , p_segment_value => l_segment
4669 , p_from_segment_code => l_adr_value_segment_code
4670 , p_from_combination_id => l_adr_value_combination_id
4671 , p_value_type_code => l_adr_value_type_code
4672 , p_transaction_coa_id => l_adr_transaction_coa_id
4673 , p_accounting_coa_id => l_adr_accounting_coa_id
4674 , p_flexfield_segment_code => l_adr_flexfield_segment_code
4675 , p_flex_value_set_id => l_adr_flex_value_set_id
4676 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
4677 , p_adr_type_code => 'S'
4678 , p_component_type => l_component_type
4679 , p_component_code => l_component_code
4680 , p_component_type_code => l_component_type_code
4681 , p_component_appl_id => l_component_appl_id
4682 , p_amb_context_code => l_amb_context_code
4683 , p_entity_code => 'AP_INVOICES'
4684 , p_event_class_code => 'CREDIT MEMOS'
4685 , p_side => 'NA'
4686 );
4687
4688 END IF;
4689
4690 --
4691 --
4692 END IF;
4693
4694 --
4695 -- Update the line information that should be overwritten
4696 --
4697 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4698 p_header_num => 1);
4699 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4700
4701 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4702
4703 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4704 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4705 END IF;
4706
4707 --
4708 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4709 --
4710 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4711 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4712 ELSE
4713 ---------------------------------------------------------------------------------------------------
4714 -- 4262811a Switch Sign
4715 ---------------------------------------------------------------------------------------------------
4716 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4717 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4719 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4720 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4721 -- 5132302
4722 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4723 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4724
4725 END IF;
4726
4727 -- 4955764
4728 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4729 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4730
4731
4732 XLA_AE_LINES_PKG.ValidateCurrentLine;
4733 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4734
4735 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4736 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4737 ,p_balance_type_code => l_balance_type_code);
4738
4739 END IF;
4740
4741 -----------------------------------------------------------------------------------------
4742 -- 4262811 Multiperiod Accounting
4743 -----------------------------------------------------------------------------------------
4744 -- No MPA option is assigned.
4745
4746
4747 END IF;
4748 END IF;
4749 --
4750
4751 --
4752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4753 trace
4754 (p_msg => 'END of AcctLineType_19'
4755 ,p_level => C_LEVEL_PROCEDURE
4756 ,p_module => l_log_module);
4757 END IF;
4758 --
4759 EXCEPTION
4760 WHEN xla_exceptions_pkg.application_exception THEN
4761 RAISE;
4762 WHEN OTHERS THEN
4763 xla_exceptions_pkg.raise_message
4764 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_19');
4765 END AcctLineType_19;
4766 --
4767
4768 ---------------------------------------
4769 --
4770 -- PRIVATE FUNCTION
4771 -- AcctLineType_20
4772 --
4773 ---------------------------------------
4774 PROCEDURE AcctLineType_20 (
4775 p_application_id IN NUMBER
4776 ,p_event_id IN NUMBER
4777 ,p_calculate_acctd_flag IN VARCHAR2
4778 ,p_calculate_g_l_flag IN VARCHAR2
4779 ,p_actual_flag IN OUT VARCHAR2
4780 ,p_balance_type_code OUT VARCHAR2
4781 ,p_gain_or_loss_ref OUT VARCHAR2
4782
4783 --Invoice Distribution Description
4784 , p_source_1 IN VARCHAR2
4785 --Invoice Distribution Account
4786 , p_source_2 IN NUMBER
4787 --Invoice Distribution Type
4788 , p_source_8 IN VARCHAR2
4789 , p_source_8_meaning IN VARCHAR2
4790 --Federal Prior Year Flag
4791 , p_source_9 IN VARCHAR2
4792 --Accrue on Receipt Option
4793 , p_source_11 IN VARCHAR2
4794 , p_source_11_meaning IN VARCHAR2
4795 --Purchase Order Distribution Identifier
4796 , p_source_12 IN NUMBER
4797 --Invoice Type
4798 , p_source_13 IN VARCHAR2
4799 , p_source_13_meaning IN VARCHAR2
4800 --Federal Adjustment Type
4801 , p_source_14 IN VARCHAR2
4802 --Accounting Reversal Indicator
4803 , p_source_15 IN VARCHAR2
4804 --Distribution Link Type
4805 , p_source_17 IN VARCHAR2
4806 --Allocation to Main Distribution Identifier
4807 , p_source_19 IN NUMBER
4808 --Invoice Identifier
4809 , p_source_20 IN NUMBER
4810 --Business Flow Accounts Payable Application Identifier
4811 , p_source_21 IN NUMBER
4812 --Business Flow Invoice Distribution Type
4813 , p_source_22 IN VARCHAR2
4814 --Business Flow Invoice Entity Code
4815 , p_source_23 IN VARCHAR2
4816 --Business Flow Invoice Distribution Identifier
4817 , p_source_24 IN NUMBER
4818 --Business Flow Invoice Identifier
4819 , p_source_25 IN NUMBER
4820 --Invoice Distribution Identifier
4821 , p_source_26 IN NUMBER
4822 --Payables Encumbrance Upgrade Credit Account
4823 , p_source_27 IN NUMBER
4824 --Payables Encumbrance Upgrade Credit Amount
4825 , p_source_28 IN NUMBER
4826 --Invoice Currency Code
4827 , p_source_29 IN VARCHAR2
4828 --Payables Encumbrance Upgrade Credit Base Amount
4829 , p_source_30 IN NUMBER
4830 --Payables Encumbrance Upgrade Debit Account
4831 , p_source_31 IN NUMBER
4832 --Payables Encumbrance Upgrade Debit Amount
4833 , p_source_32 IN NUMBER
4834 --Payables Encumbrance Upgrade Debit Base Amount
4835 , p_source_33 IN NUMBER
4836 --Payables Encumbrance Upgrade Option
4837 , p_source_34 IN VARCHAR2
4838 --Invoice Exchange Date
4839 , p_source_36 IN DATE
4840 --Invoice Exchange Rate
4841 , p_source_37 IN NUMBER
4842 --Invoice Exchange Rate Type
4843 , p_source_38 IN VARCHAR2
4844 --Deferred Accounting End Date
4845 , p_source_39 IN DATE
4846 --Deferred Accounting Option
4847 , p_source_40 IN VARCHAR2
4848 --Deferred Accounting Start Date
4849 , p_source_41 IN DATE
4850 --Override Accounted Amount Indicator
4851 , p_source_42 IN VARCHAR2
4852 , p_source_42_meaning IN VARCHAR2
4853 --Invoice Supplier Identifier
4854 , p_source_43 IN NUMBER
4855 --Invoice Supplier Site Identifier
4856 , p_source_44 IN NUMBER
4857 --Third Party Type
4858 , p_source_45 IN VARCHAR2
4859 --Parent Reversal Identifier
4860 , p_source_46 IN NUMBER
4861 --Invoice Distribution Statistical Amount
4862 , p_source_47 IN NUMBER
4863 --Invoice Distribution Tax Line Identifier
4864 , p_source_48 IN NUMBER
4865 --Invoice Distribution Tax Distribution Identifier from Tax
4866 , p_source_49 IN NUMBER
4867 --Invoice Distribution Summary Tax Line Identifier
4868 , p_source_50 IN NUMBER
4869 --Payables Upgrade Credit Encumbrance Type Identifier
4870 , p_source_51 IN NUMBER
4871 --Payables Upgrade Debit Encumbrance Type Identifier
4872 , p_source_52 IN NUMBER
4873 --Invoice Distribution Amount
4874 , p_source_55 IN NUMBER
4875 --Invoice Distribution Ledger Amount
4876 , p_source_56 IN NUMBER
4877 )
4878 IS
4879
4880 l_component_type VARCHAR2(80);
4881 l_component_code VARCHAR2(30);
4882 l_component_type_code VARCHAR2(1);
4883 l_component_appl_id INTEGER;
4884 l_amb_context_code VARCHAR2(30);
4885 l_entity_code VARCHAR2(30);
4886 l_event_class_code VARCHAR2(30);
4887 l_ae_header_id NUMBER;
4888 l_event_type_code VARCHAR2(30);
4889 l_line_definition_code VARCHAR2(30);
4890 l_line_definition_owner_code VARCHAR2(1);
4891 --
4892 -- adr variables
4893 l_segment VARCHAR2(30);
4894 l_ccid NUMBER;
4895 l_adr_transaction_coa_id NUMBER;
4896 l_adr_accounting_coa_id NUMBER;
4897 l_adr_flexfield_segment_code VARCHAR2(30);
4898 l_adr_flex_value_set_id NUMBER;
4899 l_adr_value_type_code VARCHAR2(30);
4900 l_adr_value_combination_id NUMBER;
4901 l_adr_value_segment_code VARCHAR2(30);
4902
4903 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4904 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4905 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4906 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4907
4908 -- 4262811 Variables ------------------------------------------------------------------------------------------
4909 l_entered_amt_idx NUMBER;
4910 l_accted_amt_idx NUMBER;
4911 l_acc_rev_flag VARCHAR2(1);
4912 l_accrual_line_num NUMBER;
4913 l_tmp_amt NUMBER;
4914 l_acc_rev_natural_side_code VARCHAR2(1);
4915
4916 l_num_entries NUMBER;
4917 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4918 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4919 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4920 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4921 l_recog_line_1 NUMBER;
4922 l_recog_line_2 NUMBER;
4923
4924 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4925 l_bflow_applied_to_amt NUMBER; -- 5132302
4926 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4927
4928 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4929
4930 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4931 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4932
4933 ---------------------------------------------------------------------------------------------------------------
4934
4935
4936 --
4937 -- bulk performance
4938 --
4939 l_balance_type_code VARCHAR2(1);
4940 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4941 l_log_module VARCHAR2(240);
4942
4943 --
4944 -- Upgrade strategy
4945 --
4946 l_actual_upg_option VARCHAR2(1);
4947 l_enc_upg_option VARCHAR2(1);
4948
4949 --
4950 BEGIN
4951 --
4952 IF g_log_enabled THEN
4953 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
4954 END IF;
4955 --
4956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4957
4958 trace
4959 (p_msg => 'BEGIN of AcctLineType_20'
4960 ,p_level => C_LEVEL_PROCEDURE
4961 ,p_module => l_log_module);
4962
4963 END IF;
4964 --
4965 l_component_type := 'AMB_JLT';
4966 l_component_code := 'FV_AP_CM_ UPWARD_PYA_CR';
4967 l_component_type_code := 'S';
4968 l_component_appl_id := 200;
4969 l_amb_context_code := 'DEFAULT';
4970 l_entity_code := 'AP_INVOICES';
4971 l_event_class_code := 'CREDIT MEMOS';
4972 l_event_type_code := 'CREDIT MEMOS_ALL';
4973 l_line_definition_owner_code := 'S';
4974 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
4975 --
4976 l_balance_type_code := 'A';
4977 l_segment := NULL;
4978 l_ccid := NULL;
4979 l_adr_transaction_coa_id := NULL;
4980 l_adr_accounting_coa_id := NULL;
4981 l_adr_flexfield_segment_code := NULL;
4982 l_adr_flex_value_set_id := NULL;
4983 l_adr_value_type_code := NULL;
4984 l_adr_value_combination_id := NULL;
4985 l_adr_value_segment_code := NULL;
4986
4987 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4988 l_bflow_class_code := ''; -- 4219869 Business Flow
4989 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4990 l_budgetary_control_flag := 'Y';
4991
4992 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4993 l_bflow_applied_to_amt := NULL; -- 5132302
4994 l_entered_amt_idx := NULL; -- 4262811
4995 l_accted_amt_idx := NULL; -- 4262811
4996 l_acc_rev_flag := NULL; -- 4262811
4997 l_accrual_line_num := NULL; -- 4262811
4998 l_tmp_amt := NULL; -- 4262811
4999 --
5000
5001 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5002 l_balance_type_code <> 'B' THEN
5003 IF NVL(p_source_13,'
5004 ') = 'CREDIT' AND
5005 NVL(p_source_9,'
5006 ') = 'Y' AND
5007 (NVL(p_source_8,'
5008 ') = 'ITEM' OR
5009 NVL(p_source_8,'
5010 ') = 'ACCRUAL' OR
5011 NVL(p_source_8,'
5012 ') = 'MISCELLANEOUS' OR
5013 NVL(p_source_8,'
5014 ') = 'FREIGHT' OR
5015 NVL(p_source_8,'
5016 ') = 'IPV') AND
5017 NVL(p_source_14,'
5018 ') = 'Upward'
5019 THEN
5020
5021 --
5022 XLA_AE_LINES_PKG.SetNewLine;
5023
5024 p_balance_type_code := l_balance_type_code;
5025 -- set the flag so later we will know whether the gain loss line needs to be created
5026
5027 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5028 p_actual_flag :='A';
5029 END IF;
5030
5031 --
5032 -- bulk performance
5033 --
5034 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5035 p_header_num => 0); -- 4262811
5036 --
5037 -- set accounting line options
5038 --
5039 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5040 p_natural_side_code => 'D'
5041 , p_gain_or_loss_flag => 'N'
5042 , p_gl_transfer_mode_code => 'S'
5043 , p_acct_entry_type_code => 'A'
5044 , p_switch_side_flag => 'N'
5045 , p_merge_duplicate_code => 'N'
5046 );
5047 --
5048 l_acc_rev_natural_side_code := 'C'; -- 4262811
5049 --
5050 --
5051 -- set accounting line type info
5052 --
5053 xla_ae_lines_pkg.SetAcctLineType
5054 (p_component_type => l_component_type
5055 ,p_event_type_code => l_event_type_code
5056 ,p_line_definition_owner_code => l_line_definition_owner_code
5057 ,p_line_definition_code => l_line_definition_code
5058 ,p_accounting_line_code => l_component_code
5059 ,p_accounting_line_type_code => l_component_type_code
5060 ,p_accounting_line_appl_id => l_component_appl_id
5061 ,p_amb_context_code => l_amb_context_code
5062 ,p_entity_code => l_entity_code
5063 ,p_event_class_code => l_event_class_code);
5064 --
5065 -- set accounting class
5066 --
5067 xla_ae_lines_pkg.SetAcctClass(
5068 p_accounting_class_code => 'ACCOUNTSPAYABLE'
5069 , p_ae_header_id => l_ae_header_id
5070 );
5071
5072 --
5073 -- set rounding class
5074 --
5075 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5076 'ACCOUNTSPAYABLE';
5077
5078 --
5079 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5080 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5081 --
5082 -- bulk performance
5083 --
5084 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5085
5086 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5087 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5088
5089 -- 4955764
5090 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5091 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5092
5093 -- 4458381 Public Sector Enh
5094
5095 --
5096 -- set accounting attributes for the line type
5097 --
5098 l_entered_amt_idx := 23;
5099 l_accted_amt_idx := 28;
5100 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5101 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5102 l_rec_acct_attrs.array_char_value(1) := p_source_15;
5103 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5104 l_rec_acct_attrs.array_num_value(2) :=
5105 xla_ae_sources_pkg.GetSystemSourceNum(
5106 p_source_code => 'XLA_EVENT_APPL_ID'
5107 , p_source_type_code => 'Y'
5108 , p_source_application_id => 602
5109 );
5110 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5111 l_rec_acct_attrs.array_char_value(3) := p_source_17;
5112 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5113 l_rec_acct_attrs.array_char_value(4) :=
5114 xla_ae_sources_pkg.GetSystemSourceChar(
5115 p_source_code => 'XLA_ENTITY_CODE'
5116 , p_source_type_code => 'Y'
5117 , p_source_application_id => 602
5118 );
5119 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5120 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
5121 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5122 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
5123 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5124 l_rec_acct_attrs.array_num_value(7) := p_source_21;
5125 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5126 l_rec_acct_attrs.array_char_value(8) := p_source_22;
5127 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5128 l_rec_acct_attrs.array_char_value(9) := p_source_23;
5129 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5130 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
5131 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5132 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
5133 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5134 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
5135 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5136 l_rec_acct_attrs.array_char_value(13) := p_source_17;
5137 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5138 l_rec_acct_attrs.array_num_value(14) := p_source_27;
5139 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5140 l_rec_acct_attrs.array_num_value(15) := p_source_28;
5141 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5142 l_rec_acct_attrs.array_char_value(16) := p_source_29;
5143 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5144 l_rec_acct_attrs.array_num_value(17) := p_source_30;
5145 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5146 l_rec_acct_attrs.array_num_value(18) := p_source_31;
5147 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5148 l_rec_acct_attrs.array_num_value(19) := p_source_32;
5149 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5150 l_rec_acct_attrs.array_char_value(20) := p_source_29;
5151 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5152 l_rec_acct_attrs.array_num_value(21) := p_source_33;
5153 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5154 l_rec_acct_attrs.array_char_value(22) := p_source_34;
5155 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5156 l_rec_acct_attrs.array_num_value(23) := p_source_55;
5157 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5158 l_rec_acct_attrs.array_char_value(24) := p_source_29;
5159 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
5160 l_rec_acct_attrs.array_date_value(25) := p_source_36;
5161 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
5162 l_rec_acct_attrs.array_num_value(26) := p_source_37;
5163 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
5164 l_rec_acct_attrs.array_char_value(27) := p_source_38;
5165 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
5166 l_rec_acct_attrs.array_num_value(28) := p_source_56;
5167 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
5168 l_rec_acct_attrs.array_date_value(29) := p_source_39;
5169 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
5170 l_rec_acct_attrs.array_char_value(30) := p_source_40;
5171 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
5172 l_rec_acct_attrs.array_date_value(31) := p_source_41;
5173 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
5174 l_rec_acct_attrs.array_char_value(32) := p_source_42;
5175 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
5176 l_rec_acct_attrs.array_num_value(33) := p_source_43;
5177 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
5178 l_rec_acct_attrs.array_num_value(34) := p_source_44;
5179 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
5180 l_rec_acct_attrs.array_char_value(35) := p_source_45;
5181 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
5182 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
5183 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
5184 l_rec_acct_attrs.array_char_value(37) := p_source_17;
5185 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
5186 l_rec_acct_attrs.array_num_value(38) := p_source_47;
5187 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
5188 l_rec_acct_attrs.array_num_value(39) := p_source_48;
5189 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
5190 l_rec_acct_attrs.array_num_value(40) := p_source_49;
5191 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
5192 l_rec_acct_attrs.array_num_value(41) := p_source_50;
5193 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
5194 l_rec_acct_attrs.array_num_value(42) := p_source_51;
5195 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
5196 l_rec_acct_attrs.array_num_value(43) := p_source_52;
5197
5198 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5199 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5200
5201 ---------------------------------------------------------------------------------------------------------------
5202 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5203 ---------------------------------------------------------------------------------------------------------------
5204 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5205
5206 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5207 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5208
5209 IF xla_accounting_cache_pkg.GetValueChar
5210 (p_source_code => 'LEDGER_CATEGORY_CODE'
5211 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5212 AND l_bflow_method_code = 'PRIOR_ENTRY'
5213 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5214 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5215 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5216 )
5217 THEN
5218 xla_ae_lines_pkg.BflowUpgEntry
5219 (p_business_method_code => l_bflow_method_code
5220 ,p_business_class_code => l_bflow_class_code
5221 ,p_balance_type => l_balance_type_code);
5222 ELSE
5223 NULL;
5224 -- No business flow processing for business flow method of NONE.
5225 END IF;
5226
5227 --
5228 -- call analytical criteria
5229 --
5230
5231 --
5232 -- call description
5233 --
5234
5235 xla_ae_lines_pkg.SetLineDescription(
5236 p_ae_header_id => l_ae_header_id
5237 ,p_description => Description_2 (
5238 p_application_id => p_application_id
5239 , p_ae_header_id => l_ae_header_id
5240 , p_source_1 => p_source_1
5241 )
5242 );
5243
5244
5245 --
5246 -- call ADRs
5247 -- Bug 4922099
5248 --
5249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5250 (NVL(l_actual_upg_option, 'N') = 'O') OR
5251 (NVL(l_enc_upg_option, 'N') = 'O')
5252 )
5253 THEN
5254 NULL;
5255 --
5256 --
5257
5258 l_ccid := AcctDerRule_3(
5259 p_application_id => p_application_id
5260 , p_ae_header_id => l_ae_header_id
5261 , p_source_2 => p_source_2
5262 , x_transaction_coa_id => l_adr_transaction_coa_id
5263 , x_accounting_coa_id => l_adr_accounting_coa_id
5264 , x_value_type_code => l_adr_value_type_code
5265 , p_side => 'NA'
5266 );
5267
5268 xla_ae_lines_pkg.set_ccid(
5269 p_code_combination_id => l_ccid
5270 , p_value_type_code => l_adr_value_type_code
5271 , p_transaction_coa_id => l_adr_transaction_coa_id
5272 , p_accounting_coa_id => l_adr_accounting_coa_id
5273 , p_adr_code => 'AP_INVOICE_DIST'
5274 , p_adr_type_code => 'S'
5275 , p_component_type => l_component_type
5276 , p_component_code => l_component_code
5277 , p_component_type_code => l_component_type_code
5278 , p_component_appl_id => l_component_appl_id
5279 , p_amb_context_code => l_amb_context_code
5280 , p_side => 'NA'
5281 );
5282
5283
5284 l_segment := AcctDerRule_14(
5285 p_application_id => p_application_id
5286 , p_ae_header_id => l_ae_header_id
5287 , p_source_11 => p_source_11
5288 , p_source_11_meaning => p_source_11_meaning
5289 , p_source_12 => p_source_12
5290 , x_transaction_coa_id => l_adr_transaction_coa_id
5291 , x_accounting_coa_id => l_adr_accounting_coa_id
5292 , x_flexfield_segment_code => l_adr_flexfield_segment_code
5293 , x_flex_value_set_id => l_adr_flex_value_set_id
5294 , x_value_type_code => l_adr_value_type_code
5295 , x_value_combination_id => l_adr_value_combination_id
5296 , x_value_segment_code => l_adr_value_segment_code
5297 , p_side => 'NA'
5298 , p_override_seg_flag => 'Y'
5299 );
5300
5301 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
5302
5303 xla_ae_lines_pkg.set_segment(
5304 p_to_segment_code => 'GL_ACCOUNT'
5305 , p_segment_value => l_segment
5306 , p_from_segment_code => l_adr_value_segment_code
5307 , p_from_combination_id => l_adr_value_combination_id
5308 , p_value_type_code => l_adr_value_type_code
5309 , p_transaction_coa_id => l_adr_transaction_coa_id
5310 , p_accounting_coa_id => l_adr_accounting_coa_id
5311 , p_flexfield_segment_code => l_adr_flexfield_segment_code
5312 , p_flex_value_set_id => l_adr_flex_value_set_id
5313 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
5314 , p_adr_type_code => 'S'
5315 , p_component_type => l_component_type
5316 , p_component_code => l_component_code
5317 , p_component_type_code => l_component_type_code
5318 , p_component_appl_id => l_component_appl_id
5319 , p_amb_context_code => l_amb_context_code
5320 , p_entity_code => 'AP_INVOICES'
5321 , p_event_class_code => 'CREDIT MEMOS'
5322 , p_side => 'NA'
5323 );
5324
5325 END IF;
5326
5327 --
5328 --
5329 END IF;
5330 --
5331 -- Bug 4922099
5332 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5333 (NVL(l_enc_upg_option, 'N') = 'O')
5334 ) AND
5335 (l_bflow_method_code = 'PRIOR_ENTRY')
5336 )
5337 THEN
5338 IF
5339 --
5340 1 = 2
5341 --
5342 THEN
5343 xla_accounting_err_pkg.build_message
5344 (p_appli_s_name => 'XLA'
5345 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5346 ,p_token_1 => 'LINE_NUMBER'
5347 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5348 ,p_token_2 => 'LINE_TYPE_NAME'
5349 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5350 l_component_type
5351 ,l_component_code
5352 ,l_component_type_code
5353 ,l_component_appl_id
5354 ,l_amb_context_code
5355 ,l_entity_code
5356 ,l_event_class_code
5357 )
5358 ,p_token_3 => 'OWNER'
5359 ,p_value_3 => xla_lookups_pkg.get_meaning(
5360 p_lookup_type => 'XLA_OWNER_TYPE'
5361 ,p_lookup_code => l_component_type_code
5362 )
5363 ,p_token_4 => 'PRODUCT_NAME'
5364 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5365 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5366 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5367 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5368 ,p_ae_header_id => NULL
5369 );
5370
5371 IF (C_LEVEL_ERROR>= g_log_level) THEN
5372 trace
5373 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5374 ,p_level => C_LEVEL_ERROR
5375 ,p_module => l_log_module);
5376 END IF;
5377 END IF;
5378 END IF;
5379 --
5380 --
5381 ------------------------------------------------------------------------------------------------
5382 -- 4219869 Business Flow
5383 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5384 -- Prior Entry. Currently, the following code is always generated.
5385 ------------------------------------------------------------------------------------------------
5386 XLA_AE_LINES_PKG.ValidateCurrentLine;
5387
5388 ------------------------------------------------------------------------------------
5389 -- 4219869 Business Flow
5390 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5391 ------------------------------------------------------------------------------------
5392 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5393
5394 ----------------------------------------------------------------------------------
5395 -- 4219869 Business Flow
5396 -- Update journal entry status -- Need to generate this within IF <condition>
5397 ----------------------------------------------------------------------------------
5398 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5399 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5400 ,p_balance_type_code => l_balance_type_code
5401 );
5402
5403 -------------------------------------------------------------------------------------------
5404 -- 4262811 - Generate the Accrual Reversal lines
5405 -------------------------------------------------------------------------------------------
5406 BEGIN
5407 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5408 (g_array_event(p_event_id).array_value_num('header_index'));
5409 IF l_acc_rev_flag IS NULL THEN
5410 l_acc_rev_flag := 'N';
5411 END IF;
5412 EXCEPTION
5413 WHEN OTHERS THEN
5414 l_acc_rev_flag := 'N';
5415 END;
5416 --
5417 IF (l_acc_rev_flag = 'Y') THEN
5418
5419 -- 4645092 ------------------------------------------------------------------------------
5420 -- To allow MPA report to determine if it should generate report process
5421 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5422 ------------------------------------------------------------------------------------------
5423
5424 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5425 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5426 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5427 -- call ADRs
5428 -- Bug 4922099
5429 --
5430 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5431 (NVL(l_actual_upg_option, 'N') = 'O') OR
5432 (NVL(l_enc_upg_option, 'N') = 'O')
5433 )
5434 THEN
5435 NULL;
5436 --
5437 --
5438
5439 l_ccid := AcctDerRule_3(
5440 p_application_id => p_application_id
5441 , p_ae_header_id => l_ae_header_id
5442 , p_source_2 => p_source_2
5443 , x_transaction_coa_id => l_adr_transaction_coa_id
5444 , x_accounting_coa_id => l_adr_accounting_coa_id
5445 , x_value_type_code => l_adr_value_type_code
5446 , p_side => 'NA'
5447 );
5448
5449 xla_ae_lines_pkg.set_ccid(
5450 p_code_combination_id => l_ccid
5451 , p_value_type_code => l_adr_value_type_code
5452 , p_transaction_coa_id => l_adr_transaction_coa_id
5453 , p_accounting_coa_id => l_adr_accounting_coa_id
5454 , p_adr_code => 'AP_INVOICE_DIST'
5455 , p_adr_type_code => 'S'
5456 , p_component_type => l_component_type
5457 , p_component_code => l_component_code
5458 , p_component_type_code => l_component_type_code
5459 , p_component_appl_id => l_component_appl_id
5460 , p_amb_context_code => l_amb_context_code
5461 , p_side => 'NA'
5462 );
5463
5464
5465 l_segment := AcctDerRule_14(
5466 p_application_id => p_application_id
5467 , p_ae_header_id => l_ae_header_id
5468 , p_source_11 => p_source_11
5469 , p_source_11_meaning => p_source_11_meaning
5470 , p_source_12 => p_source_12
5471 , x_transaction_coa_id => l_adr_transaction_coa_id
5472 , x_accounting_coa_id => l_adr_accounting_coa_id
5473 , x_flexfield_segment_code => l_adr_flexfield_segment_code
5474 , x_flex_value_set_id => l_adr_flex_value_set_id
5475 , x_value_type_code => l_adr_value_type_code
5476 , x_value_combination_id => l_adr_value_combination_id
5477 , x_value_segment_code => l_adr_value_segment_code
5478 , p_side => 'NA'
5479 , p_override_seg_flag => 'Y'
5480 );
5481
5482 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
5483
5484 xla_ae_lines_pkg.set_segment(
5485 p_to_segment_code => 'GL_ACCOUNT'
5486 , p_segment_value => l_segment
5487 , p_from_segment_code => l_adr_value_segment_code
5488 , p_from_combination_id => l_adr_value_combination_id
5489 , p_value_type_code => l_adr_value_type_code
5490 , p_transaction_coa_id => l_adr_transaction_coa_id
5491 , p_accounting_coa_id => l_adr_accounting_coa_id
5492 , p_flexfield_segment_code => l_adr_flexfield_segment_code
5493 , p_flex_value_set_id => l_adr_flex_value_set_id
5494 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
5495 , p_adr_type_code => 'S'
5496 , p_component_type => l_component_type
5497 , p_component_code => l_component_code
5498 , p_component_type_code => l_component_type_code
5499 , p_component_appl_id => l_component_appl_id
5500 , p_amb_context_code => l_amb_context_code
5501 , p_entity_code => 'AP_INVOICES'
5502 , p_event_class_code => 'CREDIT MEMOS'
5503 , p_side => 'NA'
5504 );
5505
5506 END IF;
5507
5508 --
5509 --
5510 END IF;
5511
5512 --
5513 -- Update the line information that should be overwritten
5514 --
5515 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5516 p_header_num => 1);
5517 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5518
5519 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5520
5521 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5522 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5523 END IF;
5524
5525 --
5526 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5527 --
5528 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5529 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5530 ELSE
5531 ---------------------------------------------------------------------------------------------------
5532 -- 4262811a Switch Sign
5533 ---------------------------------------------------------------------------------------------------
5534 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5536 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5537 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5538 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5539 -- 5132302
5540 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5541 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5542
5543 END IF;
5544
5545 -- 4955764
5546 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5547 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5548
5549
5550 XLA_AE_LINES_PKG.ValidateCurrentLine;
5551 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5552
5553 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5554 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5555 ,p_balance_type_code => l_balance_type_code);
5556
5557 END IF;
5558
5559 -----------------------------------------------------------------------------------------
5560 -- 4262811 Multiperiod Accounting
5561 -----------------------------------------------------------------------------------------
5562 -- No MPA option is assigned.
5563
5564
5565 END IF;
5566 END IF;
5567 --
5568
5569 --
5570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5571 trace
5572 (p_msg => 'END of AcctLineType_20'
5573 ,p_level => C_LEVEL_PROCEDURE
5574 ,p_module => l_log_module);
5575 END IF;
5576 --
5577 EXCEPTION
5578 WHEN xla_exceptions_pkg.application_exception THEN
5579 RAISE;
5580 WHEN OTHERS THEN
5581 xla_exceptions_pkg.raise_message
5582 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_20');
5583 END AcctLineType_20;
5584 --
5585
5586 ---------------------------------------
5587 --
5588 -- PRIVATE FUNCTION
5589 -- AcctLineType_21
5590 --
5591 ---------------------------------------
5592 PROCEDURE AcctLineType_21 (
5593 p_application_id IN NUMBER
5594 ,p_event_id IN NUMBER
5595 ,p_calculate_acctd_flag IN VARCHAR2
5596 ,p_calculate_g_l_flag IN VARCHAR2
5597 ,p_actual_flag IN OUT VARCHAR2
5598 ,p_balance_type_code OUT VARCHAR2
5599 ,p_gain_or_loss_ref OUT VARCHAR2
5600
5601 --Invoice Distribution Description
5602 , p_source_1 IN VARCHAR2
5603 --Invoice Distribution Account
5604 , p_source_2 IN NUMBER
5605 --Federal Fund Category
5606 , p_source_4 IN VARCHAR2
5607 --Federal Fund Expired Status
5608 , p_source_5 IN VARCHAR2
5609 --Federal Fund Category Description
5610 , p_source_6 IN VARCHAR2
5611 --Invoice Distribution Type
5612 , p_source_8 IN VARCHAR2
5613 , p_source_8_meaning IN VARCHAR2
5614 --Federal Prior Year Flag
5615 , p_source_9 IN VARCHAR2
5616 --Invoice Type
5617 , p_source_13 IN VARCHAR2
5618 , p_source_13_meaning IN VARCHAR2
5619 --Federal Adjustment Type
5620 , p_source_14 IN VARCHAR2
5621 --Accounting Reversal Indicator
5622 , p_source_15 IN VARCHAR2
5623 --Distribution Link Type
5624 , p_source_17 IN VARCHAR2
5625 --Allocation to Main Distribution Identifier
5626 , p_source_19 IN NUMBER
5627 --Invoice Identifier
5628 , p_source_20 IN NUMBER
5629 --Business Flow Accounts Payable Application Identifier
5630 , p_source_21 IN NUMBER
5631 --Business Flow Invoice Distribution Type
5632 , p_source_22 IN VARCHAR2
5633 --Business Flow Invoice Entity Code
5634 , p_source_23 IN VARCHAR2
5635 --Business Flow Invoice Distribution Identifier
5636 , p_source_24 IN NUMBER
5637 --Business Flow Invoice Identifier
5638 , p_source_25 IN NUMBER
5639 --Invoice Distribution Identifier
5640 , p_source_26 IN NUMBER
5641 --Payables Encumbrance Upgrade Credit Account
5642 , p_source_27 IN NUMBER
5643 --Payables Encumbrance Upgrade Credit Amount
5644 , p_source_28 IN NUMBER
5645 --Invoice Currency Code
5646 , p_source_29 IN VARCHAR2
5647 --Payables Encumbrance Upgrade Credit Base Amount
5648 , p_source_30 IN NUMBER
5649 --Payables Encumbrance Upgrade Debit Account
5650 , p_source_31 IN NUMBER
5651 --Payables Encumbrance Upgrade Debit Amount
5652 , p_source_32 IN NUMBER
5653 --Payables Encumbrance Upgrade Debit Base Amount
5654 , p_source_33 IN NUMBER
5655 --Payables Encumbrance Upgrade Option
5656 , p_source_34 IN VARCHAR2
5657 --Invoice Exchange Date
5658 , p_source_36 IN DATE
5659 --Invoice Exchange Rate
5660 , p_source_37 IN NUMBER
5661 --Invoice Exchange Rate Type
5662 , p_source_38 IN VARCHAR2
5663 --Deferred Accounting End Date
5664 , p_source_39 IN DATE
5665 --Deferred Accounting Option
5666 , p_source_40 IN VARCHAR2
5667 --Deferred Accounting Start Date
5668 , p_source_41 IN DATE
5669 --Override Accounted Amount Indicator
5670 , p_source_42 IN VARCHAR2
5671 , p_source_42_meaning IN VARCHAR2
5672 --Invoice Supplier Identifier
5673 , p_source_43 IN NUMBER
5674 --Invoice Supplier Site Identifier
5675 , p_source_44 IN NUMBER
5676 --Third Party Type
5677 , p_source_45 IN VARCHAR2
5678 --Parent Reversal Identifier
5679 , p_source_46 IN NUMBER
5680 --Invoice Distribution Statistical Amount
5681 , p_source_47 IN NUMBER
5682 --Invoice Distribution Tax Line Identifier
5683 , p_source_48 IN NUMBER
5684 --Invoice Distribution Tax Distribution Identifier from Tax
5685 , p_source_49 IN NUMBER
5686 --Invoice Distribution Summary Tax Line Identifier
5687 , p_source_50 IN NUMBER
5688 --Payables Upgrade Credit Encumbrance Type Identifier
5689 , p_source_51 IN NUMBER
5690 --Payables Upgrade Debit Encumbrance Type Identifier
5691 , p_source_52 IN NUMBER
5692 --Invoice Distribution Amount
5693 , p_source_55 IN NUMBER
5694 --Invoice Distribution Ledger Amount
5695 , p_source_56 IN NUMBER
5696 )
5697 IS
5698
5699 l_component_type VARCHAR2(80);
5700 l_component_code VARCHAR2(30);
5701 l_component_type_code VARCHAR2(1);
5702 l_component_appl_id INTEGER;
5703 l_amb_context_code VARCHAR2(30);
5704 l_entity_code VARCHAR2(30);
5705 l_event_class_code VARCHAR2(30);
5706 l_ae_header_id NUMBER;
5707 l_event_type_code VARCHAR2(30);
5708 l_line_definition_code VARCHAR2(30);
5709 l_line_definition_owner_code VARCHAR2(1);
5710 --
5711 -- adr variables
5712 l_segment VARCHAR2(30);
5713 l_ccid NUMBER;
5714 l_adr_transaction_coa_id NUMBER;
5715 l_adr_accounting_coa_id NUMBER;
5716 l_adr_flexfield_segment_code VARCHAR2(30);
5717 l_adr_flex_value_set_id NUMBER;
5718 l_adr_value_type_code VARCHAR2(30);
5719 l_adr_value_combination_id NUMBER;
5720 l_adr_value_segment_code VARCHAR2(30);
5721
5722 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5723 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5724 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5725 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5726
5727 -- 4262811 Variables ------------------------------------------------------------------------------------------
5728 l_entered_amt_idx NUMBER;
5729 l_accted_amt_idx NUMBER;
5730 l_acc_rev_flag VARCHAR2(1);
5731 l_accrual_line_num NUMBER;
5732 l_tmp_amt NUMBER;
5733 l_acc_rev_natural_side_code VARCHAR2(1);
5734
5735 l_num_entries NUMBER;
5736 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5737 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5738 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5739 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5740 l_recog_line_1 NUMBER;
5741 l_recog_line_2 NUMBER;
5742
5743 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5744 l_bflow_applied_to_amt NUMBER; -- 5132302
5745 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5746
5747 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5748
5749 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5750 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5751
5752 ---------------------------------------------------------------------------------------------------------------
5753
5754
5755 --
5756 -- bulk performance
5757 --
5758 l_balance_type_code VARCHAR2(1);
5759 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5760 l_log_module VARCHAR2(240);
5761
5762 --
5763 -- Upgrade strategy
5764 --
5765 l_actual_upg_option VARCHAR2(1);
5766 l_enc_upg_option VARCHAR2(1);
5767
5768 --
5769 BEGIN
5770 --
5771 IF g_log_enabled THEN
5772 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
5773 END IF;
5774 --
5775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5776
5777 trace
5778 (p_msg => 'BEGIN of AcctLineType_21'
5779 ,p_level => C_LEVEL_PROCEDURE
5780 ,p_module => l_log_module);
5781
5782 END IF;
5783 --
5784 l_component_type := 'AMB_JLT';
5785 l_component_code := 'FV_AP_CM_ UPWARD_PYA_DR';
5786 l_component_type_code := 'S';
5787 l_component_appl_id := 200;
5788 l_amb_context_code := 'DEFAULT';
5789 l_entity_code := 'AP_INVOICES';
5790 l_event_class_code := 'CREDIT MEMOS';
5791 l_event_type_code := 'CREDIT MEMOS_ALL';
5792 l_line_definition_owner_code := 'S';
5793 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
5794 --
5795 l_balance_type_code := 'A';
5796 l_segment := NULL;
5797 l_ccid := NULL;
5798 l_adr_transaction_coa_id := NULL;
5799 l_adr_accounting_coa_id := NULL;
5800 l_adr_flexfield_segment_code := NULL;
5801 l_adr_flex_value_set_id := NULL;
5802 l_adr_value_type_code := NULL;
5803 l_adr_value_combination_id := NULL;
5804 l_adr_value_segment_code := NULL;
5805
5806 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5807 l_bflow_class_code := ''; -- 4219869 Business Flow
5808 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5809 l_budgetary_control_flag := 'Y';
5810
5811 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5812 l_bflow_applied_to_amt := NULL; -- 5132302
5813 l_entered_amt_idx := NULL; -- 4262811
5814 l_accted_amt_idx := NULL; -- 4262811
5815 l_acc_rev_flag := NULL; -- 4262811
5816 l_accrual_line_num := NULL; -- 4262811
5817 l_tmp_amt := NULL; -- 4262811
5818 --
5819
5820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5821 l_balance_type_code <> 'B' THEN
5822 IF NVL(p_source_13,'
5823 ') = 'CREDIT' AND
5824 (NVL(p_source_8,'
5825 ') = 'ITEM' OR
5826 NVL(p_source_8,'
5827 ') = 'ACCRUAL' OR
5828 NVL(p_source_8,'
5829 ') = 'FREIGHT' OR
5830 NVL(p_source_8,'
5831 ') = 'MISCELLANEOUS' OR
5832 NVL(p_source_8,'
5833 ') = 'IPV') AND
5834 NVL(p_source_14,'
5835 ') = 'Upward' AND
5836 NVL(p_source_9,'
5837 ') = 'Y'
5838 THEN
5839
5840 --
5841 XLA_AE_LINES_PKG.SetNewLine;
5842
5843 p_balance_type_code := l_balance_type_code;
5844 -- set the flag so later we will know whether the gain loss line needs to be created
5845
5846 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5847 p_actual_flag :='A';
5848 END IF;
5849
5850 --
5851 -- bulk performance
5852 --
5853 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5854 p_header_num => 0); -- 4262811
5855 --
5856 -- set accounting line options
5857 --
5858 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5859 p_natural_side_code => 'C'
5860 , p_gain_or_loss_flag => 'N'
5861 , p_gl_transfer_mode_code => 'S'
5862 , p_acct_entry_type_code => 'A'
5863 , p_switch_side_flag => 'N'
5864 , p_merge_duplicate_code => 'N'
5865 );
5866 --
5867 l_acc_rev_natural_side_code := 'D'; -- 4262811
5868 --
5869 --
5870 -- set accounting line type info
5871 --
5872 xla_ae_lines_pkg.SetAcctLineType
5873 (p_component_type => l_component_type
5874 ,p_event_type_code => l_event_type_code
5875 ,p_line_definition_owner_code => l_line_definition_owner_code
5876 ,p_line_definition_code => l_line_definition_code
5877 ,p_accounting_line_code => l_component_code
5878 ,p_accounting_line_type_code => l_component_type_code
5879 ,p_accounting_line_appl_id => l_component_appl_id
5880 ,p_amb_context_code => l_amb_context_code
5881 ,p_entity_code => l_entity_code
5882 ,p_event_class_code => l_event_class_code);
5883 --
5884 -- set accounting class
5885 --
5886 xla_ae_lines_pkg.SetAcctClass(
5887 p_accounting_class_code => 'ACCOUNTSPAYABLE'
5888 , p_ae_header_id => l_ae_header_id
5889 );
5890
5891 --
5892 -- set rounding class
5893 --
5894 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5895 'ACCOUNTSPAYABLE';
5896
5897 --
5898 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5899 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5900 --
5901 -- bulk performance
5902 --
5903 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5904
5905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5906 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5907
5908 -- 4955764
5909 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5910 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5911
5912 -- 4458381 Public Sector Enh
5913
5914 --
5915 -- set accounting attributes for the line type
5916 --
5917 l_entered_amt_idx := 23;
5918 l_accted_amt_idx := 28;
5919 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5920 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5921 l_rec_acct_attrs.array_char_value(1) := p_source_15;
5922 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5923 l_rec_acct_attrs.array_num_value(2) :=
5924 xla_ae_sources_pkg.GetSystemSourceNum(
5925 p_source_code => 'XLA_EVENT_APPL_ID'
5926 , p_source_type_code => 'Y'
5927 , p_source_application_id => 602
5928 );
5929 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5930 l_rec_acct_attrs.array_char_value(3) := p_source_17;
5931 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5932 l_rec_acct_attrs.array_char_value(4) :=
5933 xla_ae_sources_pkg.GetSystemSourceChar(
5934 p_source_code => 'XLA_ENTITY_CODE'
5935 , p_source_type_code => 'Y'
5936 , p_source_application_id => 602
5937 );
5938 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5939 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
5940 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5941 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
5942 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5943 l_rec_acct_attrs.array_num_value(7) := p_source_21;
5944 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5945 l_rec_acct_attrs.array_char_value(8) := p_source_22;
5946 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5947 l_rec_acct_attrs.array_char_value(9) := p_source_23;
5948 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5949 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
5950 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5951 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
5952 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5953 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
5954 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5955 l_rec_acct_attrs.array_char_value(13) := p_source_17;
5956 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5957 l_rec_acct_attrs.array_num_value(14) := p_source_27;
5958 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5959 l_rec_acct_attrs.array_num_value(15) := p_source_28;
5960 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5961 l_rec_acct_attrs.array_char_value(16) := p_source_29;
5962 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5963 l_rec_acct_attrs.array_num_value(17) := p_source_30;
5964 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5965 l_rec_acct_attrs.array_num_value(18) := p_source_31;
5966 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5967 l_rec_acct_attrs.array_num_value(19) := p_source_32;
5968 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5969 l_rec_acct_attrs.array_char_value(20) := p_source_29;
5970 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5971 l_rec_acct_attrs.array_num_value(21) := p_source_33;
5972 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5973 l_rec_acct_attrs.array_char_value(22) := p_source_34;
5974 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5975 l_rec_acct_attrs.array_num_value(23) := p_source_55;
5976 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5977 l_rec_acct_attrs.array_char_value(24) := p_source_29;
5978 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
5979 l_rec_acct_attrs.array_date_value(25) := p_source_36;
5980 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
5981 l_rec_acct_attrs.array_num_value(26) := p_source_37;
5982 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
5983 l_rec_acct_attrs.array_char_value(27) := p_source_38;
5984 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
5985 l_rec_acct_attrs.array_num_value(28) := p_source_56;
5986 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
5987 l_rec_acct_attrs.array_date_value(29) := p_source_39;
5988 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
5989 l_rec_acct_attrs.array_char_value(30) := p_source_40;
5990 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
5991 l_rec_acct_attrs.array_date_value(31) := p_source_41;
5992 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
5993 l_rec_acct_attrs.array_char_value(32) := p_source_42;
5994 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
5995 l_rec_acct_attrs.array_num_value(33) := p_source_43;
5996 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
5997 l_rec_acct_attrs.array_num_value(34) := p_source_44;
5998 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
5999 l_rec_acct_attrs.array_char_value(35) := p_source_45;
6000 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
6001 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
6002 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
6003 l_rec_acct_attrs.array_char_value(37) := p_source_17;
6004 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
6005 l_rec_acct_attrs.array_num_value(38) := p_source_47;
6006 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
6007 l_rec_acct_attrs.array_num_value(39) := p_source_48;
6008 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
6009 l_rec_acct_attrs.array_num_value(40) := p_source_49;
6010 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
6011 l_rec_acct_attrs.array_num_value(41) := p_source_50;
6012 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
6013 l_rec_acct_attrs.array_num_value(42) := p_source_51;
6014 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
6015 l_rec_acct_attrs.array_num_value(43) := p_source_52;
6016
6017 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6018 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6019
6020 ---------------------------------------------------------------------------------------------------------------
6021 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6022 ---------------------------------------------------------------------------------------------------------------
6023 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6024
6025 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6026 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6027
6028 IF xla_accounting_cache_pkg.GetValueChar
6029 (p_source_code => 'LEDGER_CATEGORY_CODE'
6030 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6031 AND l_bflow_method_code = 'PRIOR_ENTRY'
6032 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6033 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6034 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6035 )
6036 THEN
6037 xla_ae_lines_pkg.BflowUpgEntry
6038 (p_business_method_code => l_bflow_method_code
6039 ,p_business_class_code => l_bflow_class_code
6040 ,p_balance_type => l_balance_type_code);
6041 ELSE
6042 NULL;
6043 -- No business flow processing for business flow method of NONE.
6044 END IF;
6045
6046 --
6047 -- call analytical criteria
6048 --
6049
6050 --
6051 -- call description
6052 --
6053
6054 xla_ae_lines_pkg.SetLineDescription(
6055 p_ae_header_id => l_ae_header_id
6056 ,p_description => Description_2 (
6057 p_application_id => p_application_id
6058 , p_ae_header_id => l_ae_header_id
6059 , p_source_1 => p_source_1
6060 )
6061 );
6062
6063
6064 --
6065 -- call ADRs
6066 -- Bug 4922099
6067 --
6068 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6069 (NVL(l_actual_upg_option, 'N') = 'O') OR
6070 (NVL(l_enc_upg_option, 'N') = 'O')
6071 )
6072 THEN
6073 NULL;
6074 --
6075 --
6076
6077 l_ccid := AcctDerRule_3(
6078 p_application_id => p_application_id
6079 , p_ae_header_id => l_ae_header_id
6080 , p_source_2 => p_source_2
6081 , x_transaction_coa_id => l_adr_transaction_coa_id
6082 , x_accounting_coa_id => l_adr_accounting_coa_id
6083 , x_value_type_code => l_adr_value_type_code
6084 , p_side => 'NA'
6085 );
6086
6087 xla_ae_lines_pkg.set_ccid(
6088 p_code_combination_id => l_ccid
6089 , p_value_type_code => l_adr_value_type_code
6090 , p_transaction_coa_id => l_adr_transaction_coa_id
6091 , p_accounting_coa_id => l_adr_accounting_coa_id
6092 , p_adr_code => 'AP_INVOICE_DIST'
6093 , p_adr_type_code => 'S'
6094 , p_component_type => l_component_type
6095 , p_component_code => l_component_code
6096 , p_component_type_code => l_component_type_code
6097 , p_component_appl_id => l_component_appl_id
6098 , p_amb_context_code => l_amb_context_code
6099 , p_side => 'NA'
6100 );
6101
6102
6103 l_segment := AcctDerRule_8(
6104 p_application_id => p_application_id
6105 , p_ae_header_id => l_ae_header_id
6106 , p_source_4 => p_source_4
6107 , p_source_5 => p_source_5
6108 , p_source_6 => p_source_6
6109 , x_transaction_coa_id => l_adr_transaction_coa_id
6110 , x_accounting_coa_id => l_adr_accounting_coa_id
6111 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6112 , x_flex_value_set_id => l_adr_flex_value_set_id
6113 , x_value_type_code => l_adr_value_type_code
6114 , x_value_combination_id => l_adr_value_combination_id
6115 , x_value_segment_code => l_adr_value_segment_code
6116 , p_side => 'NA'
6117 , p_override_seg_flag => 'Y'
6118 );
6119
6120 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6121
6122 xla_ae_lines_pkg.set_segment(
6123 p_to_segment_code => 'GL_ACCOUNT'
6124 , p_segment_value => l_segment
6125 , p_from_segment_code => l_adr_value_segment_code
6126 , p_from_combination_id => l_adr_value_combination_id
6127 , p_value_type_code => l_adr_value_type_code
6128 , p_transaction_coa_id => l_adr_transaction_coa_id
6129 , p_accounting_coa_id => l_adr_accounting_coa_id
6130 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6131 , p_flex_value_set_id => l_adr_flex_value_set_id
6132 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
6133 , p_adr_type_code => 'S'
6134 , p_component_type => l_component_type
6135 , p_component_code => l_component_code
6136 , p_component_type_code => l_component_type_code
6137 , p_component_appl_id => l_component_appl_id
6138 , p_amb_context_code => l_amb_context_code
6139 , p_entity_code => 'AP_INVOICES'
6140 , p_event_class_code => 'CREDIT MEMOS'
6141 , p_side => 'NA'
6142 );
6143
6144 END IF;
6145
6146 --
6147 --
6148 END IF;
6149 --
6150 -- Bug 4922099
6151 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6152 (NVL(l_enc_upg_option, 'N') = 'O')
6153 ) AND
6154 (l_bflow_method_code = 'PRIOR_ENTRY')
6155 )
6156 THEN
6157 IF
6158 --
6159 1 = 2
6160 --
6161 THEN
6162 xla_accounting_err_pkg.build_message
6163 (p_appli_s_name => 'XLA'
6164 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6165 ,p_token_1 => 'LINE_NUMBER'
6166 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6167 ,p_token_2 => 'LINE_TYPE_NAME'
6168 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6169 l_component_type
6170 ,l_component_code
6171 ,l_component_type_code
6172 ,l_component_appl_id
6173 ,l_amb_context_code
6174 ,l_entity_code
6175 ,l_event_class_code
6176 )
6177 ,p_token_3 => 'OWNER'
6178 ,p_value_3 => xla_lookups_pkg.get_meaning(
6179 p_lookup_type => 'XLA_OWNER_TYPE'
6180 ,p_lookup_code => l_component_type_code
6181 )
6182 ,p_token_4 => 'PRODUCT_NAME'
6183 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6184 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6185 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6186 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6187 ,p_ae_header_id => NULL
6188 );
6189
6190 IF (C_LEVEL_ERROR>= g_log_level) THEN
6191 trace
6192 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6193 ,p_level => C_LEVEL_ERROR
6194 ,p_module => l_log_module);
6195 END IF;
6196 END IF;
6197 END IF;
6198 --
6199 --
6200 ------------------------------------------------------------------------------------------------
6201 -- 4219869 Business Flow
6202 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6203 -- Prior Entry. Currently, the following code is always generated.
6204 ------------------------------------------------------------------------------------------------
6205 XLA_AE_LINES_PKG.ValidateCurrentLine;
6206
6207 ------------------------------------------------------------------------------------
6208 -- 4219869 Business Flow
6209 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6210 ------------------------------------------------------------------------------------
6211 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6212
6213 ----------------------------------------------------------------------------------
6214 -- 4219869 Business Flow
6215 -- Update journal entry status -- Need to generate this within IF <condition>
6216 ----------------------------------------------------------------------------------
6217 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6218 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6219 ,p_balance_type_code => l_balance_type_code
6220 );
6221
6222 -------------------------------------------------------------------------------------------
6223 -- 4262811 - Generate the Accrual Reversal lines
6224 -------------------------------------------------------------------------------------------
6225 BEGIN
6226 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6227 (g_array_event(p_event_id).array_value_num('header_index'));
6228 IF l_acc_rev_flag IS NULL THEN
6229 l_acc_rev_flag := 'N';
6230 END IF;
6231 EXCEPTION
6232 WHEN OTHERS THEN
6233 l_acc_rev_flag := 'N';
6234 END;
6235 --
6236 IF (l_acc_rev_flag = 'Y') THEN
6237
6238 -- 4645092 ------------------------------------------------------------------------------
6239 -- To allow MPA report to determine if it should generate report process
6240 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6241 ------------------------------------------------------------------------------------------
6242
6243 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6244 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6245 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6246 -- call ADRs
6247 -- Bug 4922099
6248 --
6249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6250 (NVL(l_actual_upg_option, 'N') = 'O') OR
6251 (NVL(l_enc_upg_option, 'N') = 'O')
6252 )
6253 THEN
6254 NULL;
6255 --
6256 --
6257
6258 l_ccid := AcctDerRule_3(
6259 p_application_id => p_application_id
6260 , p_ae_header_id => l_ae_header_id
6261 , p_source_2 => p_source_2
6262 , x_transaction_coa_id => l_adr_transaction_coa_id
6263 , x_accounting_coa_id => l_adr_accounting_coa_id
6264 , x_value_type_code => l_adr_value_type_code
6265 , p_side => 'NA'
6266 );
6267
6268 xla_ae_lines_pkg.set_ccid(
6269 p_code_combination_id => l_ccid
6270 , p_value_type_code => l_adr_value_type_code
6271 , p_transaction_coa_id => l_adr_transaction_coa_id
6272 , p_accounting_coa_id => l_adr_accounting_coa_id
6273 , p_adr_code => 'AP_INVOICE_DIST'
6274 , p_adr_type_code => 'S'
6275 , p_component_type => l_component_type
6276 , p_component_code => l_component_code
6277 , p_component_type_code => l_component_type_code
6278 , p_component_appl_id => l_component_appl_id
6279 , p_amb_context_code => l_amb_context_code
6280 , p_side => 'NA'
6281 );
6282
6283
6284 l_segment := AcctDerRule_8(
6285 p_application_id => p_application_id
6286 , p_ae_header_id => l_ae_header_id
6287 , p_source_4 => p_source_4
6288 , p_source_5 => p_source_5
6289 , p_source_6 => p_source_6
6290 , x_transaction_coa_id => l_adr_transaction_coa_id
6291 , x_accounting_coa_id => l_adr_accounting_coa_id
6292 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6293 , x_flex_value_set_id => l_adr_flex_value_set_id
6294 , x_value_type_code => l_adr_value_type_code
6295 , x_value_combination_id => l_adr_value_combination_id
6296 , x_value_segment_code => l_adr_value_segment_code
6297 , p_side => 'NA'
6298 , p_override_seg_flag => 'Y'
6299 );
6300
6301 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6302
6303 xla_ae_lines_pkg.set_segment(
6304 p_to_segment_code => 'GL_ACCOUNT'
6305 , p_segment_value => l_segment
6306 , p_from_segment_code => l_adr_value_segment_code
6307 , p_from_combination_id => l_adr_value_combination_id
6308 , p_value_type_code => l_adr_value_type_code
6309 , p_transaction_coa_id => l_adr_transaction_coa_id
6310 , p_accounting_coa_id => l_adr_accounting_coa_id
6311 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6312 , p_flex_value_set_id => l_adr_flex_value_set_id
6313 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
6314 , p_adr_type_code => 'S'
6315 , p_component_type => l_component_type
6316 , p_component_code => l_component_code
6317 , p_component_type_code => l_component_type_code
6318 , p_component_appl_id => l_component_appl_id
6319 , p_amb_context_code => l_amb_context_code
6320 , p_entity_code => 'AP_INVOICES'
6321 , p_event_class_code => 'CREDIT MEMOS'
6322 , p_side => 'NA'
6323 );
6324
6325 END IF;
6326
6327 --
6328 --
6329 END IF;
6330
6331 --
6332 -- Update the line information that should be overwritten
6333 --
6334 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6335 p_header_num => 1);
6336 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6337
6338 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6339
6340 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6341 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6342 END IF;
6343
6344 --
6345 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6346 --
6347 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6348 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6349 ELSE
6350 ---------------------------------------------------------------------------------------------------
6351 -- 4262811a Switch Sign
6352 ---------------------------------------------------------------------------------------------------
6353 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6354 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6355 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6356 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6357 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6358 -- 5132302
6359 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6360 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6361
6362 END IF;
6363
6364 -- 4955764
6365 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6366 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6367
6368
6369 XLA_AE_LINES_PKG.ValidateCurrentLine;
6370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6371
6372 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6373 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6374 ,p_balance_type_code => l_balance_type_code);
6375
6376 END IF;
6377
6378 -----------------------------------------------------------------------------------------
6379 -- 4262811 Multiperiod Accounting
6380 -----------------------------------------------------------------------------------------
6381 -- No MPA option is assigned.
6382
6383
6384 END IF;
6385 END IF;
6386 --
6387
6388 --
6389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6390 trace
6391 (p_msg => 'END of AcctLineType_21'
6392 ,p_level => C_LEVEL_PROCEDURE
6393 ,p_module => l_log_module);
6394 END IF;
6395 --
6396 EXCEPTION
6397 WHEN xla_exceptions_pkg.application_exception THEN
6398 RAISE;
6399 WHEN OTHERS THEN
6400 xla_exceptions_pkg.raise_message
6401 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_21');
6402 END AcctLineType_21;
6403 --
6404
6405 ---------------------------------------
6406 --
6407 -- PRIVATE FUNCTION
6408 -- AcctLineType_22
6409 --
6410 ---------------------------------------
6411 PROCEDURE AcctLineType_22 (
6412 p_application_id IN NUMBER
6413 ,p_event_id IN NUMBER
6414 ,p_calculate_acctd_flag IN VARCHAR2
6415 ,p_calculate_g_l_flag IN VARCHAR2
6416 ,p_actual_flag IN OUT VARCHAR2
6417 ,p_balance_type_code OUT VARCHAR2
6418 ,p_gain_or_loss_ref OUT VARCHAR2
6419
6420 --Invoice Distribution Description
6421 , p_source_1 IN VARCHAR2
6422 --Invoice Distribution Account
6423 , p_source_2 IN NUMBER
6424 --Federal Fund Category Description
6425 , p_source_6 IN VARCHAR2
6426 --Accounting Reversal Indicator
6427 , p_source_15 IN VARCHAR2
6428 --Distribution Link Type
6429 , p_source_17 IN VARCHAR2
6430 --Allocation to Main Distribution Identifier
6431 , p_source_19 IN NUMBER
6432 --Invoice Identifier
6433 , p_source_20 IN NUMBER
6434 --Business Flow Accounts Payable Application Identifier
6435 , p_source_21 IN NUMBER
6436 --Business Flow Invoice Distribution Type
6437 , p_source_22 IN VARCHAR2
6438 --Business Flow Invoice Entity Code
6439 , p_source_23 IN VARCHAR2
6440 --Business Flow Invoice Distribution Identifier
6441 , p_source_24 IN NUMBER
6442 --Business Flow Invoice Identifier
6443 , p_source_25 IN NUMBER
6444 --Invoice Distribution Identifier
6445 , p_source_26 IN NUMBER
6446 --Payables Encumbrance Upgrade Credit Account
6447 , p_source_27 IN NUMBER
6448 --Payables Encumbrance Upgrade Credit Amount
6449 , p_source_28 IN NUMBER
6450 --Invoice Currency Code
6451 , p_source_29 IN VARCHAR2
6452 --Payables Encumbrance Upgrade Credit Base Amount
6453 , p_source_30 IN NUMBER
6454 --Payables Encumbrance Upgrade Debit Account
6455 , p_source_31 IN NUMBER
6456 --Payables Encumbrance Upgrade Debit Amount
6457 , p_source_32 IN NUMBER
6458 --Payables Encumbrance Upgrade Debit Base Amount
6459 , p_source_33 IN NUMBER
6460 --Payables Encumbrance Upgrade Option
6461 , p_source_34 IN VARCHAR2
6462 --Invoice Exchange Date
6463 , p_source_36 IN DATE
6464 --Invoice Exchange Rate
6465 , p_source_37 IN NUMBER
6466 --Invoice Exchange Rate Type
6467 , p_source_38 IN VARCHAR2
6468 --Deferred Accounting End Date
6469 , p_source_39 IN DATE
6470 --Deferred Accounting Option
6471 , p_source_40 IN VARCHAR2
6472 --Deferred Accounting Start Date
6473 , p_source_41 IN DATE
6474 --Override Accounted Amount Indicator
6475 , p_source_42 IN VARCHAR2
6476 , p_source_42_meaning IN VARCHAR2
6477 --Invoice Supplier Identifier
6478 , p_source_43 IN NUMBER
6479 --Invoice Supplier Site Identifier
6480 , p_source_44 IN NUMBER
6481 --Third Party Type
6482 , p_source_45 IN VARCHAR2
6483 --Parent Reversal Identifier
6484 , p_source_46 IN NUMBER
6485 --Invoice Distribution Statistical Amount
6486 , p_source_47 IN NUMBER
6487 --Invoice Distribution Tax Line Identifier
6488 , p_source_48 IN NUMBER
6489 --Invoice Distribution Tax Distribution Identifier from Tax
6490 , p_source_49 IN NUMBER
6491 --Invoice Distribution Summary Tax Line Identifier
6492 , p_source_50 IN NUMBER
6493 --Payables Upgrade Credit Encumbrance Type Identifier
6494 , p_source_51 IN NUMBER
6495 --Payables Upgrade Debit Encumbrance Type Identifier
6496 , p_source_52 IN NUMBER
6497 --Invoice Distribution Amount
6498 , p_source_55 IN NUMBER
6499 --Invoice Distribution Ledger Amount
6500 , p_source_56 IN NUMBER
6501 )
6502 IS
6503
6504 l_component_type VARCHAR2(80);
6505 l_component_code VARCHAR2(30);
6506 l_component_type_code VARCHAR2(1);
6507 l_component_appl_id INTEGER;
6508 l_amb_context_code VARCHAR2(30);
6509 l_entity_code VARCHAR2(30);
6510 l_event_class_code VARCHAR2(30);
6511 l_ae_header_id NUMBER;
6512 l_event_type_code VARCHAR2(30);
6513 l_line_definition_code VARCHAR2(30);
6514 l_line_definition_owner_code VARCHAR2(1);
6515 --
6516 -- adr variables
6517 l_segment VARCHAR2(30);
6518 l_ccid NUMBER;
6519 l_adr_transaction_coa_id NUMBER;
6520 l_adr_accounting_coa_id NUMBER;
6521 l_adr_flexfield_segment_code VARCHAR2(30);
6522 l_adr_flex_value_set_id NUMBER;
6523 l_adr_value_type_code VARCHAR2(30);
6524 l_adr_value_combination_id NUMBER;
6525 l_adr_value_segment_code VARCHAR2(30);
6526
6527 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6528 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6529 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6530 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6531
6532 -- 4262811 Variables ------------------------------------------------------------------------------------------
6533 l_entered_amt_idx NUMBER;
6534 l_accted_amt_idx NUMBER;
6535 l_acc_rev_flag VARCHAR2(1);
6536 l_accrual_line_num NUMBER;
6537 l_tmp_amt NUMBER;
6538 l_acc_rev_natural_side_code VARCHAR2(1);
6539
6540 l_num_entries NUMBER;
6541 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6542 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6543 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6544 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6545 l_recog_line_1 NUMBER;
6546 l_recog_line_2 NUMBER;
6547
6548 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6549 l_bflow_applied_to_amt NUMBER; -- 5132302
6550 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6551
6552 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6553
6554 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6555 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6556
6557 ---------------------------------------------------------------------------------------------------------------
6558
6559
6560 --
6561 -- bulk performance
6562 --
6563 l_balance_type_code VARCHAR2(1);
6564 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6565 l_log_module VARCHAR2(240);
6566
6567 --
6568 -- Upgrade strategy
6569 --
6570 l_actual_upg_option VARCHAR2(1);
6571 l_enc_upg_option VARCHAR2(1);
6572
6573 --
6574 BEGIN
6575 --
6576 IF g_log_enabled THEN
6577 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
6578 END IF;
6579 --
6580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6581
6582 trace
6583 (p_msg => 'BEGIN of AcctLineType_22'
6584 ,p_level => C_LEVEL_PROCEDURE
6585 ,p_module => l_log_module);
6586
6587 END IF;
6588 --
6589 l_component_type := 'AMB_JLT';
6590 l_component_code := 'FV_AP_CM_DIRECT_FUND_CR';
6591 l_component_type_code := 'S';
6592 l_component_appl_id := 200;
6593 l_amb_context_code := 'DEFAULT';
6594 l_entity_code := 'AP_INVOICES';
6595 l_event_class_code := 'CREDIT MEMOS';
6596 l_event_type_code := 'CREDIT MEMOS_ALL';
6597 l_line_definition_owner_code := 'S';
6598 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
6599 --
6600 l_balance_type_code := 'A';
6601 l_segment := NULL;
6602 l_ccid := NULL;
6603 l_adr_transaction_coa_id := NULL;
6604 l_adr_accounting_coa_id := NULL;
6605 l_adr_flexfield_segment_code := NULL;
6606 l_adr_flex_value_set_id := NULL;
6607 l_adr_value_type_code := NULL;
6608 l_adr_value_combination_id := NULL;
6609 l_adr_value_segment_code := NULL;
6610
6611 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6612 l_bflow_class_code := 'FV_DIRECT_FUND_CR'; -- 4219869 Business Flow
6613 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6614 l_budgetary_control_flag := 'Y';
6615
6616 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6617 l_bflow_applied_to_amt := NULL; -- 5132302
6618 l_entered_amt_idx := NULL; -- 4262811
6619 l_accted_amt_idx := NULL; -- 4262811
6620 l_acc_rev_flag := NULL; -- 4262811
6621 l_accrual_line_num := NULL; -- 4262811
6622 l_tmp_amt := NULL; -- 4262811
6623 --
6624
6625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6626 l_balance_type_code <> 'B' THEN
6627 IF NVL(p_source_6,'
6628 ') = 'Direct' AND
6629 NVL(
6630 xla_ae_sources_pkg.GetSystemSourceChar(
6631 p_source_code => 'XLA_EVENT_TYPE_CODE'
6632 , p_source_type_code => 'Y'
6633 , p_source_application_id => 602
6634 ),'
6635 ') <> 'CREDIT MEMO CANCELLED'
6636 THEN
6637
6638 --
6639 XLA_AE_LINES_PKG.SetNewLine;
6640
6641 p_balance_type_code := l_balance_type_code;
6642 -- set the flag so later we will know whether the gain loss line needs to be created
6643
6644 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6645 p_actual_flag :='A';
6646 END IF;
6647
6648 --
6649 -- bulk performance
6650 --
6651 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6652 p_header_num => 0); -- 4262811
6653 --
6654 -- set accounting line options
6655 --
6656 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6657 p_natural_side_code => 'D'
6658 , p_gain_or_loss_flag => 'N'
6659 , p_gl_transfer_mode_code => 'S'
6660 , p_acct_entry_type_code => 'A'
6661 , p_switch_side_flag => 'N'
6662 , p_merge_duplicate_code => 'N'
6663 );
6664 --
6665 l_acc_rev_natural_side_code := 'C'; -- 4262811
6666 --
6667 --
6668 -- set accounting line type info
6669 --
6670 xla_ae_lines_pkg.SetAcctLineType
6671 (p_component_type => l_component_type
6672 ,p_event_type_code => l_event_type_code
6673 ,p_line_definition_owner_code => l_line_definition_owner_code
6674 ,p_line_definition_code => l_line_definition_code
6675 ,p_accounting_line_code => l_component_code
6676 ,p_accounting_line_type_code => l_component_type_code
6677 ,p_accounting_line_appl_id => l_component_appl_id
6678 ,p_amb_context_code => l_amb_context_code
6679 ,p_entity_code => l_entity_code
6680 ,p_event_class_code => l_event_class_code);
6681 --
6682 -- set accounting class
6683 --
6684 xla_ae_lines_pkg.SetAcctClass(
6685 p_accounting_class_code => 'ACCOUNTSPAYABLE'
6686 , p_ae_header_id => l_ae_header_id
6687 );
6688
6689 --
6690 -- set rounding class
6691 --
6692 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6693 'ACCOUNTSPAYABLE';
6694
6695 --
6696 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6697 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6698 --
6699 -- bulk performance
6700 --
6701 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6702
6703 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6704 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6705
6706 -- 4955764
6707 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6708 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6709
6710 -- 4458381 Public Sector Enh
6711
6712 --
6713 -- set accounting attributes for the line type
6714 --
6718 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6715 l_entered_amt_idx := 23;
6716 l_accted_amt_idx := 28;
6717 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6719 l_rec_acct_attrs.array_char_value(1) := p_source_15;
6720 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6721 l_rec_acct_attrs.array_num_value(2) :=
6722 xla_ae_sources_pkg.GetSystemSourceNum(
6723 p_source_code => 'XLA_EVENT_APPL_ID'
6724 , p_source_type_code => 'Y'
6725 , p_source_application_id => 602
6726 );
6727 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6728 l_rec_acct_attrs.array_char_value(3) := p_source_17;
6729 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6730 l_rec_acct_attrs.array_char_value(4) :=
6731 xla_ae_sources_pkg.GetSystemSourceChar(
6732 p_source_code => 'XLA_ENTITY_CODE'
6733 , p_source_type_code => 'Y'
6734 , p_source_application_id => 602
6735 );
6736 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6737 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
6738 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6739 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
6740 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6741 l_rec_acct_attrs.array_num_value(7) := p_source_21;
6742 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6743 l_rec_acct_attrs.array_char_value(8) := p_source_22;
6744 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6745 l_rec_acct_attrs.array_char_value(9) := p_source_23;
6746 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6747 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
6748 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6749 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
6750 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6751 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
6752 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6753 l_rec_acct_attrs.array_char_value(13) := p_source_17;
6754 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6755 l_rec_acct_attrs.array_num_value(14) := p_source_27;
6756 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6757 l_rec_acct_attrs.array_num_value(15) := p_source_28;
6758 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6759 l_rec_acct_attrs.array_char_value(16) := p_source_29;
6760 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6761 l_rec_acct_attrs.array_num_value(17) := p_source_30;
6762 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6763 l_rec_acct_attrs.array_num_value(18) := p_source_31;
6764 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6765 l_rec_acct_attrs.array_num_value(19) := p_source_32;
6766 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6767 l_rec_acct_attrs.array_char_value(20) := p_source_29;
6768 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6769 l_rec_acct_attrs.array_num_value(21) := p_source_33;
6770 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6771 l_rec_acct_attrs.array_char_value(22) := p_source_34;
6772 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6773 l_rec_acct_attrs.array_num_value(23) := p_source_55;
6774 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6775 l_rec_acct_attrs.array_char_value(24) := p_source_29;
6776 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
6777 l_rec_acct_attrs.array_date_value(25) := p_source_36;
6778 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
6779 l_rec_acct_attrs.array_num_value(26) := p_source_37;
6780 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
6781 l_rec_acct_attrs.array_char_value(27) := p_source_38;
6782 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
6783 l_rec_acct_attrs.array_num_value(28) := p_source_56;
6784 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
6785 l_rec_acct_attrs.array_date_value(29) := p_source_39;
6786 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
6787 l_rec_acct_attrs.array_char_value(30) := p_source_40;
6788 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
6789 l_rec_acct_attrs.array_date_value(31) := p_source_41;
6790 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
6791 l_rec_acct_attrs.array_char_value(32) := p_source_42;
6792 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
6793 l_rec_acct_attrs.array_num_value(33) := p_source_43;
6794 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
6795 l_rec_acct_attrs.array_num_value(34) := p_source_44;
6796 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
6797 l_rec_acct_attrs.array_char_value(35) := p_source_45;
6798 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
6799 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
6800 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
6801 l_rec_acct_attrs.array_char_value(37) := p_source_17;
6802 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
6803 l_rec_acct_attrs.array_num_value(38) := p_source_47;
6804 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
6805 l_rec_acct_attrs.array_num_value(39) := p_source_48;
6806 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
6807 l_rec_acct_attrs.array_num_value(40) := p_source_49;
6808 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
6809 l_rec_acct_attrs.array_num_value(41) := p_source_50;
6810 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
6811 l_rec_acct_attrs.array_num_value(42) := p_source_51;
6812 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
6813 l_rec_acct_attrs.array_num_value(43) := p_source_52;
6814
6815 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6816 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6817
6818 ---------------------------------------------------------------------------------------------------------------
6819 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6820 ---------------------------------------------------------------------------------------------------------------
6821 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6822
6823 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6824 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6825
6826 IF xla_accounting_cache_pkg.GetValueChar
6827 (p_source_code => 'LEDGER_CATEGORY_CODE'
6828 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6829 AND l_bflow_method_code = 'PRIOR_ENTRY'
6830 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6831 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6832 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6833 )
6834 THEN
6835 xla_ae_lines_pkg.BflowUpgEntry
6836 (p_business_method_code => l_bflow_method_code
6837 ,p_business_class_code => l_bflow_class_code
6838 ,p_balance_type => l_balance_type_code);
6839 ELSE
6840 NULL;
6841 -- No business flow processing for business flow method of NONE.
6842 END IF;
6843
6844 --
6845 -- call analytical criteria
6846 --
6847
6848 --
6849 -- call description
6850 --
6851
6852 xla_ae_lines_pkg.SetLineDescription(
6853 p_ae_header_id => l_ae_header_id
6854 ,p_description => Description_2 (
6855 p_application_id => p_application_id
6856 , p_ae_header_id => l_ae_header_id
6857 , p_source_1 => p_source_1
6858 )
6859 );
6860
6861
6862 --
6863 -- call ADRs
6864 -- Bug 4922099
6865 --
6866 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6867 (NVL(l_actual_upg_option, 'N') = 'O') OR
6868 (NVL(l_enc_upg_option, 'N') = 'O')
6869 )
6870 THEN
6871 NULL;
6872 --
6873 --
6874
6875 l_ccid := AcctDerRule_3(
6876 p_application_id => p_application_id
6877 , p_ae_header_id => l_ae_header_id
6878 , p_source_2 => p_source_2
6879 , x_transaction_coa_id => l_adr_transaction_coa_id
6880 , x_accounting_coa_id => l_adr_accounting_coa_id
6881 , x_value_type_code => l_adr_value_type_code
6882 , p_side => 'NA'
6883 );
6884
6885 xla_ae_lines_pkg.set_ccid(
6886 p_code_combination_id => l_ccid
6887 , p_value_type_code => l_adr_value_type_code
6888 , p_transaction_coa_id => l_adr_transaction_coa_id
6889 , p_accounting_coa_id => l_adr_accounting_coa_id
6890 , p_adr_code => 'AP_INVOICE_DIST'
6891 , p_adr_type_code => 'S'
6892 , p_component_type => l_component_type
6893 , p_component_code => l_component_code
6894 , p_component_type_code => l_component_type_code
6895 , p_component_appl_id => l_component_appl_id
6896 , p_amb_context_code => l_amb_context_code
6897 , p_side => 'NA'
6898 );
6899
6900
6901 l_segment := AcctDerRule_4(
6902 p_application_id => p_application_id
6903 , p_ae_header_id => l_ae_header_id
6904 , x_transaction_coa_id => l_adr_transaction_coa_id
6905 , x_accounting_coa_id => l_adr_accounting_coa_id
6906 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6907 , x_flex_value_set_id => l_adr_flex_value_set_id
6908 , x_value_type_code => l_adr_value_type_code
6909 , x_value_combination_id => l_adr_value_combination_id
6910 , x_value_segment_code => l_adr_value_segment_code
6911 , p_side => 'NA'
6912 , p_override_seg_flag => 'Y'
6913 );
6914
6915 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6916
6917 xla_ae_lines_pkg.set_segment(
6918 p_to_segment_code => 'GL_ACCOUNT'
6919 , p_segment_value => l_segment
6920 , p_from_segment_code => l_adr_value_segment_code
6921 , p_from_combination_id => l_adr_value_combination_id
6922 , p_value_type_code => l_adr_value_type_code
6923 , p_transaction_coa_id => l_adr_transaction_coa_id
6924 , p_accounting_coa_id => l_adr_accounting_coa_id
6925 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6926 , p_flex_value_set_id => l_adr_flex_value_set_id
6927 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
6928 , p_adr_type_code => 'S'
6929 , p_component_type => l_component_type
6930 , p_component_code => l_component_code
6931 , p_component_type_code => l_component_type_code
6932 , p_component_appl_id => l_component_appl_id
6933 , p_amb_context_code => l_amb_context_code
6934 , p_entity_code => 'AP_INVOICES'
6935 , p_event_class_code => 'CREDIT MEMOS'
6936 , p_side => 'NA'
6937 );
6938
6939 END IF;
6940
6941 --
6942 --
6943 END IF;
6944 --
6945 -- Bug 4922099
6946 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6947 (NVL(l_enc_upg_option, 'N') = 'O')
6948 ) AND
6949 (l_bflow_method_code = 'PRIOR_ENTRY')
6950 )
6951 THEN
6952 IF
6953 --
6954 1 = 2
6955 --
6956 THEN
6957 xla_accounting_err_pkg.build_message
6958 (p_appli_s_name => 'XLA'
6959 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6960 ,p_token_1 => 'LINE_NUMBER'
6961 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6962 ,p_token_2 => 'LINE_TYPE_NAME'
6963 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6964 l_component_type
6965 ,l_component_code
6966 ,l_component_type_code
6967 ,l_component_appl_id
6968 ,l_amb_context_code
6969 ,l_entity_code
6970 ,l_event_class_code
6971 )
6972 ,p_token_3 => 'OWNER'
6973 ,p_value_3 => xla_lookups_pkg.get_meaning(
6974 p_lookup_type => 'XLA_OWNER_TYPE'
6975 ,p_lookup_code => l_component_type_code
6976 )
6977 ,p_token_4 => 'PRODUCT_NAME'
6978 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6979 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6980 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6981 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6982 ,p_ae_header_id => NULL
6983 );
6984
6985 IF (C_LEVEL_ERROR>= g_log_level) THEN
6986 trace
6987 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6988 ,p_level => C_LEVEL_ERROR
6989 ,p_module => l_log_module);
6990 END IF;
6991 END IF;
6992 END IF;
6993 --
6994 --
6995 ------------------------------------------------------------------------------------------------
6996 -- 4219869 Business Flow
6997 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6998 -- Prior Entry. Currently, the following code is always generated.
6999 ------------------------------------------------------------------------------------------------
7000 XLA_AE_LINES_PKG.ValidateCurrentLine;
7001
7002 ------------------------------------------------------------------------------------
7003 -- 4219869 Business Flow
7004 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7005 ------------------------------------------------------------------------------------
7006 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7007
7008 ----------------------------------------------------------------------------------
7009 -- 4219869 Business Flow
7010 -- Update journal entry status -- Need to generate this within IF <condition>
7011 ----------------------------------------------------------------------------------
7012 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7013 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7014 ,p_balance_type_code => l_balance_type_code
7015 );
7016
7017 -------------------------------------------------------------------------------------------
7018 -- 4262811 - Generate the Accrual Reversal lines
7019 -------------------------------------------------------------------------------------------
7020 BEGIN
7021 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7022 (g_array_event(p_event_id).array_value_num('header_index'));
7023 IF l_acc_rev_flag IS NULL THEN
7024 l_acc_rev_flag := 'N';
7025 END IF;
7026 EXCEPTION
7027 WHEN OTHERS THEN
7028 l_acc_rev_flag := 'N';
7029 END;
7030 --
7031 IF (l_acc_rev_flag = 'Y') THEN
7032
7033 -- 4645092 ------------------------------------------------------------------------------
7037
7034 -- To allow MPA report to determine if it should generate report process
7035 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7036 ------------------------------------------------------------------------------------------
7038 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7039 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7040 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7041 -- call ADRs
7042 -- Bug 4922099
7043 --
7044 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7045 (NVL(l_actual_upg_option, 'N') = 'O') OR
7046 (NVL(l_enc_upg_option, 'N') = 'O')
7047 )
7048 THEN
7049 NULL;
7050 --
7051 --
7052
7053 l_ccid := AcctDerRule_3(
7054 p_application_id => p_application_id
7055 , p_ae_header_id => l_ae_header_id
7056 , p_source_2 => p_source_2
7057 , x_transaction_coa_id => l_adr_transaction_coa_id
7058 , x_accounting_coa_id => l_adr_accounting_coa_id
7059 , x_value_type_code => l_adr_value_type_code
7060 , p_side => 'NA'
7061 );
7062
7063 xla_ae_lines_pkg.set_ccid(
7064 p_code_combination_id => l_ccid
7065 , p_value_type_code => l_adr_value_type_code
7066 , p_transaction_coa_id => l_adr_transaction_coa_id
7067 , p_accounting_coa_id => l_adr_accounting_coa_id
7068 , p_adr_code => 'AP_INVOICE_DIST'
7069 , p_adr_type_code => 'S'
7070 , p_component_type => l_component_type
7071 , p_component_code => l_component_code
7072 , p_component_type_code => l_component_type_code
7073 , p_component_appl_id => l_component_appl_id
7074 , p_amb_context_code => l_amb_context_code
7075 , p_side => 'NA'
7076 );
7077
7078
7079 l_segment := AcctDerRule_4(
7080 p_application_id => p_application_id
7081 , p_ae_header_id => l_ae_header_id
7082 , x_transaction_coa_id => l_adr_transaction_coa_id
7083 , x_accounting_coa_id => l_adr_accounting_coa_id
7084 , x_flexfield_segment_code => l_adr_flexfield_segment_code
7085 , x_flex_value_set_id => l_adr_flex_value_set_id
7086 , x_value_type_code => l_adr_value_type_code
7087 , x_value_combination_id => l_adr_value_combination_id
7088 , x_value_segment_code => l_adr_value_segment_code
7089 , p_side => 'NA'
7090 , p_override_seg_flag => 'Y'
7091 );
7092
7093 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
7094
7095 xla_ae_lines_pkg.set_segment(
7096 p_to_segment_code => 'GL_ACCOUNT'
7097 , p_segment_value => l_segment
7098 , p_from_segment_code => l_adr_value_segment_code
7099 , p_from_combination_id => l_adr_value_combination_id
7100 , p_value_type_code => l_adr_value_type_code
7101 , p_transaction_coa_id => l_adr_transaction_coa_id
7102 , p_accounting_coa_id => l_adr_accounting_coa_id
7103 , p_flexfield_segment_code => l_adr_flexfield_segment_code
7104 , p_flex_value_set_id => l_adr_flex_value_set_id
7105 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
7106 , p_adr_type_code => 'S'
7107 , p_component_type => l_component_type
7108 , p_component_code => l_component_code
7109 , p_component_type_code => l_component_type_code
7110 , p_component_appl_id => l_component_appl_id
7111 , p_amb_context_code => l_amb_context_code
7112 , p_entity_code => 'AP_INVOICES'
7113 , p_event_class_code => 'CREDIT MEMOS'
7114 , p_side => 'NA'
7115 );
7116
7117 END IF;
7118
7119 --
7120 --
7121 END IF;
7122
7123 --
7124 -- Update the line information that should be overwritten
7125 --
7126 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7127 p_header_num => 1);
7128 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7129
7130 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7131
7132 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7133 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7134 END IF;
7135
7136 --
7137 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7138 --
7139 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7140 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7141 ELSE
7142 ---------------------------------------------------------------------------------------------------
7143 -- 4262811a Switch Sign
7144 ---------------------------------------------------------------------------------------------------
7145 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7146 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7147 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7151 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7148 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7149 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7150 -- 5132302
7152 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7153
7154 END IF;
7155
7156 -- 4955764
7157 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7158 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7159
7160
7161 XLA_AE_LINES_PKG.ValidateCurrentLine;
7162 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7163
7164 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7165 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7166 ,p_balance_type_code => l_balance_type_code);
7167
7168 END IF;
7169
7170 -----------------------------------------------------------------------------------------
7171 -- 4262811 Multiperiod Accounting
7172 -----------------------------------------------------------------------------------------
7173 -- No MPA option is assigned.
7174
7175
7176 END IF;
7177 END IF;
7178 --
7179
7180 --
7181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7182 trace
7183 (p_msg => 'END of AcctLineType_22'
7184 ,p_level => C_LEVEL_PROCEDURE
7185 ,p_module => l_log_module);
7186 END IF;
7187 --
7188 EXCEPTION
7189 WHEN xla_exceptions_pkg.application_exception THEN
7190 RAISE;
7191 WHEN OTHERS THEN
7192 xla_exceptions_pkg.raise_message
7193 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_22');
7194 END AcctLineType_22;
7195 --
7196
7197 ---------------------------------------
7198 --
7199 -- PRIVATE FUNCTION
7200 -- AcctLineType_23
7201 --
7202 ---------------------------------------
7203 PROCEDURE AcctLineType_23 (
7204 p_application_id IN NUMBER
7205 ,p_event_id IN NUMBER
7206 ,p_calculate_acctd_flag IN VARCHAR2
7207 ,p_calculate_g_l_flag IN VARCHAR2
7208 ,p_actual_flag IN OUT VARCHAR2
7209 ,p_balance_type_code OUT VARCHAR2
7210 ,p_gain_or_loss_ref OUT VARCHAR2
7211
7212 --Invoice Distribution Description
7213 , p_source_1 IN VARCHAR2
7214 --Invoice Distribution Account
7215 , p_source_2 IN NUMBER
7216 --Federal Fund Category Description
7217 , p_source_6 IN VARCHAR2
7218 --Accounting Reversal Indicator
7219 , p_source_15 IN VARCHAR2
7220 --Distribution Link Type
7221 , p_source_17 IN VARCHAR2
7222 --Allocation to Main Distribution Identifier
7223 , p_source_19 IN NUMBER
7224 --Invoice Identifier
7225 , p_source_20 IN NUMBER
7226 --Business Flow Accounts Payable Application Identifier
7227 , p_source_21 IN NUMBER
7228 --Business Flow Invoice Distribution Type
7229 , p_source_22 IN VARCHAR2
7230 --Business Flow Invoice Entity Code
7231 , p_source_23 IN VARCHAR2
7232 --Business Flow Invoice Distribution Identifier
7233 , p_source_24 IN NUMBER
7234 --Business Flow Invoice Identifier
7235 , p_source_25 IN NUMBER
7236 --Invoice Distribution Identifier
7237 , p_source_26 IN NUMBER
7238 --Payables Encumbrance Upgrade Credit Account
7239 , p_source_27 IN NUMBER
7240 --Payables Encumbrance Upgrade Credit Amount
7241 , p_source_28 IN NUMBER
7242 --Invoice Currency Code
7243 , p_source_29 IN VARCHAR2
7244 --Payables Encumbrance Upgrade Credit Base Amount
7245 , p_source_30 IN NUMBER
7246 --Payables Encumbrance Upgrade Debit Account
7247 , p_source_31 IN NUMBER
7248 --Payables Encumbrance Upgrade Debit Amount
7249 , p_source_32 IN NUMBER
7250 --Payables Encumbrance Upgrade Debit Base Amount
7251 , p_source_33 IN NUMBER
7252 --Payables Encumbrance Upgrade Option
7253 , p_source_34 IN VARCHAR2
7254 --Invoice Exchange Date
7255 , p_source_36 IN DATE
7256 --Invoice Exchange Rate
7257 , p_source_37 IN NUMBER
7258 --Invoice Exchange Rate Type
7259 , p_source_38 IN VARCHAR2
7260 --Deferred Accounting End Date
7261 , p_source_39 IN DATE
7262 --Deferred Accounting Option
7263 , p_source_40 IN VARCHAR2
7264 --Deferred Accounting Start Date
7265 , p_source_41 IN DATE
7266 --Override Accounted Amount Indicator
7267 , p_source_42 IN VARCHAR2
7268 , p_source_42_meaning IN VARCHAR2
7269 --Invoice Supplier Identifier
7270 , p_source_43 IN NUMBER
7271 --Invoice Supplier Site Identifier
7272 , p_source_44 IN NUMBER
7273 --Third Party Type
7274 , p_source_45 IN VARCHAR2
7275 --Parent Reversal Identifier
7276 , p_source_46 IN NUMBER
7277 --Invoice Distribution Statistical Amount
7278 , p_source_47 IN NUMBER
7279 --Invoice Distribution Tax Line Identifier
7280 , p_source_48 IN NUMBER
7281 --Invoice Distribution Tax Distribution Identifier from Tax
7282 , p_source_49 IN NUMBER
7283 --Invoice Distribution Summary Tax Line Identifier
7284 , p_source_50 IN NUMBER
7285 --Payables Upgrade Credit Encumbrance Type Identifier
7286 , p_source_51 IN NUMBER
7290 , p_source_55 IN NUMBER
7287 --Payables Upgrade Debit Encumbrance Type Identifier
7288 , p_source_52 IN NUMBER
7289 --Invoice Distribution Amount
7291 --Invoice Distribution Ledger Amount
7292 , p_source_56 IN NUMBER
7293 )
7294 IS
7295
7296 l_component_type VARCHAR2(80);
7297 l_component_code VARCHAR2(30);
7298 l_component_type_code VARCHAR2(1);
7299 l_component_appl_id INTEGER;
7300 l_amb_context_code VARCHAR2(30);
7301 l_entity_code VARCHAR2(30);
7302 l_event_class_code VARCHAR2(30);
7303 l_ae_header_id NUMBER;
7304 l_event_type_code VARCHAR2(30);
7305 l_line_definition_code VARCHAR2(30);
7306 l_line_definition_owner_code VARCHAR2(1);
7307 --
7308 -- adr variables
7309 l_segment VARCHAR2(30);
7310 l_ccid NUMBER;
7311 l_adr_transaction_coa_id NUMBER;
7312 l_adr_accounting_coa_id NUMBER;
7313 l_adr_flexfield_segment_code VARCHAR2(30);
7314 l_adr_flex_value_set_id NUMBER;
7315 l_adr_value_type_code VARCHAR2(30);
7316 l_adr_value_combination_id NUMBER;
7317 l_adr_value_segment_code VARCHAR2(30);
7318
7319 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7320 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7321 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7322 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7323
7324 -- 4262811 Variables ------------------------------------------------------------------------------------------
7325 l_entered_amt_idx NUMBER;
7326 l_accted_amt_idx NUMBER;
7327 l_acc_rev_flag VARCHAR2(1);
7328 l_accrual_line_num NUMBER;
7329 l_tmp_amt NUMBER;
7330 l_acc_rev_natural_side_code VARCHAR2(1);
7331
7332 l_num_entries NUMBER;
7333 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7334 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7335 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7336 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7337 l_recog_line_1 NUMBER;
7338 l_recog_line_2 NUMBER;
7339
7340 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7341 l_bflow_applied_to_amt NUMBER; -- 5132302
7342 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7343
7344 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7345
7346 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7347 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7348
7349 ---------------------------------------------------------------------------------------------------------------
7350
7351
7352 --
7353 -- bulk performance
7354 --
7355 l_balance_type_code VARCHAR2(1);
7356 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7357 l_log_module VARCHAR2(240);
7358
7359 --
7360 -- Upgrade strategy
7361 --
7362 l_actual_upg_option VARCHAR2(1);
7363 l_enc_upg_option VARCHAR2(1);
7364
7365 --
7366 BEGIN
7367 --
7368 IF g_log_enabled THEN
7369 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
7370 END IF;
7371 --
7372 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7373
7374 trace
7375 (p_msg => 'BEGIN of AcctLineType_23'
7376 ,p_level => C_LEVEL_PROCEDURE
7377 ,p_module => l_log_module);
7378
7379 END IF;
7380 --
7381 l_component_type := 'AMB_JLT';
7382 l_component_code := 'FV_AP_CM_DIRECT_FUND_DR';
7383 l_component_type_code := 'S';
7384 l_component_appl_id := 200;
7385 l_amb_context_code := 'DEFAULT';
7386 l_entity_code := 'AP_INVOICES';
7387 l_event_class_code := 'CREDIT MEMOS';
7388 l_event_type_code := 'CREDIT MEMOS_ALL';
7389 l_line_definition_owner_code := 'S';
7390 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
7391 --
7392 l_balance_type_code := 'A';
7393 l_segment := NULL;
7394 l_ccid := NULL;
7395 l_adr_transaction_coa_id := NULL;
7396 l_adr_accounting_coa_id := NULL;
7397 l_adr_flexfield_segment_code := NULL;
7398 l_adr_flex_value_set_id := NULL;
7399 l_adr_value_type_code := NULL;
7400 l_adr_value_combination_id := NULL;
7401 l_adr_value_segment_code := NULL;
7402
7403 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7404 l_bflow_class_code := 'FV_DIRECT_FUND_DR'; -- 4219869 Business Flow
7405 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7406 l_budgetary_control_flag := 'Y';
7407
7408 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7409 l_bflow_applied_to_amt := NULL; -- 5132302
7410 l_entered_amt_idx := NULL; -- 4262811
7411 l_accted_amt_idx := NULL; -- 4262811
7412 l_acc_rev_flag := NULL; -- 4262811
7413 l_accrual_line_num := NULL; -- 4262811
7414 l_tmp_amt := NULL; -- 4262811
7415 --
7416
7417 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7418 l_balance_type_code <> 'B' THEN
7419 IF NVL(p_source_6,'
7420 ') = 'Direct' AND
7421 NVL(
7422 xla_ae_sources_pkg.GetSystemSourceChar(
7423 p_source_code => 'XLA_EVENT_TYPE_CODE'
7424 , p_source_type_code => 'Y'
7425 , p_source_application_id => 602
7426 ),'
7427 ') <> 'CREDIT MEMO CANCELLED'
7428 THEN
7429
7430 --
7431 XLA_AE_LINES_PKG.SetNewLine;
7432
7433 p_balance_type_code := l_balance_type_code;
7434 -- set the flag so later we will know whether the gain loss line needs to be created
7435
7436 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7437 p_actual_flag :='A';
7438 END IF;
7439
7440 --
7441 -- bulk performance
7442 --
7443 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7444 p_header_num => 0); -- 4262811
7445 --
7446 -- set accounting line options
7447 --
7448 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7449 p_natural_side_code => 'C'
7450 , p_gain_or_loss_flag => 'N'
7451 , p_gl_transfer_mode_code => 'S'
7452 , p_acct_entry_type_code => 'A'
7453 , p_switch_side_flag => 'N'
7454 , p_merge_duplicate_code => 'N'
7455 );
7456 --
7457 l_acc_rev_natural_side_code := 'D'; -- 4262811
7458 --
7459 --
7460 -- set accounting line type info
7461 --
7462 xla_ae_lines_pkg.SetAcctLineType
7463 (p_component_type => l_component_type
7464 ,p_event_type_code => l_event_type_code
7465 ,p_line_definition_owner_code => l_line_definition_owner_code
7466 ,p_line_definition_code => l_line_definition_code
7467 ,p_accounting_line_code => l_component_code
7468 ,p_accounting_line_type_code => l_component_type_code
7469 ,p_accounting_line_appl_id => l_component_appl_id
7470 ,p_amb_context_code => l_amb_context_code
7471 ,p_entity_code => l_entity_code
7472 ,p_event_class_code => l_event_class_code);
7473 --
7474 -- set accounting class
7475 --
7476 xla_ae_lines_pkg.SetAcctClass(
7477 p_accounting_class_code => 'ACCOUNTSPAYABLE'
7478 , p_ae_header_id => l_ae_header_id
7479 );
7480
7481 --
7482 -- set rounding class
7483 --
7484 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7485 'ACCOUNTSPAYABLE';
7486
7487 --
7488 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7489 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7490 --
7491 -- bulk performance
7492 --
7493 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7494
7495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7496 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7497
7498 -- 4955764
7499 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7500 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7501
7502 -- 4458381 Public Sector Enh
7503
7504 --
7505 -- set accounting attributes for the line type
7506 --
7507 l_entered_amt_idx := 23;
7508 l_accted_amt_idx := 28;
7509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7510 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7511 l_rec_acct_attrs.array_char_value(1) := p_source_15;
7512 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7513 l_rec_acct_attrs.array_num_value(2) :=
7514 xla_ae_sources_pkg.GetSystemSourceNum(
7515 p_source_code => 'XLA_EVENT_APPL_ID'
7516 , p_source_type_code => 'Y'
7517 , p_source_application_id => 602
7518 );
7519 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7520 l_rec_acct_attrs.array_char_value(3) := p_source_17;
7521 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7522 l_rec_acct_attrs.array_char_value(4) :=
7523 xla_ae_sources_pkg.GetSystemSourceChar(
7524 p_source_code => 'XLA_ENTITY_CODE'
7525 , p_source_type_code => 'Y'
7526 , p_source_application_id => 602
7527 );
7528 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7529 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
7530 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7531 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
7532 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7533 l_rec_acct_attrs.array_num_value(7) := p_source_21;
7534 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7535 l_rec_acct_attrs.array_char_value(8) := p_source_22;
7536 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7537 l_rec_acct_attrs.array_char_value(9) := p_source_23;
7538 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7539 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
7540 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7541 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
7542 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7543 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
7544 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7545 l_rec_acct_attrs.array_char_value(13) := p_source_17;
7546 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7547 l_rec_acct_attrs.array_num_value(14) := p_source_27;
7548 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7549 l_rec_acct_attrs.array_num_value(15) := p_source_28;
7550 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7551 l_rec_acct_attrs.array_char_value(16) := p_source_29;
7552 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7553 l_rec_acct_attrs.array_num_value(17) := p_source_30;
7554 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7555 l_rec_acct_attrs.array_num_value(18) := p_source_31;
7556 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7557 l_rec_acct_attrs.array_num_value(19) := p_source_32;
7558 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7559 l_rec_acct_attrs.array_char_value(20) := p_source_29;
7560 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7561 l_rec_acct_attrs.array_num_value(21) := p_source_33;
7562 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7563 l_rec_acct_attrs.array_char_value(22) := p_source_34;
7564 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7565 l_rec_acct_attrs.array_num_value(23) := p_source_55;
7566 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7567 l_rec_acct_attrs.array_char_value(24) := p_source_29;
7568 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7569 l_rec_acct_attrs.array_date_value(25) := p_source_36;
7570 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7571 l_rec_acct_attrs.array_num_value(26) := p_source_37;
7572 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7573 l_rec_acct_attrs.array_char_value(27) := p_source_38;
7574 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7575 l_rec_acct_attrs.array_num_value(28) := p_source_56;
7576 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7577 l_rec_acct_attrs.array_date_value(29) := p_source_39;
7578 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7579 l_rec_acct_attrs.array_char_value(30) := p_source_40;
7580 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7581 l_rec_acct_attrs.array_date_value(31) := p_source_41;
7582 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7583 l_rec_acct_attrs.array_char_value(32) := p_source_42;
7584 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7585 l_rec_acct_attrs.array_num_value(33) := p_source_43;
7586 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7587 l_rec_acct_attrs.array_num_value(34) := p_source_44;
7588 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7589 l_rec_acct_attrs.array_char_value(35) := p_source_45;
7590 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7591 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
7592 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7593 l_rec_acct_attrs.array_char_value(37) := p_source_17;
7594 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
7595 l_rec_acct_attrs.array_num_value(38) := p_source_47;
7596 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
7597 l_rec_acct_attrs.array_num_value(39) := p_source_48;
7598 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
7599 l_rec_acct_attrs.array_num_value(40) := p_source_49;
7600 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
7601 l_rec_acct_attrs.array_num_value(41) := p_source_50;
7602 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
7603 l_rec_acct_attrs.array_num_value(42) := p_source_51;
7604 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
7605 l_rec_acct_attrs.array_num_value(43) := p_source_52;
7606
7607 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7608 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7609
7610 ---------------------------------------------------------------------------------------------------------------
7611 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7612 ---------------------------------------------------------------------------------------------------------------
7613 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7614
7615 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7616 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7617
7618 IF xla_accounting_cache_pkg.GetValueChar
7619 (p_source_code => 'LEDGER_CATEGORY_CODE'
7620 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7621 AND l_bflow_method_code = 'PRIOR_ENTRY'
7622 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7623 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7624 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7625 )
7626 THEN
7627 xla_ae_lines_pkg.BflowUpgEntry
7628 (p_business_method_code => l_bflow_method_code
7629 ,p_business_class_code => l_bflow_class_code
7630 ,p_balance_type => l_balance_type_code);
7631 ELSE
7632 NULL;
7633 -- No business flow processing for business flow method of NONE.
7634 END IF;
7635
7636 --
7637 -- call analytical criteria
7638 --
7639
7640 --
7641 -- call description
7642 --
7643
7644 xla_ae_lines_pkg.SetLineDescription(
7645 p_ae_header_id => l_ae_header_id
7646 ,p_description => Description_2 (
7647 p_application_id => p_application_id
7648 , p_ae_header_id => l_ae_header_id
7649 , p_source_1 => p_source_1
7650 )
7651 );
7652
7653
7654 --
7655 -- call ADRs
7656 -- Bug 4922099
7657 --
7658 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7659 (NVL(l_actual_upg_option, 'N') = 'O') OR
7660 (NVL(l_enc_upg_option, 'N') = 'O')
7661 )
7662 THEN
7663 NULL;
7664 --
7665 --
7666
7667 l_ccid := AcctDerRule_3(
7668 p_application_id => p_application_id
7669 , p_ae_header_id => l_ae_header_id
7670 , p_source_2 => p_source_2
7671 , x_transaction_coa_id => l_adr_transaction_coa_id
7672 , x_accounting_coa_id => l_adr_accounting_coa_id
7673 , x_value_type_code => l_adr_value_type_code
7674 , p_side => 'NA'
7675 );
7676
7677 xla_ae_lines_pkg.set_ccid(
7678 p_code_combination_id => l_ccid
7679 , p_value_type_code => l_adr_value_type_code
7680 , p_transaction_coa_id => l_adr_transaction_coa_id
7681 , p_accounting_coa_id => l_adr_accounting_coa_id
7682 , p_adr_code => 'AP_INVOICE_DIST'
7683 , p_adr_type_code => 'S'
7684 , p_component_type => l_component_type
7685 , p_component_code => l_component_code
7686 , p_component_type_code => l_component_type_code
7687 , p_component_appl_id => l_component_appl_id
7688 , p_amb_context_code => l_amb_context_code
7689 , p_side => 'NA'
7690 );
7691
7692
7693 l_segment := AcctDerRule_15(
7694 p_application_id => p_application_id
7695 , p_ae_header_id => l_ae_header_id
7696 , x_transaction_coa_id => l_adr_transaction_coa_id
7697 , x_accounting_coa_id => l_adr_accounting_coa_id
7698 , x_flexfield_segment_code => l_adr_flexfield_segment_code
7699 , x_flex_value_set_id => l_adr_flex_value_set_id
7700 , x_value_type_code => l_adr_value_type_code
7701 , x_value_combination_id => l_adr_value_combination_id
7702 , x_value_segment_code => l_adr_value_segment_code
7703 , p_side => 'NA'
7704 , p_override_seg_flag => 'Y'
7705 );
7706
7707 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
7708
7709 xla_ae_lines_pkg.set_segment(
7710 p_to_segment_code => 'GL_ACCOUNT'
7711 , p_segment_value => l_segment
7712 , p_from_segment_code => l_adr_value_segment_code
7713 , p_from_combination_id => l_adr_value_combination_id
7714 , p_value_type_code => l_adr_value_type_code
7715 , p_transaction_coa_id => l_adr_transaction_coa_id
7716 , p_accounting_coa_id => l_adr_accounting_coa_id
7717 , p_flexfield_segment_code => l_adr_flexfield_segment_code
7718 , p_flex_value_set_id => l_adr_flex_value_set_id
7719 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
7720 , p_adr_type_code => 'S'
7721 , p_component_type => l_component_type
7722 , p_component_code => l_component_code
7723 , p_component_type_code => l_component_type_code
7724 , p_component_appl_id => l_component_appl_id
7725 , p_amb_context_code => l_amb_context_code
7726 , p_entity_code => 'AP_INVOICES'
7727 , p_event_class_code => 'CREDIT MEMOS'
7728 , p_side => 'NA'
7729 );
7730
7731 END IF;
7732
7733 --
7734 --
7735 END IF;
7736 --
7737 -- Bug 4922099
7738 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7739 (NVL(l_enc_upg_option, 'N') = 'O')
7740 ) AND
7741 (l_bflow_method_code = 'PRIOR_ENTRY')
7742 )
7743 THEN
7744 IF
7745 --
7746 1 = 2
7747 --
7748 THEN
7749 xla_accounting_err_pkg.build_message
7750 (p_appli_s_name => 'XLA'
7751 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7752 ,p_token_1 => 'LINE_NUMBER'
7753 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7754 ,p_token_2 => 'LINE_TYPE_NAME'
7755 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7756 l_component_type
7757 ,l_component_code
7758 ,l_component_type_code
7759 ,l_component_appl_id
7760 ,l_amb_context_code
7761 ,l_entity_code
7762 ,l_event_class_code
7763 )
7764 ,p_token_3 => 'OWNER'
7765 ,p_value_3 => xla_lookups_pkg.get_meaning(
7766 p_lookup_type => 'XLA_OWNER_TYPE'
7767 ,p_lookup_code => l_component_type_code
7768 )
7769 ,p_token_4 => 'PRODUCT_NAME'
7770 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7771 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7772 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7773 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7774 ,p_ae_header_id => NULL
7775 );
7776
7777 IF (C_LEVEL_ERROR>= g_log_level) THEN
7778 trace
7779 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7780 ,p_level => C_LEVEL_ERROR
7781 ,p_module => l_log_module);
7782 END IF;
7783 END IF;
7784 END IF;
7785 --
7786 --
7787 ------------------------------------------------------------------------------------------------
7788 -- 4219869 Business Flow
7789 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7790 -- Prior Entry. Currently, the following code is always generated.
7791 ------------------------------------------------------------------------------------------------
7792 XLA_AE_LINES_PKG.ValidateCurrentLine;
7793
7794 ------------------------------------------------------------------------------------
7795 -- 4219869 Business Flow
7796 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7797 ------------------------------------------------------------------------------------
7798 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7799
7800 ----------------------------------------------------------------------------------
7801 -- 4219869 Business Flow
7802 -- Update journal entry status -- Need to generate this within IF <condition>
7803 ----------------------------------------------------------------------------------
7804 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7805 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7806 ,p_balance_type_code => l_balance_type_code
7807 );
7808
7809 -------------------------------------------------------------------------------------------
7810 -- 4262811 - Generate the Accrual Reversal lines
7811 -------------------------------------------------------------------------------------------
7812 BEGIN
7813 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7814 (g_array_event(p_event_id).array_value_num('header_index'));
7815 IF l_acc_rev_flag IS NULL THEN
7816 l_acc_rev_flag := 'N';
7817 END IF;
7818 EXCEPTION
7819 WHEN OTHERS THEN
7820 l_acc_rev_flag := 'N';
7821 END;
7822 --
7823 IF (l_acc_rev_flag = 'Y') THEN
7824
7825 -- 4645092 ------------------------------------------------------------------------------
7826 -- To allow MPA report to determine if it should generate report process
7827 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7828 ------------------------------------------------------------------------------------------
7829
7830 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7831 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7832 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7833 -- call ADRs
7834 -- Bug 4922099
7835 --
7836 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7837 (NVL(l_actual_upg_option, 'N') = 'O') OR
7838 (NVL(l_enc_upg_option, 'N') = 'O')
7839 )
7840 THEN
7841 NULL;
7842 --
7843 --
7844
7845 l_ccid := AcctDerRule_3(
7846 p_application_id => p_application_id
7847 , p_ae_header_id => l_ae_header_id
7848 , p_source_2 => p_source_2
7849 , x_transaction_coa_id => l_adr_transaction_coa_id
7850 , x_accounting_coa_id => l_adr_accounting_coa_id
7851 , x_value_type_code => l_adr_value_type_code
7852 , p_side => 'NA'
7853 );
7854
7855 xla_ae_lines_pkg.set_ccid(
7856 p_code_combination_id => l_ccid
7857 , p_value_type_code => l_adr_value_type_code
7858 , p_transaction_coa_id => l_adr_transaction_coa_id
7859 , p_accounting_coa_id => l_adr_accounting_coa_id
7860 , p_adr_code => 'AP_INVOICE_DIST'
7861 , p_adr_type_code => 'S'
7862 , p_component_type => l_component_type
7863 , p_component_code => l_component_code
7864 , p_component_type_code => l_component_type_code
7865 , p_component_appl_id => l_component_appl_id
7866 , p_amb_context_code => l_amb_context_code
7867 , p_side => 'NA'
7868 );
7869
7870
7871 l_segment := AcctDerRule_15(
7872 p_application_id => p_application_id
7873 , p_ae_header_id => l_ae_header_id
7874 , x_transaction_coa_id => l_adr_transaction_coa_id
7875 , x_accounting_coa_id => l_adr_accounting_coa_id
7876 , x_flexfield_segment_code => l_adr_flexfield_segment_code
7877 , x_flex_value_set_id => l_adr_flex_value_set_id
7878 , x_value_type_code => l_adr_value_type_code
7879 , x_value_combination_id => l_adr_value_combination_id
7880 , x_value_segment_code => l_adr_value_segment_code
7881 , p_side => 'NA'
7882 , p_override_seg_flag => 'Y'
7883 );
7884
7885 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
7886
7887 xla_ae_lines_pkg.set_segment(
7888 p_to_segment_code => 'GL_ACCOUNT'
7889 , p_segment_value => l_segment
7890 , p_from_segment_code => l_adr_value_segment_code
7891 , p_from_combination_id => l_adr_value_combination_id
7892 , p_value_type_code => l_adr_value_type_code
7893 , p_transaction_coa_id => l_adr_transaction_coa_id
7894 , p_accounting_coa_id => l_adr_accounting_coa_id
7895 , p_flexfield_segment_code => l_adr_flexfield_segment_code
7896 , p_flex_value_set_id => l_adr_flex_value_set_id
7897 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
7898 , p_adr_type_code => 'S'
7899 , p_component_type => l_component_type
7900 , p_component_code => l_component_code
7901 , p_component_type_code => l_component_type_code
7902 , p_component_appl_id => l_component_appl_id
7903 , p_amb_context_code => l_amb_context_code
7904 , p_entity_code => 'AP_INVOICES'
7905 , p_event_class_code => 'CREDIT MEMOS'
7906 , p_side => 'NA'
7907 );
7908
7909 END IF;
7910
7911 --
7912 --
7913 END IF;
7914
7915 --
7916 -- Update the line information that should be overwritten
7917 --
7918 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7919 p_header_num => 1);
7920 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7921
7922 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7923
7924 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7925 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7926 END IF;
7927
7928 --
7929 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7930 --
7931 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7932 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7933 ELSE
7934 ---------------------------------------------------------------------------------------------------
7935 -- 4262811a Switch Sign
7936 ---------------------------------------------------------------------------------------------------
7937 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7938 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7939 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7940 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7941 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7942 -- 5132302
7943 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7944 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7945
7946 END IF;
7947
7948 -- 4955764
7949 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7950 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7951
7952
7953 XLA_AE_LINES_PKG.ValidateCurrentLine;
7954 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7955
7956 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7957 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7958 ,p_balance_type_code => l_balance_type_code);
7959
7960 END IF;
7961
7962 -----------------------------------------------------------------------------------------
7963 -- 4262811 Multiperiod Accounting
7964 -----------------------------------------------------------------------------------------
7965 -- No MPA option is assigned.
7966
7967
7968 END IF;
7969 END IF;
7970 --
7971
7972 --
7973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7974 trace
7975 (p_msg => 'END of AcctLineType_23'
7976 ,p_level => C_LEVEL_PROCEDURE
7977 ,p_module => l_log_module);
7978 END IF;
7979 --
7980 EXCEPTION
7981 WHEN xla_exceptions_pkg.application_exception THEN
7982 RAISE;
7983 WHEN OTHERS THEN
7984 xla_exceptions_pkg.raise_message
7985 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_23');
7986 END AcctLineType_23;
7987 --
7988
7989 ---------------------------------------
7990 --
7991 -- PRIVATE FUNCTION
7992 -- AcctLineType_24
7993 --
7994 ---------------------------------------
7995 PROCEDURE AcctLineType_24 (
7996 p_application_id IN NUMBER
7997 ,p_event_id IN NUMBER
7998 ,p_calculate_acctd_flag IN VARCHAR2
7999 ,p_calculate_g_l_flag IN VARCHAR2
8000 ,p_actual_flag IN OUT VARCHAR2
8001 ,p_balance_type_code OUT VARCHAR2
8002 ,p_gain_or_loss_ref OUT VARCHAR2
8003
8004 --Federal Fund Category Description
8005 , p_source_6 IN VARCHAR2
8006 --Accounting Reversal Indicator
8007 , p_source_15 IN VARCHAR2
8008 --Distribution Link Type
8009 , p_source_17 IN VARCHAR2
8010 --Allocation to Main Distribution Identifier
8011 , p_source_19 IN NUMBER
8012 --Invoice Identifier
8013 , p_source_20 IN NUMBER
8014 --Business Flow Accounts Payable Application Identifier
8015 , p_source_21 IN NUMBER
8016 --Business Flow Invoice Distribution Type
8017 , p_source_22 IN VARCHAR2
8018 --Business Flow Invoice Entity Code
8019 , p_source_23 IN VARCHAR2
8020 --Business Flow Invoice Distribution Identifier
8021 , p_source_24 IN NUMBER
8022 --Business Flow Invoice Identifier
8023 , p_source_25 IN NUMBER
8024 --Invoice Distribution Identifier
8025 , p_source_26 IN NUMBER
8026 --Payables Encumbrance Upgrade Credit Account
8027 , p_source_27 IN NUMBER
8028 --Payables Encumbrance Upgrade Credit Amount
8029 , p_source_28 IN NUMBER
8030 --Invoice Currency Code
8031 , p_source_29 IN VARCHAR2
8032 --Payables Encumbrance Upgrade Credit Base Amount
8033 , p_source_30 IN NUMBER
8034 --Payables Encumbrance Upgrade Debit Account
8035 , p_source_31 IN NUMBER
8036 --Payables Encumbrance Upgrade Debit Amount
8037 , p_source_32 IN NUMBER
8038 --Payables Encumbrance Upgrade Debit Base Amount
8039 , p_source_33 IN NUMBER
8040 --Payables Encumbrance Upgrade Option
8041 , p_source_34 IN VARCHAR2
8042 --Deferred Accounting End Date
8043 , p_source_39 IN DATE
8044 --Deferred Accounting Option
8045 , p_source_40 IN VARCHAR2
8046 --Deferred Accounting Start Date
8047 , p_source_41 IN DATE
8048 --Override Accounted Amount Indicator
8049 , p_source_42 IN VARCHAR2
8050 , p_source_42_meaning IN VARCHAR2
8051 --Third Party Type
8052 , p_source_45 IN VARCHAR2
8053 --Parent Reversal Identifier
8054 , p_source_46 IN NUMBER
8055 --Invoice Distribution Statistical Amount
8056 , p_source_47 IN NUMBER
8057 --Invoice Distribution Tax Line Identifier
8058 , p_source_48 IN NUMBER
8059 --Invoice Distribution Tax Distribution Identifier from Tax
8060 , p_source_49 IN NUMBER
8061 --Invoice Distribution Summary Tax Line Identifier
8062 , p_source_50 IN NUMBER
8063 --Payables Upgrade Credit Encumbrance Type Identifier
8064 , p_source_51 IN NUMBER
8065 --Payables Upgrade Debit Encumbrance Type Identifier
8066 , p_source_52 IN NUMBER
8067 --Invoice Distribution Amount
8068 , p_source_55 IN NUMBER
8069 --Invoice Distribution Ledger Amount
8070 , p_source_56 IN NUMBER
8071 )
8072 IS
8073
8074 l_component_type VARCHAR2(80);
8075 l_component_code VARCHAR2(30);
8076 l_component_type_code VARCHAR2(1);
8077 l_component_appl_id INTEGER;
8078 l_amb_context_code VARCHAR2(30);
8079 l_entity_code VARCHAR2(30);
8080 l_event_class_code VARCHAR2(30);
8081 l_ae_header_id NUMBER;
8082 l_event_type_code VARCHAR2(30);
8083 l_line_definition_code VARCHAR2(30);
8084 l_line_definition_owner_code VARCHAR2(1);
8085 --
8086 -- adr variables
8087 l_segment VARCHAR2(30);
8088 l_ccid NUMBER;
8089 l_adr_transaction_coa_id NUMBER;
8090 l_adr_accounting_coa_id NUMBER;
8091 l_adr_flexfield_segment_code VARCHAR2(30);
8092 l_adr_flex_value_set_id NUMBER;
8093 l_adr_value_type_code VARCHAR2(30);
8094 l_adr_value_combination_id NUMBER;
8095 l_adr_value_segment_code VARCHAR2(30);
8096
8097 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8098 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8099 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8100 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8101
8102 -- 4262811 Variables ------------------------------------------------------------------------------------------
8103 l_entered_amt_idx NUMBER;
8104 l_accted_amt_idx NUMBER;
8105 l_acc_rev_flag VARCHAR2(1);
8106 l_accrual_line_num NUMBER;
8107 l_tmp_amt NUMBER;
8108 l_acc_rev_natural_side_code VARCHAR2(1);
8109
8110 l_num_entries NUMBER;
8111 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8112 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8113 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8114 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8115 l_recog_line_1 NUMBER;
8116 l_recog_line_2 NUMBER;
8117
8118 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8119 l_bflow_applied_to_amt NUMBER; -- 5132302
8120 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8121
8122 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8123
8124 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8125 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8126
8127 ---------------------------------------------------------------------------------------------------------------
8128
8129
8130 --
8131 -- bulk performance
8132 --
8133 l_balance_type_code VARCHAR2(1);
8134 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8135 l_log_module VARCHAR2(240);
8136
8137 --
8138 -- Upgrade strategy
8139 --
8140 l_actual_upg_option VARCHAR2(1);
8141 l_enc_upg_option VARCHAR2(1);
8142
8143 --
8144 BEGIN
8145 --
8146 IF g_log_enabled THEN
8147 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
8148 END IF;
8149 --
8150 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8151
8152 trace
8153 (p_msg => 'BEGIN of AcctLineType_24'
8154 ,p_level => C_LEVEL_PROCEDURE
8155 ,p_module => l_log_module);
8156
8157 END IF;
8158 --
8159 l_component_type := 'AMB_JLT';
8160 l_component_code := 'FV_AP_CM_REV_DIRECT_FUND_CR';
8161 l_component_type_code := 'S';
8162 l_component_appl_id := 200;
8163 l_amb_context_code := 'DEFAULT';
8164 l_entity_code := 'AP_INVOICES';
8165 l_event_class_code := 'CREDIT MEMOS';
8166 l_event_type_code := 'CREDIT MEMOS_ALL';
8167 l_line_definition_owner_code := 'S';
8168 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
8169 --
8170 l_balance_type_code := 'A';
8171 l_segment := NULL;
8172 l_ccid := NULL;
8173 l_adr_transaction_coa_id := NULL;
8174 l_adr_accounting_coa_id := NULL;
8175 l_adr_flexfield_segment_code := NULL;
8176 l_adr_flex_value_set_id := NULL;
8177 l_adr_value_type_code := NULL;
8178 l_adr_value_combination_id := NULL;
8179 l_adr_value_segment_code := NULL;
8180
8181 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
8182 l_bflow_class_code := 'FV_DIRECT_FUND_DR'; -- 4219869 Business Flow
8183 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
8184 l_budgetary_control_flag := 'Y';
8185
8186 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8187 l_bflow_applied_to_amt := NULL; -- 5132302
8188 l_entered_amt_idx := NULL; -- 4262811
8189 l_accted_amt_idx := NULL; -- 4262811
8190 l_acc_rev_flag := NULL; -- 4262811
8191 l_accrual_line_num := NULL; -- 4262811
8192 l_tmp_amt := NULL; -- 4262811
8193 --
8194
8195 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8196 l_balance_type_code <> 'B' THEN
8197 IF NVL(p_source_6,'
8198 ') = 'Direct' AND
8199 NVL(
8200 xla_ae_sources_pkg.GetSystemSourceChar(
8201 p_source_code => 'XLA_EVENT_TYPE_CODE'
8202 , p_source_type_code => 'Y'
8203 , p_source_application_id => 602
8204 ),'
8205 ') = 'CREDIT MEMO CANCELLED'
8206 THEN
8207
8208 --
8209 XLA_AE_LINES_PKG.SetNewLine;
8210
8211 p_balance_type_code := l_balance_type_code;
8212 -- set the flag so later we will know whether the gain loss line needs to be created
8213
8214 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8215 p_actual_flag :='A';
8216 END IF;
8217
8218 --
8219 -- bulk performance
8220 --
8221 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8222 p_header_num => 0); -- 4262811
8223 --
8224 -- set accounting line options
8225 --
8226 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8227 p_natural_side_code => 'D'
8228 , p_gain_or_loss_flag => 'N'
8229 , p_gl_transfer_mode_code => 'S'
8230 , p_acct_entry_type_code => 'A'
8231 , p_switch_side_flag => 'N'
8232 , p_merge_duplicate_code => 'N'
8233 );
8234 --
8235 l_acc_rev_natural_side_code := 'C'; -- 4262811
8236 --
8237 --
8238 -- set accounting line type info
8239 --
8240 xla_ae_lines_pkg.SetAcctLineType
8241 (p_component_type => l_component_type
8242 ,p_event_type_code => l_event_type_code
8243 ,p_line_definition_owner_code => l_line_definition_owner_code
8244 ,p_line_definition_code => l_line_definition_code
8245 ,p_accounting_line_code => l_component_code
8246 ,p_accounting_line_type_code => l_component_type_code
8247 ,p_accounting_line_appl_id => l_component_appl_id
8248 ,p_amb_context_code => l_amb_context_code
8249 ,p_entity_code => l_entity_code
8250 ,p_event_class_code => l_event_class_code);
8251 --
8252 -- set accounting class
8253 --
8254 xla_ae_lines_pkg.SetAcctClass(
8255 p_accounting_class_code => 'ACCOUNTSPAYABLE'
8256 , p_ae_header_id => l_ae_header_id
8257 );
8258
8259 --
8260 -- set rounding class
8261 --
8262 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8263 'ACCOUNTSPAYABLE';
8264
8265 --
8266 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8267 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8268 --
8269 -- bulk performance
8270 --
8271 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8272
8273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8274 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8275
8276 -- 4955764
8277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8279
8280 -- 4458381 Public Sector Enh
8281
8282 --
8283 -- set accounting attributes for the line type
8284 --
8285 l_entered_amt_idx := 23;
8286 l_accted_amt_idx := 25;
8287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8288 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8289 l_rec_acct_attrs.array_char_value(1) := p_source_15;
8290 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8291 l_rec_acct_attrs.array_num_value(2) :=
8292 xla_ae_sources_pkg.GetSystemSourceNum(
8293 p_source_code => 'XLA_EVENT_APPL_ID'
8294 , p_source_type_code => 'Y'
8295 , p_source_application_id => 602
8296 );
8297 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8298 l_rec_acct_attrs.array_char_value(3) := p_source_17;
8299 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8300 l_rec_acct_attrs.array_char_value(4) :=
8301 xla_ae_sources_pkg.GetSystemSourceChar(
8302 p_source_code => 'XLA_ENTITY_CODE'
8303 , p_source_type_code => 'Y'
8304 , p_source_application_id => 602
8305 );
8306 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8307 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
8308 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8309 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
8310 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8311 l_rec_acct_attrs.array_num_value(7) := p_source_21;
8312 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8313 l_rec_acct_attrs.array_char_value(8) := p_source_22;
8314 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8315 l_rec_acct_attrs.array_char_value(9) := p_source_23;
8316 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8317 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
8318 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8319 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
8320 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8321 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
8322 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8323 l_rec_acct_attrs.array_char_value(13) := p_source_17;
8324 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8325 l_rec_acct_attrs.array_num_value(14) := p_source_27;
8326 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8327 l_rec_acct_attrs.array_num_value(15) := p_source_28;
8328 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8329 l_rec_acct_attrs.array_char_value(16) := p_source_29;
8330 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8331 l_rec_acct_attrs.array_num_value(17) := p_source_30;
8332 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8333 l_rec_acct_attrs.array_num_value(18) := p_source_31;
8334 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8335 l_rec_acct_attrs.array_num_value(19) := p_source_32;
8336 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8337 l_rec_acct_attrs.array_char_value(20) := p_source_29;
8338 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8339 l_rec_acct_attrs.array_num_value(21) := p_source_33;
8340 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8341 l_rec_acct_attrs.array_char_value(22) := p_source_34;
8342 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8343 l_rec_acct_attrs.array_num_value(23) := p_source_55;
8344 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8345 l_rec_acct_attrs.array_char_value(24) := p_source_29;
8346 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
8347 l_rec_acct_attrs.array_num_value(25) := p_source_56;
8348 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
8349 l_rec_acct_attrs.array_date_value(26) := p_source_39;
8350 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
8351 l_rec_acct_attrs.array_char_value(27) := p_source_40;
8352 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
8353 l_rec_acct_attrs.array_date_value(28) := p_source_41;
8354 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
8355 l_rec_acct_attrs.array_char_value(29) := p_source_42;
8356 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
8357 l_rec_acct_attrs.array_char_value(30) := p_source_45;
8358 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
8359 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_46);
8360 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
8361 l_rec_acct_attrs.array_char_value(32) := p_source_17;
8362 l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
8363 l_rec_acct_attrs.array_num_value(33) := p_source_47;
8364 l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
8365 l_rec_acct_attrs.array_num_value(34) := p_source_48;
8366 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
8367 l_rec_acct_attrs.array_num_value(35) := p_source_49;
8368 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
8369 l_rec_acct_attrs.array_num_value(36) := p_source_50;
8370 l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
8371 l_rec_acct_attrs.array_num_value(37) := p_source_51;
8372 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
8373 l_rec_acct_attrs.array_num_value(38) := p_source_52;
8374
8375 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8376 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8377
8378 ---------------------------------------------------------------------------------------------------------------
8379 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8380 ---------------------------------------------------------------------------------------------------------------
8381 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8382
8383 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8384 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8385
8386 IF xla_accounting_cache_pkg.GetValueChar
8387 (p_source_code => 'LEDGER_CATEGORY_CODE'
8388 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8389 AND l_bflow_method_code = 'PRIOR_ENTRY'
8390 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8391 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8392 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8393 )
8394 THEN
8395 xla_ae_lines_pkg.BflowUpgEntry
8396 (p_business_method_code => l_bflow_method_code
8397 ,p_business_class_code => l_bflow_class_code
8398 ,p_balance_type => l_balance_type_code);
8399 ELSE
8400 NULL;
8401 XLA_AE_LINES_PKG.business_flow_validation(
8402 p_business_method_code => l_bflow_method_code
8403 ,p_business_class_code => l_bflow_class_code
8404 ,p_inherit_description_flag => l_inherit_desc_flag);
8405 END IF;
8406
8407 --
8408 -- call analytical criteria
8409 --
8410 -- Inherited Analytical Criteria for business flow method of Prior Entry.
8411 --
8412 -- call description
8413 --
8414 -- No description or it is inherited.
8415 --
8416 -- call ADRs
8417 -- Bug 4922099
8418 --
8419 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8420 (NVL(l_actual_upg_option, 'N') = 'O') OR
8421 (NVL(l_enc_upg_option, 'N') = 'O')
8422 )
8423 THEN
8424 NULL;
8425 --
8426 --
8427
8428 --
8429 --
8430 END IF;
8431 --
8432 -- Bug 4922099
8433 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8434 (NVL(l_enc_upg_option, 'N') = 'O')
8435 ) AND
8436 (l_bflow_method_code = 'PRIOR_ENTRY')
8437 )
8438 THEN
8439 IF
8440 --
8441 1 = 1
8442 --
8443 THEN
8444 xla_accounting_err_pkg.build_message
8445 (p_appli_s_name => 'XLA'
8446 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8447 ,p_token_1 => 'LINE_NUMBER'
8448 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8449 ,p_token_2 => 'LINE_TYPE_NAME'
8450 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8451 l_component_type
8452 ,l_component_code
8453 ,l_component_type_code
8454 ,l_component_appl_id
8455 ,l_amb_context_code
8456 ,l_entity_code
8457 ,l_event_class_code
8458 )
8459 ,p_token_3 => 'OWNER'
8460 ,p_value_3 => xla_lookups_pkg.get_meaning(
8461 p_lookup_type => 'XLA_OWNER_TYPE'
8462 ,p_lookup_code => l_component_type_code
8463 )
8464 ,p_token_4 => 'PRODUCT_NAME'
8465 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8466 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8467 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8468 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8469 ,p_ae_header_id => NULL
8470 );
8471
8472 IF (C_LEVEL_ERROR>= g_log_level) THEN
8473 trace
8474 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8475 ,p_level => C_LEVEL_ERROR
8476 ,p_module => l_log_module);
8477 END IF;
8478 END IF;
8479 END IF;
8480 --
8481 --
8482 ------------------------------------------------------------------------------------------------
8483 -- 4219869 Business Flow
8484 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8485 -- Prior Entry. Currently, the following code is always generated.
8486 ------------------------------------------------------------------------------------------------
8487 -- No ValidateCurrentLine for business flow method of Prior Entry
8488
8489 ------------------------------------------------------------------------------------
8490 -- 4219869 Business Flow
8491 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8492 ------------------------------------------------------------------------------------
8493 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8494
8495 ----------------------------------------------------------------------------------
8496 -- 4219869 Business Flow
8497 -- Update journal entry status -- Need to generate this within IF <condition>
8498 ----------------------------------------------------------------------------------
8499 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8500 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8501 ,p_balance_type_code => l_balance_type_code
8502 );
8503
8504 -------------------------------------------------------------------------------------------
8505 -- 4262811 - Generate the Accrual Reversal lines
8506 -------------------------------------------------------------------------------------------
8507 BEGIN
8508 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8509 (g_array_event(p_event_id).array_value_num('header_index'));
8510 IF l_acc_rev_flag IS NULL THEN
8511 l_acc_rev_flag := 'N';
8512 END IF;
8513 EXCEPTION
8514 WHEN OTHERS THEN
8515 l_acc_rev_flag := 'N';
8516 END;
8517 --
8518 IF (l_acc_rev_flag = 'Y') THEN
8519
8520 -- 4645092 ------------------------------------------------------------------------------
8521 -- To allow MPA report to determine if it should generate report process
8522 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8523 ------------------------------------------------------------------------------------------
8524
8525 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8526 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8527 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8528 -- call ADRs
8529 -- Bug 4922099
8530 --
8531 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8532 (NVL(l_actual_upg_option, 'N') = 'O') OR
8533 (NVL(l_enc_upg_option, 'N') = 'O')
8534 )
8535 THEN
8536 NULL;
8537 --
8538 --
8539
8540 --
8541 --
8542 END IF;
8543
8544 --
8545 -- Update the line information that should be overwritten
8546 --
8547 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8548 p_header_num => 1);
8549 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8550
8551 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8552
8553 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8554 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8555 END IF;
8556
8557 --
8558 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8559 --
8560 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8561 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8562 ELSE
8563 ---------------------------------------------------------------------------------------------------
8564 -- 4262811a Switch Sign
8565 ---------------------------------------------------------------------------------------------------
8566 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8568 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8569 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8570 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8571 -- 5132302
8572 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8573 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8574
8575 END IF;
8576
8577 -- 4955764
8578 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8579 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8580
8581
8582 XLA_AE_LINES_PKG.ValidateCurrentLine;
8583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8584
8585 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8586 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8587 ,p_balance_type_code => l_balance_type_code);
8588
8589 END IF;
8590
8591 -----------------------------------------------------------------------------------------
8592 -- 4262811 Multiperiod Accounting
8593 -----------------------------------------------------------------------------------------
8594 -- No MPA option is assigned.
8595
8596
8597 END IF;
8598 END IF;
8599 --
8600
8601 --
8602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8603 trace
8604 (p_msg => 'END of AcctLineType_24'
8605 ,p_level => C_LEVEL_PROCEDURE
8606 ,p_module => l_log_module);
8607 END IF;
8608 --
8609 EXCEPTION
8610 WHEN xla_exceptions_pkg.application_exception THEN
8611 RAISE;
8612 WHEN OTHERS THEN
8613 xla_exceptions_pkg.raise_message
8614 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_24');
8615 END AcctLineType_24;
8616 --
8617
8618 ---------------------------------------
8619 --
8620 -- PRIVATE FUNCTION
8621 -- AcctLineType_25
8622 --
8623 ---------------------------------------
8624 PROCEDURE AcctLineType_25 (
8625 p_application_id IN NUMBER
8626 ,p_event_id IN NUMBER
8627 ,p_calculate_acctd_flag IN VARCHAR2
8628 ,p_calculate_g_l_flag IN VARCHAR2
8629 ,p_actual_flag IN OUT VARCHAR2
8630 ,p_balance_type_code OUT VARCHAR2
8631 ,p_gain_or_loss_ref OUT VARCHAR2
8632
8633 --Federal Fund Category Description
8634 , p_source_6 IN VARCHAR2
8635 --Accounting Reversal Indicator
8636 , p_source_15 IN VARCHAR2
8637 --Distribution Link Type
8638 , p_source_17 IN VARCHAR2
8639 --Allocation to Main Distribution Identifier
8640 , p_source_19 IN NUMBER
8641 --Invoice Identifier
8642 , p_source_20 IN NUMBER
8643 --Business Flow Accounts Payable Application Identifier
8644 , p_source_21 IN NUMBER
8645 --Business Flow Invoice Distribution Type
8646 , p_source_22 IN VARCHAR2
8647 --Business Flow Invoice Entity Code
8648 , p_source_23 IN VARCHAR2
8649 --Business Flow Invoice Distribution Identifier
8650 , p_source_24 IN NUMBER
8651 --Business Flow Invoice Identifier
8652 , p_source_25 IN NUMBER
8653 --Invoice Distribution Identifier
8654 , p_source_26 IN NUMBER
8655 --Payables Encumbrance Upgrade Credit Account
8656 , p_source_27 IN NUMBER
8657 --Payables Encumbrance Upgrade Credit Amount
8658 , p_source_28 IN NUMBER
8659 --Invoice Currency Code
8660 , p_source_29 IN VARCHAR2
8661 --Payables Encumbrance Upgrade Credit Base Amount
8662 , p_source_30 IN NUMBER
8663 --Payables Encumbrance Upgrade Debit Account
8664 , p_source_31 IN NUMBER
8665 --Payables Encumbrance Upgrade Debit Amount
8666 , p_source_32 IN NUMBER
8667 --Payables Encumbrance Upgrade Debit Base Amount
8668 , p_source_33 IN NUMBER
8669 --Payables Encumbrance Upgrade Option
8670 , p_source_34 IN VARCHAR2
8671 --Deferred Accounting End Date
8672 , p_source_39 IN DATE
8673 --Deferred Accounting Option
8674 , p_source_40 IN VARCHAR2
8675 --Deferred Accounting Start Date
8676 , p_source_41 IN DATE
8677 --Override Accounted Amount Indicator
8678 , p_source_42 IN VARCHAR2
8679 , p_source_42_meaning IN VARCHAR2
8680 --Third Party Type
8681 , p_source_45 IN VARCHAR2
8682 --Parent Reversal Identifier
8683 , p_source_46 IN NUMBER
8684 --Invoice Distribution Statistical Amount
8685 , p_source_47 IN NUMBER
8686 --Invoice Distribution Tax Line Identifier
8687 , p_source_48 IN NUMBER
8688 --Invoice Distribution Tax Distribution Identifier from Tax
8689 , p_source_49 IN NUMBER
8690 --Invoice Distribution Summary Tax Line Identifier
8691 , p_source_50 IN NUMBER
8692 --Payables Upgrade Credit Encumbrance Type Identifier
8693 , p_source_51 IN NUMBER
8694 --Payables Upgrade Debit Encumbrance Type Identifier
8695 , p_source_52 IN NUMBER
8696 --Invoice Distribution Amount
8697 , p_source_55 IN NUMBER
8698 --Invoice Distribution Ledger Amount
8699 , p_source_56 IN NUMBER
8700 )
8701 IS
8702
8703 l_component_type VARCHAR2(80);
8704 l_component_code VARCHAR2(30);
8705 l_component_type_code VARCHAR2(1);
8706 l_component_appl_id INTEGER;
8707 l_amb_context_code VARCHAR2(30);
8708 l_entity_code VARCHAR2(30);
8709 l_event_class_code VARCHAR2(30);
8710 l_ae_header_id NUMBER;
8711 l_event_type_code VARCHAR2(30);
8712 l_line_definition_code VARCHAR2(30);
8713 l_line_definition_owner_code VARCHAR2(1);
8714 --
8715 -- adr variables
8716 l_segment VARCHAR2(30);
8717 l_ccid NUMBER;
8718 l_adr_transaction_coa_id NUMBER;
8719 l_adr_accounting_coa_id NUMBER;
8720 l_adr_flexfield_segment_code VARCHAR2(30);
8721 l_adr_flex_value_set_id NUMBER;
8722 l_adr_value_type_code VARCHAR2(30);
8723 l_adr_value_combination_id NUMBER;
8724 l_adr_value_segment_code VARCHAR2(30);
8725
8726 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8727 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8728 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8729 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8730
8731 -- 4262811 Variables ------------------------------------------------------------------------------------------
8732 l_entered_amt_idx NUMBER;
8733 l_accted_amt_idx NUMBER;
8734 l_acc_rev_flag VARCHAR2(1);
8735 l_accrual_line_num NUMBER;
8736 l_tmp_amt NUMBER;
8737 l_acc_rev_natural_side_code VARCHAR2(1);
8738
8739 l_num_entries NUMBER;
8740 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8741 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8742 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8743 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8744 l_recog_line_1 NUMBER;
8745 l_recog_line_2 NUMBER;
8746
8747 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8748 l_bflow_applied_to_amt NUMBER; -- 5132302
8749 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8750
8751 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8752
8753 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8754 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8755
8756 ---------------------------------------------------------------------------------------------------------------
8757
8758
8759 --
8760 -- bulk performance
8761 --
8762 l_balance_type_code VARCHAR2(1);
8763 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8764 l_log_module VARCHAR2(240);
8765
8766 --
8767 -- Upgrade strategy
8768 --
8769 l_actual_upg_option VARCHAR2(1);
8770 l_enc_upg_option VARCHAR2(1);
8771
8772 --
8773 BEGIN
8774 --
8775 IF g_log_enabled THEN
8776 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
8777 END IF;
8778 --
8779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8780
8781 trace
8782 (p_msg => 'BEGIN of AcctLineType_25'
8783 ,p_level => C_LEVEL_PROCEDURE
8784 ,p_module => l_log_module);
8785
8786 END IF;
8787 --
8788 l_component_type := 'AMB_JLT';
8789 l_component_code := 'FV_AP_CM_REV_DIRECT_FUND_DR';
8790 l_component_type_code := 'S';
8791 l_component_appl_id := 200;
8792 l_amb_context_code := 'DEFAULT';
8793 l_entity_code := 'AP_INVOICES';
8794 l_event_class_code := 'CREDIT MEMOS';
8795 l_event_type_code := 'CREDIT MEMOS_ALL';
8796 l_line_definition_owner_code := 'S';
8797 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
8798 --
8799 l_balance_type_code := 'A';
8800 l_segment := NULL;
8801 l_ccid := NULL;
8802 l_adr_transaction_coa_id := NULL;
8803 l_adr_accounting_coa_id := NULL;
8804 l_adr_flexfield_segment_code := NULL;
8805 l_adr_flex_value_set_id := NULL;
8806 l_adr_value_type_code := NULL;
8807 l_adr_value_combination_id := NULL;
8808 l_adr_value_segment_code := NULL;
8809
8810 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
8811 l_bflow_class_code := 'FV_DIRECT_FUND_CR'; -- 4219869 Business Flow
8812 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
8813 l_budgetary_control_flag := 'Y';
8814
8815 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8816 l_bflow_applied_to_amt := NULL; -- 5132302
8817 l_entered_amt_idx := NULL; -- 4262811
8818 l_accted_amt_idx := NULL; -- 4262811
8819 l_acc_rev_flag := NULL; -- 4262811
8820 l_accrual_line_num := NULL; -- 4262811
8821 l_tmp_amt := NULL; -- 4262811
8822 --
8823
8824 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8825 l_balance_type_code <> 'B' THEN
8826 IF NVL(p_source_6,'
8827 ') = 'Direct' AND
8828 NVL(
8829 xla_ae_sources_pkg.GetSystemSourceChar(
8830 p_source_code => 'XLA_EVENT_TYPE_CODE'
8831 , p_source_type_code => 'Y'
8832 , p_source_application_id => 602
8833 ),'
8834 ') = 'CREDIT MEMO CANCELLED'
8835 THEN
8836
8837 --
8838 XLA_AE_LINES_PKG.SetNewLine;
8839
8840 p_balance_type_code := l_balance_type_code;
8841 -- set the flag so later we will know whether the gain loss line needs to be created
8842
8843 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8844 p_actual_flag :='A';
8845 END IF;
8846
8847 --
8848 -- bulk performance
8849 --
8850 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8851 p_header_num => 0); -- 4262811
8852 --
8853 -- set accounting line options
8854 --
8855 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8856 p_natural_side_code => 'C'
8857 , p_gain_or_loss_flag => 'N'
8858 , p_gl_transfer_mode_code => 'S'
8859 , p_acct_entry_type_code => 'A'
8860 , p_switch_side_flag => 'N'
8861 , p_merge_duplicate_code => 'N'
8862 );
8863 --
8864 l_acc_rev_natural_side_code := 'D'; -- 4262811
8865 --
8866 --
8867 -- set accounting line type info
8868 --
8869 xla_ae_lines_pkg.SetAcctLineType
8870 (p_component_type => l_component_type
8871 ,p_event_type_code => l_event_type_code
8872 ,p_line_definition_owner_code => l_line_definition_owner_code
8873 ,p_line_definition_code => l_line_definition_code
8874 ,p_accounting_line_code => l_component_code
8875 ,p_accounting_line_type_code => l_component_type_code
8876 ,p_accounting_line_appl_id => l_component_appl_id
8877 ,p_amb_context_code => l_amb_context_code
8878 ,p_entity_code => l_entity_code
8879 ,p_event_class_code => l_event_class_code);
8880 --
8881 -- set accounting class
8882 --
8883 xla_ae_lines_pkg.SetAcctClass(
8884 p_accounting_class_code => 'ACCOUNTSPAYABLE'
8885 , p_ae_header_id => l_ae_header_id
8886 );
8887
8888 --
8889 -- set rounding class
8890 --
8891 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8892 'ACCOUNTSPAYABLE';
8893
8894 --
8895 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8896 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8897 --
8898 -- bulk performance
8899 --
8900 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8901
8902 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8903 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8904
8905 -- 4955764
8906 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8907 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8908
8909 -- 4458381 Public Sector Enh
8910
8911 --
8912 -- set accounting attributes for the line type
8913 --
8914 l_entered_amt_idx := 23;
8915 l_accted_amt_idx := 25;
8916 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8917 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8918 l_rec_acct_attrs.array_char_value(1) := p_source_15;
8919 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8920 l_rec_acct_attrs.array_num_value(2) :=
8921 xla_ae_sources_pkg.GetSystemSourceNum(
8922 p_source_code => 'XLA_EVENT_APPL_ID'
8923 , p_source_type_code => 'Y'
8924 , p_source_application_id => 602
8925 );
8926 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8927 l_rec_acct_attrs.array_char_value(3) := p_source_17;
8928 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8929 l_rec_acct_attrs.array_char_value(4) :=
8930 xla_ae_sources_pkg.GetSystemSourceChar(
8931 p_source_code => 'XLA_ENTITY_CODE'
8932 , p_source_type_code => 'Y'
8933 , p_source_application_id => 602
8934 );
8935 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8936 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
8937 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8938 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
8939 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8940 l_rec_acct_attrs.array_num_value(7) := p_source_21;
8941 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8942 l_rec_acct_attrs.array_char_value(8) := p_source_22;
8943 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8944 l_rec_acct_attrs.array_char_value(9) := p_source_23;
8945 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8946 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
8947 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8948 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
8949 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8950 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
8951 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8952 l_rec_acct_attrs.array_char_value(13) := p_source_17;
8953 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8954 l_rec_acct_attrs.array_num_value(14) := p_source_27;
8955 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8956 l_rec_acct_attrs.array_num_value(15) := p_source_28;
8957 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8958 l_rec_acct_attrs.array_char_value(16) := p_source_29;
8959 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8960 l_rec_acct_attrs.array_num_value(17) := p_source_30;
8961 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8962 l_rec_acct_attrs.array_num_value(18) := p_source_31;
8963 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8964 l_rec_acct_attrs.array_num_value(19) := p_source_32;
8965 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8966 l_rec_acct_attrs.array_char_value(20) := p_source_29;
8967 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8968 l_rec_acct_attrs.array_num_value(21) := p_source_33;
8969 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8970 l_rec_acct_attrs.array_char_value(22) := p_source_34;
8971 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8972 l_rec_acct_attrs.array_num_value(23) := p_source_55;
8973 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8974 l_rec_acct_attrs.array_char_value(24) := p_source_29;
8975 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
8976 l_rec_acct_attrs.array_num_value(25) := p_source_56;
8977 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
8978 l_rec_acct_attrs.array_date_value(26) := p_source_39;
8979 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
8980 l_rec_acct_attrs.array_char_value(27) := p_source_40;
8981 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
8982 l_rec_acct_attrs.array_date_value(28) := p_source_41;
8983 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
8984 l_rec_acct_attrs.array_char_value(29) := p_source_42;
8985 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
8986 l_rec_acct_attrs.array_char_value(30) := p_source_45;
8987 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
8988 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_46);
8989 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
8990 l_rec_acct_attrs.array_char_value(32) := p_source_17;
8991 l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
8992 l_rec_acct_attrs.array_num_value(33) := p_source_47;
8993 l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
8994 l_rec_acct_attrs.array_num_value(34) := p_source_48;
8995 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
8996 l_rec_acct_attrs.array_num_value(35) := p_source_49;
8997 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
8998 l_rec_acct_attrs.array_num_value(36) := p_source_50;
8999 l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
9000 l_rec_acct_attrs.array_num_value(37) := p_source_51;
9001 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
9002 l_rec_acct_attrs.array_num_value(38) := p_source_52;
9003
9004 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9005 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9006
9007 ---------------------------------------------------------------------------------------------------------------
9008 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9009 ---------------------------------------------------------------------------------------------------------------
9010 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9011
9012 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9013 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9014
9015 IF xla_accounting_cache_pkg.GetValueChar
9016 (p_source_code => 'LEDGER_CATEGORY_CODE'
9017 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9018 AND l_bflow_method_code = 'PRIOR_ENTRY'
9019 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9020 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9021 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9022 )
9023 THEN
9024 xla_ae_lines_pkg.BflowUpgEntry
9025 (p_business_method_code => l_bflow_method_code
9026 ,p_business_class_code => l_bflow_class_code
9027 ,p_balance_type => l_balance_type_code);
9028 ELSE
9029 NULL;
9030 XLA_AE_LINES_PKG.business_flow_validation(
9031 p_business_method_code => l_bflow_method_code
9032 ,p_business_class_code => l_bflow_class_code
9033 ,p_inherit_description_flag => l_inherit_desc_flag);
9034 END IF;
9035
9036 --
9037 -- call analytical criteria
9038 --
9039 -- Inherited Analytical Criteria for business flow method of Prior Entry.
9040 --
9041 -- call description
9042 --
9043 -- No description or it is inherited.
9044 --
9045 -- call ADRs
9046 -- Bug 4922099
9047 --
9048 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9049 (NVL(l_actual_upg_option, 'N') = 'O') OR
9050 (NVL(l_enc_upg_option, 'N') = 'O')
9051 )
9052 THEN
9053 NULL;
9054 --
9055 --
9056
9057 --
9058 --
9059 END IF;
9060 --
9061 -- Bug 4922099
9062 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9063 (NVL(l_enc_upg_option, 'N') = 'O')
9064 ) AND
9065 (l_bflow_method_code = 'PRIOR_ENTRY')
9066 )
9067 THEN
9068 IF
9069 --
9070 1 = 1
9071 --
9072 THEN
9073 xla_accounting_err_pkg.build_message
9074 (p_appli_s_name => 'XLA'
9075 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9076 ,p_token_1 => 'LINE_NUMBER'
9077 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9078 ,p_token_2 => 'LINE_TYPE_NAME'
9079 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9080 l_component_type
9081 ,l_component_code
9082 ,l_component_type_code
9083 ,l_component_appl_id
9084 ,l_amb_context_code
9085 ,l_entity_code
9086 ,l_event_class_code
9087 )
9088 ,p_token_3 => 'OWNER'
9089 ,p_value_3 => xla_lookups_pkg.get_meaning(
9090 p_lookup_type => 'XLA_OWNER_TYPE'
9091 ,p_lookup_code => l_component_type_code
9092 )
9093 ,p_token_4 => 'PRODUCT_NAME'
9094 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9095 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9096 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9097 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9098 ,p_ae_header_id => NULL
9099 );
9100
9101 IF (C_LEVEL_ERROR>= g_log_level) THEN
9102 trace
9103 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9104 ,p_level => C_LEVEL_ERROR
9105 ,p_module => l_log_module);
9106 END IF;
9107 END IF;
9108 END IF;
9109 --
9110 --
9111 ------------------------------------------------------------------------------------------------
9112 -- 4219869 Business Flow
9113 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9114 -- Prior Entry. Currently, the following code is always generated.
9115 ------------------------------------------------------------------------------------------------
9116 -- No ValidateCurrentLine for business flow method of Prior Entry
9117
9118 ------------------------------------------------------------------------------------
9119 -- 4219869 Business Flow
9120 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9121 ------------------------------------------------------------------------------------
9122 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9123
9124 ----------------------------------------------------------------------------------
9125 -- 4219869 Business Flow
9126 -- Update journal entry status -- Need to generate this within IF <condition>
9127 ----------------------------------------------------------------------------------
9128 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9129 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9130 ,p_balance_type_code => l_balance_type_code
9131 );
9132
9133 -------------------------------------------------------------------------------------------
9134 -- 4262811 - Generate the Accrual Reversal lines
9135 -------------------------------------------------------------------------------------------
9136 BEGIN
9137 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9138 (g_array_event(p_event_id).array_value_num('header_index'));
9139 IF l_acc_rev_flag IS NULL THEN
9140 l_acc_rev_flag := 'N';
9141 END IF;
9142 EXCEPTION
9143 WHEN OTHERS THEN
9144 l_acc_rev_flag := 'N';
9145 END;
9146 --
9147 IF (l_acc_rev_flag = 'Y') THEN
9148
9149 -- 4645092 ------------------------------------------------------------------------------
9150 -- To allow MPA report to determine if it should generate report process
9151 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9152 ------------------------------------------------------------------------------------------
9153
9154 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9155 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9156 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9157 -- call ADRs
9158 -- Bug 4922099
9159 --
9160 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9161 (NVL(l_actual_upg_option, 'N') = 'O') OR
9162 (NVL(l_enc_upg_option, 'N') = 'O')
9163 )
9164 THEN
9165 NULL;
9166 --
9167 --
9168
9169 --
9170 --
9171 END IF;
9172
9173 --
9174 -- Update the line information that should be overwritten
9175 --
9176 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9177 p_header_num => 1);
9178 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9179
9180 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9181
9182 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9183 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9184 END IF;
9185
9186 --
9187 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9188 --
9189 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9190 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9191 ELSE
9192 ---------------------------------------------------------------------------------------------------
9193 -- 4262811a Switch Sign
9194 ---------------------------------------------------------------------------------------------------
9195 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9196 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9197 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9198 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9199 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9200 -- 5132302
9201 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9202 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9203
9204 END IF;
9205
9206 -- 4955764
9207 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9208 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9209
9210
9211 XLA_AE_LINES_PKG.ValidateCurrentLine;
9212 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9213
9214 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9215 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9216 ,p_balance_type_code => l_balance_type_code);
9217
9218 END IF;
9219
9220 -----------------------------------------------------------------------------------------
9221 -- 4262811 Multiperiod Accounting
9222 -----------------------------------------------------------------------------------------
9223 -- No MPA option is assigned.
9224
9225
9226 END IF;
9227 END IF;
9228 --
9229
9230 --
9231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9232 trace
9233 (p_msg => 'END of AcctLineType_25'
9234 ,p_level => C_LEVEL_PROCEDURE
9235 ,p_module => l_log_module);
9236 END IF;
9237 --
9238 EXCEPTION
9239 WHEN xla_exceptions_pkg.application_exception THEN
9240 RAISE;
9241 WHEN OTHERS THEN
9242 xla_exceptions_pkg.raise_message
9243 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_25');
9244 END AcctLineType_25;
9245 --
9246
9247 ---------------------------------------
9248 --
9249 -- PRIVATE FUNCTION
9250 -- AcctLineType_26
9251 --
9252 ---------------------------------------
9253 PROCEDURE AcctLineType_26 (
9254 p_application_id IN NUMBER
9255 ,p_event_id IN NUMBER
9256 ,p_calculate_acctd_flag IN VARCHAR2
9257 ,p_calculate_g_l_flag IN VARCHAR2
9258 ,p_actual_flag IN OUT VARCHAR2
9259 ,p_balance_type_code OUT VARCHAR2
9260 ,p_gain_or_loss_ref OUT VARCHAR2
9261
9262 --Invoice Distribution Description
9263 , p_source_1 IN VARCHAR2
9264 --Invoice Distribution Account
9265 , p_source_2 IN NUMBER
9266 --Federal Fund Category
9267 , p_source_4 IN VARCHAR2
9268 --Federal Fund Expired Status
9269 , p_source_5 IN VARCHAR2
9270 --Federal Fund Category Description
9271 , p_source_6 IN VARCHAR2
9272 --Invoice Distribution Type
9273 , p_source_8 IN VARCHAR2
9274 , p_source_8_meaning IN VARCHAR2
9275 --Federal Prior Year Flag
9276 , p_source_9 IN VARCHAR2
9277 --Invoice Type
9278 , p_source_13 IN VARCHAR2
9279 , p_source_13_meaning IN VARCHAR2
9280 --Accounting Reversal Indicator
9281 , p_source_15 IN VARCHAR2
9282 --Distribution Link Type
9283 , p_source_17 IN VARCHAR2
9284 --Allocation to Main Distribution Identifier
9285 , p_source_19 IN NUMBER
9286 --Invoice Identifier
9287 , p_source_20 IN NUMBER
9288 --Business Flow Accounts Payable Application Identifier
9289 , p_source_21 IN NUMBER
9290 --Business Flow Invoice Distribution Type
9291 , p_source_22 IN VARCHAR2
9292 --Business Flow Invoice Entity Code
9293 , p_source_23 IN VARCHAR2
9294 --Business Flow Invoice Distribution Identifier
9295 , p_source_24 IN NUMBER
9296 --Business Flow Invoice Identifier
9297 , p_source_25 IN NUMBER
9298 --Invoice Distribution Identifier
9299 , p_source_26 IN NUMBER
9300 --Payables Encumbrance Upgrade Credit Account
9301 , p_source_27 IN NUMBER
9302 --Payables Encumbrance Upgrade Credit Amount
9303 , p_source_28 IN NUMBER
9304 --Invoice Currency Code
9305 , p_source_29 IN VARCHAR2
9306 --Payables Encumbrance Upgrade Credit Base Amount
9307 , p_source_30 IN NUMBER
9308 --Payables Encumbrance Upgrade Debit Account
9309 , p_source_31 IN NUMBER
9310 --Payables Encumbrance Upgrade Debit Amount
9311 , p_source_32 IN NUMBER
9312 --Payables Encumbrance Upgrade Debit Base Amount
9313 , p_source_33 IN NUMBER
9314 --Payables Encumbrance Upgrade Option
9315 , p_source_34 IN VARCHAR2
9316 --Invoice Exchange Date
9317 , p_source_36 IN DATE
9318 --Invoice Exchange Rate
9319 , p_source_37 IN NUMBER
9320 --Invoice Exchange Rate Type
9321 , p_source_38 IN VARCHAR2
9322 --Deferred Accounting End Date
9323 , p_source_39 IN DATE
9324 --Deferred Accounting Option
9325 , p_source_40 IN VARCHAR2
9326 --Deferred Accounting Start Date
9327 , p_source_41 IN DATE
9328 --Override Accounted Amount Indicator
9329 , p_source_42 IN VARCHAR2
9330 , p_source_42_meaning IN VARCHAR2
9331 --Invoice Supplier Identifier
9332 , p_source_43 IN NUMBER
9333 --Invoice Supplier Site Identifier
9334 , p_source_44 IN NUMBER
9335 --Third Party Type
9336 , p_source_45 IN VARCHAR2
9337 --Parent Reversal Identifier
9338 , p_source_46 IN NUMBER
9339 --Invoice Distribution Statistical Amount
9340 , p_source_47 IN NUMBER
9341 --Invoice Distribution Tax Line Identifier
9342 , p_source_48 IN NUMBER
9343 --Invoice Distribution Tax Distribution Identifier from Tax
9344 , p_source_49 IN NUMBER
9345 --Invoice Distribution Summary Tax Line Identifier
9346 , p_source_50 IN NUMBER
9347 --Payables Upgrade Credit Encumbrance Type Identifier
9348 , p_source_51 IN NUMBER
9349 --Payables Upgrade Debit Encumbrance Type Identifier
9350 , p_source_52 IN NUMBER
9351 --Invoice Distribution Amount
9352 , p_source_55 IN NUMBER
9353 --Invoice Distribution Ledger Amount
9354 , p_source_56 IN NUMBER
9355 )
9356 IS
9357
9358 l_component_type VARCHAR2(80);
9359 l_component_code VARCHAR2(30);
9360 l_component_type_code VARCHAR2(1);
9361 l_component_appl_id INTEGER;
9362 l_amb_context_code VARCHAR2(30);
9363 l_entity_code VARCHAR2(30);
9364 l_event_class_code VARCHAR2(30);
9365 l_ae_header_id NUMBER;
9366 l_event_type_code VARCHAR2(30);
9367 l_line_definition_code VARCHAR2(30);
9368 l_line_definition_owner_code VARCHAR2(1);
9369 --
9370 -- adr variables
9371 l_segment VARCHAR2(30);
9372 l_ccid NUMBER;
9373 l_adr_transaction_coa_id NUMBER;
9374 l_adr_accounting_coa_id NUMBER;
9375 l_adr_flexfield_segment_code VARCHAR2(30);
9376 l_adr_flex_value_set_id NUMBER;
9377 l_adr_value_type_code VARCHAR2(30);
9378 l_adr_value_combination_id NUMBER;
9379 l_adr_value_segment_code VARCHAR2(30);
9380
9381 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9382 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9383 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9384 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9385
9386 -- 4262811 Variables ------------------------------------------------------------------------------------------
9387 l_entered_amt_idx NUMBER;
9388 l_accted_amt_idx NUMBER;
9389 l_acc_rev_flag VARCHAR2(1);
9390 l_accrual_line_num NUMBER;
9391 l_tmp_amt NUMBER;
9392 l_acc_rev_natural_side_code VARCHAR2(1);
9393
9394 l_num_entries NUMBER;
9395 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9396 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9397 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9398 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9399 l_recog_line_1 NUMBER;
9400 l_recog_line_2 NUMBER;
9401
9402 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9403 l_bflow_applied_to_amt NUMBER; -- 5132302
9404 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9405
9406 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9407
9408 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9409 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9410
9411 ---------------------------------------------------------------------------------------------------------------
9412
9413
9414 --
9415 -- bulk performance
9416 --
9417 l_balance_type_code VARCHAR2(1);
9418 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9419 l_log_module VARCHAR2(240);
9420
9421 --
9422 -- Upgrade strategy
9423 --
9424 l_actual_upg_option VARCHAR2(1);
9425 l_enc_upg_option VARCHAR2(1);
9426
9427 --
9428 BEGIN
9429 --
9430 IF g_log_enabled THEN
9431 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
9432 END IF;
9433 --
9434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9435
9436 trace
9437 (p_msg => 'BEGIN of AcctLineType_26'
9438 ,p_level => C_LEVEL_PROCEDURE
9439 ,p_module => l_log_module);
9440
9441 END IF;
9442 --
9443 l_component_type := 'AMB_JLT';
9444 l_component_code := 'FV_AP_CREDIT_MEMOS_EXP_CR';
9445 l_component_type_code := 'S';
9446 l_component_appl_id := 200;
9447 l_amb_context_code := 'DEFAULT';
9448 l_entity_code := 'AP_INVOICES';
9449 l_event_class_code := 'CREDIT MEMOS';
9450 l_event_type_code := 'CREDIT MEMOS_ALL';
9451 l_line_definition_owner_code := 'S';
9452 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
9453 --
9454 l_balance_type_code := 'A';
9455 l_segment := NULL;
9456 l_ccid := NULL;
9457 l_adr_transaction_coa_id := NULL;
9458 l_adr_accounting_coa_id := NULL;
9459 l_adr_flexfield_segment_code := NULL;
9460 l_adr_flex_value_set_id := NULL;
9461 l_adr_value_type_code := NULL;
9462 l_adr_value_combination_id := NULL;
9463 l_adr_value_segment_code := NULL;
9464
9465 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9466 l_bflow_class_code := ''; -- 4219869 Business Flow
9467 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9468 l_budgetary_control_flag := 'Y';
9469
9470 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9471 l_bflow_applied_to_amt := NULL; -- 5132302
9472 l_entered_amt_idx := NULL; -- 4262811
9473 l_accted_amt_idx := NULL; -- 4262811
9474 l_acc_rev_flag := NULL; -- 4262811
9475 l_accrual_line_num := NULL; -- 4262811
9476 l_tmp_amt := NULL; -- 4262811
9477 --
9478
9479 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9480 l_balance_type_code <> 'B' THEN
9481 IF NVL(p_source_13,'
9482 ') = 'CREDIT' AND
9483 (NVL(p_source_8,'
9484 ') = 'ITEM' OR
9485 NVL(p_source_8,'
9486 ') = 'MISCELLANEOUS' OR
9487 NVL(p_source_8,'
9488 ') = 'FREIGHT' OR
9489 NVL(p_source_8,'
9490 ') = 'IPV' OR
9491 NVL(p_source_8,'
9492 ') = 'ACCRUAL') AND
9493 (NVL(p_source_9,'
9494 ') = 'N' OR
9495 (NVL(p_source_9,'
9496 ') = 'Y' AND
9497 NVL(p_source_8,'
9498 ') <> 'IPV')
9499 ) THEN
9500
9501 --
9502 XLA_AE_LINES_PKG.SetNewLine;
9503
9504 p_balance_type_code := l_balance_type_code;
9505 -- set the flag so later we will know whether the gain loss line needs to be created
9506
9507 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9508 p_actual_flag :='A';
9509 END IF;
9510
9511 --
9512 -- bulk performance
9513 --
9514 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9515 p_header_num => 0); -- 4262811
9516 --
9517 -- set accounting line options
9518 --
9519 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9520 p_natural_side_code => 'D'
9521 , p_gain_or_loss_flag => 'N'
9522 , p_gl_transfer_mode_code => 'S'
9523 , p_acct_entry_type_code => 'A'
9524 , p_switch_side_flag => 'N'
9525 , p_merge_duplicate_code => 'N'
9526 );
9527 --
9528 l_acc_rev_natural_side_code := 'C'; -- 4262811
9529 --
9530 --
9531 -- set accounting line type info
9532 --
9533 xla_ae_lines_pkg.SetAcctLineType
9534 (p_component_type => l_component_type
9535 ,p_event_type_code => l_event_type_code
9536 ,p_line_definition_owner_code => l_line_definition_owner_code
9537 ,p_line_definition_code => l_line_definition_code
9538 ,p_accounting_line_code => l_component_code
9539 ,p_accounting_line_type_code => l_component_type_code
9540 ,p_accounting_line_appl_id => l_component_appl_id
9541 ,p_amb_context_code => l_amb_context_code
9542 ,p_entity_code => l_entity_code
9543 ,p_event_class_code => l_event_class_code);
9544 --
9545 -- set accounting class
9546 --
9547 xla_ae_lines_pkg.SetAcctClass(
9548 p_accounting_class_code => 'ACCOUNTSPAYABLE'
9549 , p_ae_header_id => l_ae_header_id
9550 );
9551
9552 --
9553 -- set rounding class
9554 --
9555 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9556 'ACCOUNTSPAYABLE';
9557
9558 --
9559 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9560 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9561 --
9562 -- bulk performance
9563 --
9564 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9565
9566 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9567 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9568
9569 -- 4955764
9570 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9571 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9572
9573 -- 4458381 Public Sector Enh
9574
9575 --
9576 -- set accounting attributes for the line type
9577 --
9578 l_entered_amt_idx := 23;
9579 l_accted_amt_idx := 28;
9580 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9581 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9582 l_rec_acct_attrs.array_char_value(1) := p_source_15;
9583 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9584 l_rec_acct_attrs.array_num_value(2) :=
9585 xla_ae_sources_pkg.GetSystemSourceNum(
9586 p_source_code => 'XLA_EVENT_APPL_ID'
9587 , p_source_type_code => 'Y'
9588 , p_source_application_id => 602
9589 );
9590 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9591 l_rec_acct_attrs.array_char_value(3) := p_source_17;
9592 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9593 l_rec_acct_attrs.array_char_value(4) :=
9594 xla_ae_sources_pkg.GetSystemSourceChar(
9595 p_source_code => 'XLA_ENTITY_CODE'
9596 , p_source_type_code => 'Y'
9597 , p_source_application_id => 602
9598 );
9599 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9600 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
9601 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9602 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
9603 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9604 l_rec_acct_attrs.array_num_value(7) := p_source_21;
9605 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9606 l_rec_acct_attrs.array_char_value(8) := p_source_22;
9607 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9608 l_rec_acct_attrs.array_char_value(9) := p_source_23;
9609 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9610 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
9611 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9612 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
9613 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9614 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
9615 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9616 l_rec_acct_attrs.array_char_value(13) := p_source_17;
9617 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9618 l_rec_acct_attrs.array_num_value(14) := p_source_27;
9619 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9620 l_rec_acct_attrs.array_num_value(15) := p_source_28;
9621 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9622 l_rec_acct_attrs.array_char_value(16) := p_source_29;
9623 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9624 l_rec_acct_attrs.array_num_value(17) := p_source_30;
9625 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9626 l_rec_acct_attrs.array_num_value(18) := p_source_31;
9627 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9628 l_rec_acct_attrs.array_num_value(19) := p_source_32;
9629 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9630 l_rec_acct_attrs.array_char_value(20) := p_source_29;
9631 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9632 l_rec_acct_attrs.array_num_value(21) := p_source_33;
9633 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9634 l_rec_acct_attrs.array_char_value(22) := p_source_34;
9635 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
9636 l_rec_acct_attrs.array_num_value(23) := p_source_55;
9637 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
9638 l_rec_acct_attrs.array_char_value(24) := p_source_29;
9639 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
9640 l_rec_acct_attrs.array_date_value(25) := p_source_36;
9641 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
9642 l_rec_acct_attrs.array_num_value(26) := p_source_37;
9643 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
9644 l_rec_acct_attrs.array_char_value(27) := p_source_38;
9645 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
9646 l_rec_acct_attrs.array_num_value(28) := p_source_56;
9647 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
9648 l_rec_acct_attrs.array_date_value(29) := p_source_39;
9649 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
9650 l_rec_acct_attrs.array_char_value(30) := p_source_40;
9651 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
9652 l_rec_acct_attrs.array_date_value(31) := p_source_41;
9653 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
9654 l_rec_acct_attrs.array_char_value(32) := p_source_42;
9655 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
9656 l_rec_acct_attrs.array_num_value(33) := p_source_43;
9657 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
9658 l_rec_acct_attrs.array_num_value(34) := p_source_44;
9659 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
9660 l_rec_acct_attrs.array_char_value(35) := p_source_45;
9661 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
9662 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
9663 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
9664 l_rec_acct_attrs.array_char_value(37) := p_source_17;
9665 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
9666 l_rec_acct_attrs.array_num_value(38) := p_source_47;
9667 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
9668 l_rec_acct_attrs.array_num_value(39) := p_source_48;
9669 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
9670 l_rec_acct_attrs.array_num_value(40) := p_source_49;
9671 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
9672 l_rec_acct_attrs.array_num_value(41) := p_source_50;
9673 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
9674 l_rec_acct_attrs.array_num_value(42) := p_source_51;
9675 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
9676 l_rec_acct_attrs.array_num_value(43) := p_source_52;
9677
9678 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9679 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9680
9681 ---------------------------------------------------------------------------------------------------------------
9682 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9686 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9683 ---------------------------------------------------------------------------------------------------------------
9684 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9685
9687 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9688
9689 IF xla_accounting_cache_pkg.GetValueChar
9690 (p_source_code => 'LEDGER_CATEGORY_CODE'
9691 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9692 AND l_bflow_method_code = 'PRIOR_ENTRY'
9693 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9694 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9695 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9696 )
9697 THEN
9698 xla_ae_lines_pkg.BflowUpgEntry
9699 (p_business_method_code => l_bflow_method_code
9700 ,p_business_class_code => l_bflow_class_code
9701 ,p_balance_type => l_balance_type_code);
9702 ELSE
9703 NULL;
9704 -- No business flow processing for business flow method of NONE.
9705 END IF;
9706
9707 --
9708 -- call analytical criteria
9709 --
9710
9711 --
9712 -- call description
9713 --
9714
9715 xla_ae_lines_pkg.SetLineDescription(
9716 p_ae_header_id => l_ae_header_id
9717 ,p_description => Description_2 (
9718 p_application_id => p_application_id
9719 , p_ae_header_id => l_ae_header_id
9720 , p_source_1 => p_source_1
9721 )
9722 );
9723
9724
9725 --
9726 -- call ADRs
9727 -- Bug 4922099
9728 --
9729 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9730 (NVL(l_actual_upg_option, 'N') = 'O') OR
9731 (NVL(l_enc_upg_option, 'N') = 'O')
9732 )
9733 THEN
9734 NULL;
9735 --
9736 --
9737
9738 l_ccid := AcctDerRule_3(
9739 p_application_id => p_application_id
9740 , p_ae_header_id => l_ae_header_id
9741 , p_source_2 => p_source_2
9742 , x_transaction_coa_id => l_adr_transaction_coa_id
9743 , x_accounting_coa_id => l_adr_accounting_coa_id
9744 , x_value_type_code => l_adr_value_type_code
9745 , p_side => 'NA'
9746 );
9747
9748 xla_ae_lines_pkg.set_ccid(
9749 p_code_combination_id => l_ccid
9750 , p_value_type_code => l_adr_value_type_code
9751 , p_transaction_coa_id => l_adr_transaction_coa_id
9752 , p_accounting_coa_id => l_adr_accounting_coa_id
9753 , p_adr_code => 'AP_INVOICE_DIST'
9754 , p_adr_type_code => 'S'
9755 , p_component_type => l_component_type
9756 , p_component_code => l_component_code
9757 , p_component_type_code => l_component_type_code
9758 , p_component_appl_id => l_component_appl_id
9759 , p_amb_context_code => l_amb_context_code
9760 , p_side => 'NA'
9761 );
9762
9763
9764 l_segment := AcctDerRule_8(
9765 p_application_id => p_application_id
9766 , p_ae_header_id => l_ae_header_id
9767 , p_source_4 => p_source_4
9768 , p_source_5 => p_source_5
9769 , p_source_6 => p_source_6
9770 , x_transaction_coa_id => l_adr_transaction_coa_id
9771 , x_accounting_coa_id => l_adr_accounting_coa_id
9772 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9773 , x_flex_value_set_id => l_adr_flex_value_set_id
9774 , x_value_type_code => l_adr_value_type_code
9775 , x_value_combination_id => l_adr_value_combination_id
9776 , x_value_segment_code => l_adr_value_segment_code
9777 , p_side => 'NA'
9778 , p_override_seg_flag => 'Y'
9779 );
9780
9781 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9782
9783 xla_ae_lines_pkg.set_segment(
9784 p_to_segment_code => 'GL_ACCOUNT'
9785 , p_segment_value => l_segment
9786 , p_from_segment_code => l_adr_value_segment_code
9787 , p_from_combination_id => l_adr_value_combination_id
9788 , p_value_type_code => l_adr_value_type_code
9789 , p_transaction_coa_id => l_adr_transaction_coa_id
9790 , p_accounting_coa_id => l_adr_accounting_coa_id
9791 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9792 , p_flex_value_set_id => l_adr_flex_value_set_id
9793 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
9794 , p_adr_type_code => 'S'
9795 , p_component_type => l_component_type
9796 , p_component_code => l_component_code
9797 , p_component_type_code => l_component_type_code
9798 , p_component_appl_id => l_component_appl_id
9799 , p_amb_context_code => l_amb_context_code
9800 , p_entity_code => 'AP_INVOICES'
9801 , p_event_class_code => 'CREDIT MEMOS'
9802 , p_side => 'NA'
9803 );
9804
9805 END IF;
9806
9807 --
9808 --
9809 END IF;
9810 --
9811 -- Bug 4922099
9812 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9813 (NVL(l_enc_upg_option, 'N') = 'O')
9814 ) AND
9815 (l_bflow_method_code = 'PRIOR_ENTRY')
9819 --
9816 )
9817 THEN
9818 IF
9820 1 = 2
9821 --
9822 THEN
9823 xla_accounting_err_pkg.build_message
9824 (p_appli_s_name => 'XLA'
9825 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9826 ,p_token_1 => 'LINE_NUMBER'
9827 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9828 ,p_token_2 => 'LINE_TYPE_NAME'
9829 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9830 l_component_type
9831 ,l_component_code
9832 ,l_component_type_code
9833 ,l_component_appl_id
9834 ,l_amb_context_code
9835 ,l_entity_code
9836 ,l_event_class_code
9837 )
9838 ,p_token_3 => 'OWNER'
9839 ,p_value_3 => xla_lookups_pkg.get_meaning(
9840 p_lookup_type => 'XLA_OWNER_TYPE'
9841 ,p_lookup_code => l_component_type_code
9842 )
9843 ,p_token_4 => 'PRODUCT_NAME'
9844 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9845 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9846 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9847 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9848 ,p_ae_header_id => NULL
9849 );
9850
9851 IF (C_LEVEL_ERROR>= g_log_level) THEN
9852 trace
9853 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9854 ,p_level => C_LEVEL_ERROR
9855 ,p_module => l_log_module);
9856 END IF;
9857 END IF;
9858 END IF;
9859 --
9860 --
9861 ------------------------------------------------------------------------------------------------
9862 -- 4219869 Business Flow
9863 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9864 -- Prior Entry. Currently, the following code is always generated.
9865 ------------------------------------------------------------------------------------------------
9866 XLA_AE_LINES_PKG.ValidateCurrentLine;
9867
9868 ------------------------------------------------------------------------------------
9869 -- 4219869 Business Flow
9870 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9871 ------------------------------------------------------------------------------------
9872 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9873
9874 ----------------------------------------------------------------------------------
9875 -- 4219869 Business Flow
9876 -- Update journal entry status -- Need to generate this within IF <condition>
9877 ----------------------------------------------------------------------------------
9878 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9879 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9880 ,p_balance_type_code => l_balance_type_code
9881 );
9882
9883 -------------------------------------------------------------------------------------------
9884 -- 4262811 - Generate the Accrual Reversal lines
9885 -------------------------------------------------------------------------------------------
9886 BEGIN
9887 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9888 (g_array_event(p_event_id).array_value_num('header_index'));
9889 IF l_acc_rev_flag IS NULL THEN
9890 l_acc_rev_flag := 'N';
9891 END IF;
9892 EXCEPTION
9893 WHEN OTHERS THEN
9894 l_acc_rev_flag := 'N';
9895 END;
9896 --
9897 IF (l_acc_rev_flag = 'Y') THEN
9898
9899 -- 4645092 ------------------------------------------------------------------------------
9900 -- To allow MPA report to determine if it should generate report process
9901 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9902 ------------------------------------------------------------------------------------------
9903
9904 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9905 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9906 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9907 -- call ADRs
9908 -- Bug 4922099
9909 --
9910 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9911 (NVL(l_actual_upg_option, 'N') = 'O') OR
9912 (NVL(l_enc_upg_option, 'N') = 'O')
9913 )
9914 THEN
9915 NULL;
9916 --
9917 --
9918
9919 l_ccid := AcctDerRule_3(
9920 p_application_id => p_application_id
9921 , p_ae_header_id => l_ae_header_id
9922 , p_source_2 => p_source_2
9923 , x_transaction_coa_id => l_adr_transaction_coa_id
9924 , x_accounting_coa_id => l_adr_accounting_coa_id
9925 , x_value_type_code => l_adr_value_type_code
9926 , p_side => 'NA'
9927 );
9928
9929 xla_ae_lines_pkg.set_ccid(
9930 p_code_combination_id => l_ccid
9931 , p_value_type_code => l_adr_value_type_code
9932 , p_transaction_coa_id => l_adr_transaction_coa_id
9933 , p_accounting_coa_id => l_adr_accounting_coa_id
9934 , p_adr_code => 'AP_INVOICE_DIST'
9935 , p_adr_type_code => 'S'
9936 , p_component_type => l_component_type
9937 , p_component_code => l_component_code
9938 , p_component_type_code => l_component_type_code
9939 , p_component_appl_id => l_component_appl_id
9940 , p_amb_context_code => l_amb_context_code
9941 , p_side => 'NA'
9942 );
9943
9944
9945 l_segment := AcctDerRule_8(
9946 p_application_id => p_application_id
9947 , p_ae_header_id => l_ae_header_id
9948 , p_source_4 => p_source_4
9949 , p_source_5 => p_source_5
9950 , p_source_6 => p_source_6
9951 , x_transaction_coa_id => l_adr_transaction_coa_id
9952 , x_accounting_coa_id => l_adr_accounting_coa_id
9953 , x_flexfield_segment_code => l_adr_flexfield_segment_code
9954 , x_flex_value_set_id => l_adr_flex_value_set_id
9955 , x_value_type_code => l_adr_value_type_code
9956 , x_value_combination_id => l_adr_value_combination_id
9957 , x_value_segment_code => l_adr_value_segment_code
9958 , p_side => 'NA'
9959 , p_override_seg_flag => 'Y'
9960 );
9961
9962 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
9963
9964 xla_ae_lines_pkg.set_segment(
9965 p_to_segment_code => 'GL_ACCOUNT'
9966 , p_segment_value => l_segment
9967 , p_from_segment_code => l_adr_value_segment_code
9968 , p_from_combination_id => l_adr_value_combination_id
9969 , p_value_type_code => l_adr_value_type_code
9970 , p_transaction_coa_id => l_adr_transaction_coa_id
9971 , p_accounting_coa_id => l_adr_accounting_coa_id
9972 , p_flexfield_segment_code => l_adr_flexfield_segment_code
9973 , p_flex_value_set_id => l_adr_flex_value_set_id
9974 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
9975 , p_adr_type_code => 'S'
9976 , p_component_type => l_component_type
9977 , p_component_code => l_component_code
9978 , p_component_type_code => l_component_type_code
9979 , p_component_appl_id => l_component_appl_id
9980 , p_amb_context_code => l_amb_context_code
9981 , p_entity_code => 'AP_INVOICES'
9982 , p_event_class_code => 'CREDIT MEMOS'
9983 , p_side => 'NA'
9984 );
9985
9986 END IF;
9987
9988 --
9989 --
9990 END IF;
9991
9992 --
9993 -- Update the line information that should be overwritten
9994 --
9995 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9996 p_header_num => 1);
9997 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9998
9999 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10000
10001 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10002 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10003 END IF;
10004
10005 --
10006 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10007 --
10008 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10009 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10010 ELSE
10011 ---------------------------------------------------------------------------------------------------
10012 -- 4262811a Switch Sign
10013 ---------------------------------------------------------------------------------------------------
10014 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10016 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10017 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10018 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10019 -- 5132302
10020 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10021 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10022
10023 END IF;
10024
10025 -- 4955764
10026 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10027 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10028
10029
10030 XLA_AE_LINES_PKG.ValidateCurrentLine;
10031 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10032
10033 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10034 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10035 ,p_balance_type_code => l_balance_type_code);
10036
10037 END IF;
10038
10039 -----------------------------------------------------------------------------------------
10040 -- 4262811 Multiperiod Accounting
10041 -----------------------------------------------------------------------------------------
10042 -- No MPA option is assigned.
10043
10044
10045 END IF;
10046 END IF;
10047 --
10048
10049 --
10050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10051 trace
10052 (p_msg => 'END of AcctLineType_26'
10053 ,p_level => C_LEVEL_PROCEDURE
10054 ,p_module => l_log_module);
10055 END IF;
10056 --
10057 EXCEPTION
10058 WHEN xla_exceptions_pkg.application_exception THEN
10059 RAISE;
10060 WHEN OTHERS THEN
10061 xla_exceptions_pkg.raise_message
10062 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_26');
10063 END AcctLineType_26;
10064 --
10065
10066 ---------------------------------------
10067 --
10068 -- PRIVATE FUNCTION
10069 -- AcctLineType_27
10070 --
10071 ---------------------------------------
10072 PROCEDURE AcctLineType_27 (
10073 p_application_id IN NUMBER
10074 ,p_event_id IN NUMBER
10075 ,p_calculate_acctd_flag IN VARCHAR2
10076 ,p_calculate_g_l_flag IN VARCHAR2
10077 ,p_actual_flag IN OUT VARCHAR2
10078 ,p_balance_type_code OUT VARCHAR2
10079 ,p_gain_or_loss_ref OUT VARCHAR2
10080
10081 --Invoice Distribution Description
10082 , p_source_1 IN VARCHAR2
10083 --Invoice Distribution Account
10084 , p_source_2 IN NUMBER
10085 --Payment Status Flag of the Invoice
10086 , p_source_7 IN VARCHAR2
10087 --Invoice Distribution Type
10088 , p_source_8 IN VARCHAR2
10089 , p_source_8_meaning IN VARCHAR2
10090 --Federal Prior Year Flag
10091 , p_source_9 IN VARCHAR2
10092 --Invoice Distribution Encumbrance Amount
10093 , p_source_10 IN NUMBER
10094 --Accrue on Receipt Option
10095 , p_source_11 IN VARCHAR2
10096 , p_source_11_meaning IN VARCHAR2
10097 --Invoice Type
10098 , p_source_13 IN VARCHAR2
10099 , p_source_13_meaning IN VARCHAR2
10100 --Accounting Reversal Indicator
10101 , p_source_15 IN VARCHAR2
10102 --Distribution Link Type
10103 , p_source_17 IN VARCHAR2
10104 --Allocation to Main Distribution Identifier
10105 , p_source_19 IN NUMBER
10106 --Invoice Identifier
10107 , p_source_20 IN NUMBER
10108 --Business Flow Accounts Payable Application Identifier
10109 , p_source_21 IN NUMBER
10110 --Business Flow Invoice Distribution Type
10111 , p_source_22 IN VARCHAR2
10112 --Business Flow Invoice Entity Code
10113 , p_source_23 IN VARCHAR2
10114 --Business Flow Invoice Distribution Identifier
10115 , p_source_24 IN NUMBER
10116 --Business Flow Invoice Identifier
10117 , p_source_25 IN NUMBER
10118 --Invoice Distribution Identifier
10119 , p_source_26 IN NUMBER
10120 --Payables Encumbrance Upgrade Credit Account
10121 , p_source_27 IN NUMBER
10122 --Payables Encumbrance Upgrade Credit Amount
10123 , p_source_28 IN NUMBER
10124 --Invoice Currency Code
10125 , p_source_29 IN VARCHAR2
10126 --Payables Encumbrance Upgrade Credit Base Amount
10127 , p_source_30 IN NUMBER
10128 --Payables Encumbrance Upgrade Debit Account
10129 , p_source_31 IN NUMBER
10130 --Payables Encumbrance Upgrade Debit Amount
10131 , p_source_32 IN NUMBER
10132 --Payables Encumbrance Upgrade Debit Base Amount
10133 , p_source_33 IN NUMBER
10134 --Payables Encumbrance Upgrade Option
10135 , p_source_34 IN VARCHAR2
10136 --Invoice Exchange Date
10137 , p_source_36 IN DATE
10138 --Invoice Exchange Rate
10139 , p_source_37 IN NUMBER
10140 --Invoice Exchange Rate Type
10141 , p_source_38 IN VARCHAR2
10142 --Deferred Accounting End Date
10143 , p_source_39 IN DATE
10144 --Deferred Accounting Option
10145 , p_source_40 IN VARCHAR2
10146 --Deferred Accounting Start Date
10147 , p_source_41 IN DATE
10148 --Override Accounted Amount Indicator
10149 , p_source_42 IN VARCHAR2
10150 , p_source_42_meaning IN VARCHAR2
10151 --Invoice Supplier Identifier
10152 , p_source_43 IN NUMBER
10153 --Invoice Supplier Site Identifier
10154 , p_source_44 IN NUMBER
10155 --Third Party Type
10156 , p_source_45 IN VARCHAR2
10157 --Parent Reversal Identifier
10158 , p_source_46 IN NUMBER
10159 --Invoice Distribution Statistical Amount
10160 , p_source_47 IN NUMBER
10161 --Invoice Distribution Tax Line Identifier
10162 , p_source_48 IN NUMBER
10163 --Invoice Distribution Tax Distribution Identifier from Tax
10164 , p_source_49 IN NUMBER
10165 --Invoice Distribution Summary Tax Line Identifier
10166 , p_source_50 IN NUMBER
10167 --Payables Upgrade Credit Encumbrance Type Identifier
10168 , p_source_51 IN NUMBER
10169 --Payables Upgrade Debit Encumbrance Type Identifier
10170 , p_source_52 IN NUMBER
10171 --Invoice Distribution Amount
10172 , p_source_55 IN NUMBER
10173 --Invoice Distribution Ledger Amount
10174 , p_source_56 IN NUMBER
10175 )
10176 IS
10177
10178 l_component_type VARCHAR2(80);
10179 l_component_code VARCHAR2(30);
10180 l_component_type_code VARCHAR2(1);
10181 l_component_appl_id INTEGER;
10182 l_amb_context_code VARCHAR2(30);
10183 l_entity_code VARCHAR2(30);
10184 l_event_class_code VARCHAR2(30);
10185 l_ae_header_id NUMBER;
10186 l_event_type_code VARCHAR2(30);
10187 l_line_definition_code VARCHAR2(30);
10188 l_line_definition_owner_code VARCHAR2(1);
10189 --
10190 -- adr variables
10191 l_segment VARCHAR2(30);
10192 l_ccid NUMBER;
10193 l_adr_transaction_coa_id NUMBER;
10194 l_adr_accounting_coa_id NUMBER;
10195 l_adr_flexfield_segment_code VARCHAR2(30);
10196 l_adr_flex_value_set_id NUMBER;
10197 l_adr_value_type_code VARCHAR2(30);
10198 l_adr_value_combination_id NUMBER;
10199 l_adr_value_segment_code VARCHAR2(30);
10200
10201 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10202 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10203 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10204 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10205
10206 -- 4262811 Variables ------------------------------------------------------------------------------------------
10207 l_entered_amt_idx NUMBER;
10208 l_accted_amt_idx NUMBER;
10209 l_acc_rev_flag VARCHAR2(1);
10210 l_accrual_line_num NUMBER;
10211 l_tmp_amt NUMBER;
10212 l_acc_rev_natural_side_code VARCHAR2(1);
10213
10214 l_num_entries NUMBER;
10215 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10216 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10217 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10218 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10219 l_recog_line_1 NUMBER;
10220 l_recog_line_2 NUMBER;
10221
10222 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10223 l_bflow_applied_to_amt NUMBER; -- 5132302
10224 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10225
10226 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10227
10228 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10229 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10230
10231 ---------------------------------------------------------------------------------------------------------------
10232
10233
10234 --
10235 -- bulk performance
10236 --
10237 l_balance_type_code VARCHAR2(1);
10238 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10239 l_log_module VARCHAR2(240);
10240
10241 --
10242 -- Upgrade strategy
10243 --
10244 l_actual_upg_option VARCHAR2(1);
10245 l_enc_upg_option VARCHAR2(1);
10246
10247 --
10248 BEGIN
10249 --
10250 IF g_log_enabled THEN
10251 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
10252 END IF;
10253 --
10254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10255
10256 trace
10257 (p_msg => 'BEGIN of AcctLineType_27'
10258 ,p_level => C_LEVEL_PROCEDURE
10259 ,p_module => l_log_module);
10260
10261 END IF;
10262 --
10263 l_component_type := 'AMB_JLT';
10264 l_component_code := 'FV_AP_CREDIT_MEMOS_EXP_DR';
10265 l_component_type_code := 'S';
10266 l_component_appl_id := 200;
10267 l_amb_context_code := 'DEFAULT';
10268 l_entity_code := 'AP_INVOICES';
10269 l_event_class_code := 'CREDIT MEMOS';
10270 l_event_type_code := 'CREDIT MEMOS_ALL';
10271 l_line_definition_owner_code := 'S';
10272 l_line_definition_code := 'FV_AP_ACCRUAL_CREDITMEMOS_ALL';
10273 --
10274 l_balance_type_code := 'A';
10275 l_segment := NULL;
10276 l_ccid := NULL;
10277 l_adr_transaction_coa_id := NULL;
10278 l_adr_accounting_coa_id := NULL;
10279 l_adr_flexfield_segment_code := NULL;
10280 l_adr_flex_value_set_id := NULL;
10281 l_adr_value_type_code := NULL;
10282 l_adr_value_combination_id := NULL;
10283 l_adr_value_segment_code := NULL;
10284
10285 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10286 l_bflow_class_code := ''; -- 4219869 Business Flow
10287 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10288 l_budgetary_control_flag := 'Y';
10289
10290 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10291 l_bflow_applied_to_amt := NULL; -- 5132302
10292 l_entered_amt_idx := NULL; -- 4262811
10293 l_accted_amt_idx := NULL; -- 4262811
10294 l_acc_rev_flag := NULL; -- 4262811
10295 l_accrual_line_num := NULL; -- 4262811
10296 l_tmp_amt := NULL; -- 4262811
10297 --
10298
10299 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10300 l_balance_type_code <> 'B' THEN
10301 IF NVL(p_source_13,'
10302 ') = 'CREDIT' AND
10303 (NVL(p_source_8,'
10304 ') = 'ITEM' OR
10305 NVL(p_source_8,'
10306 ') = 'MISCELLANEOUS' OR
10307 NVL(p_source_8,'
10308 ') = 'FREIGHT' OR
10309 NVL(p_source_8,'
10310 ') = 'IPV' OR
10311 NVL(p_source_8,'
10312 ') = 'ACCRUAL') AND
10313 (NVL(p_source_9,'
10314 ') = 'N' OR
10315 (NVL(p_source_9,'
10316 ') = 'Y' AND
10317 NVL(p_source_8,'
10318 ') <> 'IPV')
10319 ) THEN
10320
10321 --
10322 XLA_AE_LINES_PKG.SetNewLine;
10323
10324 p_balance_type_code := l_balance_type_code;
10325 -- set the flag so later we will know whether the gain loss line needs to be created
10326
10327 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10328 p_actual_flag :='A';
10329 END IF;
10330
10331 --
10332 -- bulk performance
10333 --
10334 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10335 p_header_num => 0); -- 4262811
10336 --
10337 -- set accounting line options
10338 --
10339 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10340 p_natural_side_code => 'C'
10341 , p_gain_or_loss_flag => 'N'
10342 , p_gl_transfer_mode_code => 'S'
10343 , p_acct_entry_type_code => 'A'
10344 , p_switch_side_flag => 'N'
10345 , p_merge_duplicate_code => 'N'
10346 );
10347 --
10348 l_acc_rev_natural_side_code := 'D'; -- 4262811
10349 --
10350 --
10351 -- set accounting line type info
10352 --
10353 xla_ae_lines_pkg.SetAcctLineType
10354 (p_component_type => l_component_type
10355 ,p_event_type_code => l_event_type_code
10356 ,p_line_definition_owner_code => l_line_definition_owner_code
10357 ,p_line_definition_code => l_line_definition_code
10358 ,p_accounting_line_code => l_component_code
10359 ,p_accounting_line_type_code => l_component_type_code
10360 ,p_accounting_line_appl_id => l_component_appl_id
10361 ,p_amb_context_code => l_amb_context_code
10362 ,p_entity_code => l_entity_code
10363 ,p_event_class_code => l_event_class_code);
10364 --
10365 -- set accounting class
10366 --
10367 xla_ae_lines_pkg.SetAcctClass(
10368 p_accounting_class_code => 'ACCOUNTSPAYABLE'
10369 , p_ae_header_id => l_ae_header_id
10370 );
10371
10372 --
10373 -- set rounding class
10374 --
10375 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10376 'ACCOUNTSPAYABLE';
10377
10378 --
10379 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10380 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10381 --
10382 -- bulk performance
10383 --
10384 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10385
10386 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10387 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10388
10389 -- 4955764
10390 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10391 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10392
10393 -- 4458381 Public Sector Enh
10394
10395 --
10396 -- set accounting attributes for the line type
10397 --
10398 l_entered_amt_idx := 23;
10399 l_accted_amt_idx := 28;
10400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10401 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10402 l_rec_acct_attrs.array_char_value(1) := p_source_15;
10403 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10404 l_rec_acct_attrs.array_num_value(2) :=
10405 xla_ae_sources_pkg.GetSystemSourceNum(
10406 p_source_code => 'XLA_EVENT_APPL_ID'
10407 , p_source_type_code => 'Y'
10408 , p_source_application_id => 602
10409 );
10410 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10411 l_rec_acct_attrs.array_char_value(3) := p_source_17;
10412 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10413 l_rec_acct_attrs.array_char_value(4) :=
10414 xla_ae_sources_pkg.GetSystemSourceChar(
10415 p_source_code => 'XLA_ENTITY_CODE'
10416 , p_source_type_code => 'Y'
10417 , p_source_application_id => 602
10418 );
10419 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10420 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
10421 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10422 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
10423 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10424 l_rec_acct_attrs.array_num_value(7) := p_source_21;
10425 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10426 l_rec_acct_attrs.array_char_value(8) := p_source_22;
10427 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10428 l_rec_acct_attrs.array_char_value(9) := p_source_23;
10429 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10430 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
10431 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10432 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
10433 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10434 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
10435 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10436 l_rec_acct_attrs.array_char_value(13) := p_source_17;
10437 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10438 l_rec_acct_attrs.array_num_value(14) := p_source_27;
10439 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10440 l_rec_acct_attrs.array_num_value(15) := p_source_28;
10441 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10442 l_rec_acct_attrs.array_char_value(16) := p_source_29;
10443 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10444 l_rec_acct_attrs.array_num_value(17) := p_source_30;
10445 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10446 l_rec_acct_attrs.array_num_value(18) := p_source_31;
10447 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10448 l_rec_acct_attrs.array_num_value(19) := p_source_32;
10449 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10450 l_rec_acct_attrs.array_char_value(20) := p_source_29;
10451 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10452 l_rec_acct_attrs.array_num_value(21) := p_source_33;
10453 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10454 l_rec_acct_attrs.array_char_value(22) := p_source_34;
10455 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
10456 l_rec_acct_attrs.array_num_value(23) := p_source_55;
10457 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
10458 l_rec_acct_attrs.array_char_value(24) := p_source_29;
10459 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
10460 l_rec_acct_attrs.array_date_value(25) := p_source_36;
10461 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
10462 l_rec_acct_attrs.array_num_value(26) := p_source_37;
10463 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
10464 l_rec_acct_attrs.array_char_value(27) := p_source_38;
10465 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
10466 l_rec_acct_attrs.array_num_value(28) := p_source_56;
10467 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
10468 l_rec_acct_attrs.array_date_value(29) := p_source_39;
10469 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
10470 l_rec_acct_attrs.array_char_value(30) := p_source_40;
10471 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
10472 l_rec_acct_attrs.array_date_value(31) := p_source_41;
10473 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
10474 l_rec_acct_attrs.array_char_value(32) := p_source_42;
10475 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
10476 l_rec_acct_attrs.array_num_value(33) := p_source_43;
10477 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
10478 l_rec_acct_attrs.array_num_value(34) := p_source_44;
10479 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
10480 l_rec_acct_attrs.array_char_value(35) := p_source_45;
10481 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
10482 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
10483 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
10484 l_rec_acct_attrs.array_char_value(37) := p_source_17;
10485 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
10486 l_rec_acct_attrs.array_num_value(38) := p_source_47;
10487 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
10488 l_rec_acct_attrs.array_num_value(39) := p_source_48;
10489 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
10490 l_rec_acct_attrs.array_num_value(40) := p_source_49;
10491 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
10492 l_rec_acct_attrs.array_num_value(41) := p_source_50;
10493 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
10494 l_rec_acct_attrs.array_num_value(42) := p_source_51;
10495 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
10496 l_rec_acct_attrs.array_num_value(43) := p_source_52;
10497
10498 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10499 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10500
10501 ---------------------------------------------------------------------------------------------------------------
10502 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10503 ---------------------------------------------------------------------------------------------------------------
10504 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10505
10506 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10507 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10508
10509 IF xla_accounting_cache_pkg.GetValueChar
10510 (p_source_code => 'LEDGER_CATEGORY_CODE'
10511 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10512 AND l_bflow_method_code = 'PRIOR_ENTRY'
10513 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10514 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10515 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10516 )
10517 THEN
10518 xla_ae_lines_pkg.BflowUpgEntry
10519 (p_business_method_code => l_bflow_method_code
10520 ,p_business_class_code => l_bflow_class_code
10521 ,p_balance_type => l_balance_type_code);
10522 ELSE
10523 NULL;
10524 -- No business flow processing for business flow method of NONE.
10525 END IF;
10526
10527 --
10528 -- call analytical criteria
10529 --
10530
10531 --
10532 -- call description
10533 --
10534
10535 xla_ae_lines_pkg.SetLineDescription(
10536 p_ae_header_id => l_ae_header_id
10537 ,p_description => Description_2 (
10538 p_application_id => p_application_id
10539 , p_ae_header_id => l_ae_header_id
10540 , p_source_1 => p_source_1
10541 )
10542 );
10543
10544
10545 --
10546 -- call ADRs
10547 -- Bug 4922099
10548 --
10549 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10550 (NVL(l_actual_upg_option, 'N') = 'O') OR
10551 (NVL(l_enc_upg_option, 'N') = 'O')
10552 )
10553 THEN
10554 NULL;
10555 --
10556 --
10557
10558 l_ccid := AcctDerRule_3(
10559 p_application_id => p_application_id
10560 , p_ae_header_id => l_ae_header_id
10561 , p_source_2 => p_source_2
10562 , x_transaction_coa_id => l_adr_transaction_coa_id
10563 , x_accounting_coa_id => l_adr_accounting_coa_id
10564 , x_value_type_code => l_adr_value_type_code
10565 , p_side => 'NA'
10566 );
10567
10568 xla_ae_lines_pkg.set_ccid(
10569 p_code_combination_id => l_ccid
10570 , p_value_type_code => l_adr_value_type_code
10571 , p_transaction_coa_id => l_adr_transaction_coa_id
10572 , p_accounting_coa_id => l_adr_accounting_coa_id
10573 , p_adr_code => 'AP_INVOICE_DIST'
10574 , p_adr_type_code => 'S'
10575 , p_component_type => l_component_type
10576 , p_component_code => l_component_code
10577 , p_component_type_code => l_component_type_code
10578 , p_component_appl_id => l_component_appl_id
10579 , p_amb_context_code => l_amb_context_code
10580 , p_side => 'NA'
10581 );
10582
10583
10584 l_segment := AcctDerRule_12(
10585 p_application_id => p_application_id
10586 , p_ae_header_id => l_ae_header_id
10587 , p_source_7 => p_source_7
10588 , p_source_8 => p_source_8
10589 , p_source_8_meaning => p_source_8_meaning
10590 , p_source_9 => p_source_9
10591 , p_source_10 => p_source_10
10592 , p_source_11 => p_source_11
10593 , p_source_11_meaning => p_source_11_meaning
10594 , x_transaction_coa_id => l_adr_transaction_coa_id
10595 , x_accounting_coa_id => l_adr_accounting_coa_id
10596 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10597 , x_flex_value_set_id => l_adr_flex_value_set_id
10598 , x_value_type_code => l_adr_value_type_code
10599 , x_value_combination_id => l_adr_value_combination_id
10600 , x_value_segment_code => l_adr_value_segment_code
10601 , p_side => 'NA'
10602 , p_override_seg_flag => 'Y'
10603 );
10604
10605 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10606
10607 xla_ae_lines_pkg.set_segment(
10608 p_to_segment_code => 'GL_ACCOUNT'
10609 , p_segment_value => l_segment
10610 , p_from_segment_code => l_adr_value_segment_code
10611 , p_from_combination_id => l_adr_value_combination_id
10612 , p_value_type_code => l_adr_value_type_code
10613 , p_transaction_coa_id => l_adr_transaction_coa_id
10614 , p_accounting_coa_id => l_adr_accounting_coa_id
10615 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10616 , p_flex_value_set_id => l_adr_flex_value_set_id
10617 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
10618 , p_adr_type_code => 'S'
10619 , p_component_type => l_component_type
10620 , p_component_code => l_component_code
10621 , p_component_type_code => l_component_type_code
10622 , p_component_appl_id => l_component_appl_id
10623 , p_amb_context_code => l_amb_context_code
10624 , p_entity_code => 'AP_INVOICES'
10625 , p_event_class_code => 'CREDIT MEMOS'
10626 , p_side => 'NA'
10627 );
10628
10629 END IF;
10630
10631 --
10632 --
10633 END IF;
10634 --
10635 -- Bug 4922099
10636 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10637 (NVL(l_enc_upg_option, 'N') = 'O')
10638 ) AND
10639 (l_bflow_method_code = 'PRIOR_ENTRY')
10640 )
10641 THEN
10642 IF
10643 --
10644 1 = 2
10645 --
10646 THEN
10647 xla_accounting_err_pkg.build_message
10648 (p_appli_s_name => 'XLA'
10649 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10650 ,p_token_1 => 'LINE_NUMBER'
10651 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10652 ,p_token_2 => 'LINE_TYPE_NAME'
10653 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10654 l_component_type
10655 ,l_component_code
10656 ,l_component_type_code
10657 ,l_component_appl_id
10658 ,l_amb_context_code
10659 ,l_entity_code
10660 ,l_event_class_code
10661 )
10662 ,p_token_3 => 'OWNER'
10663 ,p_value_3 => xla_lookups_pkg.get_meaning(
10664 p_lookup_type => 'XLA_OWNER_TYPE'
10665 ,p_lookup_code => l_component_type_code
10666 )
10667 ,p_token_4 => 'PRODUCT_NAME'
10668 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10669 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10670 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10671 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10672 ,p_ae_header_id => NULL
10673 );
10674
10675 IF (C_LEVEL_ERROR>= g_log_level) THEN
10676 trace
10677 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10678 ,p_level => C_LEVEL_ERROR
10679 ,p_module => l_log_module);
10680 END IF;
10681 END IF;
10682 END IF;
10683 --
10684 --
10685 ------------------------------------------------------------------------------------------------
10686 -- 4219869 Business Flow
10687 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10688 -- Prior Entry. Currently, the following code is always generated.
10689 ------------------------------------------------------------------------------------------------
10690 XLA_AE_LINES_PKG.ValidateCurrentLine;
10691
10692 ------------------------------------------------------------------------------------
10693 -- 4219869 Business Flow
10694 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10695 ------------------------------------------------------------------------------------
10696 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10697
10698 ----------------------------------------------------------------------------------
10699 -- 4219869 Business Flow
10700 -- Update journal entry status -- Need to generate this within IF <condition>
10701 ----------------------------------------------------------------------------------
10702 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10703 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10704 ,p_balance_type_code => l_balance_type_code
10705 );
10706
10707 -------------------------------------------------------------------------------------------
10708 -- 4262811 - Generate the Accrual Reversal lines
10709 -------------------------------------------------------------------------------------------
10710 BEGIN
10711 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10712 (g_array_event(p_event_id).array_value_num('header_index'));
10713 IF l_acc_rev_flag IS NULL THEN
10714 l_acc_rev_flag := 'N';
10715 END IF;
10716 EXCEPTION
10717 WHEN OTHERS THEN
10718 l_acc_rev_flag := 'N';
10719 END;
10720 --
10721 IF (l_acc_rev_flag = 'Y') THEN
10722
10723 -- 4645092 ------------------------------------------------------------------------------
10724 -- To allow MPA report to determine if it should generate report process
10725 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10726 ------------------------------------------------------------------------------------------
10727
10728 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10729 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10730 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10731 -- call ADRs
10732 -- Bug 4922099
10733 --
10734 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10735 (NVL(l_actual_upg_option, 'N') = 'O') OR
10736 (NVL(l_enc_upg_option, 'N') = 'O')
10737 )
10738 THEN
10739 NULL;
10740 --
10741 --
10742
10743 l_ccid := AcctDerRule_3(
10744 p_application_id => p_application_id
10745 , p_ae_header_id => l_ae_header_id
10746 , p_source_2 => p_source_2
10747 , x_transaction_coa_id => l_adr_transaction_coa_id
10748 , x_accounting_coa_id => l_adr_accounting_coa_id
10749 , x_value_type_code => l_adr_value_type_code
10750 , p_side => 'NA'
10751 );
10752
10753 xla_ae_lines_pkg.set_ccid(
10754 p_code_combination_id => l_ccid
10755 , p_value_type_code => l_adr_value_type_code
10756 , p_transaction_coa_id => l_adr_transaction_coa_id
10757 , p_accounting_coa_id => l_adr_accounting_coa_id
10758 , p_adr_code => 'AP_INVOICE_DIST'
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_side => 'NA'
10766 );
10767
10768
10769 l_segment := AcctDerRule_12(
10770 p_application_id => p_application_id
10771 , p_ae_header_id => l_ae_header_id
10772 , p_source_7 => p_source_7
10773 , p_source_8 => p_source_8
10774 , p_source_8_meaning => p_source_8_meaning
10775 , p_source_9 => p_source_9
10776 , p_source_10 => p_source_10
10777 , p_source_11 => p_source_11
10778 , p_source_11_meaning => p_source_11_meaning
10779 , x_transaction_coa_id => l_adr_transaction_coa_id
10780 , x_accounting_coa_id => l_adr_accounting_coa_id
10781 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10782 , x_flex_value_set_id => l_adr_flex_value_set_id
10783 , x_value_type_code => l_adr_value_type_code
10784 , x_value_combination_id => l_adr_value_combination_id
10785 , x_value_segment_code => l_adr_value_segment_code
10786 , p_side => 'NA'
10787 , p_override_seg_flag => 'Y'
10788 );
10789
10790 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10791
10792 xla_ae_lines_pkg.set_segment(
10793 p_to_segment_code => 'GL_ACCOUNT'
10794 , p_segment_value => l_segment
10795 , p_from_segment_code => l_adr_value_segment_code
10796 , p_from_combination_id => l_adr_value_combination_id
10797 , p_value_type_code => l_adr_value_type_code
10798 , p_transaction_coa_id => l_adr_transaction_coa_id
10799 , p_accounting_coa_id => l_adr_accounting_coa_id
10800 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10801 , p_flex_value_set_id => l_adr_flex_value_set_id
10802 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
10803 , p_adr_type_code => 'S'
10804 , p_component_type => l_component_type
10805 , p_component_code => l_component_code
10806 , p_component_type_code => l_component_type_code
10807 , p_component_appl_id => l_component_appl_id
10808 , p_amb_context_code => l_amb_context_code
10809 , p_entity_code => 'AP_INVOICES'
10810 , p_event_class_code => 'CREDIT MEMOS'
10811 , p_side => 'NA'
10812 );
10813
10814 END IF;
10815
10816 --
10817 --
10818 END IF;
10819
10820 --
10821 -- Update the line information that should be overwritten
10822 --
10823 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10824 p_header_num => 1);
10825 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10826
10827 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10828
10829 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10830 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10831 END IF;
10832
10833 --
10834 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10835 --
10836 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10837 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10838 ELSE
10839 ---------------------------------------------------------------------------------------------------
10840 -- 4262811a Switch Sign
10841 ---------------------------------------------------------------------------------------------------
10842 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10843 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10844 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10845 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10846 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10847 -- 5132302
10848 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10849 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10850
10851 END IF;
10852
10853 -- 4955764
10854 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10855 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10856
10857
10858 XLA_AE_LINES_PKG.ValidateCurrentLine;
10859 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10860
10861 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10862 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10863 ,p_balance_type_code => l_balance_type_code);
10864
10865 END IF;
10866
10867 -----------------------------------------------------------------------------------------
10868 -- 4262811 Multiperiod Accounting
10869 -----------------------------------------------------------------------------------------
10870 -- No MPA option is assigned.
10871
10872
10873 END IF;
10874 END IF;
10875 --
10876
10877 --
10878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10879 trace
10880 (p_msg => 'END of AcctLineType_27'
10881 ,p_level => C_LEVEL_PROCEDURE
10882 ,p_module => l_log_module);
10883 END IF;
10884 --
10885 EXCEPTION
10886 WHEN xla_exceptions_pkg.application_exception THEN
10887 RAISE;
10888 WHEN OTHERS THEN
10889 xla_exceptions_pkg.raise_message
10890 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_27');
10891 END AcctLineType_27;
10892 --
10893
10894 ---------------------------------------
10895 --
10896 -- PRIVATE FUNCTION
10897 -- AcctLineType_28
10898 --
10899 ---------------------------------------
10900 PROCEDURE AcctLineType_28 (
10901 p_application_id IN NUMBER
10902 ,p_event_id IN NUMBER
10903 ,p_calculate_acctd_flag IN VARCHAR2
10904 ,p_calculate_g_l_flag IN VARCHAR2
10905 ,p_actual_flag IN OUT VARCHAR2
10906 ,p_balance_type_code OUT VARCHAR2
10907 ,p_gain_or_loss_ref OUT VARCHAR2
10908
10909 --Invoice Distribution Description
10910 , p_source_1 IN VARCHAR2
10911 --Invoice Distribution Account
10912 , p_source_2 IN NUMBER
10913 --Federal Fund Category
10914 , p_source_4 IN VARCHAR2
10915 --Federal Fund Expired Status
10916 , p_source_5 IN VARCHAR2
10917 --Federal Fund Category Description
10918 , p_source_6 IN VARCHAR2
10919 --Invoice Distribution Type
10920 , p_source_8 IN VARCHAR2
10921 , p_source_8_meaning IN VARCHAR2
10922 --Invoice Type
10923 , p_source_13 IN VARCHAR2
10924 , p_source_13_meaning IN VARCHAR2
10925 --Accounting Reversal Indicator
10926 , p_source_15 IN VARCHAR2
10927 --Distribution Link Type
10928 , p_source_17 IN VARCHAR2
10929 --Allocation to Main Distribution Identifier
10930 , p_source_19 IN NUMBER
10931 --Invoice Identifier
10932 , p_source_20 IN NUMBER
10933 --Business Flow Accounts Payable Application Identifier
10934 , p_source_21 IN NUMBER
10935 --Business Flow Invoice Distribution Type
10936 , p_source_22 IN VARCHAR2
10937 --Business Flow Invoice Entity Code
10938 , p_source_23 IN VARCHAR2
10939 --Business Flow Invoice Distribution Identifier
10940 , p_source_24 IN NUMBER
10941 --Business Flow Invoice Identifier
10942 , p_source_25 IN NUMBER
10943 --Invoice Distribution Identifier
10944 , p_source_26 IN NUMBER
10945 --Payables Encumbrance Upgrade Credit Account
10946 , p_source_27 IN NUMBER
10947 --Payables Encumbrance Upgrade Credit Amount
10948 , p_source_28 IN NUMBER
10949 --Invoice Currency Code
10950 , p_source_29 IN VARCHAR2
10951 --Payables Encumbrance Upgrade Credit Base Amount
10952 , p_source_30 IN NUMBER
10953 --Payables Encumbrance Upgrade Debit Account
10954 , p_source_31 IN NUMBER
10955 --Payables Encumbrance Upgrade Debit Amount
10956 , p_source_32 IN NUMBER
10957 --Payables Encumbrance Upgrade Debit Base Amount
10958 , p_source_33 IN NUMBER
10959 --Payables Encumbrance Upgrade Option
10960 , p_source_34 IN VARCHAR2
10961 --Invoice Exchange Date
10962 , p_source_36 IN DATE
10963 --Invoice Exchange Rate
10964 , p_source_37 IN NUMBER
10965 --Invoice Exchange Rate Type
10966 , p_source_38 IN VARCHAR2
10967 --Deferred Accounting End Date
10968 , p_source_39 IN DATE
10969 --Deferred Accounting Option
10970 , p_source_40 IN VARCHAR2
10971 --Deferred Accounting Start Date
10972 , p_source_41 IN DATE
10973 --Override Accounted Amount Indicator
10974 , p_source_42 IN VARCHAR2
10975 , p_source_42_meaning IN VARCHAR2
10976 --Invoice Supplier Identifier
10977 , p_source_43 IN NUMBER
10978 --Invoice Supplier Site Identifier
10979 , p_source_44 IN NUMBER
10980 --Third Party Type
10981 , p_source_45 IN VARCHAR2
10982 --Parent Reversal Identifier
10983 , p_source_46 IN NUMBER
10984 --Invoice Distribution Tax Line Identifier
10985 , p_source_48 IN NUMBER
10986 --Invoice Distribution Tax Distribution Identifier from Tax
10987 , p_source_49 IN NUMBER
10988 --Invoice Distribution Summary Tax Line Identifier
10989 , p_source_50 IN NUMBER
10990 --Payables Upgrade Credit Encumbrance Type Identifier
10991 , p_source_51 IN NUMBER
10992 --Payables Upgrade Debit Encumbrance Type Identifier
10993 , p_source_52 IN NUMBER
10994 --Invoice Distribution Amount
10995 , p_source_55 IN NUMBER
10996 --Invoice Distribution Ledger Amount Before Rounding
10997 , p_source_58 IN NUMBER
10998 )
10999 IS
11000
11001 l_component_type VARCHAR2(80);
11002 l_component_code VARCHAR2(30);
11003 l_component_type_code VARCHAR2(1);
11004 l_component_appl_id INTEGER;
11005 l_amb_context_code VARCHAR2(30);
11006 l_entity_code VARCHAR2(30);
11007 l_event_class_code VARCHAR2(30);
11008 l_ae_header_id NUMBER;
11009 l_event_type_code VARCHAR2(30);
11010 l_line_definition_code VARCHAR2(30);
11011 l_line_definition_owner_code VARCHAR2(1);
11012 --
11013 -- adr variables
11014 l_segment VARCHAR2(30);
11015 l_ccid NUMBER;
11016 l_adr_transaction_coa_id NUMBER;
11017 l_adr_accounting_coa_id NUMBER;
11018 l_adr_flexfield_segment_code VARCHAR2(30);
11019 l_adr_flex_value_set_id NUMBER;
11020 l_adr_value_type_code VARCHAR2(30);
11021 l_adr_value_combination_id NUMBER;
11022 l_adr_value_segment_code VARCHAR2(30);
11023
11024 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11025 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11026 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11027 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11028
11029 -- 4262811 Variables ------------------------------------------------------------------------------------------
11030 l_entered_amt_idx NUMBER;
11031 l_accted_amt_idx NUMBER;
11032 l_acc_rev_flag VARCHAR2(1);
11033 l_accrual_line_num NUMBER;
11034 l_tmp_amt NUMBER;
11035 l_acc_rev_natural_side_code VARCHAR2(1);
11036
11037 l_num_entries NUMBER;
11038 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11039 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11040 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11041 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11042 l_recog_line_1 NUMBER;
11043 l_recog_line_2 NUMBER;
11044
11045 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11046 l_bflow_applied_to_amt NUMBER; -- 5132302
11047 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11048
11049 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11050
11051 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11052 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11053
11054 ---------------------------------------------------------------------------------------------------------------
11055
11056
11057 --
11058 -- bulk performance
11059 --
11060 l_balance_type_code VARCHAR2(1);
11061 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11062 l_log_module VARCHAR2(240);
11063
11064 --
11065 -- Upgrade strategy
11066 --
11067 l_actual_upg_option VARCHAR2(1);
11068 l_enc_upg_option VARCHAR2(1);
11069
11070 --
11071 BEGIN
11072 --
11073 IF g_log_enabled THEN
11074 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
11075 END IF;
11076 --
11077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11078
11079 trace
11080 (p_msg => 'BEGIN of AcctLineType_28'
11081 ,p_level => C_LEVEL_PROCEDURE
11082 ,p_module => l_log_module);
11083
11084 END IF;
11085 --
11086 l_component_type := 'AMB_JLT';
11087 l_component_code := 'FV_AP_DEBIT_MEMOS_EXP_CR';
11088 l_component_type_code := 'S';
11089 l_component_appl_id := 200;
11090 l_amb_context_code := 'DEFAULT';
11091 l_entity_code := 'AP_INVOICES';
11092 l_event_class_code := 'DEBIT MEMOS';
11093 l_event_type_code := 'DEBIT MEMOS_ALL';
11094 l_line_definition_owner_code := 'S';
11095 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
11096 --
11097 l_balance_type_code := 'A';
11098 l_segment := NULL;
11099 l_ccid := NULL;
11100 l_adr_transaction_coa_id := NULL;
11101 l_adr_accounting_coa_id := NULL;
11102 l_adr_flexfield_segment_code := NULL;
11103 l_adr_flex_value_set_id := NULL;
11104 l_adr_value_type_code := NULL;
11105 l_adr_value_combination_id := NULL;
11106 l_adr_value_segment_code := NULL;
11107
11108 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11109 l_bflow_class_code := ''; -- 4219869 Business Flow
11110 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11111 l_budgetary_control_flag := 'Y';
11112
11113 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11114 l_bflow_applied_to_amt := NULL; -- 5132302
11115 l_entered_amt_idx := NULL; -- 4262811
11116 l_accted_amt_idx := NULL; -- 4262811
11117 l_acc_rev_flag := NULL; -- 4262811
11118 l_accrual_line_num := NULL; -- 4262811
11119 l_tmp_amt := NULL; -- 4262811
11120 --
11121
11122 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11123 l_balance_type_code <> 'B' THEN
11124 IF NVL(p_source_13,'
11125 ') = 'DEBIT' AND
11126 (NVL(p_source_8,'
11127 ') = 'ITEM' OR
11128 NVL(p_source_8,'
11129 ') = 'MISCELLANEOUS' OR
11130 NVL(p_source_8,'
11131 ') = 'FREIGHT' OR
11132 NVL(p_source_8,'
11133 ') = 'IPV' OR
11134 NVL(p_source_8,'
11135 ') = 'ACCRUAL')
11136 THEN
11137
11138 --
11139 XLA_AE_LINES_PKG.SetNewLine;
11140
11141 p_balance_type_code := l_balance_type_code;
11142 -- set the flag so later we will know whether the gain loss line needs to be created
11143
11144 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11145 p_actual_flag :='A';
11146 END IF;
11147
11148 --
11149 -- bulk performance
11150 --
11151 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11152 p_header_num => 0); -- 4262811
11153 --
11154 -- set accounting line options
11155 --
11156 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11157 p_natural_side_code => 'D'
11158 , p_gain_or_loss_flag => 'N'
11159 , p_gl_transfer_mode_code => 'S'
11160 , p_acct_entry_type_code => 'A'
11161 , p_switch_side_flag => 'N'
11162 , p_merge_duplicate_code => 'N'
11163 );
11164 --
11165 l_acc_rev_natural_side_code := 'C'; -- 4262811
11166 --
11167 --
11168 -- set accounting line type info
11169 --
11170 xla_ae_lines_pkg.SetAcctLineType
11171 (p_component_type => l_component_type
11172 ,p_event_type_code => l_event_type_code
11173 ,p_line_definition_owner_code => l_line_definition_owner_code
11174 ,p_line_definition_code => l_line_definition_code
11175 ,p_accounting_line_code => l_component_code
11176 ,p_accounting_line_type_code => l_component_type_code
11177 ,p_accounting_line_appl_id => l_component_appl_id
11178 ,p_amb_context_code => l_amb_context_code
11179 ,p_entity_code => l_entity_code
11180 ,p_event_class_code => l_event_class_code);
11181 --
11182 -- set accounting class
11183 --
11184 xla_ae_lines_pkg.SetAcctClass(
11185 p_accounting_class_code => 'ACCOUNTSPAYABLE'
11186 , p_ae_header_id => l_ae_header_id
11187 );
11188
11189 --
11190 -- set rounding class
11191 --
11192 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11193 'ACCOUNTSPAYABLE';
11194
11195 --
11196 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11197 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11198 --
11199 -- bulk performance
11200 --
11201 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11202
11203 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11204 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11205
11206 -- 4955764
11207 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11208 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11209
11210 -- 4458381 Public Sector Enh
11211
11212 --
11213 -- set accounting attributes for the line type
11214 --
11215 l_entered_amt_idx := 23;
11216 l_accted_amt_idx := 28;
11217 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11218 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11219 l_rec_acct_attrs.array_char_value(1) := p_source_15;
11220 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11221 l_rec_acct_attrs.array_num_value(2) :=
11222 xla_ae_sources_pkg.GetSystemSourceNum(
11223 p_source_code => 'XLA_EVENT_APPL_ID'
11224 , p_source_type_code => 'Y'
11225 , p_source_application_id => 602
11226 );
11227 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11228 l_rec_acct_attrs.array_char_value(3) := p_source_17;
11229 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11230 l_rec_acct_attrs.array_char_value(4) :=
11231 xla_ae_sources_pkg.GetSystemSourceChar(
11232 p_source_code => 'XLA_ENTITY_CODE'
11233 , p_source_type_code => 'Y'
11234 , p_source_application_id => 602
11235 );
11236 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11237 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
11238 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11239 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
11240 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11241 l_rec_acct_attrs.array_num_value(7) := p_source_21;
11242 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11243 l_rec_acct_attrs.array_char_value(8) := p_source_22;
11244 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11245 l_rec_acct_attrs.array_char_value(9) := p_source_23;
11246 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11247 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
11248 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11249 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
11250 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11251 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
11252 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11253 l_rec_acct_attrs.array_char_value(13) := p_source_17;
11254 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11255 l_rec_acct_attrs.array_num_value(14) := p_source_27;
11256 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11257 l_rec_acct_attrs.array_num_value(15) := p_source_28;
11258 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11259 l_rec_acct_attrs.array_char_value(16) := p_source_29;
11260 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11261 l_rec_acct_attrs.array_num_value(17) := p_source_30;
11262 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11263 l_rec_acct_attrs.array_num_value(18) := p_source_31;
11264 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11265 l_rec_acct_attrs.array_num_value(19) := p_source_32;
11266 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11267 l_rec_acct_attrs.array_char_value(20) := p_source_29;
11268 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11269 l_rec_acct_attrs.array_num_value(21) := p_source_33;
11270 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11271 l_rec_acct_attrs.array_char_value(22) := p_source_34;
11272 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
11273 l_rec_acct_attrs.array_num_value(23) := p_source_55;
11274 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
11275 l_rec_acct_attrs.array_char_value(24) := p_source_29;
11276 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
11277 l_rec_acct_attrs.array_date_value(25) := p_source_36;
11278 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
11279 l_rec_acct_attrs.array_num_value(26) := p_source_37;
11280 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
11281 l_rec_acct_attrs.array_char_value(27) := p_source_38;
11282 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
11283 l_rec_acct_attrs.array_num_value(28) := p_source_58;
11284 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
11285 l_rec_acct_attrs.array_date_value(29) := p_source_39;
11286 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
11287 l_rec_acct_attrs.array_char_value(30) := p_source_40;
11288 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
11289 l_rec_acct_attrs.array_date_value(31) := p_source_41;
11290 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
11291 l_rec_acct_attrs.array_char_value(32) := p_source_42;
11292 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
11293 l_rec_acct_attrs.array_num_value(33) := p_source_43;
11294 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
11295 l_rec_acct_attrs.array_num_value(34) := p_source_44;
11296 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
11297 l_rec_acct_attrs.array_char_value(35) := p_source_45;
11298 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
11299 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
11300 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
11301 l_rec_acct_attrs.array_char_value(37) := p_source_17;
11302 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
11303 l_rec_acct_attrs.array_num_value(38) := p_source_48;
11304 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
11305 l_rec_acct_attrs.array_num_value(39) := p_source_49;
11306 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
11307 l_rec_acct_attrs.array_num_value(40) := p_source_50;
11308 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
11309 l_rec_acct_attrs.array_num_value(41) := p_source_51;
11310 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
11311 l_rec_acct_attrs.array_num_value(42) := p_source_52;
11312
11313 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11314 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11315
11316 ---------------------------------------------------------------------------------------------------------------
11317 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11318 ---------------------------------------------------------------------------------------------------------------
11319 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11320
11321 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11322 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11323
11324 IF xla_accounting_cache_pkg.GetValueChar
11325 (p_source_code => 'LEDGER_CATEGORY_CODE'
11326 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11327 AND l_bflow_method_code = 'PRIOR_ENTRY'
11328 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11329 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11330 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11331 )
11332 THEN
11333 xla_ae_lines_pkg.BflowUpgEntry
11334 (p_business_method_code => l_bflow_method_code
11335 ,p_business_class_code => l_bflow_class_code
11336 ,p_balance_type => l_balance_type_code);
11337 ELSE
11338 NULL;
11339 -- No business flow processing for business flow method of NONE.
11340 END IF;
11341
11342 --
11343 -- call analytical criteria
11344 --
11345
11346 --
11347 -- call description
11348 --
11349
11350 xla_ae_lines_pkg.SetLineDescription(
11351 p_ae_header_id => l_ae_header_id
11352 ,p_description => Description_2 (
11353 p_application_id => p_application_id
11354 , p_ae_header_id => l_ae_header_id
11355 , p_source_1 => p_source_1
11356 )
11357 );
11358
11359
11360 --
11361 -- call ADRs
11362 -- Bug 4922099
11363 --
11364 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11365 (NVL(l_actual_upg_option, 'N') = 'O') OR
11366 (NVL(l_enc_upg_option, 'N') = 'O')
11367 )
11368 THEN
11369 NULL;
11370 --
11371 --
11372
11373 l_ccid := AcctDerRule_3(
11374 p_application_id => p_application_id
11375 , p_ae_header_id => l_ae_header_id
11376 , p_source_2 => p_source_2
11377 , x_transaction_coa_id => l_adr_transaction_coa_id
11378 , x_accounting_coa_id => l_adr_accounting_coa_id
11379 , x_value_type_code => l_adr_value_type_code
11380 , p_side => 'NA'
11381 );
11382
11383 xla_ae_lines_pkg.set_ccid(
11384 p_code_combination_id => l_ccid
11385 , p_value_type_code => l_adr_value_type_code
11386 , p_transaction_coa_id => l_adr_transaction_coa_id
11387 , p_accounting_coa_id => l_adr_accounting_coa_id
11388 , p_adr_code => 'AP_INVOICE_DIST'
11389 , p_adr_type_code => 'S'
11390 , p_component_type => l_component_type
11391 , p_component_code => l_component_code
11392 , p_component_type_code => l_component_type_code
11393 , p_component_appl_id => l_component_appl_id
11394 , p_amb_context_code => l_amb_context_code
11395 , p_side => 'NA'
11396 );
11397
11398
11399 l_segment := AcctDerRule_8(
11400 p_application_id => p_application_id
11401 , p_ae_header_id => l_ae_header_id
11402 , p_source_4 => p_source_4
11403 , p_source_5 => p_source_5
11404 , p_source_6 => p_source_6
11405 , x_transaction_coa_id => l_adr_transaction_coa_id
11406 , x_accounting_coa_id => l_adr_accounting_coa_id
11407 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11408 , x_flex_value_set_id => l_adr_flex_value_set_id
11409 , x_value_type_code => l_adr_value_type_code
11410 , x_value_combination_id => l_adr_value_combination_id
11411 , x_value_segment_code => l_adr_value_segment_code
11412 , p_side => 'NA'
11413 , p_override_seg_flag => 'Y'
11414 );
11415
11416 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11417
11418 xla_ae_lines_pkg.set_segment(
11419 p_to_segment_code => 'GL_ACCOUNT'
11420 , p_segment_value => l_segment
11421 , p_from_segment_code => l_adr_value_segment_code
11422 , p_from_combination_id => l_adr_value_combination_id
11423 , p_value_type_code => l_adr_value_type_code
11424 , p_transaction_coa_id => l_adr_transaction_coa_id
11425 , p_accounting_coa_id => l_adr_accounting_coa_id
11426 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11427 , p_flex_value_set_id => l_adr_flex_value_set_id
11428 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
11429 , p_adr_type_code => 'S'
11430 , p_component_type => l_component_type
11431 , p_component_code => l_component_code
11432 , p_component_type_code => l_component_type_code
11433 , p_component_appl_id => l_component_appl_id
11434 , p_amb_context_code => l_amb_context_code
11435 , p_entity_code => 'AP_INVOICES'
11436 , p_event_class_code => 'DEBIT MEMOS'
11437 , p_side => 'NA'
11438 );
11439
11440 END IF;
11441
11442 --
11443 --
11444 END IF;
11445 --
11446 -- Bug 4922099
11447 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11448 (NVL(l_enc_upg_option, 'N') = 'O')
11449 ) AND
11450 (l_bflow_method_code = 'PRIOR_ENTRY')
11451 )
11452 THEN
11453 IF
11454 --
11455 1 = 2
11456 --
11457 THEN
11458 xla_accounting_err_pkg.build_message
11459 (p_appli_s_name => 'XLA'
11460 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11461 ,p_token_1 => 'LINE_NUMBER'
11462 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11463 ,p_token_2 => 'LINE_TYPE_NAME'
11464 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11465 l_component_type
11466 ,l_component_code
11467 ,l_component_type_code
11468 ,l_component_appl_id
11469 ,l_amb_context_code
11470 ,l_entity_code
11471 ,l_event_class_code
11472 )
11473 ,p_token_3 => 'OWNER'
11474 ,p_value_3 => xla_lookups_pkg.get_meaning(
11475 p_lookup_type => 'XLA_OWNER_TYPE'
11476 ,p_lookup_code => l_component_type_code
11477 )
11478 ,p_token_4 => 'PRODUCT_NAME'
11479 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11480 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11481 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11482 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11483 ,p_ae_header_id => NULL
11484 );
11485
11486 IF (C_LEVEL_ERROR>= g_log_level) THEN
11487 trace
11488 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11489 ,p_level => C_LEVEL_ERROR
11490 ,p_module => l_log_module);
11491 END IF;
11492 END IF;
11493 END IF;
11494 --
11495 --
11496 ------------------------------------------------------------------------------------------------
11497 -- 4219869 Business Flow
11498 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11499 -- Prior Entry. Currently, the following code is always generated.
11500 ------------------------------------------------------------------------------------------------
11501 XLA_AE_LINES_PKG.ValidateCurrentLine;
11502
11503 ------------------------------------------------------------------------------------
11504 -- 4219869 Business Flow
11505 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11506 ------------------------------------------------------------------------------------
11507 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11508
11509 ----------------------------------------------------------------------------------
11510 -- 4219869 Business Flow
11511 -- Update journal entry status -- Need to generate this within IF <condition>
11512 ----------------------------------------------------------------------------------
11513 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11514 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11515 ,p_balance_type_code => l_balance_type_code
11516 );
11517
11518 -------------------------------------------------------------------------------------------
11519 -- 4262811 - Generate the Accrual Reversal lines
11520 -------------------------------------------------------------------------------------------
11521 BEGIN
11522 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11523 (g_array_event(p_event_id).array_value_num('header_index'));
11524 IF l_acc_rev_flag IS NULL THEN
11525 l_acc_rev_flag := 'N';
11526 END IF;
11527 EXCEPTION
11528 WHEN OTHERS THEN
11529 l_acc_rev_flag := 'N';
11530 END;
11531 --
11532 IF (l_acc_rev_flag = 'Y') THEN
11533
11534 -- 4645092 ------------------------------------------------------------------------------
11535 -- To allow MPA report to determine if it should generate report process
11536 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11537 ------------------------------------------------------------------------------------------
11538
11539 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11540 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11541 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11542 -- call ADRs
11543 -- Bug 4922099
11544 --
11545 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11546 (NVL(l_actual_upg_option, 'N') = 'O') OR
11547 (NVL(l_enc_upg_option, 'N') = 'O')
11548 )
11549 THEN
11550 NULL;
11551 --
11552 --
11553
11554 l_ccid := AcctDerRule_3(
11555 p_application_id => p_application_id
11556 , p_ae_header_id => l_ae_header_id
11557 , p_source_2 => p_source_2
11558 , x_transaction_coa_id => l_adr_transaction_coa_id
11559 , x_accounting_coa_id => l_adr_accounting_coa_id
11560 , x_value_type_code => l_adr_value_type_code
11561 , p_side => 'NA'
11562 );
11563
11564 xla_ae_lines_pkg.set_ccid(
11565 p_code_combination_id => l_ccid
11566 , p_value_type_code => l_adr_value_type_code
11567 , p_transaction_coa_id => l_adr_transaction_coa_id
11568 , p_accounting_coa_id => l_adr_accounting_coa_id
11569 , p_adr_code => 'AP_INVOICE_DIST'
11570 , p_adr_type_code => 'S'
11571 , p_component_type => l_component_type
11572 , p_component_code => l_component_code
11573 , p_component_type_code => l_component_type_code
11574 , p_component_appl_id => l_component_appl_id
11575 , p_amb_context_code => l_amb_context_code
11576 , p_side => 'NA'
11577 );
11578
11579
11580 l_segment := AcctDerRule_8(
11581 p_application_id => p_application_id
11582 , p_ae_header_id => l_ae_header_id
11583 , p_source_4 => p_source_4
11584 , p_source_5 => p_source_5
11585 , p_source_6 => p_source_6
11586 , x_transaction_coa_id => l_adr_transaction_coa_id
11587 , x_accounting_coa_id => l_adr_accounting_coa_id
11588 , x_flexfield_segment_code => l_adr_flexfield_segment_code
11589 , x_flex_value_set_id => l_adr_flex_value_set_id
11590 , x_value_type_code => l_adr_value_type_code
11591 , x_value_combination_id => l_adr_value_combination_id
11592 , x_value_segment_code => l_adr_value_segment_code
11593 , p_side => 'NA'
11594 , p_override_seg_flag => 'Y'
11595 );
11596
11597 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
11598
11599 xla_ae_lines_pkg.set_segment(
11600 p_to_segment_code => 'GL_ACCOUNT'
11601 , p_segment_value => l_segment
11602 , p_from_segment_code => l_adr_value_segment_code
11603 , p_from_combination_id => l_adr_value_combination_id
11604 , p_value_type_code => l_adr_value_type_code
11605 , p_transaction_coa_id => l_adr_transaction_coa_id
11606 , p_accounting_coa_id => l_adr_accounting_coa_id
11607 , p_flexfield_segment_code => l_adr_flexfield_segment_code
11608 , p_flex_value_set_id => l_adr_flex_value_set_id
11609 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
11610 , p_adr_type_code => 'S'
11611 , p_component_type => l_component_type
11612 , p_component_code => l_component_code
11613 , p_component_type_code => l_component_type_code
11614 , p_component_appl_id => l_component_appl_id
11615 , p_amb_context_code => l_amb_context_code
11616 , p_entity_code => 'AP_INVOICES'
11617 , p_event_class_code => 'DEBIT MEMOS'
11618 , p_side => 'NA'
11619 );
11620
11621 END IF;
11622
11623 --
11624 --
11625 END IF;
11626
11627 --
11628 -- Update the line information that should be overwritten
11629 --
11630 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11631 p_header_num => 1);
11632 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11633
11634 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11635
11636 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11637 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11638 END IF;
11639
11640 --
11641 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11642 --
11643 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11644 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11645 ELSE
11646 ---------------------------------------------------------------------------------------------------
11647 -- 4262811a Switch Sign
11648 ---------------------------------------------------------------------------------------------------
11649 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11650 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11651 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11652 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11653 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11654 -- 5132302
11655 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11656 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11657
11658 END IF;
11659
11660 -- 4955764
11661 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11662 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11663
11664
11665 XLA_AE_LINES_PKG.ValidateCurrentLine;
11666 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11667
11668 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11669 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11670 ,p_balance_type_code => l_balance_type_code);
11671
11672 END IF;
11673
11674 -----------------------------------------------------------------------------------------
11675 -- 4262811 Multiperiod Accounting
11676 -----------------------------------------------------------------------------------------
11677 -- No MPA option is assigned.
11678
11679
11680 END IF;
11681 END IF;
11682 --
11683
11684 --
11685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11686 trace
11687 (p_msg => 'END of AcctLineType_28'
11688 ,p_level => C_LEVEL_PROCEDURE
11689 ,p_module => l_log_module);
11690 END IF;
11691 --
11692 EXCEPTION
11693 WHEN xla_exceptions_pkg.application_exception THEN
11694 RAISE;
11695 WHEN OTHERS THEN
11696 xla_exceptions_pkg.raise_message
11697 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_28');
11698 END AcctLineType_28;
11699 --
11700
11701 ---------------------------------------
11702 --
11703 -- PRIVATE FUNCTION
11704 -- AcctLineType_29
11705 --
11706 ---------------------------------------
11707 PROCEDURE AcctLineType_29 (
11708 p_application_id IN NUMBER
11709 ,p_event_id IN NUMBER
11710 ,p_calculate_acctd_flag IN VARCHAR2
11711 ,p_calculate_g_l_flag IN VARCHAR2
11712 ,p_actual_flag IN OUT VARCHAR2
11713 ,p_balance_type_code OUT VARCHAR2
11714 ,p_gain_or_loss_ref OUT VARCHAR2
11715
11716 --Invoice Distribution Description
11717 , p_source_1 IN VARCHAR2
11718 --Invoice Distribution Account
11719 , p_source_2 IN NUMBER
11720 --Payment Status Flag of the Invoice
11721 , p_source_7 IN VARCHAR2
11722 --Invoice Distribution Type
11723 , p_source_8 IN VARCHAR2
11724 , p_source_8_meaning IN VARCHAR2
11725 --Federal Prior Year Flag
11726 , p_source_9 IN VARCHAR2
11727 --Invoice Distribution Encumbrance Amount
11728 , p_source_10 IN NUMBER
11729 --Accrue on Receipt Option
11730 , p_source_11 IN VARCHAR2
11731 , p_source_11_meaning IN VARCHAR2
11732 --Invoice Type
11733 , p_source_13 IN VARCHAR2
11734 , p_source_13_meaning IN VARCHAR2
11735 --Accounting Reversal Indicator
11736 , p_source_15 IN VARCHAR2
11737 --Distribution Link Type
11738 , p_source_17 IN VARCHAR2
11739 --Allocation to Main Distribution Identifier
11740 , p_source_19 IN NUMBER
11741 --Invoice Identifier
11742 , p_source_20 IN NUMBER
11743 --Business Flow Accounts Payable Application Identifier
11744 , p_source_21 IN NUMBER
11745 --Business Flow Invoice Distribution Type
11746 , p_source_22 IN VARCHAR2
11747 --Business Flow Invoice Entity Code
11748 , p_source_23 IN VARCHAR2
11749 --Business Flow Invoice Distribution Identifier
11750 , p_source_24 IN NUMBER
11751 --Business Flow Invoice Identifier
11752 , p_source_25 IN NUMBER
11753 --Invoice Distribution Identifier
11754 , p_source_26 IN NUMBER
11755 --Payables Encumbrance Upgrade Credit Account
11756 , p_source_27 IN NUMBER
11757 --Payables Encumbrance Upgrade Credit Amount
11758 , p_source_28 IN NUMBER
11759 --Invoice Currency Code
11760 , p_source_29 IN VARCHAR2
11761 --Payables Encumbrance Upgrade Credit Base Amount
11762 , p_source_30 IN NUMBER
11763 --Payables Encumbrance Upgrade Debit Account
11764 , p_source_31 IN NUMBER
11765 --Payables Encumbrance Upgrade Debit Amount
11766 , p_source_32 IN NUMBER
11767 --Payables Encumbrance Upgrade Debit Base Amount
11768 , p_source_33 IN NUMBER
11769 --Payables Encumbrance Upgrade Option
11770 , p_source_34 IN VARCHAR2
11771 --Invoice Exchange Date
11772 , p_source_36 IN DATE
11773 --Invoice Exchange Rate
11774 , p_source_37 IN NUMBER
11775 --Invoice Exchange Rate Type
11776 , p_source_38 IN VARCHAR2
11777 --Deferred Accounting End Date
11778 , p_source_39 IN DATE
11779 --Deferred Accounting Option
11780 , p_source_40 IN VARCHAR2
11781 --Deferred Accounting Start Date
11782 , p_source_41 IN DATE
11783 --Override Accounted Amount Indicator
11784 , p_source_42 IN VARCHAR2
11785 , p_source_42_meaning IN VARCHAR2
11786 --Invoice Supplier Identifier
11787 , p_source_43 IN NUMBER
11788 --Invoice Supplier Site Identifier
11789 , p_source_44 IN NUMBER
11790 --Third Party Type
11791 , p_source_45 IN VARCHAR2
11792 --Parent Reversal Identifier
11793 , p_source_46 IN NUMBER
11794 --Invoice Distribution Tax Line Identifier
11795 , p_source_48 IN NUMBER
11796 --Invoice Distribution Tax Distribution Identifier from Tax
11797 , p_source_49 IN NUMBER
11798 --Invoice Distribution Summary Tax Line Identifier
11799 , p_source_50 IN NUMBER
11800 --Payables Upgrade Credit Encumbrance Type Identifier
11801 , p_source_51 IN NUMBER
11802 --Payables Upgrade Debit Encumbrance Type Identifier
11803 , p_source_52 IN NUMBER
11804 --Invoice Distribution Amount
11805 , p_source_55 IN NUMBER
11806 --Invoice Distribution Ledger Amount Before Rounding
11807 , p_source_58 IN NUMBER
11808 )
11809 IS
11810
11811 l_component_type VARCHAR2(80);
11812 l_component_code VARCHAR2(30);
11813 l_component_type_code VARCHAR2(1);
11814 l_component_appl_id INTEGER;
11815 l_amb_context_code VARCHAR2(30);
11816 l_entity_code VARCHAR2(30);
11817 l_event_class_code VARCHAR2(30);
11818 l_ae_header_id NUMBER;
11819 l_event_type_code VARCHAR2(30);
11820 l_line_definition_code VARCHAR2(30);
11821 l_line_definition_owner_code VARCHAR2(1);
11822 --
11823 -- adr variables
11824 l_segment VARCHAR2(30);
11825 l_ccid NUMBER;
11826 l_adr_transaction_coa_id NUMBER;
11827 l_adr_accounting_coa_id NUMBER;
11828 l_adr_flexfield_segment_code VARCHAR2(30);
11829 l_adr_flex_value_set_id NUMBER;
11830 l_adr_value_type_code VARCHAR2(30);
11831 l_adr_value_combination_id NUMBER;
11832 l_adr_value_segment_code VARCHAR2(30);
11833
11834 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11835 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11836 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11837 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11838
11839 -- 4262811 Variables ------------------------------------------------------------------------------------------
11840 l_entered_amt_idx NUMBER;
11841 l_accted_amt_idx NUMBER;
11842 l_acc_rev_flag VARCHAR2(1);
11843 l_accrual_line_num NUMBER;
11844 l_tmp_amt NUMBER;
11845 l_acc_rev_natural_side_code VARCHAR2(1);
11846
11847 l_num_entries NUMBER;
11848 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11849 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11850 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11851 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11852 l_recog_line_1 NUMBER;
11853 l_recog_line_2 NUMBER;
11854
11855 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11856 l_bflow_applied_to_amt NUMBER; -- 5132302
11857 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11858
11859 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11860
11861 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11862 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11863
11864 ---------------------------------------------------------------------------------------------------------------
11865
11866
11867 --
11868 -- bulk performance
11869 --
11870 l_balance_type_code VARCHAR2(1);
11871 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11872 l_log_module VARCHAR2(240);
11873
11874 --
11875 -- Upgrade strategy
11876 --
11877 l_actual_upg_option VARCHAR2(1);
11878 l_enc_upg_option VARCHAR2(1);
11879
11880 --
11881 BEGIN
11882 --
11883 IF g_log_enabled THEN
11884 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
11885 END IF;
11886 --
11887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11888
11889 trace
11890 (p_msg => 'BEGIN of AcctLineType_29'
11891 ,p_level => C_LEVEL_PROCEDURE
11892 ,p_module => l_log_module);
11893
11894 END IF;
11895 --
11896 l_component_type := 'AMB_JLT';
11897 l_component_code := 'FV_AP_DEBIT_MEMOS_EXP_DR';
11898 l_component_type_code := 'S';
11899 l_component_appl_id := 200;
11900 l_amb_context_code := 'DEFAULT';
11901 l_entity_code := 'AP_INVOICES';
11902 l_event_class_code := 'DEBIT MEMOS';
11903 l_event_type_code := 'DEBIT MEMOS_ALL';
11904 l_line_definition_owner_code := 'S';
11905 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
11906 --
11907 l_balance_type_code := 'A';
11908 l_segment := NULL;
11909 l_ccid := NULL;
11910 l_adr_transaction_coa_id := NULL;
11911 l_adr_accounting_coa_id := NULL;
11912 l_adr_flexfield_segment_code := NULL;
11913 l_adr_flex_value_set_id := NULL;
11914 l_adr_value_type_code := NULL;
11915 l_adr_value_combination_id := NULL;
11916 l_adr_value_segment_code := NULL;
11917
11918 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11919 l_bflow_class_code := ''; -- 4219869 Business Flow
11920 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11921 l_budgetary_control_flag := 'Y';
11922
11923 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11924 l_bflow_applied_to_amt := NULL; -- 5132302
11925 l_entered_amt_idx := NULL; -- 4262811
11926 l_accted_amt_idx := NULL; -- 4262811
11927 l_acc_rev_flag := NULL; -- 4262811
11928 l_accrual_line_num := NULL; -- 4262811
11929 l_tmp_amt := NULL; -- 4262811
11930 --
11931
11932 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11933 l_balance_type_code <> 'B' THEN
11934 IF NVL(p_source_13,'
11935 ') = 'DEBIT' AND
11936 (NVL(p_source_8,'
11937 ') = 'ITEM' OR
11938 NVL(p_source_8,'
11939 ') = 'MISCELLANEOUS' OR
11940 NVL(p_source_8,'
11941 ') = 'FREIGHT' OR
11942 NVL(p_source_8,'
11943 ') = 'IPV' OR
11944 NVL(p_source_8,'
11945 ') = 'ACCRUAL')
11946 THEN
11947
11948 --
11949 XLA_AE_LINES_PKG.SetNewLine;
11950
11951 p_balance_type_code := l_balance_type_code;
11952 -- set the flag so later we will know whether the gain loss line needs to be created
11953
11954 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11955 p_actual_flag :='A';
11956 END IF;
11957
11958 --
11959 -- bulk performance
11960 --
11961 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11962 p_header_num => 0); -- 4262811
11963 --
11964 -- set accounting line options
11965 --
11966 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11967 p_natural_side_code => 'C'
11968 , p_gain_or_loss_flag => 'N'
11969 , p_gl_transfer_mode_code => 'S'
11970 , p_acct_entry_type_code => 'A'
11971 , p_switch_side_flag => 'N'
11972 , p_merge_duplicate_code => 'N'
11973 );
11974 --
11975 l_acc_rev_natural_side_code := 'D'; -- 4262811
11976 --
11977 --
11978 -- set accounting line type info
11979 --
11980 xla_ae_lines_pkg.SetAcctLineType
11981 (p_component_type => l_component_type
11982 ,p_event_type_code => l_event_type_code
11983 ,p_line_definition_owner_code => l_line_definition_owner_code
11984 ,p_line_definition_code => l_line_definition_code
11985 ,p_accounting_line_code => l_component_code
11986 ,p_accounting_line_type_code => l_component_type_code
11987 ,p_accounting_line_appl_id => l_component_appl_id
11988 ,p_amb_context_code => l_amb_context_code
11992 -- set accounting class
11989 ,p_entity_code => l_entity_code
11990 ,p_event_class_code => l_event_class_code);
11991 --
11993 --
11994 xla_ae_lines_pkg.SetAcctClass(
11995 p_accounting_class_code => 'ACCOUNTSPAYABLE'
11996 , p_ae_header_id => l_ae_header_id
11997 );
11998
11999 --
12000 -- set rounding class
12001 --
12002 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12003 'ACCOUNTSPAYABLE';
12004
12005 --
12006 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12007 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12008 --
12009 -- bulk performance
12010 --
12011 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12012
12013 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12014 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12015
12016 -- 4955764
12017 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12018 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12019
12020 -- 4458381 Public Sector Enh
12021
12022 --
12023 -- set accounting attributes for the line type
12024 --
12025 l_entered_amt_idx := 23;
12026 l_accted_amt_idx := 28;
12027 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12028 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12029 l_rec_acct_attrs.array_char_value(1) := p_source_15;
12030 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12031 l_rec_acct_attrs.array_num_value(2) :=
12032 xla_ae_sources_pkg.GetSystemSourceNum(
12033 p_source_code => 'XLA_EVENT_APPL_ID'
12034 , p_source_type_code => 'Y'
12035 , p_source_application_id => 602
12036 );
12037 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12038 l_rec_acct_attrs.array_char_value(3) := p_source_17;
12039 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12040 l_rec_acct_attrs.array_char_value(4) :=
12041 xla_ae_sources_pkg.GetSystemSourceChar(
12042 p_source_code => 'XLA_ENTITY_CODE'
12043 , p_source_type_code => 'Y'
12044 , p_source_application_id => 602
12045 );
12046 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12047 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
12048 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12049 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
12050 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12051 l_rec_acct_attrs.array_num_value(7) := p_source_21;
12052 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12053 l_rec_acct_attrs.array_char_value(8) := p_source_22;
12054 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12055 l_rec_acct_attrs.array_char_value(9) := p_source_23;
12056 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12057 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
12058 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12059 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
12060 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12061 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
12062 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12063 l_rec_acct_attrs.array_char_value(13) := p_source_17;
12064 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12065 l_rec_acct_attrs.array_num_value(14) := p_source_27;
12066 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12067 l_rec_acct_attrs.array_num_value(15) := p_source_28;
12068 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12069 l_rec_acct_attrs.array_char_value(16) := p_source_29;
12070 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12071 l_rec_acct_attrs.array_num_value(17) := p_source_30;
12072 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12073 l_rec_acct_attrs.array_num_value(18) := p_source_31;
12074 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12075 l_rec_acct_attrs.array_num_value(19) := p_source_32;
12076 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12077 l_rec_acct_attrs.array_char_value(20) := p_source_29;
12078 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12079 l_rec_acct_attrs.array_num_value(21) := p_source_33;
12080 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12081 l_rec_acct_attrs.array_char_value(22) := p_source_34;
12082 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
12083 l_rec_acct_attrs.array_num_value(23) := p_source_55;
12084 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
12085 l_rec_acct_attrs.array_char_value(24) := p_source_29;
12086 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
12087 l_rec_acct_attrs.array_date_value(25) := p_source_36;
12088 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
12089 l_rec_acct_attrs.array_num_value(26) := p_source_37;
12090 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
12091 l_rec_acct_attrs.array_char_value(27) := p_source_38;
12092 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
12093 l_rec_acct_attrs.array_num_value(28) := p_source_58;
12094 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
12095 l_rec_acct_attrs.array_date_value(29) := p_source_39;
12096 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
12097 l_rec_acct_attrs.array_char_value(30) := p_source_40;
12098 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
12099 l_rec_acct_attrs.array_date_value(31) := p_source_41;
12100 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
12101 l_rec_acct_attrs.array_char_value(32) := p_source_42;
12102 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
12103 l_rec_acct_attrs.array_num_value(33) := p_source_43;
12104 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
12105 l_rec_acct_attrs.array_num_value(34) := p_source_44;
12106 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
12107 l_rec_acct_attrs.array_char_value(35) := p_source_45;
12108 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
12109 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
12110 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
12111 l_rec_acct_attrs.array_char_value(37) := p_source_17;
12112 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
12113 l_rec_acct_attrs.array_num_value(38) := p_source_48;
12114 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
12115 l_rec_acct_attrs.array_num_value(39) := p_source_49;
12116 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
12117 l_rec_acct_attrs.array_num_value(40) := p_source_50;
12118 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
12119 l_rec_acct_attrs.array_num_value(41) := p_source_51;
12120 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
12121 l_rec_acct_attrs.array_num_value(42) := p_source_52;
12122
12123 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12124 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12125
12126 ---------------------------------------------------------------------------------------------------------------
12127 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12128 ---------------------------------------------------------------------------------------------------------------
12129 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12130
12131 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12132 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12133
12134 IF xla_accounting_cache_pkg.GetValueChar
12135 (p_source_code => 'LEDGER_CATEGORY_CODE'
12136 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12137 AND l_bflow_method_code = 'PRIOR_ENTRY'
12138 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12139 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12140 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12141 )
12142 THEN
12143 xla_ae_lines_pkg.BflowUpgEntry
12144 (p_business_method_code => l_bflow_method_code
12145 ,p_business_class_code => l_bflow_class_code
12146 ,p_balance_type => l_balance_type_code);
12147 ELSE
12148 NULL;
12149 -- No business flow processing for business flow method of NONE.
12150 END IF;
12151
12152 --
12153 -- call analytical criteria
12154 --
12155
12156 --
12157 -- call description
12158 --
12159
12160 xla_ae_lines_pkg.SetLineDescription(
12161 p_ae_header_id => l_ae_header_id
12162 ,p_description => Description_2 (
12163 p_application_id => p_application_id
12164 , p_ae_header_id => l_ae_header_id
12165 , p_source_1 => p_source_1
12166 )
12167 );
12168
12169
12170 --
12171 -- call ADRs
12172 -- Bug 4922099
12173 --
12174 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12175 (NVL(l_actual_upg_option, 'N') = 'O') OR
12176 (NVL(l_enc_upg_option, 'N') = 'O')
12177 )
12178 THEN
12179 NULL;
12180 --
12181 --
12182
12183 l_ccid := AcctDerRule_3(
12184 p_application_id => p_application_id
12185 , p_ae_header_id => l_ae_header_id
12186 , p_source_2 => p_source_2
12187 , x_transaction_coa_id => l_adr_transaction_coa_id
12188 , x_accounting_coa_id => l_adr_accounting_coa_id
12189 , x_value_type_code => l_adr_value_type_code
12190 , p_side => 'NA'
12191 );
12192
12193 xla_ae_lines_pkg.set_ccid(
12194 p_code_combination_id => l_ccid
12195 , p_value_type_code => l_adr_value_type_code
12196 , p_transaction_coa_id => l_adr_transaction_coa_id
12197 , p_accounting_coa_id => l_adr_accounting_coa_id
12198 , p_adr_code => 'AP_INVOICE_DIST'
12199 , p_adr_type_code => 'S'
12200 , p_component_type => l_component_type
12201 , p_component_code => l_component_code
12202 , p_component_type_code => l_component_type_code
12203 , p_component_appl_id => l_component_appl_id
12204 , p_amb_context_code => l_amb_context_code
12205 , p_side => 'NA'
12206 );
12207
12208
12209 l_segment := AcctDerRule_12(
12210 p_application_id => p_application_id
12211 , p_ae_header_id => l_ae_header_id
12212 , p_source_7 => p_source_7
12213 , p_source_8 => p_source_8
12214 , p_source_8_meaning => p_source_8_meaning
12215 , p_source_9 => p_source_9
12216 , p_source_10 => p_source_10
12217 , p_source_11 => p_source_11
12218 , p_source_11_meaning => p_source_11_meaning
12219 , x_transaction_coa_id => l_adr_transaction_coa_id
12220 , x_accounting_coa_id => l_adr_accounting_coa_id
12221 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12222 , x_flex_value_set_id => l_adr_flex_value_set_id
12223 , x_value_type_code => l_adr_value_type_code
12224 , x_value_combination_id => l_adr_value_combination_id
12225 , x_value_segment_code => l_adr_value_segment_code
12226 , p_side => 'NA'
12227 , p_override_seg_flag => 'Y'
12228 );
12229
12230 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12231
12232 xla_ae_lines_pkg.set_segment(
12233 p_to_segment_code => 'GL_ACCOUNT'
12234 , p_segment_value => l_segment
12235 , p_from_segment_code => l_adr_value_segment_code
12236 , p_from_combination_id => l_adr_value_combination_id
12237 , p_value_type_code => l_adr_value_type_code
12238 , p_transaction_coa_id => l_adr_transaction_coa_id
12239 , p_accounting_coa_id => l_adr_accounting_coa_id
12240 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12241 , p_flex_value_set_id => l_adr_flex_value_set_id
12242 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
12243 , p_adr_type_code => 'S'
12244 , p_component_type => l_component_type
12245 , p_component_code => l_component_code
12246 , p_component_type_code => l_component_type_code
12247 , p_component_appl_id => l_component_appl_id
12248 , p_amb_context_code => l_amb_context_code
12249 , p_entity_code => 'AP_INVOICES'
12250 , p_event_class_code => 'DEBIT MEMOS'
12251 , p_side => 'NA'
12252 );
12253
12254 END IF;
12255
12256 --
12257 --
12258 END IF;
12259 --
12260 -- Bug 4922099
12261 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12262 (NVL(l_enc_upg_option, 'N') = 'O')
12263 ) AND
12264 (l_bflow_method_code = 'PRIOR_ENTRY')
12265 )
12266 THEN
12267 IF
12268 --
12269 1 = 2
12270 --
12271 THEN
12272 xla_accounting_err_pkg.build_message
12273 (p_appli_s_name => 'XLA'
12274 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12275 ,p_token_1 => 'LINE_NUMBER'
12276 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12277 ,p_token_2 => 'LINE_TYPE_NAME'
12278 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12279 l_component_type
12280 ,l_component_code
12281 ,l_component_type_code
12282 ,l_component_appl_id
12283 ,l_amb_context_code
12284 ,l_entity_code
12285 ,l_event_class_code
12286 )
12287 ,p_token_3 => 'OWNER'
12288 ,p_value_3 => xla_lookups_pkg.get_meaning(
12289 p_lookup_type => 'XLA_OWNER_TYPE'
12290 ,p_lookup_code => l_component_type_code
12291 )
12292 ,p_token_4 => 'PRODUCT_NAME'
12293 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12294 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12295 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12296 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12297 ,p_ae_header_id => NULL
12298 );
12299
12300 IF (C_LEVEL_ERROR>= g_log_level) THEN
12301 trace
12302 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12303 ,p_level => C_LEVEL_ERROR
12304 ,p_module => l_log_module);
12305 END IF;
12306 END IF;
12307 END IF;
12308 --
12309 --
12310 ------------------------------------------------------------------------------------------------
12311 -- 4219869 Business Flow
12312 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12313 -- Prior Entry. Currently, the following code is always generated.
12314 ------------------------------------------------------------------------------------------------
12315 XLA_AE_LINES_PKG.ValidateCurrentLine;
12316
12320 ------------------------------------------------------------------------------------
12317 ------------------------------------------------------------------------------------
12318 -- 4219869 Business Flow
12319 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12321 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12322
12323 ----------------------------------------------------------------------------------
12324 -- 4219869 Business Flow
12325 -- Update journal entry status -- Need to generate this within IF <condition>
12326 ----------------------------------------------------------------------------------
12327 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12328 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12329 ,p_balance_type_code => l_balance_type_code
12330 );
12331
12332 -------------------------------------------------------------------------------------------
12333 -- 4262811 - Generate the Accrual Reversal lines
12334 -------------------------------------------------------------------------------------------
12335 BEGIN
12336 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12337 (g_array_event(p_event_id).array_value_num('header_index'));
12338 IF l_acc_rev_flag IS NULL THEN
12339 l_acc_rev_flag := 'N';
12340 END IF;
12341 EXCEPTION
12342 WHEN OTHERS THEN
12343 l_acc_rev_flag := 'N';
12344 END;
12345 --
12346 IF (l_acc_rev_flag = 'Y') THEN
12347
12348 -- 4645092 ------------------------------------------------------------------------------
12349 -- To allow MPA report to determine if it should generate report process
12350 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12351 ------------------------------------------------------------------------------------------
12352
12353 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12354 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12355 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12356 -- call ADRs
12357 -- Bug 4922099
12358 --
12359 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12360 (NVL(l_actual_upg_option, 'N') = 'O') OR
12361 (NVL(l_enc_upg_option, 'N') = 'O')
12362 )
12363 THEN
12364 NULL;
12365 --
12366 --
12367
12368 l_ccid := AcctDerRule_3(
12369 p_application_id => p_application_id
12370 , p_ae_header_id => l_ae_header_id
12371 , p_source_2 => p_source_2
12372 , x_transaction_coa_id => l_adr_transaction_coa_id
12373 , x_accounting_coa_id => l_adr_accounting_coa_id
12374 , x_value_type_code => l_adr_value_type_code
12375 , p_side => 'NA'
12376 );
12377
12378 xla_ae_lines_pkg.set_ccid(
12379 p_code_combination_id => l_ccid
12380 , p_value_type_code => l_adr_value_type_code
12381 , p_transaction_coa_id => l_adr_transaction_coa_id
12382 , p_accounting_coa_id => l_adr_accounting_coa_id
12383 , p_adr_code => 'AP_INVOICE_DIST'
12384 , p_adr_type_code => 'S'
12385 , p_component_type => l_component_type
12386 , p_component_code => l_component_code
12387 , p_component_type_code => l_component_type_code
12388 , p_component_appl_id => l_component_appl_id
12389 , p_amb_context_code => l_amb_context_code
12390 , p_side => 'NA'
12391 );
12392
12393
12394 l_segment := AcctDerRule_12(
12395 p_application_id => p_application_id
12396 , p_ae_header_id => l_ae_header_id
12397 , p_source_7 => p_source_7
12398 , p_source_8 => p_source_8
12399 , p_source_8_meaning => p_source_8_meaning
12400 , p_source_9 => p_source_9
12401 , p_source_10 => p_source_10
12402 , p_source_11 => p_source_11
12403 , p_source_11_meaning => p_source_11_meaning
12404 , x_transaction_coa_id => l_adr_transaction_coa_id
12405 , x_accounting_coa_id => l_adr_accounting_coa_id
12406 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12407 , x_flex_value_set_id => l_adr_flex_value_set_id
12408 , x_value_type_code => l_adr_value_type_code
12409 , x_value_combination_id => l_adr_value_combination_id
12410 , x_value_segment_code => l_adr_value_segment_code
12411 , p_side => 'NA'
12412 , p_override_seg_flag => 'Y'
12413 );
12414
12415 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12416
12417 xla_ae_lines_pkg.set_segment(
12418 p_to_segment_code => 'GL_ACCOUNT'
12419 , p_segment_value => l_segment
12420 , p_from_segment_code => l_adr_value_segment_code
12421 , p_from_combination_id => l_adr_value_combination_id
12422 , p_value_type_code => l_adr_value_type_code
12423 , p_transaction_coa_id => l_adr_transaction_coa_id
12424 , p_accounting_coa_id => l_adr_accounting_coa_id
12425 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12426 , p_flex_value_set_id => l_adr_flex_value_set_id
12427 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
12428 , p_adr_type_code => 'S'
12429 , p_component_type => l_component_type
12430 , p_component_code => l_component_code
12431 , p_component_type_code => l_component_type_code
12432 , p_component_appl_id => l_component_appl_id
12436 , p_side => 'NA'
12433 , p_amb_context_code => l_amb_context_code
12434 , p_entity_code => 'AP_INVOICES'
12435 , p_event_class_code => 'DEBIT MEMOS'
12437 );
12438
12439 END IF;
12440
12441 --
12442 --
12443 END IF;
12444
12445 --
12446 -- Update the line information that should be overwritten
12447 --
12448 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12449 p_header_num => 1);
12450 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12451
12452 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12453
12454 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12455 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12456 END IF;
12457
12458 --
12459 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12460 --
12461 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12462 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12463 ELSE
12464 ---------------------------------------------------------------------------------------------------
12465 -- 4262811a Switch Sign
12466 ---------------------------------------------------------------------------------------------------
12467 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12468 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12469 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12470 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12471 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12472 -- 5132302
12473 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12474 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12475
12476 END IF;
12477
12478 -- 4955764
12479 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12480 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12481
12482
12483 XLA_AE_LINES_PKG.ValidateCurrentLine;
12484 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12485
12486 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12487 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12488 ,p_balance_type_code => l_balance_type_code);
12489
12490 END IF;
12491
12492 -----------------------------------------------------------------------------------------
12493 -- 4262811 Multiperiod Accounting
12494 -----------------------------------------------------------------------------------------
12495 -- No MPA option is assigned.
12496
12497
12498 END IF;
12499 END IF;
12500 --
12501
12502 --
12503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12504 trace
12505 (p_msg => 'END of AcctLineType_29'
12506 ,p_level => C_LEVEL_PROCEDURE
12507 ,p_module => l_log_module);
12508 END IF;
12509 --
12510 EXCEPTION
12511 WHEN xla_exceptions_pkg.application_exception THEN
12512 RAISE;
12513 WHEN OTHERS THEN
12514 xla_exceptions_pkg.raise_message
12515 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_29');
12516 END AcctLineType_29;
12517 --
12518
12519 ---------------------------------------
12520 --
12521 -- PRIVATE FUNCTION
12522 -- AcctLineType_30
12523 --
12524 ---------------------------------------
12525 PROCEDURE AcctLineType_30 (
12526 p_application_id IN NUMBER
12527 ,p_event_id IN NUMBER
12528 ,p_calculate_acctd_flag IN VARCHAR2
12529 ,p_calculate_g_l_flag IN VARCHAR2
12530 ,p_actual_flag IN OUT VARCHAR2
12531 ,p_balance_type_code OUT VARCHAR2
12532 ,p_gain_or_loss_ref OUT VARCHAR2
12533
12534 --Invoice Distribution Description
12535 , p_source_1 IN VARCHAR2
12536 --Invoice Distribution Account
12537 , p_source_2 IN NUMBER
12538 --Payment Status Flag of the Invoice
12539 , p_source_7 IN VARCHAR2
12540 --Invoice Distribution Type
12541 , p_source_8 IN VARCHAR2
12542 , p_source_8_meaning IN VARCHAR2
12543 --Federal Prior Year Flag
12544 , p_source_9 IN VARCHAR2
12545 --Invoice Distribution Encumbrance Amount
12546 , p_source_10 IN NUMBER
12547 --Accrue on Receipt Option
12548 , p_source_11 IN VARCHAR2
12549 , p_source_11_meaning IN VARCHAR2
12550 --Purchase Order Distribution Identifier
12551 , p_source_12 IN NUMBER
12552 --Invoice Type
12553 , p_source_13 IN VARCHAR2
12554 , p_source_13_meaning IN VARCHAR2
12555 --Accounting Reversal Indicator
12556 , p_source_15 IN VARCHAR2
12557 --Distribution Link Type
12558 , p_source_17 IN VARCHAR2
12559 --Allocation to Main Distribution Identifier
12560 , p_source_19 IN NUMBER
12561 --Invoice Identifier
12562 , p_source_20 IN NUMBER
12563 --Business Flow Accounts Payable Application Identifier
12564 , p_source_21 IN NUMBER
12568 , p_source_23 IN VARCHAR2
12565 --Business Flow Invoice Distribution Type
12566 , p_source_22 IN VARCHAR2
12567 --Business Flow Invoice Entity Code
12569 --Business Flow Invoice Distribution Identifier
12570 , p_source_24 IN NUMBER
12571 --Business Flow Invoice Identifier
12572 , p_source_25 IN NUMBER
12573 --Invoice Distribution Identifier
12574 , p_source_26 IN NUMBER
12575 --Payables Encumbrance Upgrade Credit Account
12576 , p_source_27 IN NUMBER
12577 --Payables Encumbrance Upgrade Credit Amount
12578 , p_source_28 IN NUMBER
12579 --Invoice Currency Code
12580 , p_source_29 IN VARCHAR2
12581 --Payables Encumbrance Upgrade Credit Base Amount
12582 , p_source_30 IN NUMBER
12583 --Payables Encumbrance Upgrade Debit Account
12584 , p_source_31 IN NUMBER
12585 --Payables Encumbrance Upgrade Debit Amount
12586 , p_source_32 IN NUMBER
12587 --Payables Encumbrance Upgrade Debit Base Amount
12588 , p_source_33 IN NUMBER
12589 --Payables Encumbrance Upgrade Option
12590 , p_source_34 IN VARCHAR2
12591 --Invoice Exchange Date
12592 , p_source_36 IN DATE
12593 --Invoice Exchange Rate
12594 , p_source_37 IN NUMBER
12595 --Invoice Exchange Rate Type
12596 , p_source_38 IN VARCHAR2
12597 --Deferred Accounting End Date
12598 , p_source_39 IN DATE
12599 --Deferred Accounting Option
12600 , p_source_40 IN VARCHAR2
12601 --Deferred Accounting Start Date
12602 , p_source_41 IN DATE
12603 --Override Accounted Amount Indicator
12604 , p_source_42 IN VARCHAR2
12605 , p_source_42_meaning IN VARCHAR2
12606 --Invoice Supplier Identifier
12607 , p_source_43 IN NUMBER
12608 --Invoice Supplier Site Identifier
12609 , p_source_44 IN NUMBER
12610 --Third Party Type
12611 , p_source_45 IN VARCHAR2
12612 --Parent Reversal Identifier
12613 , p_source_46 IN NUMBER
12614 --Invoice Distribution Statistical Amount
12615 , p_source_47 IN NUMBER
12616 --Invoice Distribution Tax Line Identifier
12617 , p_source_48 IN NUMBER
12618 --Invoice Distribution Tax Distribution Identifier from Tax
12619 , p_source_49 IN NUMBER
12620 --Invoice Distribution Summary Tax Line Identifier
12621 , p_source_50 IN NUMBER
12622 --Payables Upgrade Credit Encumbrance Type Identifier
12623 , p_source_51 IN NUMBER
12624 --Payables Upgrade Debit Encumbrance Type Identifier
12625 , p_source_52 IN NUMBER
12626 --Invoice Distribution Encumbrance Ledger Amount
12627 , p_source_53 IN NUMBER
12628 --Invoice Distribution Amount
12629 , p_source_55 IN NUMBER
12630 )
12631 IS
12632
12633 l_component_type VARCHAR2(80);
12634 l_component_code VARCHAR2(30);
12635 l_component_type_code VARCHAR2(1);
12636 l_component_appl_id INTEGER;
12637 l_amb_context_code VARCHAR2(30);
12638 l_entity_code VARCHAR2(30);
12639 l_event_class_code VARCHAR2(30);
12640 l_ae_header_id NUMBER;
12641 l_event_type_code VARCHAR2(30);
12642 l_line_definition_code VARCHAR2(30);
12643 l_line_definition_owner_code VARCHAR2(1);
12644 --
12645 -- adr variables
12646 l_segment VARCHAR2(30);
12647 l_ccid NUMBER;
12648 l_adr_transaction_coa_id NUMBER;
12649 l_adr_accounting_coa_id NUMBER;
12650 l_adr_flexfield_segment_code VARCHAR2(30);
12651 l_adr_flex_value_set_id NUMBER;
12652 l_adr_value_type_code VARCHAR2(30);
12653 l_adr_value_combination_id NUMBER;
12654 l_adr_value_segment_code VARCHAR2(30);
12655
12656 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12657 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12658 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12659 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12660
12661 -- 4262811 Variables ------------------------------------------------------------------------------------------
12662 l_entered_amt_idx NUMBER;
12663 l_accted_amt_idx NUMBER;
12664 l_acc_rev_flag VARCHAR2(1);
12665 l_accrual_line_num NUMBER;
12666 l_tmp_amt NUMBER;
12667 l_acc_rev_natural_side_code VARCHAR2(1);
12668
12669 l_num_entries NUMBER;
12670 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12671 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12672 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12673 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12674 l_recog_line_1 NUMBER;
12675 l_recog_line_2 NUMBER;
12676
12677 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12678 l_bflow_applied_to_amt NUMBER; -- 5132302
12679 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12680
12681 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12682
12683 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12684 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12685
12686 ---------------------------------------------------------------------------------------------------------------
12687
12688
12689 --
12690 -- bulk performance
12691 --
12692 l_balance_type_code VARCHAR2(1);
12693 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12694 l_log_module VARCHAR2(240);
12695
12696 --
12697 -- Upgrade strategy
12698 --
12699 l_actual_upg_option VARCHAR2(1);
12700 l_enc_upg_option VARCHAR2(1);
12701
12702 --
12703 BEGIN
12704 --
12705 IF g_log_enabled THEN
12706 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
12707 END IF;
12708 --
12709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12710
12711 trace
12712 (p_msg => 'BEGIN of AcctLineType_30'
12713 ,p_level => C_LEVEL_PROCEDURE
12714 ,p_module => l_log_module);
12715
12716 END IF;
12717 --
12718 l_component_type := 'AMB_JLT';
12719 l_component_code := 'FV_AP_DIRECT_EXP_INVOICE_CR';
12720 l_component_type_code := 'S';
12721 l_component_appl_id := 200;
12722 l_amb_context_code := 'DEFAULT';
12723 l_entity_code := 'AP_INVOICES';
12724 l_event_class_code := 'INVOICES';
12725 l_event_type_code := 'INVOICES_ALL';
12726 l_line_definition_owner_code := 'S';
12727 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
12728 --
12729 l_balance_type_code := 'A';
12730 l_segment := NULL;
12731 l_ccid := NULL;
12732 l_adr_transaction_coa_id := NULL;
12733 l_adr_accounting_coa_id := NULL;
12734 l_adr_flexfield_segment_code := NULL;
12735 l_adr_flex_value_set_id := NULL;
12736 l_adr_value_type_code := NULL;
12737 l_adr_value_combination_id := NULL;
12738 l_adr_value_segment_code := NULL;
12739
12740 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12741 l_bflow_class_code := ''; -- 4219869 Business Flow
12742 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12743 l_budgetary_control_flag := 'Y';
12744
12745 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12746 l_bflow_applied_to_amt := NULL; -- 5132302
12747 l_entered_amt_idx := NULL; -- 4262811
12748 l_accted_amt_idx := NULL; -- 4262811
12749 l_acc_rev_flag := NULL; -- 4262811
12750 l_accrual_line_num := NULL; -- 4262811
12751 l_tmp_amt := NULL; -- 4262811
12752 --
12753
12754 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12755 l_balance_type_code <> 'B' THEN
12756 IF (NVL(p_source_13,'
12757 ') = 'STANDARD' OR
12758 NVL(p_source_13,'
12759 ') = 'MIXED' OR
12760 NVL(p_source_13,'
12761 ') = 'INTEREST' OR
12762 NVL(p_source_13,'
12763 ') = 'EXPENSE REPORT') AND
12764 (NVL(p_source_8,'
12765 ') = 'ITEM' OR
12766 NVL(p_source_8,'
12767 ') = 'FREIGHT' OR
12768 NVL(p_source_8,'
12769 ') = 'MISCELLANEOUS' OR
12770 NVL(p_source_8,'
12771 ') = 'ACCRUAL') AND
12772 (NVL(p_source_9,'
12773 ') = 'N' OR
12774 (p_source_12 IS NOT NULL AND
12775 NVL(p_source_9,'
12776 ') = 'Y')
12777 ) AND NVL(p_source_11,'
12778 ') <> 'Y'
12779 THEN
12780
12781 --
12782 XLA_AE_LINES_PKG.SetNewLine;
12783
12784 p_balance_type_code := l_balance_type_code;
12785 -- set the flag so later we will know whether the gain loss line needs to be created
12786
12787 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12788 p_actual_flag :='A';
12789 END IF;
12790
12791 --
12792 -- bulk performance
12793 --
12794 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12795 p_header_num => 0); -- 4262811
12796 --
12797 -- set accounting line options
12798 --
12799 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12800 p_natural_side_code => 'C'
12801 , p_gain_or_loss_flag => 'N'
12802 , p_gl_transfer_mode_code => 'S'
12803 , p_acct_entry_type_code => 'A'
12804 , p_switch_side_flag => 'Y'
12805 , p_merge_duplicate_code => 'N'
12806 );
12807 --
12808 l_acc_rev_natural_side_code := 'D'; -- 4262811
12809 --
12810 --
12811 -- set accounting line type info
12812 --
12813 xla_ae_lines_pkg.SetAcctLineType
12814 (p_component_type => l_component_type
12815 ,p_event_type_code => l_event_type_code
12816 ,p_line_definition_owner_code => l_line_definition_owner_code
12817 ,p_line_definition_code => l_line_definition_code
12818 ,p_accounting_line_code => l_component_code
12819 ,p_accounting_line_type_code => l_component_type_code
12820 ,p_accounting_line_appl_id => l_component_appl_id
12821 ,p_amb_context_code => l_amb_context_code
12822 ,p_entity_code => l_entity_code
12823 ,p_event_class_code => l_event_class_code);
12824 --
12825 -- set accounting class
12826 --
12827 xla_ae_lines_pkg.SetAcctClass(
12828 p_accounting_class_code => 'ACCOUNTSPAYABLE'
12829 , p_ae_header_id => l_ae_header_id
12830 );
12831
12832 --
12833 -- set rounding class
12834 --
12835 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12836 'ACCOUNTSPAYABLE';
12837
12838 --
12839 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12840 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12841 --
12842 -- bulk performance
12843 --
12844 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12845
12846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12847 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12848
12849 -- 4955764
12850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12852
12853 -- 4458381 Public Sector Enh
12854
12855 --
12856 -- set accounting attributes for the line type
12857 --
12858 l_entered_amt_idx := 24;
12859 l_accted_amt_idx := 29;
12860 l_bflow_applied_to_amt_idx := 7; -- 5132302
12861 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12862 l_rec_acct_attrs.array_char_value(1) := p_source_15;
12863 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12864 l_rec_acct_attrs.array_num_value(2) :=
12865 xla_ae_sources_pkg.GetSystemSourceNum(
12866 p_source_code => 'XLA_EVENT_APPL_ID'
12867 , p_source_type_code => 'Y'
12868 , p_source_application_id => 602
12869 );
12870 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12871 l_rec_acct_attrs.array_char_value(3) := p_source_17;
12872 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12873 l_rec_acct_attrs.array_char_value(4) :=
12874 xla_ae_sources_pkg.GetSystemSourceChar(
12875 p_source_code => 'XLA_ENTITY_CODE'
12876 , p_source_type_code => 'Y'
12877 , p_source_application_id => 602
12878 );
12879 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12880 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
12881 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12882 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
12883 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
12884 l_rec_acct_attrs.array_num_value(7) := p_source_55;
12885 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
12886 l_rec_acct_attrs.array_num_value(8) := p_source_21;
12887 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12888 l_rec_acct_attrs.array_char_value(9) := p_source_22;
12889 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
12890 l_rec_acct_attrs.array_char_value(10) := p_source_23;
12891 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
12892 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
12893 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12894 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
12895 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
12896 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
12897 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
12898 l_rec_acct_attrs.array_char_value(14) := p_source_17;
12899 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
12900 l_rec_acct_attrs.array_num_value(15) := p_source_27;
12901 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
12902 l_rec_acct_attrs.array_num_value(16) := p_source_28;
12903 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
12904 l_rec_acct_attrs.array_char_value(17) := p_source_29;
12905 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
12906 l_rec_acct_attrs.array_num_value(18) := p_source_30;
12907 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
12908 l_rec_acct_attrs.array_num_value(19) := p_source_31;
12909 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
12910 l_rec_acct_attrs.array_num_value(20) := p_source_32;
12911 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
12912 l_rec_acct_attrs.array_char_value(21) := p_source_29;
12913 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
12914 l_rec_acct_attrs.array_num_value(22) := p_source_33;
12915 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
12916 l_rec_acct_attrs.array_char_value(23) := p_source_34;
12917 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
12918 l_rec_acct_attrs.array_num_value(24) := p_source_10;
12919 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
12920 l_rec_acct_attrs.array_char_value(25) := p_source_29;
12921 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
12922 l_rec_acct_attrs.array_date_value(26) := p_source_36;
12923 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
12924 l_rec_acct_attrs.array_num_value(27) := p_source_37;
12925 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
12926 l_rec_acct_attrs.array_char_value(28) := p_source_38;
12927 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
12928 l_rec_acct_attrs.array_num_value(29) := p_source_53;
12929 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
12930 l_rec_acct_attrs.array_date_value(30) := p_source_39;
12931 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
12932 l_rec_acct_attrs.array_char_value(31) := p_source_40;
12933 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
12934 l_rec_acct_attrs.array_date_value(32) := p_source_41;
12935 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
12936 l_rec_acct_attrs.array_char_value(33) := p_source_42;
12937 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
12938 l_rec_acct_attrs.array_num_value(34) := p_source_43;
12939 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
12940 l_rec_acct_attrs.array_num_value(35) := p_source_44;
12941 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
12942 l_rec_acct_attrs.array_char_value(36) := p_source_45;
12943 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
12944 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
12945 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
12946 l_rec_acct_attrs.array_char_value(38) := p_source_17;
12947 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
12948 l_rec_acct_attrs.array_num_value(39) := p_source_47;
12949 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
12950 l_rec_acct_attrs.array_num_value(40) := p_source_48;
12951 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
12952 l_rec_acct_attrs.array_num_value(41) := p_source_49;
12953 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
12954 l_rec_acct_attrs.array_num_value(42) := p_source_50;
12955 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
12956 l_rec_acct_attrs.array_num_value(43) := p_source_51;
12957 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
12958 l_rec_acct_attrs.array_num_value(44) := p_source_52;
12959
12960 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12961 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12962
12963 ---------------------------------------------------------------------------------------------------------------
12964 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12965 ---------------------------------------------------------------------------------------------------------------
12966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12967
12968 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12969 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12970
12971 IF xla_accounting_cache_pkg.GetValueChar
12972 (p_source_code => 'LEDGER_CATEGORY_CODE'
12973 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12974 AND l_bflow_method_code = 'PRIOR_ENTRY'
12975 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12976 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12977 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12978 )
12979 THEN
12980 xla_ae_lines_pkg.BflowUpgEntry
12981 (p_business_method_code => l_bflow_method_code
12982 ,p_business_class_code => l_bflow_class_code
12983 ,p_balance_type => l_balance_type_code);
12984 ELSE
12985 NULL;
12986 -- No business flow processing for business flow method of NONE.
12987 END IF;
12988
12989 --
12990 -- call analytical criteria
12991 --
12992
12993 --
12994 -- call description
12995 --
12996
12997 xla_ae_lines_pkg.SetLineDescription(
12998 p_ae_header_id => l_ae_header_id
12999 ,p_description => Description_2 (
13000 p_application_id => p_application_id
13001 , p_ae_header_id => l_ae_header_id
13002 , p_source_1 => p_source_1
13003 )
13004 );
13005
13006
13007 --
13008 -- call ADRs
13009 -- Bug 4922099
13010 --
13011 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13012 (NVL(l_actual_upg_option, 'N') = 'O') OR
13013 (NVL(l_enc_upg_option, 'N') = 'O')
13014 )
13015 THEN
13016 NULL;
13017 --
13018 --
13019
13020 l_ccid := AcctDerRule_3(
13021 p_application_id => p_application_id
13022 , p_ae_header_id => l_ae_header_id
13023 , p_source_2 => p_source_2
13024 , x_transaction_coa_id => l_adr_transaction_coa_id
13025 , x_accounting_coa_id => l_adr_accounting_coa_id
13026 , x_value_type_code => l_adr_value_type_code
13027 , p_side => 'NA'
13028 );
13029
13030 xla_ae_lines_pkg.set_ccid(
13031 p_code_combination_id => l_ccid
13032 , p_value_type_code => l_adr_value_type_code
13033 , p_transaction_coa_id => l_adr_transaction_coa_id
13034 , p_accounting_coa_id => l_adr_accounting_coa_id
13035 , p_adr_code => 'AP_INVOICE_DIST'
13036 , p_adr_type_code => 'S'
13037 , p_component_type => l_component_type
13038 , p_component_code => l_component_code
13039 , p_component_type_code => l_component_type_code
13040 , p_component_appl_id => l_component_appl_id
13041 , p_amb_context_code => l_amb_context_code
13042 , p_side => 'NA'
13043 );
13044
13045
13046 l_segment := AcctDerRule_12(
13047 p_application_id => p_application_id
13048 , p_ae_header_id => l_ae_header_id
13049 , p_source_7 => p_source_7
13050 , p_source_8 => p_source_8
13051 , p_source_8_meaning => p_source_8_meaning
13052 , p_source_9 => p_source_9
13053 , p_source_10 => p_source_10
13054 , p_source_11 => p_source_11
13055 , p_source_11_meaning => p_source_11_meaning
13056 , x_transaction_coa_id => l_adr_transaction_coa_id
13057 , x_accounting_coa_id => l_adr_accounting_coa_id
13058 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13059 , x_flex_value_set_id => l_adr_flex_value_set_id
13060 , x_value_type_code => l_adr_value_type_code
13061 , x_value_combination_id => l_adr_value_combination_id
13062 , x_value_segment_code => l_adr_value_segment_code
13063 , p_side => 'NA'
13064 , p_override_seg_flag => 'Y'
13065 );
13066
13067 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13068
13069 xla_ae_lines_pkg.set_segment(
13070 p_to_segment_code => 'GL_ACCOUNT'
13071 , p_segment_value => l_segment
13072 , p_from_segment_code => l_adr_value_segment_code
13073 , p_from_combination_id => l_adr_value_combination_id
13074 , p_value_type_code => l_adr_value_type_code
13075 , p_transaction_coa_id => l_adr_transaction_coa_id
13076 , p_accounting_coa_id => l_adr_accounting_coa_id
13077 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13078 , p_flex_value_set_id => l_adr_flex_value_set_id
13079 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
13080 , p_adr_type_code => 'S'
13081 , p_component_type => l_component_type
13082 , p_component_code => l_component_code
13083 , p_component_type_code => l_component_type_code
13084 , p_component_appl_id => l_component_appl_id
13085 , p_amb_context_code => l_amb_context_code
13086 , p_entity_code => 'AP_INVOICES'
13087 , p_event_class_code => 'INVOICES'
13088 , p_side => 'NA'
13089 );
13090
13091 END IF;
13092
13093 --
13094 --
13095 END IF;
13096 --
13097 -- Bug 4922099
13098 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13099 (NVL(l_enc_upg_option, 'N') = 'O')
13100 ) AND
13101 (l_bflow_method_code = 'PRIOR_ENTRY')
13102 )
13103 THEN
13104 IF
13105 --
13106 1 = 2
13107 --
13108 THEN
13109 xla_accounting_err_pkg.build_message
13110 (p_appli_s_name => 'XLA'
13111 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13112 ,p_token_1 => 'LINE_NUMBER'
13113 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13114 ,p_token_2 => 'LINE_TYPE_NAME'
13115 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13116 l_component_type
13117 ,l_component_code
13118 ,l_component_type_code
13119 ,l_component_appl_id
13120 ,l_amb_context_code
13121 ,l_entity_code
13122 ,l_event_class_code
13123 )
13124 ,p_token_3 => 'OWNER'
13125 ,p_value_3 => xla_lookups_pkg.get_meaning(
13126 p_lookup_type => 'XLA_OWNER_TYPE'
13127 ,p_lookup_code => l_component_type_code
13128 )
13129 ,p_token_4 => 'PRODUCT_NAME'
13130 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13131 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13132 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13133 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13134 ,p_ae_header_id => NULL
13135 );
13136
13137 IF (C_LEVEL_ERROR>= g_log_level) THEN
13138 trace
13139 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13140 ,p_level => C_LEVEL_ERROR
13141 ,p_module => l_log_module);
13142 END IF;
13143 END IF;
13144 END IF;
13145 --
13146 --
13147 ------------------------------------------------------------------------------------------------
13148 -- 4219869 Business Flow
13149 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13150 -- Prior Entry. Currently, the following code is always generated.
13151 ------------------------------------------------------------------------------------------------
13152 XLA_AE_LINES_PKG.ValidateCurrentLine;
13153
13154 ------------------------------------------------------------------------------------
13155 -- 4219869 Business Flow
13156 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13157 ------------------------------------------------------------------------------------
13158 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13159
13160 ----------------------------------------------------------------------------------
13161 -- 4219869 Business Flow
13162 -- Update journal entry status -- Need to generate this within IF <condition>
13163 ----------------------------------------------------------------------------------
13164 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13165 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13166 ,p_balance_type_code => l_balance_type_code
13167 );
13168
13169 -------------------------------------------------------------------------------------------
13170 -- 4262811 - Generate the Accrual Reversal lines
13171 -------------------------------------------------------------------------------------------
13172 BEGIN
13173 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13174 (g_array_event(p_event_id).array_value_num('header_index'));
13175 IF l_acc_rev_flag IS NULL THEN
13176 l_acc_rev_flag := 'N';
13177 END IF;
13178 EXCEPTION
13179 WHEN OTHERS THEN
13180 l_acc_rev_flag := 'N';
13181 END;
13182 --
13183 IF (l_acc_rev_flag = 'Y') THEN
13184
13185 -- 4645092 ------------------------------------------------------------------------------
13186 -- To allow MPA report to determine if it should generate report process
13187 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13188 ------------------------------------------------------------------------------------------
13189
13190 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13191 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13192 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13193 -- call ADRs
13194 -- Bug 4922099
13195 --
13196 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13197 (NVL(l_actual_upg_option, 'N') = 'O') OR
13198 (NVL(l_enc_upg_option, 'N') = 'O')
13199 )
13200 THEN
13201 NULL;
13202 --
13203 --
13204
13205 l_ccid := AcctDerRule_3(
13206 p_application_id => p_application_id
13207 , p_ae_header_id => l_ae_header_id
13208 , p_source_2 => p_source_2
13209 , x_transaction_coa_id => l_adr_transaction_coa_id
13210 , x_accounting_coa_id => l_adr_accounting_coa_id
13211 , x_value_type_code => l_adr_value_type_code
13212 , p_side => 'NA'
13213 );
13214
13215 xla_ae_lines_pkg.set_ccid(
13216 p_code_combination_id => l_ccid
13217 , p_value_type_code => l_adr_value_type_code
13218 , p_transaction_coa_id => l_adr_transaction_coa_id
13219 , p_accounting_coa_id => l_adr_accounting_coa_id
13220 , p_adr_code => 'AP_INVOICE_DIST'
13221 , p_adr_type_code => 'S'
13222 , p_component_type => l_component_type
13223 , p_component_code => l_component_code
13224 , p_component_type_code => l_component_type_code
13225 , p_component_appl_id => l_component_appl_id
13226 , p_amb_context_code => l_amb_context_code
13227 , p_side => 'NA'
13228 );
13229
13230
13231 l_segment := AcctDerRule_12(
13232 p_application_id => p_application_id
13233 , p_ae_header_id => l_ae_header_id
13234 , p_source_7 => p_source_7
13235 , p_source_8 => p_source_8
13236 , p_source_8_meaning => p_source_8_meaning
13237 , p_source_9 => p_source_9
13238 , p_source_10 => p_source_10
13239 , p_source_11 => p_source_11
13240 , p_source_11_meaning => p_source_11_meaning
13241 , x_transaction_coa_id => l_adr_transaction_coa_id
13242 , x_accounting_coa_id => l_adr_accounting_coa_id
13243 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13244 , x_flex_value_set_id => l_adr_flex_value_set_id
13245 , x_value_type_code => l_adr_value_type_code
13246 , x_value_combination_id => l_adr_value_combination_id
13247 , x_value_segment_code => l_adr_value_segment_code
13248 , p_side => 'NA'
13249 , p_override_seg_flag => 'Y'
13250 );
13251
13252 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13253
13254 xla_ae_lines_pkg.set_segment(
13255 p_to_segment_code => 'GL_ACCOUNT'
13256 , p_segment_value => l_segment
13257 , p_from_segment_code => l_adr_value_segment_code
13258 , p_from_combination_id => l_adr_value_combination_id
13259 , p_value_type_code => l_adr_value_type_code
13260 , p_transaction_coa_id => l_adr_transaction_coa_id
13261 , p_accounting_coa_id => l_adr_accounting_coa_id
13262 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13263 , p_flex_value_set_id => l_adr_flex_value_set_id
13264 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
13265 , p_adr_type_code => 'S'
13266 , p_component_type => l_component_type
13267 , p_component_code => l_component_code
13268 , p_component_type_code => l_component_type_code
13269 , p_component_appl_id => l_component_appl_id
13270 , p_amb_context_code => l_amb_context_code
13271 , p_entity_code => 'AP_INVOICES'
13272 , p_event_class_code => 'INVOICES'
13273 , p_side => 'NA'
13274 );
13275
13276 END IF;
13277
13278 --
13279 --
13280 END IF;
13281
13282 --
13283 -- Update the line information that should be overwritten
13284 --
13285 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13286 p_header_num => 1);
13287 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13288
13289 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13290
13291 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13292 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13293 END IF;
13294
13295 --
13296 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13297 --
13298 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13299 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13300 ELSE
13301 ---------------------------------------------------------------------------------------------------
13302 -- 4262811a Switch Sign
13303 ---------------------------------------------------------------------------------------------------
13304 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13306 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13307 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13308 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13309 -- 5132302
13310 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13311 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13312
13313 END IF;
13314
13315 -- 4955764
13316 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13317 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13318
13319
13320 XLA_AE_LINES_PKG.ValidateCurrentLine;
13321 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13322
13323 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13324 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13325 ,p_balance_type_code => l_balance_type_code);
13326
13327 END IF;
13328
13329 -----------------------------------------------------------------------------------------
13330 -- 4262811 Multiperiod Accounting
13331 -----------------------------------------------------------------------------------------
13332 -- No MPA option is assigned.
13333
13334
13335 END IF;
13336 END IF;
13337 --
13338
13339 --
13340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13341 trace
13342 (p_msg => 'END of AcctLineType_30'
13343 ,p_level => C_LEVEL_PROCEDURE
13344 ,p_module => l_log_module);
13345 END IF;
13346 --
13347 EXCEPTION
13348 WHEN xla_exceptions_pkg.application_exception THEN
13349 RAISE;
13350 WHEN OTHERS THEN
13351 xla_exceptions_pkg.raise_message
13352 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_30');
13353 END AcctLineType_30;
13354 --
13355
13356 ---------------------------------------
13357 --
13358 -- PRIVATE FUNCTION
13359 -- AcctLineType_31
13360 --
13361 ---------------------------------------
13362 PROCEDURE AcctLineType_31 (
13363 p_application_id IN NUMBER
13364 ,p_event_id IN NUMBER
13365 ,p_calculate_acctd_flag IN VARCHAR2
13366 ,p_calculate_g_l_flag IN VARCHAR2
13367 ,p_actual_flag IN OUT VARCHAR2
13368 ,p_balance_type_code OUT VARCHAR2
13369 ,p_gain_or_loss_ref OUT VARCHAR2
13370
13371 --Invoice Distribution Description
13372 , p_source_1 IN VARCHAR2
13373 --Invoice Distribution Account
13374 , p_source_2 IN NUMBER
13375 --Federal Fund Category
13376 , p_source_4 IN VARCHAR2
13377 --Federal Fund Expired Status
13378 , p_source_5 IN VARCHAR2
13379 --Federal Fund Category Description
13380 , p_source_6 IN VARCHAR2
13381 --Invoice Distribution Type
13382 , p_source_8 IN VARCHAR2
13383 , p_source_8_meaning IN VARCHAR2
13384 --Federal Prior Year Flag
13385 , p_source_9 IN VARCHAR2
13386 --Invoice Distribution Encumbrance Amount
13387 , p_source_10 IN NUMBER
13388 --Accrue on Receipt Option
13389 , p_source_11 IN VARCHAR2
13390 , p_source_11_meaning IN VARCHAR2
13391 --Purchase Order Distribution Identifier
13392 , p_source_12 IN NUMBER
13393 --Invoice Type
13394 , p_source_13 IN VARCHAR2
13395 , p_source_13_meaning IN VARCHAR2
13396 --Accounting Reversal Indicator
13397 , p_source_15 IN VARCHAR2
13398 --Distribution Link Type
13399 , p_source_17 IN VARCHAR2
13400 --Allocation to Main Distribution Identifier
13401 , p_source_19 IN NUMBER
13402 --Invoice Identifier
13403 , p_source_20 IN NUMBER
13404 --Business Flow Accounts Payable Application Identifier
13405 , p_source_21 IN NUMBER
13406 --Business Flow Invoice Distribution Type
13407 , p_source_22 IN VARCHAR2
13408 --Business Flow Invoice Entity Code
13409 , p_source_23 IN VARCHAR2
13410 --Business Flow Invoice Distribution Identifier
13411 , p_source_24 IN NUMBER
13412 --Business Flow Invoice Identifier
13413 , p_source_25 IN NUMBER
13414 --Invoice Distribution Identifier
13415 , p_source_26 IN NUMBER
13416 --Payables Encumbrance Upgrade Credit Account
13417 , p_source_27 IN NUMBER
13418 --Payables Encumbrance Upgrade Credit Amount
13419 , p_source_28 IN NUMBER
13420 --Invoice Currency Code
13421 , p_source_29 IN VARCHAR2
13422 --Payables Encumbrance Upgrade Credit Base Amount
13423 , p_source_30 IN NUMBER
13424 --Payables Encumbrance Upgrade Debit Account
13425 , p_source_31 IN NUMBER
13426 --Payables Encumbrance Upgrade Debit Amount
13427 , p_source_32 IN NUMBER
13428 --Payables Encumbrance Upgrade Debit Base Amount
13429 , p_source_33 IN NUMBER
13430 --Payables Encumbrance Upgrade Option
13431 , p_source_34 IN VARCHAR2
13432 --Invoice Exchange Date
13433 , p_source_36 IN DATE
13434 --Invoice Exchange Rate
13435 , p_source_37 IN NUMBER
13436 --Invoice Exchange Rate Type
13437 , p_source_38 IN VARCHAR2
13438 --Deferred Accounting End Date
13439 , p_source_39 IN DATE
13440 --Deferred Accounting Option
13441 , p_source_40 IN VARCHAR2
13442 --Deferred Accounting Start Date
13443 , p_source_41 IN DATE
13444 --Override Accounted Amount Indicator
13445 , p_source_42 IN VARCHAR2
13446 , p_source_42_meaning IN VARCHAR2
13447 --Invoice Supplier Identifier
13448 , p_source_43 IN NUMBER
13449 --Invoice Supplier Site Identifier
13450 , p_source_44 IN NUMBER
13451 --Third Party Type
13452 , p_source_45 IN VARCHAR2
13453 --Parent Reversal Identifier
13454 , p_source_46 IN NUMBER
13455 --Invoice Distribution Statistical Amount
13456 , p_source_47 IN NUMBER
13457 --Invoice Distribution Tax Line Identifier
13458 , p_source_48 IN NUMBER
13459 --Invoice Distribution Tax Distribution Identifier from Tax
13460 , p_source_49 IN NUMBER
13461 --Invoice Distribution Summary Tax Line Identifier
13462 , p_source_50 IN NUMBER
13463 --Payables Upgrade Credit Encumbrance Type Identifier
13464 , p_source_51 IN NUMBER
13465 --Payables Upgrade Debit Encumbrance Type Identifier
13466 , p_source_52 IN NUMBER
13467 --Invoice Distribution Encumbrance Ledger Amount
13468 , p_source_53 IN NUMBER
13469 --Invoice Distribution Amount
13470 , p_source_55 IN NUMBER
13471 )
13472 IS
13473
13474 l_component_type VARCHAR2(80);
13475 l_component_code VARCHAR2(30);
13476 l_component_type_code VARCHAR2(1);
13477 l_component_appl_id INTEGER;
13478 l_amb_context_code VARCHAR2(30);
13479 l_entity_code VARCHAR2(30);
13480 l_event_class_code VARCHAR2(30);
13481 l_ae_header_id NUMBER;
13482 l_event_type_code VARCHAR2(30);
13483 l_line_definition_code VARCHAR2(30);
13484 l_line_definition_owner_code VARCHAR2(1);
13485 --
13486 -- adr variables
13487 l_segment VARCHAR2(30);
13488 l_ccid NUMBER;
13489 l_adr_transaction_coa_id NUMBER;
13490 l_adr_accounting_coa_id NUMBER;
13491 l_adr_flexfield_segment_code VARCHAR2(30);
13492 l_adr_flex_value_set_id NUMBER;
13493 l_adr_value_type_code VARCHAR2(30);
13494 l_adr_value_combination_id NUMBER;
13495 l_adr_value_segment_code VARCHAR2(30);
13496
13497 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13498 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13499 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13500 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13501
13502 -- 4262811 Variables ------------------------------------------------------------------------------------------
13503 l_entered_amt_idx NUMBER;
13504 l_accted_amt_idx NUMBER;
13505 l_acc_rev_flag VARCHAR2(1);
13506 l_accrual_line_num NUMBER;
13507 l_tmp_amt NUMBER;
13508 l_acc_rev_natural_side_code VARCHAR2(1);
13509
13510 l_num_entries NUMBER;
13511 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13512 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13513 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13514 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13515 l_recog_line_1 NUMBER;
13516 l_recog_line_2 NUMBER;
13517
13518 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13519 l_bflow_applied_to_amt NUMBER; -- 5132302
13520 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13521
13522 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13523
13524 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13525 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13526
13527 ---------------------------------------------------------------------------------------------------------------
13528
13529
13530 --
13531 -- bulk performance
13532 --
13533 l_balance_type_code VARCHAR2(1);
13534 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13535 l_log_module VARCHAR2(240);
13536
13537 --
13538 -- Upgrade strategy
13539 --
13540 l_actual_upg_option VARCHAR2(1);
13541 l_enc_upg_option VARCHAR2(1);
13542
13543 --
13544 BEGIN
13545 --
13546 IF g_log_enabled THEN
13547 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
13548 END IF;
13549 --
13550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13551
13552 trace
13553 (p_msg => 'BEGIN of AcctLineType_31'
13554 ,p_level => C_LEVEL_PROCEDURE
13555 ,p_module => l_log_module);
13556
13557 END IF;
13558 --
13559 l_component_type := 'AMB_JLT';
13560 l_component_code := 'FV_AP_DIRECT_EXP_INVOICE_DR';
13561 l_component_type_code := 'S';
13562 l_component_appl_id := 200;
13563 l_amb_context_code := 'DEFAULT';
13564 l_entity_code := 'AP_INVOICES';
13565 l_event_class_code := 'INVOICES';
13566 l_event_type_code := 'INVOICES_ALL';
13567 l_line_definition_owner_code := 'S';
13568 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
13569 --
13570 l_balance_type_code := 'A';
13571 l_segment := NULL;
13572 l_ccid := NULL;
13573 l_adr_transaction_coa_id := NULL;
13574 l_adr_accounting_coa_id := NULL;
13575 l_adr_flexfield_segment_code := NULL;
13576 l_adr_flex_value_set_id := NULL;
13577 l_adr_value_type_code := NULL;
13578 l_adr_value_combination_id := NULL;
13579 l_adr_value_segment_code := NULL;
13580
13581 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13582 l_bflow_class_code := ''; -- 4219869 Business Flow
13583 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13584 l_budgetary_control_flag := 'Y';
13585
13586 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13587 l_bflow_applied_to_amt := NULL; -- 5132302
13588 l_entered_amt_idx := NULL; -- 4262811
13589 l_accted_amt_idx := NULL; -- 4262811
13590 l_acc_rev_flag := NULL; -- 4262811
13591 l_accrual_line_num := NULL; -- 4262811
13592 l_tmp_amt := NULL; -- 4262811
13593 --
13594
13595 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13596 l_balance_type_code <> 'B' THEN
13597 IF (NVL(p_source_13,'
13598 ') = 'STANDARD' OR
13599 NVL(p_source_13,'
13600 ') = 'MIXED' OR
13601 NVL(p_source_13,'
13602 ') = 'INTEREST' OR
13603 NVL(p_source_13,'
13604 ') = 'EXPENSE REPORT') AND
13605 (NVL(p_source_8,'
13606 ') = 'ITEM' OR
13607 NVL(p_source_8,'
13608 ') = 'FREIGHT' OR
13609 NVL(p_source_8,'
13610 ') = 'MISCELLANEOUS' OR
13611 NVL(p_source_8,'
13612 ') = 'ACCRUAL') AND
13613 (NVL(p_source_9,'
13614 ') = 'N' OR
13615 (p_source_12 IS NOT NULL AND
13616 NVL(p_source_9,'
13617 ') = 'Y')
13618 ) AND NVL(p_source_11,'
13619 ') <> 'Y'
13620 THEN
13621
13622 --
13623 XLA_AE_LINES_PKG.SetNewLine;
13624
13625 p_balance_type_code := l_balance_type_code;
13626 -- set the flag so later we will know whether the gain loss line needs to be created
13627
13628 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13629 p_actual_flag :='A';
13630 END IF;
13631
13632 --
13633 -- bulk performance
13634 --
13635 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13636 p_header_num => 0); -- 4262811
13637 --
13638 -- set accounting line options
13639 --
13640 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13641 p_natural_side_code => 'D'
13642 , p_gain_or_loss_flag => 'N'
13643 , p_gl_transfer_mode_code => 'S'
13644 , p_acct_entry_type_code => 'A'
13645 , p_switch_side_flag => 'Y'
13646 , p_merge_duplicate_code => 'N'
13647 );
13648 --
13649 l_acc_rev_natural_side_code := 'C'; -- 4262811
13650 --
13651 --
13652 -- set accounting line type info
13653 --
13654 xla_ae_lines_pkg.SetAcctLineType
13655 (p_component_type => l_component_type
13656 ,p_event_type_code => l_event_type_code
13657 ,p_line_definition_owner_code => l_line_definition_owner_code
13658 ,p_line_definition_code => l_line_definition_code
13659 ,p_accounting_line_code => l_component_code
13660 ,p_accounting_line_type_code => l_component_type_code
13661 ,p_accounting_line_appl_id => l_component_appl_id
13662 ,p_amb_context_code => l_amb_context_code
13663 ,p_entity_code => l_entity_code
13664 ,p_event_class_code => l_event_class_code);
13665 --
13666 -- set accounting class
13667 --
13668 xla_ae_lines_pkg.SetAcctClass(
13669 p_accounting_class_code => 'ACCOUNTSPAYABLE'
13670 , p_ae_header_id => l_ae_header_id
13671 );
13672
13673 --
13674 -- set rounding class
13675 --
13676 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13677 'ACCOUNTSPAYABLE';
13678
13679 --
13680 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13681 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13682 --
13683 -- bulk performance
13684 --
13685 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13686
13687 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13688 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13689
13690 -- 4955764
13691 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13692 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13693
13694 -- 4458381 Public Sector Enh
13695
13696 --
13697 -- set accounting attributes for the line type
13698 --
13699 l_entered_amt_idx := 24;
13700 l_accted_amt_idx := 29;
13701 l_bflow_applied_to_amt_idx := 7; -- 5132302
13702 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13703 l_rec_acct_attrs.array_char_value(1) := p_source_15;
13704 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13705 l_rec_acct_attrs.array_num_value(2) :=
13706 xla_ae_sources_pkg.GetSystemSourceNum(
13707 p_source_code => 'XLA_EVENT_APPL_ID'
13708 , p_source_type_code => 'Y'
13709 , p_source_application_id => 602
13710 );
13711 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13712 l_rec_acct_attrs.array_char_value(3) := p_source_17;
13713 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13714 l_rec_acct_attrs.array_char_value(4) :=
13715 xla_ae_sources_pkg.GetSystemSourceChar(
13716 p_source_code => 'XLA_ENTITY_CODE'
13717 , p_source_type_code => 'Y'
13718 , p_source_application_id => 602
13719 );
13720 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13721 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
13722 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13723 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
13724 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
13725 l_rec_acct_attrs.array_num_value(7) := p_source_55;
13726 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
13727 l_rec_acct_attrs.array_num_value(8) := p_source_21;
13728 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13729 l_rec_acct_attrs.array_char_value(9) := p_source_22;
13730 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
13731 l_rec_acct_attrs.array_char_value(10) := p_source_23;
13732 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
13733 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
13734 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13735 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
13736 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
13737 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
13738 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
13739 l_rec_acct_attrs.array_char_value(14) := p_source_17;
13740 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
13741 l_rec_acct_attrs.array_num_value(15) := p_source_27;
13742 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
13743 l_rec_acct_attrs.array_num_value(16) := p_source_28;
13744 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
13745 l_rec_acct_attrs.array_char_value(17) := p_source_29;
13746 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
13747 l_rec_acct_attrs.array_num_value(18) := p_source_30;
13748 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
13749 l_rec_acct_attrs.array_num_value(19) := p_source_31;
13750 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
13751 l_rec_acct_attrs.array_num_value(20) := p_source_32;
13752 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
13753 l_rec_acct_attrs.array_char_value(21) := p_source_29;
13754 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
13755 l_rec_acct_attrs.array_num_value(22) := p_source_33;
13756 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
13757 l_rec_acct_attrs.array_char_value(23) := p_source_34;
13758 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
13759 l_rec_acct_attrs.array_num_value(24) := p_source_10;
13760 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
13761 l_rec_acct_attrs.array_char_value(25) := p_source_29;
13762 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
13763 l_rec_acct_attrs.array_date_value(26) := p_source_36;
13764 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
13765 l_rec_acct_attrs.array_num_value(27) := p_source_37;
13766 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
13767 l_rec_acct_attrs.array_char_value(28) := p_source_38;
13768 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
13769 l_rec_acct_attrs.array_num_value(29) := p_source_53;
13770 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
13771 l_rec_acct_attrs.array_date_value(30) := p_source_39;
13772 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
13773 l_rec_acct_attrs.array_char_value(31) := p_source_40;
13774 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
13775 l_rec_acct_attrs.array_date_value(32) := p_source_41;
13776 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
13777 l_rec_acct_attrs.array_char_value(33) := p_source_42;
13778 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
13779 l_rec_acct_attrs.array_num_value(34) := p_source_43;
13780 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
13781 l_rec_acct_attrs.array_num_value(35) := p_source_44;
13782 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
13783 l_rec_acct_attrs.array_char_value(36) := p_source_45;
13784 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
13785 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
13786 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
13787 l_rec_acct_attrs.array_char_value(38) := p_source_17;
13788 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
13789 l_rec_acct_attrs.array_num_value(39) := p_source_47;
13790 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
13791 l_rec_acct_attrs.array_num_value(40) := p_source_48;
13792 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
13793 l_rec_acct_attrs.array_num_value(41) := p_source_49;
13794 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
13795 l_rec_acct_attrs.array_num_value(42) := p_source_50;
13796 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
13797 l_rec_acct_attrs.array_num_value(43) := p_source_51;
13798 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
13799 l_rec_acct_attrs.array_num_value(44) := p_source_52;
13800
13801 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13802 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13803
13804 ---------------------------------------------------------------------------------------------------------------
13805 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13806 ---------------------------------------------------------------------------------------------------------------
13807 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13808
13809 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13810 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13811
13812 IF xla_accounting_cache_pkg.GetValueChar
13813 (p_source_code => 'LEDGER_CATEGORY_CODE'
13814 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13815 AND l_bflow_method_code = 'PRIOR_ENTRY'
13816 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13817 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13818 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13819 )
13820 THEN
13821 xla_ae_lines_pkg.BflowUpgEntry
13822 (p_business_method_code => l_bflow_method_code
13823 ,p_business_class_code => l_bflow_class_code
13824 ,p_balance_type => l_balance_type_code);
13825 ELSE
13826 NULL;
13827 -- No business flow processing for business flow method of NONE.
13828 END IF;
13829
13830 --
13831 -- call analytical criteria
13832 --
13833
13834 --
13835 -- call description
13836 --
13837
13838 xla_ae_lines_pkg.SetLineDescription(
13839 p_ae_header_id => l_ae_header_id
13840 ,p_description => Description_2 (
13841 p_application_id => p_application_id
13842 , p_ae_header_id => l_ae_header_id
13843 , p_source_1 => p_source_1
13844 )
13845 );
13846
13847
13848 --
13849 -- call ADRs
13850 -- Bug 4922099
13851 --
13852 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13853 (NVL(l_actual_upg_option, 'N') = 'O') OR
13854 (NVL(l_enc_upg_option, 'N') = 'O')
13855 )
13856 THEN
13857 NULL;
13858 --
13859 --
13860
13861 l_ccid := AcctDerRule_3(
13862 p_application_id => p_application_id
13863 , p_ae_header_id => l_ae_header_id
13864 , p_source_2 => p_source_2
13865 , x_transaction_coa_id => l_adr_transaction_coa_id
13866 , x_accounting_coa_id => l_adr_accounting_coa_id
13867 , x_value_type_code => l_adr_value_type_code
13868 , p_side => 'NA'
13869 );
13870
13871 xla_ae_lines_pkg.set_ccid(
13872 p_code_combination_id => l_ccid
13873 , p_value_type_code => l_adr_value_type_code
13874 , p_transaction_coa_id => l_adr_transaction_coa_id
13875 , p_accounting_coa_id => l_adr_accounting_coa_id
13876 , p_adr_code => 'AP_INVOICE_DIST'
13877 , p_adr_type_code => 'S'
13878 , p_component_type => l_component_type
13879 , p_component_code => l_component_code
13880 , p_component_type_code => l_component_type_code
13881 , p_component_appl_id => l_component_appl_id
13882 , p_amb_context_code => l_amb_context_code
13883 , p_side => 'NA'
13884 );
13885
13886
13887 l_segment := AcctDerRule_8(
13888 p_application_id => p_application_id
13889 , p_ae_header_id => l_ae_header_id
13890 , p_source_4 => p_source_4
13891 , p_source_5 => p_source_5
13892 , p_source_6 => p_source_6
13893 , x_transaction_coa_id => l_adr_transaction_coa_id
13894 , x_accounting_coa_id => l_adr_accounting_coa_id
13895 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13896 , x_flex_value_set_id => l_adr_flex_value_set_id
13897 , x_value_type_code => l_adr_value_type_code
13898 , x_value_combination_id => l_adr_value_combination_id
13899 , x_value_segment_code => l_adr_value_segment_code
13900 , p_side => 'NA'
13901 , p_override_seg_flag => 'Y'
13902 );
13903
13904 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13905
13906 xla_ae_lines_pkg.set_segment(
13907 p_to_segment_code => 'GL_ACCOUNT'
13908 , p_segment_value => l_segment
13909 , p_from_segment_code => l_adr_value_segment_code
13910 , p_from_combination_id => l_adr_value_combination_id
13911 , p_value_type_code => l_adr_value_type_code
13912 , p_transaction_coa_id => l_adr_transaction_coa_id
13913 , p_accounting_coa_id => l_adr_accounting_coa_id
13914 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13915 , p_flex_value_set_id => l_adr_flex_value_set_id
13916 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
13917 , p_adr_type_code => 'S'
13918 , p_component_type => l_component_type
13919 , p_component_code => l_component_code
13920 , p_component_type_code => l_component_type_code
13921 , p_component_appl_id => l_component_appl_id
13922 , p_amb_context_code => l_amb_context_code
13923 , p_entity_code => 'AP_INVOICES'
13924 , p_event_class_code => 'INVOICES'
13925 , p_side => 'NA'
13926 );
13927
13928 END IF;
13929
13930 --
13931 --
13932 END IF;
13933 --
13934 -- Bug 4922099
13935 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13936 (NVL(l_enc_upg_option, 'N') = 'O')
13937 ) AND
13938 (l_bflow_method_code = 'PRIOR_ENTRY')
13939 )
13940 THEN
13941 IF
13942 --
13943 1 = 2
13944 --
13945 THEN
13946 xla_accounting_err_pkg.build_message
13947 (p_appli_s_name => 'XLA'
13948 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13949 ,p_token_1 => 'LINE_NUMBER'
13950 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13951 ,p_token_2 => 'LINE_TYPE_NAME'
13952 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13953 l_component_type
13954 ,l_component_code
13955 ,l_component_type_code
13956 ,l_component_appl_id
13957 ,l_amb_context_code
13958 ,l_entity_code
13959 ,l_event_class_code
13960 )
13961 ,p_token_3 => 'OWNER'
13962 ,p_value_3 => xla_lookups_pkg.get_meaning(
13963 p_lookup_type => 'XLA_OWNER_TYPE'
13964 ,p_lookup_code => l_component_type_code
13965 )
13966 ,p_token_4 => 'PRODUCT_NAME'
13967 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13968 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13969 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13970 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13971 ,p_ae_header_id => NULL
13972 );
13973
13974 IF (C_LEVEL_ERROR>= g_log_level) THEN
13975 trace
13976 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13977 ,p_level => C_LEVEL_ERROR
13978 ,p_module => l_log_module);
13979 END IF;
13980 END IF;
13981 END IF;
13982 --
13983 --
13984 ------------------------------------------------------------------------------------------------
13985 -- 4219869 Business Flow
13986 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13987 -- Prior Entry. Currently, the following code is always generated.
13988 ------------------------------------------------------------------------------------------------
13989 XLA_AE_LINES_PKG.ValidateCurrentLine;
13990
13991 ------------------------------------------------------------------------------------
13992 -- 4219869 Business Flow
13993 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13994 ------------------------------------------------------------------------------------
13995 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13996
13997 ----------------------------------------------------------------------------------
13998 -- 4219869 Business Flow
13999 -- Update journal entry status -- Need to generate this within IF <condition>
14000 ----------------------------------------------------------------------------------
14001 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14002 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14003 ,p_balance_type_code => l_balance_type_code
14004 );
14005
14006 -------------------------------------------------------------------------------------------
14007 -- 4262811 - Generate the Accrual Reversal lines
14008 -------------------------------------------------------------------------------------------
14009 BEGIN
14010 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14011 (g_array_event(p_event_id).array_value_num('header_index'));
14012 IF l_acc_rev_flag IS NULL THEN
14013 l_acc_rev_flag := 'N';
14014 END IF;
14015 EXCEPTION
14016 WHEN OTHERS THEN
14017 l_acc_rev_flag := 'N';
14018 END;
14019 --
14020 IF (l_acc_rev_flag = 'Y') THEN
14021
14022 -- 4645092 ------------------------------------------------------------------------------
14023 -- To allow MPA report to determine if it should generate report process
14024 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14025 ------------------------------------------------------------------------------------------
14026
14027 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14028 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14029 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14030 -- call ADRs
14031 -- Bug 4922099
14032 --
14033 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14034 (NVL(l_actual_upg_option, 'N') = 'O') OR
14035 (NVL(l_enc_upg_option, 'N') = 'O')
14036 )
14037 THEN
14038 NULL;
14039 --
14040 --
14041
14042 l_ccid := AcctDerRule_3(
14043 p_application_id => p_application_id
14044 , p_ae_header_id => l_ae_header_id
14045 , p_source_2 => p_source_2
14046 , x_transaction_coa_id => l_adr_transaction_coa_id
14047 , x_accounting_coa_id => l_adr_accounting_coa_id
14048 , x_value_type_code => l_adr_value_type_code
14049 , p_side => 'NA'
14050 );
14051
14052 xla_ae_lines_pkg.set_ccid(
14053 p_code_combination_id => l_ccid
14054 , p_value_type_code => l_adr_value_type_code
14055 , p_transaction_coa_id => l_adr_transaction_coa_id
14056 , p_accounting_coa_id => l_adr_accounting_coa_id
14057 , p_adr_code => 'AP_INVOICE_DIST'
14058 , p_adr_type_code => 'S'
14059 , p_component_type => l_component_type
14060 , p_component_code => l_component_code
14061 , p_component_type_code => l_component_type_code
14062 , p_component_appl_id => l_component_appl_id
14063 , p_amb_context_code => l_amb_context_code
14064 , p_side => 'NA'
14065 );
14066
14067
14068 l_segment := AcctDerRule_8(
14069 p_application_id => p_application_id
14070 , p_ae_header_id => l_ae_header_id
14071 , p_source_4 => p_source_4
14072 , p_source_5 => p_source_5
14073 , p_source_6 => p_source_6
14074 , x_transaction_coa_id => l_adr_transaction_coa_id
14075 , x_accounting_coa_id => l_adr_accounting_coa_id
14076 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14077 , x_flex_value_set_id => l_adr_flex_value_set_id
14078 , x_value_type_code => l_adr_value_type_code
14079 , x_value_combination_id => l_adr_value_combination_id
14080 , x_value_segment_code => l_adr_value_segment_code
14081 , p_side => 'NA'
14082 , p_override_seg_flag => 'Y'
14083 );
14084
14085 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14086
14087 xla_ae_lines_pkg.set_segment(
14088 p_to_segment_code => 'GL_ACCOUNT'
14089 , p_segment_value => l_segment
14090 , p_from_segment_code => l_adr_value_segment_code
14091 , p_from_combination_id => l_adr_value_combination_id
14092 , p_value_type_code => l_adr_value_type_code
14093 , p_transaction_coa_id => l_adr_transaction_coa_id
14094 , p_accounting_coa_id => l_adr_accounting_coa_id
14095 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14096 , p_flex_value_set_id => l_adr_flex_value_set_id
14097 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
14098 , p_adr_type_code => 'S'
14099 , p_component_type => l_component_type
14100 , p_component_code => l_component_code
14101 , p_component_type_code => l_component_type_code
14102 , p_component_appl_id => l_component_appl_id
14103 , p_amb_context_code => l_amb_context_code
14104 , p_entity_code => 'AP_INVOICES'
14105 , p_event_class_code => 'INVOICES'
14106 , p_side => 'NA'
14107 );
14108
14109 END IF;
14110
14111 --
14112 --
14113 END IF;
14114
14115 --
14116 -- Update the line information that should be overwritten
14117 --
14118 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14119 p_header_num => 1);
14120 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14121
14122 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14123
14124 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14125 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14126 END IF;
14127
14128 --
14129 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14130 --
14131 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14132 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14133 ELSE
14134 ---------------------------------------------------------------------------------------------------
14135 -- 4262811a Switch Sign
14136 ---------------------------------------------------------------------------------------------------
14137 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14138 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14139 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14140 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14141 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14142 -- 5132302
14143 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14144 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14145
14146 END IF;
14147
14148 -- 4955764
14149 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14150 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14151
14152
14153 XLA_AE_LINES_PKG.ValidateCurrentLine;
14154 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14155
14156 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14157 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14158 ,p_balance_type_code => l_balance_type_code);
14159
14160 END IF;
14161
14162 -----------------------------------------------------------------------------------------
14163 -- 4262811 Multiperiod Accounting
14164 -----------------------------------------------------------------------------------------
14165 -- No MPA option is assigned.
14166
14167
14168 END IF;
14169 END IF;
14170 --
14171
14172 --
14173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14174 trace
14175 (p_msg => 'END of AcctLineType_31'
14176 ,p_level => C_LEVEL_PROCEDURE
14177 ,p_module => l_log_module);
14178 END IF;
14179 --
14180 EXCEPTION
14181 WHEN xla_exceptions_pkg.application_exception THEN
14182 RAISE;
14183 WHEN OTHERS THEN
14184 xla_exceptions_pkg.raise_message
14185 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_31');
14186 END AcctLineType_31;
14187 --
14188
14189 ---------------------------------------
14190 --
14191 -- PRIVATE FUNCTION
14192 -- AcctLineType_32
14193 --
14194 ---------------------------------------
14195 PROCEDURE AcctLineType_32 (
14196 p_application_id IN NUMBER
14197 ,p_event_id IN NUMBER
14198 ,p_calculate_acctd_flag IN VARCHAR2
14199 ,p_calculate_g_l_flag IN VARCHAR2
14200 ,p_actual_flag IN OUT VARCHAR2
14201 ,p_balance_type_code OUT VARCHAR2
14202 ,p_gain_or_loss_ref OUT VARCHAR2
14203
14204 --Invoice Distribution Description
14205 , p_source_1 IN VARCHAR2
14206 --Invoice Distribution Account
14207 , p_source_2 IN NUMBER
14208 --Federal Anticipation
14209 , p_source_3 IN VARCHAR2
14210 --Invoice Distribution Type
14211 , p_source_8 IN VARCHAR2
14212 , p_source_8_meaning IN VARCHAR2
14213 --Federal Prior Year Flag
14214 , p_source_9 IN VARCHAR2
14215 --Invoice Type
14216 , p_source_13 IN VARCHAR2
14217 , p_source_13_meaning IN VARCHAR2
14218 --Federal Adjustment Type
14219 , p_source_14 IN VARCHAR2
14220 --Accounting Reversal Indicator
14221 , p_source_15 IN VARCHAR2
14222 --Distribution Link Type
14223 , p_source_17 IN VARCHAR2
14224 --Allocation to Main Distribution Identifier
14225 , p_source_19 IN NUMBER
14226 --Invoice Identifier
14227 , p_source_20 IN NUMBER
14228 --Business Flow Accounts Payable Application Identifier
14229 , p_source_21 IN NUMBER
14230 --Business Flow Invoice Distribution Type
14231 , p_source_22 IN VARCHAR2
14232 --Business Flow Invoice Entity Code
14233 , p_source_23 IN VARCHAR2
14234 --Business Flow Invoice Distribution Identifier
14235 , p_source_24 IN NUMBER
14236 --Business Flow Invoice Identifier
14237 , p_source_25 IN NUMBER
14238 --Invoice Distribution Identifier
14239 , p_source_26 IN NUMBER
14240 --Payables Encumbrance Upgrade Credit Account
14241 , p_source_27 IN NUMBER
14242 --Payables Encumbrance Upgrade Credit Amount
14243 , p_source_28 IN NUMBER
14244 --Invoice Currency Code
14245 , p_source_29 IN VARCHAR2
14246 --Payables Encumbrance Upgrade Credit Base Amount
14247 , p_source_30 IN NUMBER
14248 --Payables Encumbrance Upgrade Debit Account
14249 , p_source_31 IN NUMBER
14250 --Payables Encumbrance Upgrade Debit Amount
14251 , p_source_32 IN NUMBER
14252 --Payables Encumbrance Upgrade Debit Base Amount
14253 , p_source_33 IN NUMBER
14254 --Payables Encumbrance Upgrade Option
14255 , p_source_34 IN VARCHAR2
14256 --Federal Anticipated Amt
14257 , p_source_35 IN NUMBER
14258 --Invoice Exchange Date
14259 , p_source_36 IN DATE
14260 --Invoice Exchange Rate
14261 , p_source_37 IN NUMBER
14262 --Invoice Exchange Rate Type
14263 , p_source_38 IN VARCHAR2
14264 --Deferred Accounting End Date
14265 , p_source_39 IN DATE
14266 --Deferred Accounting Option
14267 , p_source_40 IN VARCHAR2
14268 --Deferred Accounting Start Date
14269 , p_source_41 IN DATE
14270 --Override Accounted Amount Indicator
14271 , p_source_42 IN VARCHAR2
14272 , p_source_42_meaning IN VARCHAR2
14273 --Invoice Supplier Identifier
14274 , p_source_43 IN NUMBER
14275 --Invoice Supplier Site Identifier
14276 , p_source_44 IN NUMBER
14277 --Third Party Type
14278 , p_source_45 IN VARCHAR2
14279 --Parent Reversal Identifier
14280 , p_source_46 IN NUMBER
14281 --Invoice Distribution Tax Line Identifier
14282 , p_source_48 IN NUMBER
14283 --Invoice Distribution Tax Distribution Identifier from Tax
14284 , p_source_49 IN NUMBER
14285 --Invoice Distribution Summary Tax Line Identifier
14286 , p_source_50 IN NUMBER
14287 --Payables Upgrade Credit Encumbrance Type Identifier
14288 , p_source_51 IN NUMBER
14289 --Payables Upgrade Debit Encumbrance Type Identifier
14290 , p_source_52 IN NUMBER
14291 )
14292 IS
14293
14294 l_component_type VARCHAR2(80);
14295 l_component_code VARCHAR2(30);
14296 l_component_type_code VARCHAR2(1);
14297 l_component_appl_id INTEGER;
14298 l_amb_context_code VARCHAR2(30);
14299 l_entity_code VARCHAR2(30);
14300 l_event_class_code VARCHAR2(30);
14301 l_ae_header_id NUMBER;
14302 l_event_type_code VARCHAR2(30);
14303 l_line_definition_code VARCHAR2(30);
14304 l_line_definition_owner_code VARCHAR2(1);
14305 --
14306 -- adr variables
14307 l_segment VARCHAR2(30);
14308 l_ccid NUMBER;
14309 l_adr_transaction_coa_id NUMBER;
14310 l_adr_accounting_coa_id NUMBER;
14311 l_adr_flexfield_segment_code VARCHAR2(30);
14312 l_adr_flex_value_set_id NUMBER;
14313 l_adr_value_type_code VARCHAR2(30);
14314 l_adr_value_combination_id NUMBER;
14315 l_adr_value_segment_code VARCHAR2(30);
14316
14317 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14318 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14319 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14320 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14321
14322 -- 4262811 Variables ------------------------------------------------------------------------------------------
14323 l_entered_amt_idx NUMBER;
14324 l_accted_amt_idx NUMBER;
14325 l_acc_rev_flag VARCHAR2(1);
14326 l_accrual_line_num NUMBER;
14327 l_tmp_amt NUMBER;
14328 l_acc_rev_natural_side_code VARCHAR2(1);
14329
14330 l_num_entries NUMBER;
14331 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14332 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14333 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14334 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14335 l_recog_line_1 NUMBER;
14336 l_recog_line_2 NUMBER;
14337
14338 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14339 l_bflow_applied_to_amt NUMBER; -- 5132302
14340 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14341
14342 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14343
14344 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14345 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14346
14347 ---------------------------------------------------------------------------------------------------------------
14348
14349
14350 --
14351 -- bulk performance
14352 --
14353 l_balance_type_code VARCHAR2(1);
14354 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14355 l_log_module VARCHAR2(240);
14356
14357 --
14358 -- Upgrade strategy
14359 --
14360 l_actual_upg_option VARCHAR2(1);
14361 l_enc_upg_option VARCHAR2(1);
14362
14363 --
14364 BEGIN
14365 --
14366 IF g_log_enabled THEN
14367 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
14368 END IF;
14369 --
14370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14371
14372 trace
14373 (p_msg => 'BEGIN of AcctLineType_32'
14374 ,p_level => C_LEVEL_PROCEDURE
14375 ,p_module => l_log_module);
14376
14377 END IF;
14378 --
14379 l_component_type := 'AMB_JLT';
14380 l_component_code := 'FV_AP_DM_ DWD_ANPT_PYA_CR';
14381 l_component_type_code := 'S';
14382 l_component_appl_id := 200;
14383 l_amb_context_code := 'DEFAULT';
14384 l_entity_code := 'AP_INVOICES';
14385 l_event_class_code := 'DEBIT MEMOS';
14386 l_event_type_code := 'DEBIT MEMOS_ALL';
14387 l_line_definition_owner_code := 'S';
14388 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
14389 --
14390 l_balance_type_code := 'A';
14394 l_adr_accounting_coa_id := NULL;
14391 l_segment := NULL;
14392 l_ccid := NULL;
14393 l_adr_transaction_coa_id := NULL;
14395 l_adr_flexfield_segment_code := NULL;
14396 l_adr_flex_value_set_id := NULL;
14397 l_adr_value_type_code := NULL;
14398 l_adr_value_combination_id := NULL;
14399 l_adr_value_segment_code := NULL;
14400
14401 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14402 l_bflow_class_code := ''; -- 4219869 Business Flow
14403 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14404 l_budgetary_control_flag := 'Y';
14405
14406 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14407 l_bflow_applied_to_amt := NULL; -- 5132302
14408 l_entered_amt_idx := NULL; -- 4262811
14409 l_accted_amt_idx := NULL; -- 4262811
14410 l_acc_rev_flag := NULL; -- 4262811
14411 l_accrual_line_num := NULL; -- 4262811
14412 l_tmp_amt := NULL; -- 4262811
14413 --
14414
14415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14416 l_balance_type_code <> 'B' THEN
14417 IF NVL(p_source_13,'
14418 ') = 'DEBIT' AND
14419 NVL(p_source_9,'
14420 ') = 'Y' AND
14421 (NVL(p_source_8,'
14422 ') = 'ITEM' OR
14423 NVL(p_source_8,'
14424 ') = 'ACCRUAL' OR
14425 NVL(p_source_8,'
14426 ') = 'FREIGHT' OR
14427 NVL(p_source_8,'
14428 ') = 'MISCELLANEOUS' OR
14429 NVL(p_source_8,'
14430 ') = 'IPV') AND
14431 NVL(p_source_14,'
14432 ') = 'Downward' AND
14433 (NVL(p_source_3,'
14434 ') = 'Anticipated' OR
14435 NVL(p_source_3,'
14436 ') = 'Partial')
14437 THEN
14438
14439 --
14440 XLA_AE_LINES_PKG.SetNewLine;
14441
14442 p_balance_type_code := l_balance_type_code;
14443 -- set the flag so later we will know whether the gain loss line needs to be created
14444
14445 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14446 p_actual_flag :='A';
14447 END IF;
14448
14449 --
14450 -- bulk performance
14451 --
14452 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14453 p_header_num => 0); -- 4262811
14454 --
14455 -- set accounting line options
14456 --
14457 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14458 p_natural_side_code => 'D'
14459 , p_gain_or_loss_flag => 'N'
14460 , p_gl_transfer_mode_code => 'S'
14461 , p_acct_entry_type_code => 'A'
14462 , p_switch_side_flag => 'N'
14463 , p_merge_duplicate_code => 'N'
14464 );
14465 --
14466 l_acc_rev_natural_side_code := 'C'; -- 4262811
14467 --
14468 --
14469 -- set accounting line type info
14470 --
14471 xla_ae_lines_pkg.SetAcctLineType
14472 (p_component_type => l_component_type
14473 ,p_event_type_code => l_event_type_code
14474 ,p_line_definition_owner_code => l_line_definition_owner_code
14475 ,p_line_definition_code => l_line_definition_code
14476 ,p_accounting_line_code => l_component_code
14477 ,p_accounting_line_type_code => l_component_type_code
14478 ,p_accounting_line_appl_id => l_component_appl_id
14479 ,p_amb_context_code => l_amb_context_code
14480 ,p_entity_code => l_entity_code
14481 ,p_event_class_code => l_event_class_code);
14482 --
14483 -- set accounting class
14484 --
14485 xla_ae_lines_pkg.SetAcctClass(
14486 p_accounting_class_code => 'ACCOUNTSPAYABLE'
14487 , p_ae_header_id => l_ae_header_id
14488 );
14489
14490 --
14491 -- set rounding class
14492 --
14493 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14494 'ACCOUNTSPAYABLE';
14495
14496 --
14497 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14498 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14499 --
14500 -- bulk performance
14501 --
14502 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14503
14504 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14505 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14506
14507 -- 4955764
14508 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14509 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14510
14511 -- 4458381 Public Sector Enh
14512
14513 --
14514 -- set accounting attributes for the line type
14515 --
14516 l_entered_amt_idx := 23;
14517 l_accted_amt_idx := 28;
14518 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14519 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14520 l_rec_acct_attrs.array_char_value(1) := p_source_15;
14521 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14522 l_rec_acct_attrs.array_num_value(2) :=
14523 xla_ae_sources_pkg.GetSystemSourceNum(
14524 p_source_code => 'XLA_EVENT_APPL_ID'
14525 , p_source_type_code => 'Y'
14526 , p_source_application_id => 602
14527 );
14528 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14529 l_rec_acct_attrs.array_char_value(3) := p_source_17;
14530 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14531 l_rec_acct_attrs.array_char_value(4) :=
14532 xla_ae_sources_pkg.GetSystemSourceChar(
14533 p_source_code => 'XLA_ENTITY_CODE'
14534 , p_source_type_code => 'Y'
14535 , p_source_application_id => 602
14536 );
14537 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14538 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
14539 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14540 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
14541 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14542 l_rec_acct_attrs.array_num_value(7) := p_source_21;
14543 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14544 l_rec_acct_attrs.array_char_value(8) := p_source_22;
14545 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14546 l_rec_acct_attrs.array_char_value(9) := p_source_23;
14547 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14548 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
14549 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14550 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
14551 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14552 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
14553 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14554 l_rec_acct_attrs.array_char_value(13) := p_source_17;
14555 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14556 l_rec_acct_attrs.array_num_value(14) := p_source_27;
14557 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14558 l_rec_acct_attrs.array_num_value(15) := p_source_28;
14559 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14560 l_rec_acct_attrs.array_char_value(16) := p_source_29;
14561 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14562 l_rec_acct_attrs.array_num_value(17) := p_source_30;
14563 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14564 l_rec_acct_attrs.array_num_value(18) := p_source_31;
14565 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14566 l_rec_acct_attrs.array_num_value(19) := p_source_32;
14567 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14568 l_rec_acct_attrs.array_char_value(20) := p_source_29;
14569 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14570 l_rec_acct_attrs.array_num_value(21) := p_source_33;
14571 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14572 l_rec_acct_attrs.array_char_value(22) := p_source_34;
14573 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
14574 l_rec_acct_attrs.array_num_value(23) := p_source_35;
14575 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
14576 l_rec_acct_attrs.array_char_value(24) := p_source_29;
14577 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
14578 l_rec_acct_attrs.array_date_value(25) := p_source_36;
14579 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
14580 l_rec_acct_attrs.array_num_value(26) := p_source_37;
14581 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
14582 l_rec_acct_attrs.array_char_value(27) := p_source_38;
14583 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
14584 l_rec_acct_attrs.array_num_value(28) := p_source_35;
14585 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
14586 l_rec_acct_attrs.array_date_value(29) := p_source_39;
14587 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
14588 l_rec_acct_attrs.array_char_value(30) := p_source_40;
14589 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
14590 l_rec_acct_attrs.array_date_value(31) := p_source_41;
14591 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
14592 l_rec_acct_attrs.array_char_value(32) := p_source_42;
14593 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
14594 l_rec_acct_attrs.array_num_value(33) := p_source_43;
14595 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
14596 l_rec_acct_attrs.array_num_value(34) := p_source_44;
14597 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
14598 l_rec_acct_attrs.array_char_value(35) := p_source_45;
14599 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
14600 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
14601 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
14602 l_rec_acct_attrs.array_char_value(37) := p_source_17;
14603 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
14604 l_rec_acct_attrs.array_num_value(38) := p_source_48;
14605 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
14606 l_rec_acct_attrs.array_num_value(39) := p_source_49;
14607 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
14608 l_rec_acct_attrs.array_num_value(40) := p_source_50;
14609 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
14610 l_rec_acct_attrs.array_num_value(41) := p_source_51;
14611 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
14612 l_rec_acct_attrs.array_num_value(42) := p_source_52;
14613
14614 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14615 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14616
14617 ---------------------------------------------------------------------------------------------------------------
14618 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14619 ---------------------------------------------------------------------------------------------------------------
14620 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14621
14622 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14623 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14624
14625 IF xla_accounting_cache_pkg.GetValueChar
14626 (p_source_code => 'LEDGER_CATEGORY_CODE'
14627 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14628 AND l_bflow_method_code = 'PRIOR_ENTRY'
14629 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14630 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14631 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14632 )
14633 THEN
14634 xla_ae_lines_pkg.BflowUpgEntry
14635 (p_business_method_code => l_bflow_method_code
14636 ,p_business_class_code => l_bflow_class_code
14637 ,p_balance_type => l_balance_type_code);
14638 ELSE
14639 NULL;
14640 -- No business flow processing for business flow method of NONE.
14641 END IF;
14642
14643 --
14644 -- call analytical criteria
14645 --
14646
14647 --
14648 -- call description
14649 --
14650
14651 xla_ae_lines_pkg.SetLineDescription(
14652 p_ae_header_id => l_ae_header_id
14653 ,p_description => Description_2 (
14654 p_application_id => p_application_id
14655 , p_ae_header_id => l_ae_header_id
14656 , p_source_1 => p_source_1
14657 )
14658 );
14659
14660
14661 --
14662 -- call ADRs
14663 -- Bug 4922099
14664 --
14665 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14666 (NVL(l_actual_upg_option, 'N') = 'O') OR
14667 (NVL(l_enc_upg_option, 'N') = 'O')
14668 )
14669 THEN
14670 NULL;
14671 --
14672 --
14673
14674 l_ccid := AcctDerRule_3(
14675 p_application_id => p_application_id
14676 , p_ae_header_id => l_ae_header_id
14677 , p_source_2 => p_source_2
14678 , x_transaction_coa_id => l_adr_transaction_coa_id
14679 , x_accounting_coa_id => l_adr_accounting_coa_id
14680 , x_value_type_code => l_adr_value_type_code
14681 , p_side => 'NA'
14682 );
14683
14684 xla_ae_lines_pkg.set_ccid(
14685 p_code_combination_id => l_ccid
14686 , p_value_type_code => l_adr_value_type_code
14687 , p_transaction_coa_id => l_adr_transaction_coa_id
14688 , p_accounting_coa_id => l_adr_accounting_coa_id
14689 , p_adr_code => 'AP_INVOICE_DIST'
14690 , p_adr_type_code => 'S'
14691 , p_component_type => l_component_type
14692 , p_component_code => l_component_code
14693 , p_component_type_code => l_component_type_code
14694 , p_component_appl_id => l_component_appl_id
14695 , p_amb_context_code => l_amb_context_code
14696 , p_side => 'NA'
14697 );
14698
14699
14700 l_segment := AcctDerRule_5(
14701 p_application_id => p_application_id
14702 , p_ae_header_id => l_ae_header_id
14703 , p_source_3 => p_source_3
14704 , x_transaction_coa_id => l_adr_transaction_coa_id
14705 , x_accounting_coa_id => l_adr_accounting_coa_id
14706 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14707 , x_flex_value_set_id => l_adr_flex_value_set_id
14708 , x_value_type_code => l_adr_value_type_code
14709 , x_value_combination_id => l_adr_value_combination_id
14710 , x_value_segment_code => l_adr_value_segment_code
14711 , p_side => 'NA'
14712 , p_override_seg_flag => 'Y'
14713 );
14714
14715 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14716
14717 xla_ae_lines_pkg.set_segment(
14718 p_to_segment_code => 'GL_ACCOUNT'
14719 , p_segment_value => l_segment
14720 , p_from_segment_code => l_adr_value_segment_code
14721 , p_from_combination_id => l_adr_value_combination_id
14722 , p_value_type_code => l_adr_value_type_code
14723 , p_transaction_coa_id => l_adr_transaction_coa_id
14724 , p_accounting_coa_id => l_adr_accounting_coa_id
14725 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14726 , p_flex_value_set_id => l_adr_flex_value_set_id
14727 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
14728 , p_adr_type_code => 'S'
14729 , p_component_type => l_component_type
14730 , p_component_code => l_component_code
14731 , p_component_type_code => l_component_type_code
14732 , p_component_appl_id => l_component_appl_id
14733 , p_amb_context_code => l_amb_context_code
14734 , p_entity_code => 'AP_INVOICES'
14735 , p_event_class_code => 'DEBIT MEMOS'
14736 , p_side => 'NA'
14737 );
14738
14739 END IF;
14740
14741 --
14742 --
14743 END IF;
14744 --
14745 -- Bug 4922099
14746 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14747 (NVL(l_enc_upg_option, 'N') = 'O')
14748 ) AND
14749 (l_bflow_method_code = 'PRIOR_ENTRY')
14750 )
14751 THEN
14752 IF
14753 --
14754 1 = 2
14755 --
14756 THEN
14757 xla_accounting_err_pkg.build_message
14758 (p_appli_s_name => 'XLA'
14759 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14760 ,p_token_1 => 'LINE_NUMBER'
14761 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14762 ,p_token_2 => 'LINE_TYPE_NAME'
14763 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14764 l_component_type
14765 ,l_component_code
14766 ,l_component_type_code
14767 ,l_component_appl_id
14768 ,l_amb_context_code
14769 ,l_entity_code
14770 ,l_event_class_code
14771 )
14772 ,p_token_3 => 'OWNER'
14773 ,p_value_3 => xla_lookups_pkg.get_meaning(
14774 p_lookup_type => 'XLA_OWNER_TYPE'
14775 ,p_lookup_code => l_component_type_code
14776 )
14777 ,p_token_4 => 'PRODUCT_NAME'
14778 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14779 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14780 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14781 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14782 ,p_ae_header_id => NULL
14783 );
14784
14785 IF (C_LEVEL_ERROR>= g_log_level) THEN
14786 trace
14787 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14788 ,p_level => C_LEVEL_ERROR
14789 ,p_module => l_log_module);
14790 END IF;
14791 END IF;
14792 END IF;
14793 --
14794 --
14795 ------------------------------------------------------------------------------------------------
14796 -- 4219869 Business Flow
14797 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14798 -- Prior Entry. Currently, the following code is always generated.
14799 ------------------------------------------------------------------------------------------------
14800 XLA_AE_LINES_PKG.ValidateCurrentLine;
14801
14802 ------------------------------------------------------------------------------------
14803 -- 4219869 Business Flow
14804 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14808 ----------------------------------------------------------------------------------
14805 ------------------------------------------------------------------------------------
14806 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14807
14809 -- 4219869 Business Flow
14810 -- Update journal entry status -- Need to generate this within IF <condition>
14811 ----------------------------------------------------------------------------------
14812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14813 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14814 ,p_balance_type_code => l_balance_type_code
14815 );
14816
14817 -------------------------------------------------------------------------------------------
14818 -- 4262811 - Generate the Accrual Reversal lines
14819 -------------------------------------------------------------------------------------------
14820 BEGIN
14821 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14822 (g_array_event(p_event_id).array_value_num('header_index'));
14823 IF l_acc_rev_flag IS NULL THEN
14824 l_acc_rev_flag := 'N';
14825 END IF;
14826 EXCEPTION
14827 WHEN OTHERS THEN
14828 l_acc_rev_flag := 'N';
14829 END;
14830 --
14831 IF (l_acc_rev_flag = 'Y') THEN
14832
14833 -- 4645092 ------------------------------------------------------------------------------
14834 -- To allow MPA report to determine if it should generate report process
14835 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14836 ------------------------------------------------------------------------------------------
14837
14838 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14839 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14840 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14841 -- call ADRs
14842 -- Bug 4922099
14843 --
14844 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14845 (NVL(l_actual_upg_option, 'N') = 'O') OR
14846 (NVL(l_enc_upg_option, 'N') = 'O')
14847 )
14848 THEN
14849 NULL;
14850 --
14851 --
14852
14853 l_ccid := AcctDerRule_3(
14854 p_application_id => p_application_id
14855 , p_ae_header_id => l_ae_header_id
14856 , p_source_2 => p_source_2
14857 , x_transaction_coa_id => l_adr_transaction_coa_id
14858 , x_accounting_coa_id => l_adr_accounting_coa_id
14859 , x_value_type_code => l_adr_value_type_code
14860 , p_side => 'NA'
14861 );
14862
14863 xla_ae_lines_pkg.set_ccid(
14864 p_code_combination_id => l_ccid
14865 , p_value_type_code => l_adr_value_type_code
14866 , p_transaction_coa_id => l_adr_transaction_coa_id
14867 , p_accounting_coa_id => l_adr_accounting_coa_id
14868 , p_adr_code => 'AP_INVOICE_DIST'
14869 , p_adr_type_code => 'S'
14870 , p_component_type => l_component_type
14871 , p_component_code => l_component_code
14872 , p_component_type_code => l_component_type_code
14873 , p_component_appl_id => l_component_appl_id
14874 , p_amb_context_code => l_amb_context_code
14875 , p_side => 'NA'
14876 );
14877
14878
14879 l_segment := AcctDerRule_5(
14880 p_application_id => p_application_id
14881 , p_ae_header_id => l_ae_header_id
14882 , p_source_3 => p_source_3
14883 , x_transaction_coa_id => l_adr_transaction_coa_id
14884 , x_accounting_coa_id => l_adr_accounting_coa_id
14885 , x_flexfield_segment_code => l_adr_flexfield_segment_code
14886 , x_flex_value_set_id => l_adr_flex_value_set_id
14887 , x_value_type_code => l_adr_value_type_code
14888 , x_value_combination_id => l_adr_value_combination_id
14889 , x_value_segment_code => l_adr_value_segment_code
14890 , p_side => 'NA'
14891 , p_override_seg_flag => 'Y'
14892 );
14893
14894 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
14895
14896 xla_ae_lines_pkg.set_segment(
14897 p_to_segment_code => 'GL_ACCOUNT'
14898 , p_segment_value => l_segment
14899 , p_from_segment_code => l_adr_value_segment_code
14900 , p_from_combination_id => l_adr_value_combination_id
14901 , p_value_type_code => l_adr_value_type_code
14902 , p_transaction_coa_id => l_adr_transaction_coa_id
14903 , p_accounting_coa_id => l_adr_accounting_coa_id
14904 , p_flexfield_segment_code => l_adr_flexfield_segment_code
14905 , p_flex_value_set_id => l_adr_flex_value_set_id
14906 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
14907 , p_adr_type_code => 'S'
14908 , p_component_type => l_component_type
14909 , p_component_code => l_component_code
14910 , p_component_type_code => l_component_type_code
14911 , p_component_appl_id => l_component_appl_id
14912 , p_amb_context_code => l_amb_context_code
14913 , p_entity_code => 'AP_INVOICES'
14914 , p_event_class_code => 'DEBIT MEMOS'
14915 , p_side => 'NA'
14916 );
14917
14918 END IF;
14919
14920 --
14921 --
14922 END IF;
14923
14924 --
14925 -- Update the line information that should be overwritten
14926 --
14930
14927 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14928 p_header_num => 1);
14929 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14931 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14932
14933 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14934 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14935 END IF;
14936
14937 --
14938 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14939 --
14940 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14941 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14942 ELSE
14943 ---------------------------------------------------------------------------------------------------
14944 -- 4262811a Switch Sign
14945 ---------------------------------------------------------------------------------------------------
14946 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14951 -- 5132302
14952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14954
14955 END IF;
14956
14957 -- 4955764
14958 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14959 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14960
14961
14962 XLA_AE_LINES_PKG.ValidateCurrentLine;
14963 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14964
14965 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14966 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14967 ,p_balance_type_code => l_balance_type_code);
14968
14969 END IF;
14970
14971 -----------------------------------------------------------------------------------------
14972 -- 4262811 Multiperiod Accounting
14973 -----------------------------------------------------------------------------------------
14974 -- No MPA option is assigned.
14975
14976
14977 END IF;
14978 END IF;
14979 --
14980
14981 --
14982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14983 trace
14984 (p_msg => 'END of AcctLineType_32'
14985 ,p_level => C_LEVEL_PROCEDURE
14986 ,p_module => l_log_module);
14987 END IF;
14988 --
14989 EXCEPTION
14990 WHEN xla_exceptions_pkg.application_exception THEN
14991 RAISE;
14992 WHEN OTHERS THEN
14993 xla_exceptions_pkg.raise_message
14994 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_32');
14995 END AcctLineType_32;
14996 --
14997
14998 ---------------------------------------
14999 --
15000 -- PRIVATE FUNCTION
15001 -- AcctLineType_33
15002 --
15003 ---------------------------------------
15004 PROCEDURE AcctLineType_33 (
15005 p_application_id IN NUMBER
15006 ,p_event_id IN NUMBER
15007 ,p_calculate_acctd_flag IN VARCHAR2
15008 ,p_calculate_g_l_flag IN VARCHAR2
15009 ,p_actual_flag IN OUT VARCHAR2
15010 ,p_balance_type_code OUT VARCHAR2
15011 ,p_gain_or_loss_ref OUT VARCHAR2
15012
15013 --Invoice Distribution Description
15014 , p_source_1 IN VARCHAR2
15015 --Invoice Distribution Account
15016 , p_source_2 IN NUMBER
15017 --Invoice Distribution Type
15018 , p_source_8 IN VARCHAR2
15019 , p_source_8_meaning IN VARCHAR2
15020 --Federal Prior Year Flag
15021 , p_source_9 IN VARCHAR2
15022 --Invoice Type
15023 , p_source_13 IN VARCHAR2
15024 , p_source_13_meaning IN VARCHAR2
15025 --Federal Adjustment Type
15026 , p_source_14 IN VARCHAR2
15027 --Accounting Reversal Indicator
15028 , p_source_15 IN VARCHAR2
15029 --Distribution Link Type
15030 , p_source_17 IN VARCHAR2
15031 --Allocation to Main Distribution Identifier
15032 , p_source_19 IN NUMBER
15033 --Invoice Identifier
15034 , p_source_20 IN NUMBER
15035 --Business Flow Accounts Payable Application Identifier
15036 , p_source_21 IN NUMBER
15037 --Business Flow Invoice Distribution Type
15038 , p_source_22 IN VARCHAR2
15039 --Business Flow Invoice Entity Code
15040 , p_source_23 IN VARCHAR2
15041 --Business Flow Invoice Distribution Identifier
15042 , p_source_24 IN NUMBER
15043 --Business Flow Invoice Identifier
15044 , p_source_25 IN NUMBER
15045 --Invoice Distribution Identifier
15046 , p_source_26 IN NUMBER
15047 --Payables Encumbrance Upgrade Credit Account
15048 , p_source_27 IN NUMBER
15049 --Payables Encumbrance Upgrade Credit Amount
15050 , p_source_28 IN NUMBER
15051 --Invoice Currency Code
15052 , p_source_29 IN VARCHAR2
15053 --Payables Encumbrance Upgrade Credit Base Amount
15054 , p_source_30 IN NUMBER
15055 --Payables Encumbrance Upgrade Debit Account
15056 , p_source_31 IN NUMBER
15057 --Payables Encumbrance Upgrade Debit Amount
15058 , p_source_32 IN NUMBER
15059 --Payables Encumbrance Upgrade Debit Base Amount
15060 , p_source_33 IN NUMBER
15061 --Payables Encumbrance Upgrade Option
15062 , p_source_34 IN VARCHAR2
15063 --Federal Anticipated Amt
15064 , p_source_35 IN NUMBER
15065 --Invoice Exchange Date
15066 , p_source_36 IN DATE
15067 --Invoice Exchange Rate
15068 , p_source_37 IN NUMBER
15069 --Invoice Exchange Rate Type
15070 , p_source_38 IN VARCHAR2
15071 --Deferred Accounting End Date
15072 , p_source_39 IN DATE
15073 --Deferred Accounting Option
15074 , p_source_40 IN VARCHAR2
15075 --Deferred Accounting Start Date
15076 , p_source_41 IN DATE
15077 --Override Accounted Amount Indicator
15078 , p_source_42 IN VARCHAR2
15079 , p_source_42_meaning IN VARCHAR2
15080 --Invoice Supplier Identifier
15081 , p_source_43 IN NUMBER
15082 --Invoice Supplier Site Identifier
15083 , p_source_44 IN NUMBER
15084 --Third Party Type
15085 , p_source_45 IN VARCHAR2
15086 --Parent Reversal Identifier
15087 , p_source_46 IN NUMBER
15088 --Invoice Distribution Tax Line Identifier
15089 , p_source_48 IN NUMBER
15090 --Invoice Distribution Tax Distribution Identifier from Tax
15091 , p_source_49 IN NUMBER
15092 --Invoice Distribution Summary Tax Line Identifier
15093 , p_source_50 IN NUMBER
15094 --Payables Upgrade Credit Encumbrance Type Identifier
15095 , p_source_51 IN NUMBER
15096 --Payables Upgrade Debit Encumbrance Type Identifier
15097 , p_source_52 IN NUMBER
15098 --Invoice Distribution Encumbrance Ledger Amount
15099 , p_source_53 IN NUMBER
15100 )
15101 IS
15102
15103 l_component_type VARCHAR2(80);
15104 l_component_code VARCHAR2(30);
15105 l_component_type_code VARCHAR2(1);
15106 l_component_appl_id INTEGER;
15107 l_amb_context_code VARCHAR2(30);
15108 l_entity_code VARCHAR2(30);
15109 l_event_class_code VARCHAR2(30);
15110 l_ae_header_id NUMBER;
15111 l_event_type_code VARCHAR2(30);
15112 l_line_definition_code VARCHAR2(30);
15113 l_line_definition_owner_code VARCHAR2(1);
15114 --
15115 -- adr variables
15116 l_segment VARCHAR2(30);
15117 l_ccid NUMBER;
15118 l_adr_transaction_coa_id NUMBER;
15119 l_adr_accounting_coa_id NUMBER;
15120 l_adr_flexfield_segment_code VARCHAR2(30);
15121 l_adr_flex_value_set_id NUMBER;
15122 l_adr_value_type_code VARCHAR2(30);
15123 l_adr_value_combination_id NUMBER;
15124 l_adr_value_segment_code VARCHAR2(30);
15125
15126 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15127 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15128 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15129 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15130
15131 -- 4262811 Variables ------------------------------------------------------------------------------------------
15132 l_entered_amt_idx NUMBER;
15133 l_accted_amt_idx NUMBER;
15134 l_acc_rev_flag VARCHAR2(1);
15135 l_accrual_line_num NUMBER;
15136 l_tmp_amt NUMBER;
15137 l_acc_rev_natural_side_code VARCHAR2(1);
15138
15139 l_num_entries NUMBER;
15140 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15141 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15142 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15143 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15144 l_recog_line_1 NUMBER;
15145 l_recog_line_2 NUMBER;
15146
15147 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15148 l_bflow_applied_to_amt NUMBER; -- 5132302
15149 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15150
15151 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15152
15153 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15154 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15155
15156 ---------------------------------------------------------------------------------------------------------------
15157
15158
15159 --
15160 -- bulk performance
15161 --
15162 l_balance_type_code VARCHAR2(1);
15163 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15164 l_log_module VARCHAR2(240);
15165
15166 --
15167 -- Upgrade strategy
15168 --
15169 l_actual_upg_option VARCHAR2(1);
15170 l_enc_upg_option VARCHAR2(1);
15171
15172 --
15173 BEGIN
15174 --
15175 IF g_log_enabled THEN
15176 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
15177 END IF;
15178 --
15179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15180
15181 trace
15182 (p_msg => 'BEGIN of AcctLineType_33'
15183 ,p_level => C_LEVEL_PROCEDURE
15184 ,p_module => l_log_module);
15185
15186 END IF;
15187 --
15188 l_component_type := 'AMB_JLT';
15189 l_component_code := 'FV_AP_DM_ DWD_ANPT_PYA_DR';
15190 l_component_type_code := 'S';
15191 l_component_appl_id := 200;
15192 l_amb_context_code := 'DEFAULT';
15193 l_entity_code := 'AP_INVOICES';
15194 l_event_class_code := 'DEBIT MEMOS';
15195 l_event_type_code := 'DEBIT MEMOS_ALL';
15196 l_line_definition_owner_code := 'S';
15197 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
15198 --
15199 l_balance_type_code := 'A';
15200 l_segment := NULL;
15201 l_ccid := NULL;
15202 l_adr_transaction_coa_id := NULL;
15203 l_adr_accounting_coa_id := NULL;
15204 l_adr_flexfield_segment_code := NULL;
15205 l_adr_flex_value_set_id := NULL;
15206 l_adr_value_type_code := NULL;
15207 l_adr_value_combination_id := NULL;
15208 l_adr_value_segment_code := NULL;
15209
15210 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15211 l_bflow_class_code := ''; -- 4219869 Business Flow
15212 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15213 l_budgetary_control_flag := 'Y';
15214
15215 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15216 l_bflow_applied_to_amt := NULL; -- 5132302
15217 l_entered_amt_idx := NULL; -- 4262811
15218 l_accted_amt_idx := NULL; -- 4262811
15219 l_acc_rev_flag := NULL; -- 4262811
15220 l_accrual_line_num := NULL; -- 4262811
15221 l_tmp_amt := NULL; -- 4262811
15222 --
15223
15224 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15225 l_balance_type_code <> 'B' THEN
15226 IF NVL(p_source_13,'
15227 ') = 'DEBIT' AND
15228 NVL(p_source_9,'
15229 ') = 'Y' AND
15230 (NVL(p_source_8,'
15231 ') = 'ITEM' OR
15232 NVL(p_source_8,'
15233 ') = 'ACCRUAL' OR
15234 NVL(p_source_8,'
15235 ') = 'FREIGHT' OR
15236 NVL(p_source_8,'
15237 ') = 'MISCELLANEOUS' OR
15238 NVL(p_source_8,'
15239 ') = 'IPV') AND
15240 NVL(p_source_14,'
15241 ') = 'Downward'
15242 THEN
15243
15244 --
15245 XLA_AE_LINES_PKG.SetNewLine;
15246
15247 p_balance_type_code := l_balance_type_code;
15248 -- set the flag so later we will know whether the gain loss line needs to be created
15249
15250 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15251 p_actual_flag :='A';
15252 END IF;
15253
15254 --
15255 -- bulk performance
15256 --
15257 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15258 p_header_num => 0); -- 4262811
15259 --
15260 -- set accounting line options
15261 --
15262 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15263 p_natural_side_code => 'C'
15264 , p_gain_or_loss_flag => 'N'
15265 , p_gl_transfer_mode_code => 'S'
15266 , p_acct_entry_type_code => 'A'
15267 , p_switch_side_flag => 'N'
15268 , p_merge_duplicate_code => 'N'
15269 );
15270 --
15271 l_acc_rev_natural_side_code := 'D'; -- 4262811
15272 --
15273 --
15274 -- set accounting line type info
15275 --
15276 xla_ae_lines_pkg.SetAcctLineType
15277 (p_component_type => l_component_type
15278 ,p_event_type_code => l_event_type_code
15279 ,p_line_definition_owner_code => l_line_definition_owner_code
15280 ,p_line_definition_code => l_line_definition_code
15281 ,p_accounting_line_code => l_component_code
15282 ,p_accounting_line_type_code => l_component_type_code
15283 ,p_accounting_line_appl_id => l_component_appl_id
15284 ,p_amb_context_code => l_amb_context_code
15285 ,p_entity_code => l_entity_code
15286 ,p_event_class_code => l_event_class_code);
15287 --
15288 -- set accounting class
15289 --
15290 xla_ae_lines_pkg.SetAcctClass(
15291 p_accounting_class_code => 'ACCOUNTSPAYABLE'
15292 , p_ae_header_id => l_ae_header_id
15293 );
15294
15295 --
15296 -- set rounding class
15297 --
15298 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15299 'ACCOUNTSPAYABLE';
15300
15301 --
15302 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15303 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15304 --
15305 -- bulk performance
15306 --
15307 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15308
15309 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15310 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15311
15312 -- 4955764
15313 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15314 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15315
15316 -- 4458381 Public Sector Enh
15317
15318 --
15319 -- set accounting attributes for the line type
15320 --
15321 l_entered_amt_idx := 23;
15322 l_accted_amt_idx := 28;
15323 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15324 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15325 l_rec_acct_attrs.array_char_value(1) := p_source_15;
15326 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15327 l_rec_acct_attrs.array_num_value(2) :=
15328 xla_ae_sources_pkg.GetSystemSourceNum(
15329 p_source_code => 'XLA_EVENT_APPL_ID'
15330 , p_source_type_code => 'Y'
15331 , p_source_application_id => 602
15332 );
15333 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15334 l_rec_acct_attrs.array_char_value(3) := p_source_17;
15335 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15336 l_rec_acct_attrs.array_char_value(4) :=
15337 xla_ae_sources_pkg.GetSystemSourceChar(
15338 p_source_code => 'XLA_ENTITY_CODE'
15339 , p_source_type_code => 'Y'
15340 , p_source_application_id => 602
15341 );
15342 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15343 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
15344 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15345 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
15346 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15347 l_rec_acct_attrs.array_num_value(7) := p_source_21;
15348 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15349 l_rec_acct_attrs.array_char_value(8) := p_source_22;
15350 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15351 l_rec_acct_attrs.array_char_value(9) := p_source_23;
15352 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15353 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
15354 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15355 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
15356 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15357 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
15358 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15359 l_rec_acct_attrs.array_char_value(13) := p_source_17;
15360 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
15361 l_rec_acct_attrs.array_num_value(14) := p_source_27;
15362 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
15363 l_rec_acct_attrs.array_num_value(15) := p_source_28;
15364 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
15365 l_rec_acct_attrs.array_char_value(16) := p_source_29;
15366 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
15367 l_rec_acct_attrs.array_num_value(17) := p_source_30;
15368 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
15369 l_rec_acct_attrs.array_num_value(18) := p_source_31;
15370 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
15371 l_rec_acct_attrs.array_num_value(19) := p_source_32;
15372 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
15373 l_rec_acct_attrs.array_char_value(20) := p_source_29;
15374 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
15375 l_rec_acct_attrs.array_num_value(21) := p_source_33;
15376 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
15377 l_rec_acct_attrs.array_char_value(22) := p_source_34;
15378 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
15379 l_rec_acct_attrs.array_num_value(23) := p_source_35;
15380 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
15381 l_rec_acct_attrs.array_char_value(24) := p_source_29;
15382 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
15383 l_rec_acct_attrs.array_date_value(25) := p_source_36;
15384 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
15385 l_rec_acct_attrs.array_num_value(26) := p_source_37;
15386 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
15387 l_rec_acct_attrs.array_char_value(27) := p_source_38;
15388 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
15389 l_rec_acct_attrs.array_num_value(28) := p_source_53;
15390 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
15391 l_rec_acct_attrs.array_date_value(29) := p_source_39;
15392 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
15393 l_rec_acct_attrs.array_char_value(30) := p_source_40;
15394 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
15395 l_rec_acct_attrs.array_date_value(31) := p_source_41;
15396 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
15397 l_rec_acct_attrs.array_char_value(32) := p_source_42;
15398 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
15399 l_rec_acct_attrs.array_num_value(33) := p_source_43;
15400 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
15401 l_rec_acct_attrs.array_num_value(34) := p_source_44;
15402 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
15403 l_rec_acct_attrs.array_char_value(35) := p_source_45;
15404 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
15405 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
15406 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
15407 l_rec_acct_attrs.array_char_value(37) := p_source_17;
15408 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
15409 l_rec_acct_attrs.array_num_value(38) := p_source_48;
15410 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
15411 l_rec_acct_attrs.array_num_value(39) := p_source_49;
15412 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
15413 l_rec_acct_attrs.array_num_value(40) := p_source_50;
15414 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
15415 l_rec_acct_attrs.array_num_value(41) := p_source_51;
15416 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
15417 l_rec_acct_attrs.array_num_value(42) := p_source_52;
15418
15419 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15420 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15421
15422 ---------------------------------------------------------------------------------------------------------------
15423 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15424 ---------------------------------------------------------------------------------------------------------------
15425 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15426
15427 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15428 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15429
15430 IF xla_accounting_cache_pkg.GetValueChar
15431 (p_source_code => 'LEDGER_CATEGORY_CODE'
15432 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15433 AND l_bflow_method_code = 'PRIOR_ENTRY'
15434 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15435 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15436 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15437 )
15438 THEN
15439 xla_ae_lines_pkg.BflowUpgEntry
15440 (p_business_method_code => l_bflow_method_code
15441 ,p_business_class_code => l_bflow_class_code
15442 ,p_balance_type => l_balance_type_code);
15443 ELSE
15444 NULL;
15445 -- No business flow processing for business flow method of NONE.
15446 END IF;
15447
15448 --
15449 -- call analytical criteria
15450 --
15451
15452 --
15453 -- call description
15454 --
15455
15456 xla_ae_lines_pkg.SetLineDescription(
15457 p_ae_header_id => l_ae_header_id
15458 ,p_description => Description_2 (
15459 p_application_id => p_application_id
15460 , p_ae_header_id => l_ae_header_id
15461 , p_source_1 => p_source_1
15462 )
15463 );
15464
15465
15466 --
15467 -- call ADRs
15468 -- Bug 4922099
15469 --
15470 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15471 (NVL(l_actual_upg_option, 'N') = 'O') OR
15472 (NVL(l_enc_upg_option, 'N') = 'O')
15473 )
15474 THEN
15475 NULL;
15476 --
15477 --
15478
15479 l_ccid := AcctDerRule_3(
15480 p_application_id => p_application_id
15481 , p_ae_header_id => l_ae_header_id
15482 , p_source_2 => p_source_2
15483 , x_transaction_coa_id => l_adr_transaction_coa_id
15484 , x_accounting_coa_id => l_adr_accounting_coa_id
15485 , x_value_type_code => l_adr_value_type_code
15486 , p_side => 'NA'
15487 );
15488
15489 xla_ae_lines_pkg.set_ccid(
15490 p_code_combination_id => l_ccid
15491 , p_value_type_code => l_adr_value_type_code
15492 , p_transaction_coa_id => l_adr_transaction_coa_id
15493 , p_accounting_coa_id => l_adr_accounting_coa_id
15494 , p_adr_code => 'AP_INVOICE_DIST'
15495 , p_adr_type_code => 'S'
15496 , p_component_type => l_component_type
15497 , p_component_code => l_component_code
15498 , p_component_type_code => l_component_type_code
15499 , p_component_appl_id => l_component_appl_id
15500 , p_amb_context_code => l_amb_context_code
15501 , p_side => 'NA'
15502 );
15503
15504
15505 l_segment := AcctDerRule_13(
15506 p_application_id => p_application_id
15507 , p_ae_header_id => l_ae_header_id
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 => 'NA'
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_ACCOUNT'
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 => 'FV_497101_DWD_PYA_DR'
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_INVOICES'
15539 , p_event_class_code => 'DEBIT MEMOS'
15540 , p_side => 'NA'
15541 );
15542
15543 END IF;
15544
15545 --
15546 --
15547 END IF;
15548 --
15549 -- Bug 4922099
15550 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15551 (NVL(l_enc_upg_option, 'N') = 'O')
15552 ) AND
15553 (l_bflow_method_code = 'PRIOR_ENTRY')
15554 )
15555 THEN
15556 IF
15557 --
15558 1 = 2
15559 --
15560 THEN
15561 xla_accounting_err_pkg.build_message
15562 (p_appli_s_name => 'XLA'
15563 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15564 ,p_token_1 => 'LINE_NUMBER'
15565 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15566 ,p_token_2 => 'LINE_TYPE_NAME'
15567 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15568 l_component_type
15569 ,l_component_code
15570 ,l_component_type_code
15571 ,l_component_appl_id
15572 ,l_amb_context_code
15573 ,l_entity_code
15574 ,l_event_class_code
15575 )
15576 ,p_token_3 => 'OWNER'
15577 ,p_value_3 => xla_lookups_pkg.get_meaning(
15578 p_lookup_type => 'XLA_OWNER_TYPE'
15579 ,p_lookup_code => l_component_type_code
15580 )
15581 ,p_token_4 => 'PRODUCT_NAME'
15582 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15583 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15584 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15585 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15586 ,p_ae_header_id => NULL
15587 );
15588
15589 IF (C_LEVEL_ERROR>= g_log_level) THEN
15590 trace
15591 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15592 ,p_level => C_LEVEL_ERROR
15593 ,p_module => l_log_module);
15594 END IF;
15595 END IF;
15596 END IF;
15597 --
15598 --
15599 ------------------------------------------------------------------------------------------------
15600 -- 4219869 Business Flow
15601 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15602 -- Prior Entry. Currently, the following code is always generated.
15603 ------------------------------------------------------------------------------------------------
15604 XLA_AE_LINES_PKG.ValidateCurrentLine;
15605
15606 ------------------------------------------------------------------------------------
15607 -- 4219869 Business Flow
15608 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15609 ------------------------------------------------------------------------------------
15610 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15611
15612 ----------------------------------------------------------------------------------
15613 -- 4219869 Business Flow
15614 -- Update journal entry status -- Need to generate this within IF <condition>
15615 ----------------------------------------------------------------------------------
15616 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15617 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15618 ,p_balance_type_code => l_balance_type_code
15619 );
15620
15621 -------------------------------------------------------------------------------------------
15622 -- 4262811 - Generate the Accrual Reversal lines
15623 -------------------------------------------------------------------------------------------
15624 BEGIN
15625 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15626 (g_array_event(p_event_id).array_value_num('header_index'));
15627 IF l_acc_rev_flag IS NULL THEN
15628 l_acc_rev_flag := 'N';
15629 END IF;
15630 EXCEPTION
15631 WHEN OTHERS THEN
15632 l_acc_rev_flag := 'N';
15633 END;
15634 --
15635 IF (l_acc_rev_flag = 'Y') THEN
15636
15637 -- 4645092 ------------------------------------------------------------------------------
15638 -- To allow MPA report to determine if it should generate report process
15639 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15640 ------------------------------------------------------------------------------------------
15641
15642 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15643 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15644 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15645 -- call ADRs
15646 -- Bug 4922099
15647 --
15648 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15649 (NVL(l_actual_upg_option, 'N') = 'O') OR
15650 (NVL(l_enc_upg_option, 'N') = 'O')
15651 )
15652 THEN
15653 NULL;
15654 --
15655 --
15656
15657 l_ccid := AcctDerRule_3(
15658 p_application_id => p_application_id
15659 , p_ae_header_id => l_ae_header_id
15660 , p_source_2 => p_source_2
15661 , x_transaction_coa_id => l_adr_transaction_coa_id
15662 , x_accounting_coa_id => l_adr_accounting_coa_id
15663 , x_value_type_code => l_adr_value_type_code
15664 , p_side => 'NA'
15665 );
15666
15667 xla_ae_lines_pkg.set_ccid(
15668 p_code_combination_id => l_ccid
15669 , p_value_type_code => l_adr_value_type_code
15670 , p_transaction_coa_id => l_adr_transaction_coa_id
15671 , p_accounting_coa_id => l_adr_accounting_coa_id
15672 , p_adr_code => 'AP_INVOICE_DIST'
15673 , p_adr_type_code => 'S'
15674 , p_component_type => l_component_type
15675 , p_component_code => l_component_code
15676 , p_component_type_code => l_component_type_code
15677 , p_component_appl_id => l_component_appl_id
15678 , p_amb_context_code => l_amb_context_code
15679 , p_side => 'NA'
15680 );
15681
15682
15683 l_segment := AcctDerRule_13(
15684 p_application_id => p_application_id
15685 , p_ae_header_id => l_ae_header_id
15686 , x_transaction_coa_id => l_adr_transaction_coa_id
15687 , x_accounting_coa_id => l_adr_accounting_coa_id
15688 , x_flexfield_segment_code => l_adr_flexfield_segment_code
15689 , x_flex_value_set_id => l_adr_flex_value_set_id
15690 , x_value_type_code => l_adr_value_type_code
15691 , x_value_combination_id => l_adr_value_combination_id
15692 , x_value_segment_code => l_adr_value_segment_code
15693 , p_side => 'NA'
15694 , p_override_seg_flag => 'Y'
15695 );
15696
15697 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
15698
15699 xla_ae_lines_pkg.set_segment(
15700 p_to_segment_code => 'GL_ACCOUNT'
15701 , p_segment_value => l_segment
15702 , p_from_segment_code => l_adr_value_segment_code
15703 , p_from_combination_id => l_adr_value_combination_id
15704 , p_value_type_code => l_adr_value_type_code
15705 , p_transaction_coa_id => l_adr_transaction_coa_id
15706 , p_accounting_coa_id => l_adr_accounting_coa_id
15707 , p_flexfield_segment_code => l_adr_flexfield_segment_code
15708 , p_flex_value_set_id => l_adr_flex_value_set_id
15709 , p_adr_code => 'FV_497101_DWD_PYA_DR'
15710 , p_adr_type_code => 'S'
15711 , p_component_type => l_component_type
15712 , p_component_code => l_component_code
15713 , p_component_type_code => l_component_type_code
15714 , p_component_appl_id => l_component_appl_id
15715 , p_amb_context_code => l_amb_context_code
15716 , p_entity_code => 'AP_INVOICES'
15717 , p_event_class_code => 'DEBIT MEMOS'
15718 , p_side => 'NA'
15719 );
15720
15721 END IF;
15722
15723 --
15724 --
15725 END IF;
15726
15727 --
15728 -- Update the line information that should be overwritten
15729 --
15730 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15731 p_header_num => 1);
15732 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15733
15734 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15735
15736 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15737 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15738 END IF;
15739
15740 --
15741 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15742 --
15743 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15744 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15745 ELSE
15746 ---------------------------------------------------------------------------------------------------
15747 -- 4262811a Switch Sign
15748 ---------------------------------------------------------------------------------------------------
15749 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15750 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15751 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15752 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15753 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15754 -- 5132302
15755 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15756 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15757
15758 END IF;
15759
15760 -- 4955764
15761 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15762 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15763
15764
15765 XLA_AE_LINES_PKG.ValidateCurrentLine;
15766 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15767
15768 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15769 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15770 ,p_balance_type_code => l_balance_type_code);
15771
15772 END IF;
15773
15774 -----------------------------------------------------------------------------------------
15775 -- 4262811 Multiperiod Accounting
15776 -----------------------------------------------------------------------------------------
15777 -- No MPA option is assigned.
15778
15779
15780 END IF;
15781 END IF;
15782 --
15783
15784 --
15785 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15786 trace
15787 (p_msg => 'END of AcctLineType_33'
15788 ,p_level => C_LEVEL_PROCEDURE
15789 ,p_module => l_log_module);
15790 END IF;
15791 --
15792 EXCEPTION
15793 WHEN xla_exceptions_pkg.application_exception THEN
15794 RAISE;
15795 WHEN OTHERS THEN
15796 xla_exceptions_pkg.raise_message
15797 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_33');
15798 END AcctLineType_33;
15799 --
15800
15801 ---------------------------------------
15802 --
15803 -- PRIVATE FUNCTION
15804 -- AcctLineType_34
15805 --
15806 ---------------------------------------
15807 PROCEDURE AcctLineType_34 (
15808 p_application_id IN NUMBER
15809 ,p_event_id IN NUMBER
15810 ,p_calculate_acctd_flag IN VARCHAR2
15811 ,p_calculate_g_l_flag IN VARCHAR2
15812 ,p_actual_flag IN OUT VARCHAR2
15813 ,p_balance_type_code OUT VARCHAR2
15814 ,p_gain_or_loss_ref OUT VARCHAR2
15815
15816 --Invoice Distribution Description
15817 , p_source_1 IN VARCHAR2
15818 --Invoice Distribution Account
15819 , p_source_2 IN NUMBER
15820 --Federal Anticipation
15821 , p_source_3 IN VARCHAR2
15822 --Invoice Distribution Type
15823 , p_source_8 IN VARCHAR2
15824 , p_source_8_meaning IN VARCHAR2
15825 --Federal Prior Year Flag
15826 , p_source_9 IN VARCHAR2
15827 --Invoice Type
15828 , p_source_13 IN VARCHAR2
15829 , p_source_13_meaning IN VARCHAR2
15830 --Federal Adjustment Type
15831 , p_source_14 IN VARCHAR2
15832 --Accounting Reversal Indicator
15833 , p_source_15 IN VARCHAR2
15834 --Distribution Link Type
15835 , p_source_17 IN VARCHAR2
15836 --Allocation to Main Distribution Identifier
15837 , p_source_19 IN NUMBER
15838 --Invoice Identifier
15839 , p_source_20 IN NUMBER
15840 --Business Flow Accounts Payable Application Identifier
15841 , p_source_21 IN NUMBER
15842 --Business Flow Invoice Distribution Type
15843 , p_source_22 IN VARCHAR2
15844 --Business Flow Invoice Entity Code
15845 , p_source_23 IN VARCHAR2
15846 --Business Flow Invoice Distribution Identifier
15847 , p_source_24 IN NUMBER
15848 --Business Flow Invoice Identifier
15849 , p_source_25 IN NUMBER
15850 --Invoice Distribution Identifier
15851 , p_source_26 IN NUMBER
15852 --Payables Encumbrance Upgrade Credit Account
15853 , p_source_27 IN NUMBER
15854 --Payables Encumbrance Upgrade Credit Amount
15855 , p_source_28 IN NUMBER
15856 --Invoice Currency Code
15857 , p_source_29 IN VARCHAR2
15858 --Payables Encumbrance Upgrade Credit Base Amount
15859 , p_source_30 IN NUMBER
15860 --Payables Encumbrance Upgrade Debit Account
15861 , p_source_31 IN NUMBER
15862 --Payables Encumbrance Upgrade Debit Amount
15863 , p_source_32 IN NUMBER
15864 --Payables Encumbrance Upgrade Debit Base Amount
15865 , p_source_33 IN NUMBER
15866 --Payables Encumbrance Upgrade Option
15867 , p_source_34 IN VARCHAR2
15868 --Invoice Exchange Date
15869 , p_source_36 IN DATE
15870 --Invoice Exchange Rate
15871 , p_source_37 IN NUMBER
15872 --Invoice Exchange Rate Type
15873 , p_source_38 IN VARCHAR2
15874 --Deferred Accounting End Date
15875 , p_source_39 IN DATE
15876 --Deferred Accounting Option
15877 , p_source_40 IN VARCHAR2
15878 --Deferred Accounting Start Date
15879 , p_source_41 IN DATE
15880 --Override Accounted Amount Indicator
15881 , p_source_42 IN VARCHAR2
15882 , p_source_42_meaning IN VARCHAR2
15883 --Invoice Supplier Identifier
15884 , p_source_43 IN NUMBER
15885 --Invoice Supplier Site Identifier
15886 , p_source_44 IN NUMBER
15887 --Third Party Type
15888 , p_source_45 IN VARCHAR2
15889 --Parent Reversal Identifier
15890 , p_source_46 IN NUMBER
15891 --Invoice Distribution Tax Line Identifier
15892 , p_source_48 IN NUMBER
15893 --Invoice Distribution Tax Distribution Identifier from Tax
15894 , p_source_49 IN NUMBER
15895 --Invoice Distribution Summary Tax Line Identifier
15896 , p_source_50 IN NUMBER
15897 --Payables Upgrade Credit Encumbrance Type Identifier
15898 , p_source_51 IN NUMBER
15899 --Payables Upgrade Debit Encumbrance Type Identifier
15900 , p_source_52 IN NUMBER
15901 --Federal Unanticipated Amt
15902 , p_source_54 IN NUMBER
15903 )
15904 IS
15905
15906 l_component_type VARCHAR2(80);
15907 l_component_code VARCHAR2(30);
15908 l_component_type_code VARCHAR2(1);
15909 l_component_appl_id INTEGER;
15910 l_amb_context_code VARCHAR2(30);
15911 l_entity_code VARCHAR2(30);
15912 l_event_class_code VARCHAR2(30);
15913 l_ae_header_id NUMBER;
15914 l_event_type_code VARCHAR2(30);
15915 l_line_definition_code VARCHAR2(30);
15916 l_line_definition_owner_code VARCHAR2(1);
15917 --
15918 -- adr variables
15919 l_segment VARCHAR2(30);
15920 l_ccid NUMBER;
15921 l_adr_transaction_coa_id NUMBER;
15922 l_adr_accounting_coa_id NUMBER;
15923 l_adr_flexfield_segment_code VARCHAR2(30);
15924 l_adr_flex_value_set_id NUMBER;
15925 l_adr_value_type_code VARCHAR2(30);
15926 l_adr_value_combination_id NUMBER;
15927 l_adr_value_segment_code VARCHAR2(30);
15928
15929 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15930 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15931 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15932 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15933
15934 -- 4262811 Variables ------------------------------------------------------------------------------------------
15935 l_entered_amt_idx NUMBER;
15936 l_accted_amt_idx NUMBER;
15937 l_acc_rev_flag VARCHAR2(1);
15938 l_accrual_line_num NUMBER;
15939 l_tmp_amt NUMBER;
15940 l_acc_rev_natural_side_code VARCHAR2(1);
15941
15942 l_num_entries NUMBER;
15943 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15944 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15945 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15946 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15947 l_recog_line_1 NUMBER;
15948 l_recog_line_2 NUMBER;
15949
15950 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15951 l_bflow_applied_to_amt NUMBER; -- 5132302
15952 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15953
15954 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15955
15956 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15957 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15958
15959 ---------------------------------------------------------------------------------------------------------------
15960
15961
15962 --
15963 -- bulk performance
15964 --
15965 l_balance_type_code VARCHAR2(1);
15966 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15967 l_log_module VARCHAR2(240);
15968
15969 --
15970 -- Upgrade strategy
15971 --
15972 l_actual_upg_option VARCHAR2(1);
15973 l_enc_upg_option VARCHAR2(1);
15974
15975 --
15976 BEGIN
15977 --
15978 IF g_log_enabled THEN
15979 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
15980 END IF;
15981 --
15982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15983
15984 trace
15985 (p_msg => 'BEGIN of AcctLineType_34'
15986 ,p_level => C_LEVEL_PROCEDURE
15987 ,p_module => l_log_module);
15988
15989 END IF;
15990 --
15991 l_component_type := 'AMB_JLT';
15992 l_component_code := 'FV_AP_DM_ DWD_UNANPT_PYA_CR';
15993 l_component_type_code := 'S';
15994 l_component_appl_id := 200;
15995 l_amb_context_code := 'DEFAULT';
15996 l_entity_code := 'AP_INVOICES';
15997 l_event_class_code := 'DEBIT MEMOS';
15998 l_event_type_code := 'DEBIT MEMOS_ALL';
15999 l_line_definition_owner_code := 'S';
16000 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
16001 --
16002 l_balance_type_code := 'A';
16003 l_segment := NULL;
16004 l_ccid := NULL;
16005 l_adr_transaction_coa_id := NULL;
16006 l_adr_accounting_coa_id := NULL;
16007 l_adr_flexfield_segment_code := NULL;
16008 l_adr_flex_value_set_id := NULL;
16009 l_adr_value_type_code := NULL;
16010 l_adr_value_combination_id := NULL;
16011 l_adr_value_segment_code := NULL;
16012
16013 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16014 l_bflow_class_code := ''; -- 4219869 Business Flow
16015 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16016 l_budgetary_control_flag := 'Y';
16017
16018 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16019 l_bflow_applied_to_amt := NULL; -- 5132302
16020 l_entered_amt_idx := NULL; -- 4262811
16021 l_accted_amt_idx := NULL; -- 4262811
16022 l_acc_rev_flag := NULL; -- 4262811
16023 l_accrual_line_num := NULL; -- 4262811
16024 l_tmp_amt := NULL; -- 4262811
16025 --
16026
16027 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16028 l_balance_type_code <> 'B' THEN
16029 IF NVL(p_source_13,'
16030 ') = 'DEBIT' AND
16031 NVL(p_source_9,'
16032 ') = 'Y' AND
16033 (NVL(p_source_8,'
16034 ') = 'ITEM' OR
16035 NVL(p_source_8,'
16036 ') = 'ACCRUAL' OR
16037 NVL(p_source_8,'
16038 ') = 'FREIGHT' OR
16039 NVL(p_source_8,'
16040 ') = 'MISCELLANEOUS' OR
16041 NVL(p_source_8,'
16042 ') = 'IPV') AND
16043 NVL(p_source_14,'
16044 ') = 'Downward' AND
16045 (NVL(p_source_3,'
16046 ') = 'UnAnticipated' OR
16047 NVL(p_source_3,'
16048 ') = 'Partial')
16049 THEN
16050
16051 --
16052 XLA_AE_LINES_PKG.SetNewLine;
16053
16054 p_balance_type_code := l_balance_type_code;
16055 -- set the flag so later we will know whether the gain loss line needs to be created
16056
16057 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16058 p_actual_flag :='A';
16059 END IF;
16060
16061 --
16062 -- bulk performance
16063 --
16064 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16065 p_header_num => 0); -- 4262811
16066 --
16067 -- set accounting line options
16068 --
16069 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16070 p_natural_side_code => 'D'
16071 , p_gain_or_loss_flag => 'N'
16072 , p_gl_transfer_mode_code => 'S'
16073 , p_acct_entry_type_code => 'A'
16074 , p_switch_side_flag => 'N'
16075 , p_merge_duplicate_code => 'N'
16076 );
16077 --
16078 l_acc_rev_natural_side_code := 'C'; -- 4262811
16079 --
16080 --
16081 -- set accounting line type info
16082 --
16083 xla_ae_lines_pkg.SetAcctLineType
16084 (p_component_type => l_component_type
16085 ,p_event_type_code => l_event_type_code
16086 ,p_line_definition_owner_code => l_line_definition_owner_code
16087 ,p_line_definition_code => l_line_definition_code
16088 ,p_accounting_line_code => l_component_code
16089 ,p_accounting_line_type_code => l_component_type_code
16090 ,p_accounting_line_appl_id => l_component_appl_id
16091 ,p_amb_context_code => l_amb_context_code
16092 ,p_entity_code => l_entity_code
16093 ,p_event_class_code => l_event_class_code);
16094 --
16095 -- set accounting class
16096 --
16097 xla_ae_lines_pkg.SetAcctClass(
16098 p_accounting_class_code => 'ACCOUNTSPAYABLE'
16099 , p_ae_header_id => l_ae_header_id
16100 );
16101
16102 --
16103 -- set rounding class
16104 --
16105 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16106 'ACCOUNTSPAYABLE';
16107
16108 --
16109 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16110 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16111 --
16112 -- bulk performance
16113 --
16114 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16115
16116 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16117 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16118
16119 -- 4955764
16120 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16121 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16122
16123 -- 4458381 Public Sector Enh
16124
16125 --
16126 -- set accounting attributes for the line type
16127 --
16128 l_entered_amt_idx := 23;
16129 l_accted_amt_idx := 28;
16130 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16131 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16132 l_rec_acct_attrs.array_char_value(1) := p_source_15;
16133 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16134 l_rec_acct_attrs.array_num_value(2) :=
16135 xla_ae_sources_pkg.GetSystemSourceNum(
16136 p_source_code => 'XLA_EVENT_APPL_ID'
16137 , p_source_type_code => 'Y'
16138 , p_source_application_id => 602
16139 );
16140 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16141 l_rec_acct_attrs.array_char_value(3) := p_source_17;
16142 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16143 l_rec_acct_attrs.array_char_value(4) :=
16144 xla_ae_sources_pkg.GetSystemSourceChar(
16145 p_source_code => 'XLA_ENTITY_CODE'
16146 , p_source_type_code => 'Y'
16147 , p_source_application_id => 602
16148 );
16149 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16150 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
16151 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16152 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
16153 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16154 l_rec_acct_attrs.array_num_value(7) := p_source_21;
16155 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16156 l_rec_acct_attrs.array_char_value(8) := p_source_22;
16157 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16158 l_rec_acct_attrs.array_char_value(9) := p_source_23;
16159 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16160 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
16161 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16162 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
16163 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16164 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
16165 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16166 l_rec_acct_attrs.array_char_value(13) := p_source_17;
16167 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16168 l_rec_acct_attrs.array_num_value(14) := p_source_27;
16169 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16170 l_rec_acct_attrs.array_num_value(15) := p_source_28;
16171 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16172 l_rec_acct_attrs.array_char_value(16) := p_source_29;
16173 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16174 l_rec_acct_attrs.array_num_value(17) := p_source_30;
16175 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16176 l_rec_acct_attrs.array_num_value(18) := p_source_31;
16177 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16178 l_rec_acct_attrs.array_num_value(19) := p_source_32;
16179 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16180 l_rec_acct_attrs.array_char_value(20) := p_source_29;
16181 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16182 l_rec_acct_attrs.array_num_value(21) := p_source_33;
16183 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16184 l_rec_acct_attrs.array_char_value(22) := p_source_34;
16185 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16186 l_rec_acct_attrs.array_num_value(23) := p_source_54;
16187 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16188 l_rec_acct_attrs.array_char_value(24) := p_source_29;
16189 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
16190 l_rec_acct_attrs.array_date_value(25) := p_source_36;
16191 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
16192 l_rec_acct_attrs.array_num_value(26) := p_source_37;
16193 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
16194 l_rec_acct_attrs.array_char_value(27) := p_source_38;
16195 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
16196 l_rec_acct_attrs.array_num_value(28) := p_source_54;
16197 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
16198 l_rec_acct_attrs.array_date_value(29) := p_source_39;
16199 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
16200 l_rec_acct_attrs.array_char_value(30) := p_source_40;
16201 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
16202 l_rec_acct_attrs.array_date_value(31) := p_source_41;
16203 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
16204 l_rec_acct_attrs.array_char_value(32) := p_source_42;
16205 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
16206 l_rec_acct_attrs.array_num_value(33) := p_source_43;
16207 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
16208 l_rec_acct_attrs.array_num_value(34) := p_source_44;
16209 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
16210 l_rec_acct_attrs.array_char_value(35) := p_source_45;
16211 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
16212 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
16213 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
16214 l_rec_acct_attrs.array_char_value(37) := p_source_17;
16215 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
16216 l_rec_acct_attrs.array_num_value(38) := p_source_48;
16217 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
16218 l_rec_acct_attrs.array_num_value(39) := p_source_49;
16219 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
16220 l_rec_acct_attrs.array_num_value(40) := p_source_50;
16221 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
16222 l_rec_acct_attrs.array_num_value(41) := p_source_51;
16223 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
16224 l_rec_acct_attrs.array_num_value(42) := p_source_52;
16225
16226 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16227 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16228
16229 ---------------------------------------------------------------------------------------------------------------
16230 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16231 ---------------------------------------------------------------------------------------------------------------
16232 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16233
16234 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16235 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16236
16237 IF xla_accounting_cache_pkg.GetValueChar
16238 (p_source_code => 'LEDGER_CATEGORY_CODE'
16239 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16240 AND l_bflow_method_code = 'PRIOR_ENTRY'
16241 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16242 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16243 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16244 )
16245 THEN
16246 xla_ae_lines_pkg.BflowUpgEntry
16247 (p_business_method_code => l_bflow_method_code
16248 ,p_business_class_code => l_bflow_class_code
16249 ,p_balance_type => l_balance_type_code);
16250 ELSE
16251 NULL;
16252 -- No business flow processing for business flow method of NONE.
16253 END IF;
16254
16255 --
16256 -- call analytical criteria
16257 --
16258
16259 --
16260 -- call description
16261 --
16262
16263 xla_ae_lines_pkg.SetLineDescription(
16264 p_ae_header_id => l_ae_header_id
16265 ,p_description => Description_2 (
16266 p_application_id => p_application_id
16267 , p_ae_header_id => l_ae_header_id
16268 , p_source_1 => p_source_1
16269 )
16270 );
16271
16272
16273 --
16274 -- call ADRs
16275 -- Bug 4922099
16276 --
16277 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16278 (NVL(l_actual_upg_option, 'N') = 'O') OR
16279 (NVL(l_enc_upg_option, 'N') = 'O')
16280 )
16281 THEN
16282 NULL;
16283 --
16284 --
16285
16286 l_ccid := AcctDerRule_3(
16287 p_application_id => p_application_id
16288 , p_ae_header_id => l_ae_header_id
16289 , p_source_2 => p_source_2
16290 , x_transaction_coa_id => l_adr_transaction_coa_id
16291 , x_accounting_coa_id => l_adr_accounting_coa_id
16292 , x_value_type_code => l_adr_value_type_code
16293 , p_side => 'NA'
16294 );
16295
16296 xla_ae_lines_pkg.set_ccid(
16297 p_code_combination_id => l_ccid
16298 , p_value_type_code => l_adr_value_type_code
16299 , p_transaction_coa_id => l_adr_transaction_coa_id
16300 , p_accounting_coa_id => l_adr_accounting_coa_id
16301 , p_adr_code => 'AP_INVOICE_DIST'
16302 , p_adr_type_code => 'S'
16303 , p_component_type => l_component_type
16304 , p_component_code => l_component_code
16305 , p_component_type_code => l_component_type_code
16306 , p_component_appl_id => l_component_appl_id
16307 , p_amb_context_code => l_amb_context_code
16308 , p_side => 'NA'
16309 );
16310
16311
16312 l_segment := AcctDerRule_5(
16313 p_application_id => p_application_id
16314 , p_ae_header_id => l_ae_header_id
16315 , p_source_3 => p_source_3
16316 , x_transaction_coa_id => l_adr_transaction_coa_id
16317 , x_accounting_coa_id => l_adr_accounting_coa_id
16318 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16319 , x_flex_value_set_id => l_adr_flex_value_set_id
16320 , x_value_type_code => l_adr_value_type_code
16321 , x_value_combination_id => l_adr_value_combination_id
16322 , x_value_segment_code => l_adr_value_segment_code
16323 , p_side => 'NA'
16324 , p_override_seg_flag => 'Y'
16325 );
16326
16327 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16328
16329 xla_ae_lines_pkg.set_segment(
16330 p_to_segment_code => 'GL_ACCOUNT'
16331 , p_segment_value => l_segment
16332 , p_from_segment_code => l_adr_value_segment_code
16333 , p_from_combination_id => l_adr_value_combination_id
16334 , p_value_type_code => l_adr_value_type_code
16335 , p_transaction_coa_id => l_adr_transaction_coa_id
16336 , p_accounting_coa_id => l_adr_accounting_coa_id
16337 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16338 , p_flex_value_set_id => l_adr_flex_value_set_id
16339 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
16340 , p_adr_type_code => 'S'
16341 , p_component_type => l_component_type
16342 , p_component_code => l_component_code
16343 , p_component_type_code => l_component_type_code
16344 , p_component_appl_id => l_component_appl_id
16345 , p_amb_context_code => l_amb_context_code
16346 , p_entity_code => 'AP_INVOICES'
16347 , p_event_class_code => 'DEBIT MEMOS'
16348 , p_side => 'NA'
16349 );
16350
16351 END IF;
16352
16353 --
16354 --
16355 END IF;
16356 --
16357 -- Bug 4922099
16358 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16359 (NVL(l_enc_upg_option, 'N') = 'O')
16360 ) AND
16361 (l_bflow_method_code = 'PRIOR_ENTRY')
16362 )
16363 THEN
16364 IF
16365 --
16366 1 = 2
16367 --
16368 THEN
16369 xla_accounting_err_pkg.build_message
16370 (p_appli_s_name => 'XLA'
16371 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16372 ,p_token_1 => 'LINE_NUMBER'
16373 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16374 ,p_token_2 => 'LINE_TYPE_NAME'
16375 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16376 l_component_type
16377 ,l_component_code
16378 ,l_component_type_code
16379 ,l_component_appl_id
16380 ,l_amb_context_code
16381 ,l_entity_code
16382 ,l_event_class_code
16383 )
16384 ,p_token_3 => 'OWNER'
16385 ,p_value_3 => xla_lookups_pkg.get_meaning(
16386 p_lookup_type => 'XLA_OWNER_TYPE'
16387 ,p_lookup_code => l_component_type_code
16388 )
16389 ,p_token_4 => 'PRODUCT_NAME'
16390 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16391 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16392 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16393 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16394 ,p_ae_header_id => NULL
16395 );
16396
16397 IF (C_LEVEL_ERROR>= g_log_level) THEN
16398 trace
16399 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16400 ,p_level => C_LEVEL_ERROR
16401 ,p_module => l_log_module);
16402 END IF;
16403 END IF;
16404 END IF;
16405 --
16406 --
16407 ------------------------------------------------------------------------------------------------
16408 -- 4219869 Business Flow
16409 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16410 -- Prior Entry. Currently, the following code is always generated.
16411 ------------------------------------------------------------------------------------------------
16412 XLA_AE_LINES_PKG.ValidateCurrentLine;
16413
16414 ------------------------------------------------------------------------------------
16415 -- 4219869 Business Flow
16416 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16417 ------------------------------------------------------------------------------------
16418 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16419
16420 ----------------------------------------------------------------------------------
16421 -- 4219869 Business Flow
16422 -- Update journal entry status -- Need to generate this within IF <condition>
16423 ----------------------------------------------------------------------------------
16424 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16425 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16426 ,p_balance_type_code => l_balance_type_code
16427 );
16428
16429 -------------------------------------------------------------------------------------------
16430 -- 4262811 - Generate the Accrual Reversal lines
16431 -------------------------------------------------------------------------------------------
16432 BEGIN
16433 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16434 (g_array_event(p_event_id).array_value_num('header_index'));
16435 IF l_acc_rev_flag IS NULL THEN
16436 l_acc_rev_flag := 'N';
16437 END IF;
16438 EXCEPTION
16439 WHEN OTHERS THEN
16440 l_acc_rev_flag := 'N';
16441 END;
16442 --
16443 IF (l_acc_rev_flag = 'Y') THEN
16444
16445 -- 4645092 ------------------------------------------------------------------------------
16446 -- To allow MPA report to determine if it should generate report process
16447 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16448 ------------------------------------------------------------------------------------------
16449
16450 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16451 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16452 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16453 -- call ADRs
16454 -- Bug 4922099
16455 --
16456 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16457 (NVL(l_actual_upg_option, 'N') = 'O') OR
16458 (NVL(l_enc_upg_option, 'N') = 'O')
16459 )
16460 THEN
16461 NULL;
16462 --
16463 --
16464
16465 l_ccid := AcctDerRule_3(
16466 p_application_id => p_application_id
16467 , p_ae_header_id => l_ae_header_id
16468 , p_source_2 => p_source_2
16469 , x_transaction_coa_id => l_adr_transaction_coa_id
16470 , x_accounting_coa_id => l_adr_accounting_coa_id
16471 , x_value_type_code => l_adr_value_type_code
16472 , p_side => 'NA'
16473 );
16474
16475 xla_ae_lines_pkg.set_ccid(
16476 p_code_combination_id => l_ccid
16477 , p_value_type_code => l_adr_value_type_code
16478 , p_transaction_coa_id => l_adr_transaction_coa_id
16479 , p_accounting_coa_id => l_adr_accounting_coa_id
16480 , p_adr_code => 'AP_INVOICE_DIST'
16481 , p_adr_type_code => 'S'
16482 , p_component_type => l_component_type
16483 , p_component_code => l_component_code
16484 , p_component_type_code => l_component_type_code
16485 , p_component_appl_id => l_component_appl_id
16486 , p_amb_context_code => l_amb_context_code
16487 , p_side => 'NA'
16488 );
16489
16490
16491 l_segment := AcctDerRule_5(
16492 p_application_id => p_application_id
16493 , p_ae_header_id => l_ae_header_id
16494 , p_source_3 => p_source_3
16495 , x_transaction_coa_id => l_adr_transaction_coa_id
16496 , x_accounting_coa_id => l_adr_accounting_coa_id
16497 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16498 , x_flex_value_set_id => l_adr_flex_value_set_id
16499 , x_value_type_code => l_adr_value_type_code
16500 , x_value_combination_id => l_adr_value_combination_id
16501 , x_value_segment_code => l_adr_value_segment_code
16502 , p_side => 'NA'
16503 , p_override_seg_flag => 'Y'
16504 );
16505
16506 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16507
16508 xla_ae_lines_pkg.set_segment(
16509 p_to_segment_code => 'GL_ACCOUNT'
16510 , p_segment_value => l_segment
16511 , p_from_segment_code => l_adr_value_segment_code
16512 , p_from_combination_id => l_adr_value_combination_id
16513 , p_value_type_code => l_adr_value_type_code
16514 , p_transaction_coa_id => l_adr_transaction_coa_id
16515 , p_accounting_coa_id => l_adr_accounting_coa_id
16516 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16517 , p_flex_value_set_id => l_adr_flex_value_set_id
16518 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
16519 , p_adr_type_code => 'S'
16520 , p_component_type => l_component_type
16521 , p_component_code => l_component_code
16522 , p_component_type_code => l_component_type_code
16523 , p_component_appl_id => l_component_appl_id
16524 , p_amb_context_code => l_amb_context_code
16525 , p_entity_code => 'AP_INVOICES'
16526 , p_event_class_code => 'DEBIT MEMOS'
16527 , p_side => 'NA'
16528 );
16529
16530 END IF;
16531
16532 --
16533 --
16534 END IF;
16535
16536 --
16537 -- Update the line information that should be overwritten
16538 --
16539 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16540 p_header_num => 1);
16541 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16542
16543 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16544
16545 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16546 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16547 END IF;
16548
16549 --
16550 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16551 --
16552 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16553 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16554 ELSE
16555 ---------------------------------------------------------------------------------------------------
16556 -- 4262811a Switch Sign
16557 ---------------------------------------------------------------------------------------------------
16558 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16559 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16561 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16562 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16563 -- 5132302
16564 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16565 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16566
16567 END IF;
16568
16569 -- 4955764
16570 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16571 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16572
16573
16574 XLA_AE_LINES_PKG.ValidateCurrentLine;
16575 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16576
16577 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16578 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16579 ,p_balance_type_code => l_balance_type_code);
16580
16581 END IF;
16582
16583 -----------------------------------------------------------------------------------------
16584 -- 4262811 Multiperiod Accounting
16585 -----------------------------------------------------------------------------------------
16586 -- No MPA option is assigned.
16587
16588
16589 END IF;
16590 END IF;
16591 --
16592
16593 --
16594 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16595 trace
16596 (p_msg => 'END of AcctLineType_34'
16597 ,p_level => C_LEVEL_PROCEDURE
16598 ,p_module => l_log_module);
16599 END IF;
16600 --
16601 EXCEPTION
16602 WHEN xla_exceptions_pkg.application_exception THEN
16603 RAISE;
16604 WHEN OTHERS THEN
16605 xla_exceptions_pkg.raise_message
16606 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_34');
16607 END AcctLineType_34;
16608 --
16609
16610 ---------------------------------------
16611 --
16612 -- PRIVATE FUNCTION
16613 -- AcctLineType_35
16614 --
16615 ---------------------------------------
16616 PROCEDURE AcctLineType_35 (
16617 p_application_id IN NUMBER
16618 ,p_event_id IN NUMBER
16619 ,p_calculate_acctd_flag IN VARCHAR2
16620 ,p_calculate_g_l_flag IN VARCHAR2
16621 ,p_actual_flag IN OUT VARCHAR2
16622 ,p_balance_type_code OUT VARCHAR2
16623 ,p_gain_or_loss_ref OUT VARCHAR2
16624
16625 --Invoice Distribution Description
16626 , p_source_1 IN VARCHAR2
16627 --Invoice Distribution Account
16628 , p_source_2 IN NUMBER
16629 --Invoice Distribution Type
16630 , p_source_8 IN VARCHAR2
16631 , p_source_8_meaning IN VARCHAR2
16632 --Federal Prior Year Flag
16633 , p_source_9 IN VARCHAR2
16634 --Accrue on Receipt Option
16635 , p_source_11 IN VARCHAR2
16636 , p_source_11_meaning IN VARCHAR2
16637 --Purchase Order Distribution Identifier
16638 , p_source_12 IN NUMBER
16639 --Invoice Type
16640 , p_source_13 IN VARCHAR2
16641 , p_source_13_meaning IN VARCHAR2
16642 --Federal Adjustment Type
16643 , p_source_14 IN VARCHAR2
16644 --Accounting Reversal Indicator
16645 , p_source_15 IN VARCHAR2
16646 --Distribution Link Type
16647 , p_source_17 IN VARCHAR2
16648 --Allocation to Main Distribution Identifier
16649 , p_source_19 IN NUMBER
16650 --Invoice Identifier
16651 , p_source_20 IN NUMBER
16652 --Business Flow Accounts Payable Application Identifier
16653 , p_source_21 IN NUMBER
16654 --Business Flow Invoice Distribution Type
16655 , p_source_22 IN VARCHAR2
16656 --Business Flow Invoice Entity Code
16657 , p_source_23 IN VARCHAR2
16658 --Business Flow Invoice Distribution Identifier
16659 , p_source_24 IN NUMBER
16660 --Business Flow Invoice Identifier
16661 , p_source_25 IN NUMBER
16662 --Invoice Distribution Identifier
16663 , p_source_26 IN NUMBER
16664 --Payables Encumbrance Upgrade Credit Account
16665 , p_source_27 IN NUMBER
16666 --Payables Encumbrance Upgrade Credit Amount
16667 , p_source_28 IN NUMBER
16668 --Invoice Currency Code
16669 , p_source_29 IN VARCHAR2
16670 --Payables Encumbrance Upgrade Credit Base Amount
16671 , p_source_30 IN NUMBER
16672 --Payables Encumbrance Upgrade Debit Account
16673 , p_source_31 IN NUMBER
16674 --Payables Encumbrance Upgrade Debit Amount
16675 , p_source_32 IN NUMBER
16676 --Payables Encumbrance Upgrade Debit Base Amount
16677 , p_source_33 IN NUMBER
16678 --Payables Encumbrance Upgrade Option
16679 , p_source_34 IN VARCHAR2
16680 --Invoice Exchange Date
16681 , p_source_36 IN DATE
16682 --Invoice Exchange Rate
16683 , p_source_37 IN NUMBER
16684 --Invoice Exchange Rate Type
16685 , p_source_38 IN VARCHAR2
16686 --Deferred Accounting End Date
16687 , p_source_39 IN DATE
16688 --Deferred Accounting Option
16689 , p_source_40 IN VARCHAR2
16690 --Deferred Accounting Start Date
16691 , p_source_41 IN DATE
16692 --Override Accounted Amount Indicator
16693 , p_source_42 IN VARCHAR2
16694 , p_source_42_meaning IN VARCHAR2
16695 --Invoice Supplier Identifier
16696 , p_source_43 IN NUMBER
16697 --Invoice Supplier Site Identifier
16698 , p_source_44 IN NUMBER
16699 --Third Party Type
16700 , p_source_45 IN VARCHAR2
16701 --Parent Reversal Identifier
16702 , p_source_46 IN NUMBER
16703 --Invoice Distribution Tax Line Identifier
16704 , p_source_48 IN NUMBER
16705 --Invoice Distribution Tax Distribution Identifier from Tax
16706 , p_source_49 IN NUMBER
16707 --Invoice Distribution Summary Tax Line Identifier
16708 , p_source_50 IN NUMBER
16709 --Payables Upgrade Credit Encumbrance Type Identifier
16710 , p_source_51 IN NUMBER
16711 --Payables Upgrade Debit Encumbrance Type Identifier
16712 , p_source_52 IN NUMBER
16713 --Invoice Distribution Amount
16714 , p_source_55 IN NUMBER
16715 --Invoice Distribution Ledger Amount
16716 , p_source_56 IN NUMBER
16717 )
16718 IS
16719
16720 l_component_type VARCHAR2(80);
16721 l_component_code VARCHAR2(30);
16722 l_component_type_code VARCHAR2(1);
16723 l_component_appl_id INTEGER;
16724 l_amb_context_code VARCHAR2(30);
16725 l_entity_code VARCHAR2(30);
16726 l_event_class_code VARCHAR2(30);
16727 l_ae_header_id NUMBER;
16728 l_event_type_code VARCHAR2(30);
16729 l_line_definition_code VARCHAR2(30);
16730 l_line_definition_owner_code VARCHAR2(1);
16731 --
16732 -- adr variables
16733 l_segment VARCHAR2(30);
16734 l_ccid NUMBER;
16735 l_adr_transaction_coa_id NUMBER;
16736 l_adr_accounting_coa_id NUMBER;
16737 l_adr_flexfield_segment_code VARCHAR2(30);
16738 l_adr_flex_value_set_id NUMBER;
16739 l_adr_value_type_code VARCHAR2(30);
16740 l_adr_value_combination_id NUMBER;
16741 l_adr_value_segment_code VARCHAR2(30);
16742
16743 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16744 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16745 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16746 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16747
16748 -- 4262811 Variables ------------------------------------------------------------------------------------------
16749 l_entered_amt_idx NUMBER;
16750 l_accted_amt_idx NUMBER;
16751 l_acc_rev_flag VARCHAR2(1);
16752 l_accrual_line_num NUMBER;
16753 l_tmp_amt NUMBER;
16754 l_acc_rev_natural_side_code VARCHAR2(1);
16755
16756 l_num_entries NUMBER;
16757 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16758 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16759 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16760 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16761 l_recog_line_1 NUMBER;
16762 l_recog_line_2 NUMBER;
16763
16764 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16765 l_bflow_applied_to_amt NUMBER; -- 5132302
16766 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16767
16768 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16769
16770 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16771 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16772
16773 ---------------------------------------------------------------------------------------------------------------
16774
16775
16776 --
16777 -- bulk performance
16778 --
16779 l_balance_type_code VARCHAR2(1);
16780 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16781 l_log_module VARCHAR2(240);
16782
16783 --
16784 -- Upgrade strategy
16785 --
16786 l_actual_upg_option VARCHAR2(1);
16787 l_enc_upg_option VARCHAR2(1);
16788
16789 --
16790 BEGIN
16791 --
16792 IF g_log_enabled THEN
16793 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
16794 END IF;
16795 --
16796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16797
16798 trace
16799 (p_msg => 'BEGIN of AcctLineType_35'
16800 ,p_level => C_LEVEL_PROCEDURE
16801 ,p_module => l_log_module);
16802
16803 END IF;
16804 --
16805 l_component_type := 'AMB_JLT';
16806 l_component_code := 'FV_AP_DM_ UPWARD_PYA_CR';
16807 l_component_type_code := 'S';
16808 l_component_appl_id := 200;
16809 l_amb_context_code := 'DEFAULT';
16810 l_entity_code := 'AP_INVOICES';
16811 l_event_class_code := 'DEBIT MEMOS';
16812 l_event_type_code := 'DEBIT MEMOS_ALL';
16813 l_line_definition_owner_code := 'S';
16814 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
16815 --
16816 l_balance_type_code := 'A';
16817 l_segment := NULL;
16818 l_ccid := NULL;
16819 l_adr_transaction_coa_id := NULL;
16820 l_adr_accounting_coa_id := NULL;
16821 l_adr_flexfield_segment_code := NULL;
16822 l_adr_flex_value_set_id := NULL;
16823 l_adr_value_type_code := NULL;
16824 l_adr_value_combination_id := NULL;
16825 l_adr_value_segment_code := NULL;
16826
16827 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16828 l_bflow_class_code := ''; -- 4219869 Business Flow
16829 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16830 l_budgetary_control_flag := 'Y';
16831
16832 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16833 l_bflow_applied_to_amt := NULL; -- 5132302
16834 l_entered_amt_idx := NULL; -- 4262811
16835 l_accted_amt_idx := NULL; -- 4262811
16836 l_acc_rev_flag := NULL; -- 4262811
16837 l_accrual_line_num := NULL; -- 4262811
16838 l_tmp_amt := NULL; -- 4262811
16839 --
16840
16841 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16842 l_balance_type_code <> 'B' THEN
16843 IF NVL(p_source_13,'
16844 ') = 'DEBIT' AND
16845 NVL(p_source_9,'
16846 ') = 'Y' AND
16847 (NVL(p_source_8,'
16848 ') = 'ITEM' OR
16849 NVL(p_source_8,'
16850 ') = 'ACCRUAL' OR
16851 NVL(p_source_8,'
16852 ') = 'FREIGHT' OR
16853 NVL(p_source_8,'
16854 ') = 'MISCELLANEOUS' OR
16855 NVL(p_source_8,'
16856 ') = 'IPV') AND
16857 NVL(p_source_14,'
16858 ') = 'Upward'
16859 THEN
16860
16861 --
16862 XLA_AE_LINES_PKG.SetNewLine;
16863
16864 p_balance_type_code := l_balance_type_code;
16865 -- set the flag so later we will know whether the gain loss line needs to be created
16866
16867 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16868 p_actual_flag :='A';
16869 END IF;
16870
16871 --
16872 -- bulk performance
16873 --
16874 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16875 p_header_num => 0); -- 4262811
16876 --
16877 -- set accounting line options
16878 --
16879 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16880 p_natural_side_code => 'D'
16881 , p_gain_or_loss_flag => 'N'
16882 , p_gl_transfer_mode_code => 'S'
16883 , p_acct_entry_type_code => 'A'
16884 , p_switch_side_flag => 'N'
16885 , p_merge_duplicate_code => 'N'
16886 );
16887 --
16888 l_acc_rev_natural_side_code := 'C'; -- 4262811
16889 --
16890 --
16891 -- set accounting line type info
16892 --
16893 xla_ae_lines_pkg.SetAcctLineType
16894 (p_component_type => l_component_type
16895 ,p_event_type_code => l_event_type_code
16896 ,p_line_definition_owner_code => l_line_definition_owner_code
16897 ,p_line_definition_code => l_line_definition_code
16898 ,p_accounting_line_code => l_component_code
16899 ,p_accounting_line_type_code => l_component_type_code
16900 ,p_accounting_line_appl_id => l_component_appl_id
16901 ,p_amb_context_code => l_amb_context_code
16902 ,p_entity_code => l_entity_code
16903 ,p_event_class_code => l_event_class_code);
16904 --
16905 -- set accounting class
16906 --
16907 xla_ae_lines_pkg.SetAcctClass(
16908 p_accounting_class_code => 'ACCOUNTSPAYABLE'
16909 , p_ae_header_id => l_ae_header_id
16910 );
16911
16912 --
16913 -- set rounding class
16914 --
16915 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16916 'ACCOUNTSPAYABLE';
16917
16918 --
16919 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16920 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16921 --
16922 -- bulk performance
16923 --
16924 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16925
16926 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16927 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16928
16929 -- 4955764
16930 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16931 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16932
16933 -- 4458381 Public Sector Enh
16934
16935 --
16936 -- set accounting attributes for the line type
16937 --
16938 l_entered_amt_idx := 23;
16939 l_accted_amt_idx := 28;
16940 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16941 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16942 l_rec_acct_attrs.array_char_value(1) := p_source_15;
16943 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16944 l_rec_acct_attrs.array_num_value(2) :=
16945 xla_ae_sources_pkg.GetSystemSourceNum(
16946 p_source_code => 'XLA_EVENT_APPL_ID'
16947 , p_source_type_code => 'Y'
16948 , p_source_application_id => 602
16949 );
16950 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16951 l_rec_acct_attrs.array_char_value(3) := p_source_17;
16952 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16953 l_rec_acct_attrs.array_char_value(4) :=
16954 xla_ae_sources_pkg.GetSystemSourceChar(
16955 p_source_code => 'XLA_ENTITY_CODE'
16956 , p_source_type_code => 'Y'
16957 , p_source_application_id => 602
16958 );
16959 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16960 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
16961 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16962 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
16963 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16964 l_rec_acct_attrs.array_num_value(7) := p_source_21;
16965 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16966 l_rec_acct_attrs.array_char_value(8) := p_source_22;
16967 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16968 l_rec_acct_attrs.array_char_value(9) := p_source_23;
16969 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16970 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
16971 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16972 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
16973 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16974 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
16975 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16976 l_rec_acct_attrs.array_char_value(13) := p_source_17;
16977 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16978 l_rec_acct_attrs.array_num_value(14) := p_source_27;
16979 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16980 l_rec_acct_attrs.array_num_value(15) := p_source_28;
16981 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16982 l_rec_acct_attrs.array_char_value(16) := p_source_29;
16983 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16984 l_rec_acct_attrs.array_num_value(17) := p_source_30;
16985 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16986 l_rec_acct_attrs.array_num_value(18) := p_source_31;
16987 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16991 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16988 l_rec_acct_attrs.array_num_value(19) := p_source_32;
16989 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16990 l_rec_acct_attrs.array_char_value(20) := p_source_29;
16992 l_rec_acct_attrs.array_num_value(21) := p_source_33;
16993 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16994 l_rec_acct_attrs.array_char_value(22) := p_source_34;
16995 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
16996 l_rec_acct_attrs.array_num_value(23) := p_source_55;
16997 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
16998 l_rec_acct_attrs.array_char_value(24) := p_source_29;
16999 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
17000 l_rec_acct_attrs.array_date_value(25) := p_source_36;
17001 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
17002 l_rec_acct_attrs.array_num_value(26) := p_source_37;
17003 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
17004 l_rec_acct_attrs.array_char_value(27) := p_source_38;
17005 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
17006 l_rec_acct_attrs.array_num_value(28) := p_source_56;
17007 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
17008 l_rec_acct_attrs.array_date_value(29) := p_source_39;
17009 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
17010 l_rec_acct_attrs.array_char_value(30) := p_source_40;
17011 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
17012 l_rec_acct_attrs.array_date_value(31) := p_source_41;
17013 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
17014 l_rec_acct_attrs.array_char_value(32) := p_source_42;
17015 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
17016 l_rec_acct_attrs.array_num_value(33) := p_source_43;
17017 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
17018 l_rec_acct_attrs.array_num_value(34) := p_source_44;
17019 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
17020 l_rec_acct_attrs.array_char_value(35) := p_source_45;
17021 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
17022 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
17023 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
17024 l_rec_acct_attrs.array_char_value(37) := p_source_17;
17025 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
17026 l_rec_acct_attrs.array_num_value(38) := p_source_48;
17027 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
17028 l_rec_acct_attrs.array_num_value(39) := p_source_49;
17029 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
17030 l_rec_acct_attrs.array_num_value(40) := p_source_50;
17031 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
17032 l_rec_acct_attrs.array_num_value(41) := p_source_51;
17033 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
17034 l_rec_acct_attrs.array_num_value(42) := p_source_52;
17035
17036 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17037 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17038
17039 ---------------------------------------------------------------------------------------------------------------
17040 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17041 ---------------------------------------------------------------------------------------------------------------
17042 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17043
17044 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17045 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17046
17047 IF xla_accounting_cache_pkg.GetValueChar
17048 (p_source_code => 'LEDGER_CATEGORY_CODE'
17049 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17050 AND l_bflow_method_code = 'PRIOR_ENTRY'
17051 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17052 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17053 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17054 )
17055 THEN
17056 xla_ae_lines_pkg.BflowUpgEntry
17057 (p_business_method_code => l_bflow_method_code
17058 ,p_business_class_code => l_bflow_class_code
17059 ,p_balance_type => l_balance_type_code);
17060 ELSE
17061 NULL;
17062 -- No business flow processing for business flow method of NONE.
17063 END IF;
17064
17065 --
17066 -- call analytical criteria
17067 --
17068
17069 --
17070 -- call description
17071 --
17072
17073 xla_ae_lines_pkg.SetLineDescription(
17074 p_ae_header_id => l_ae_header_id
17075 ,p_description => Description_2 (
17076 p_application_id => p_application_id
17077 , p_ae_header_id => l_ae_header_id
17078 , p_source_1 => p_source_1
17079 )
17080 );
17081
17082
17083 --
17084 -- call ADRs
17085 -- Bug 4922099
17086 --
17087 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17088 (NVL(l_actual_upg_option, 'N') = 'O') OR
17089 (NVL(l_enc_upg_option, 'N') = 'O')
17090 )
17091 THEN
17092 NULL;
17093 --
17094 --
17095
17096 l_ccid := AcctDerRule_3(
17097 p_application_id => p_application_id
17098 , p_ae_header_id => l_ae_header_id
17099 , p_source_2 => p_source_2
17100 , x_transaction_coa_id => l_adr_transaction_coa_id
17101 , x_accounting_coa_id => l_adr_accounting_coa_id
17102 , x_value_type_code => l_adr_value_type_code
17103 , p_side => 'NA'
17104 );
17105
17106 xla_ae_lines_pkg.set_ccid(
17107 p_code_combination_id => l_ccid
17108 , p_value_type_code => l_adr_value_type_code
17109 , p_transaction_coa_id => l_adr_transaction_coa_id
17110 , p_accounting_coa_id => l_adr_accounting_coa_id
17111 , p_adr_code => 'AP_INVOICE_DIST'
17112 , p_adr_type_code => 'S'
17113 , p_component_type => l_component_type
17114 , p_component_code => l_component_code
17115 , p_component_type_code => l_component_type_code
17116 , p_component_appl_id => l_component_appl_id
17117 , p_amb_context_code => l_amb_context_code
17118 , p_side => 'NA'
17119 );
17120
17121
17122 l_segment := AcctDerRule_14(
17123 p_application_id => p_application_id
17124 , p_ae_header_id => l_ae_header_id
17125 , p_source_11 => p_source_11
17126 , p_source_11_meaning => p_source_11_meaning
17127 , p_source_12 => p_source_12
17128 , x_transaction_coa_id => l_adr_transaction_coa_id
17129 , x_accounting_coa_id => l_adr_accounting_coa_id
17130 , x_flexfield_segment_code => l_adr_flexfield_segment_code
17131 , x_flex_value_set_id => l_adr_flex_value_set_id
17132 , x_value_type_code => l_adr_value_type_code
17133 , x_value_combination_id => l_adr_value_combination_id
17134 , x_value_segment_code => l_adr_value_segment_code
17135 , p_side => 'NA'
17136 , p_override_seg_flag => 'Y'
17137 );
17138
17139 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
17140
17141 xla_ae_lines_pkg.set_segment(
17142 p_to_segment_code => 'GL_ACCOUNT'
17143 , p_segment_value => l_segment
17144 , p_from_segment_code => l_adr_value_segment_code
17145 , p_from_combination_id => l_adr_value_combination_id
17146 , p_value_type_code => l_adr_value_type_code
17147 , p_transaction_coa_id => l_adr_transaction_coa_id
17148 , p_accounting_coa_id => l_adr_accounting_coa_id
17149 , p_flexfield_segment_code => l_adr_flexfield_segment_code
17150 , p_flex_value_set_id => l_adr_flex_value_set_id
17151 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
17152 , p_adr_type_code => 'S'
17153 , p_component_type => l_component_type
17154 , p_component_code => l_component_code
17155 , p_component_type_code => l_component_type_code
17156 , p_component_appl_id => l_component_appl_id
17157 , p_amb_context_code => l_amb_context_code
17158 , p_entity_code => 'AP_INVOICES'
17159 , p_event_class_code => 'DEBIT MEMOS'
17160 , p_side => 'NA'
17161 );
17162
17163 END IF;
17164
17165 --
17166 --
17167 END IF;
17168 --
17169 -- Bug 4922099
17170 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17171 (NVL(l_enc_upg_option, 'N') = 'O')
17172 ) AND
17173 (l_bflow_method_code = 'PRIOR_ENTRY')
17174 )
17175 THEN
17176 IF
17177 --
17178 1 = 2
17179 --
17180 THEN
17181 xla_accounting_err_pkg.build_message
17182 (p_appli_s_name => 'XLA'
17183 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17184 ,p_token_1 => 'LINE_NUMBER'
17185 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17186 ,p_token_2 => 'LINE_TYPE_NAME'
17187 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17188 l_component_type
17189 ,l_component_code
17190 ,l_component_type_code
17191 ,l_component_appl_id
17192 ,l_amb_context_code
17193 ,l_entity_code
17194 ,l_event_class_code
17195 )
17196 ,p_token_3 => 'OWNER'
17197 ,p_value_3 => xla_lookups_pkg.get_meaning(
17198 p_lookup_type => 'XLA_OWNER_TYPE'
17199 ,p_lookup_code => l_component_type_code
17200 )
17201 ,p_token_4 => 'PRODUCT_NAME'
17202 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17203 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17204 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17205 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17206 ,p_ae_header_id => NULL
17207 );
17208
17209 IF (C_LEVEL_ERROR>= g_log_level) THEN
17210 trace
17211 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17212 ,p_level => C_LEVEL_ERROR
17213 ,p_module => l_log_module);
17214 END IF;
17215 END IF;
17216 END IF;
17217 --
17218 --
17219 ------------------------------------------------------------------------------------------------
17220 -- 4219869 Business Flow
17221 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17222 -- Prior Entry. Currently, the following code is always generated.
17223 ------------------------------------------------------------------------------------------------
17224 XLA_AE_LINES_PKG.ValidateCurrentLine;
17225
17226 ------------------------------------------------------------------------------------
17227 -- 4219869 Business Flow
17228 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17229 ------------------------------------------------------------------------------------
17230 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17231
17232 ----------------------------------------------------------------------------------
17233 -- 4219869 Business Flow
17234 -- Update journal entry status -- Need to generate this within IF <condition>
17235 ----------------------------------------------------------------------------------
17236 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17237 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17238 ,p_balance_type_code => l_balance_type_code
17239 );
17240
17241 -------------------------------------------------------------------------------------------
17242 -- 4262811 - Generate the Accrual Reversal lines
17243 -------------------------------------------------------------------------------------------
17244 BEGIN
17245 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17246 (g_array_event(p_event_id).array_value_num('header_index'));
17247 IF l_acc_rev_flag IS NULL THEN
17248 l_acc_rev_flag := 'N';
17249 END IF;
17250 EXCEPTION
17251 WHEN OTHERS THEN
17252 l_acc_rev_flag := 'N';
17253 END;
17254 --
17255 IF (l_acc_rev_flag = 'Y') THEN
17256
17257 -- 4645092 ------------------------------------------------------------------------------
17258 -- To allow MPA report to determine if it should generate report process
17259 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17260 ------------------------------------------------------------------------------------------
17261
17262 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17263 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17264 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17265 -- call ADRs
17266 -- Bug 4922099
17267 --
17268 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17269 (NVL(l_actual_upg_option, 'N') = 'O') OR
17270 (NVL(l_enc_upg_option, 'N') = 'O')
17271 )
17272 THEN
17273 NULL;
17274 --
17275 --
17276
17277 l_ccid := AcctDerRule_3(
17278 p_application_id => p_application_id
17279 , p_ae_header_id => l_ae_header_id
17280 , p_source_2 => p_source_2
17281 , x_transaction_coa_id => l_adr_transaction_coa_id
17282 , x_accounting_coa_id => l_adr_accounting_coa_id
17283 , x_value_type_code => l_adr_value_type_code
17284 , p_side => 'NA'
17285 );
17286
17287 xla_ae_lines_pkg.set_ccid(
17288 p_code_combination_id => l_ccid
17289 , p_value_type_code => l_adr_value_type_code
17290 , p_transaction_coa_id => l_adr_transaction_coa_id
17291 , p_accounting_coa_id => l_adr_accounting_coa_id
17292 , p_adr_code => 'AP_INVOICE_DIST'
17293 , p_adr_type_code => 'S'
17294 , p_component_type => l_component_type
17295 , p_component_code => l_component_code
17296 , p_component_type_code => l_component_type_code
17297 , p_component_appl_id => l_component_appl_id
17298 , p_amb_context_code => l_amb_context_code
17299 , p_side => 'NA'
17300 );
17301
17302
17303 l_segment := AcctDerRule_14(
17304 p_application_id => p_application_id
17305 , p_ae_header_id => l_ae_header_id
17306 , p_source_11 => p_source_11
17307 , p_source_11_meaning => p_source_11_meaning
17308 , p_source_12 => p_source_12
17309 , x_transaction_coa_id => l_adr_transaction_coa_id
17310 , x_accounting_coa_id => l_adr_accounting_coa_id
17311 , x_flexfield_segment_code => l_adr_flexfield_segment_code
17312 , x_flex_value_set_id => l_adr_flex_value_set_id
17313 , x_value_type_code => l_adr_value_type_code
17314 , x_value_combination_id => l_adr_value_combination_id
17315 , x_value_segment_code => l_adr_value_segment_code
17316 , p_side => 'NA'
17317 , p_override_seg_flag => 'Y'
17318 );
17319
17320 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
17321
17322 xla_ae_lines_pkg.set_segment(
17323 p_to_segment_code => 'GL_ACCOUNT'
17324 , p_segment_value => l_segment
17325 , p_from_segment_code => l_adr_value_segment_code
17326 , p_from_combination_id => l_adr_value_combination_id
17327 , p_value_type_code => l_adr_value_type_code
17328 , p_transaction_coa_id => l_adr_transaction_coa_id
17329 , p_accounting_coa_id => l_adr_accounting_coa_id
17330 , p_flexfield_segment_code => l_adr_flexfield_segment_code
17331 , p_flex_value_set_id => l_adr_flex_value_set_id
17332 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
17333 , p_adr_type_code => 'S'
17334 , p_component_type => l_component_type
17335 , p_component_code => l_component_code
17336 , p_component_type_code => l_component_type_code
17337 , p_component_appl_id => l_component_appl_id
17338 , p_amb_context_code => l_amb_context_code
17339 , p_entity_code => 'AP_INVOICES'
17340 , p_event_class_code => 'DEBIT MEMOS'
17341 , p_side => 'NA'
17342 );
17343
17344 END IF;
17345
17346 --
17347 --
17348 END IF;
17349
17350 --
17351 -- Update the line information that should be overwritten
17352 --
17353 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17354 p_header_num => 1);
17355 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17356
17357 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17358
17359 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17360 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17361 END IF;
17362
17363 --
17364 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17365 --
17366 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17367 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17368 ELSE
17369 ---------------------------------------------------------------------------------------------------
17370 -- 4262811a Switch Sign
17371 ---------------------------------------------------------------------------------------------------
17372 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17373 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17374 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17375 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17376 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17377 -- 5132302
17378 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17379 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17380
17381 END IF;
17382
17383 -- 4955764
17384 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17385 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17386
17387
17388 XLA_AE_LINES_PKG.ValidateCurrentLine;
17389 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17390
17391 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17392 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17393 ,p_balance_type_code => l_balance_type_code);
17394
17395 END IF;
17396
17397 -----------------------------------------------------------------------------------------
17398 -- 4262811 Multiperiod Accounting
17399 -----------------------------------------------------------------------------------------
17400 -- No MPA option is assigned.
17401
17402
17403 END IF;
17404 END IF;
17405 --
17406
17407 --
17408 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17409 trace
17410 (p_msg => 'END of AcctLineType_35'
17411 ,p_level => C_LEVEL_PROCEDURE
17412 ,p_module => l_log_module);
17413 END IF;
17414 --
17415 EXCEPTION
17416 WHEN xla_exceptions_pkg.application_exception THEN
17417 RAISE;
17418 WHEN OTHERS THEN
17419 xla_exceptions_pkg.raise_message
17420 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_35');
17421 END AcctLineType_35;
17422 --
17423
17424 ---------------------------------------
17425 --
17426 -- PRIVATE FUNCTION
17427 -- AcctLineType_36
17428 --
17429 ---------------------------------------
17430 PROCEDURE AcctLineType_36 (
17431 p_application_id IN NUMBER
17432 ,p_event_id IN NUMBER
17433 ,p_calculate_acctd_flag IN VARCHAR2
17434 ,p_calculate_g_l_flag IN VARCHAR2
17435 ,p_actual_flag IN OUT VARCHAR2
17436 ,p_balance_type_code OUT VARCHAR2
17437 ,p_gain_or_loss_ref OUT VARCHAR2
17438
17439 --Invoice Distribution Description
17440 , p_source_1 IN VARCHAR2
17441 --Invoice Distribution Account
17442 , p_source_2 IN NUMBER
17443 --Federal Fund Category
17444 , p_source_4 IN VARCHAR2
17445 --Federal Fund Expired Status
17446 , p_source_5 IN VARCHAR2
17447 --Federal Fund Category Description
17448 , p_source_6 IN VARCHAR2
17449 --Invoice Distribution Type
17450 , p_source_8 IN VARCHAR2
17451 , p_source_8_meaning IN VARCHAR2
17452 --Federal Prior Year Flag
17453 , p_source_9 IN VARCHAR2
17454 --Invoice Type
17455 , p_source_13 IN VARCHAR2
17456 , p_source_13_meaning IN VARCHAR2
17457 --Federal Adjustment Type
17458 , p_source_14 IN VARCHAR2
17459 --Accounting Reversal Indicator
17460 , p_source_15 IN VARCHAR2
17461 --Distribution Link Type
17462 , p_source_17 IN VARCHAR2
17463 --Allocation to Main Distribution Identifier
17464 , p_source_19 IN NUMBER
17465 --Invoice Identifier
17466 , p_source_20 IN NUMBER
17467 --Business Flow Accounts Payable Application Identifier
17468 , p_source_21 IN NUMBER
17469 --Business Flow Invoice Distribution Type
17470 , p_source_22 IN VARCHAR2
17471 --Business Flow Invoice Entity Code
17472 , p_source_23 IN VARCHAR2
17473 --Business Flow Invoice Distribution Identifier
17474 , p_source_24 IN NUMBER
17475 --Business Flow Invoice Identifier
17476 , p_source_25 IN NUMBER
17477 --Invoice Distribution Identifier
17478 , p_source_26 IN NUMBER
17479 --Payables Encumbrance Upgrade Credit Account
17480 , p_source_27 IN NUMBER
17481 --Payables Encumbrance Upgrade Credit Amount
17482 , p_source_28 IN NUMBER
17483 --Invoice Currency Code
17484 , p_source_29 IN VARCHAR2
17485 --Payables Encumbrance Upgrade Credit Base Amount
17486 , p_source_30 IN NUMBER
17487 --Payables Encumbrance Upgrade Debit Account
17488 , p_source_31 IN NUMBER
17489 --Payables Encumbrance Upgrade Debit Amount
17490 , p_source_32 IN NUMBER
17491 --Payables Encumbrance Upgrade Debit Base Amount
17492 , p_source_33 IN NUMBER
17493 --Payables Encumbrance Upgrade Option
17494 , p_source_34 IN VARCHAR2
17495 --Invoice Exchange Date
17496 , p_source_36 IN DATE
17497 --Invoice Exchange Rate
17498 , p_source_37 IN NUMBER
17499 --Invoice Exchange Rate Type
17500 , p_source_38 IN VARCHAR2
17501 --Deferred Accounting End Date
17502 , p_source_39 IN DATE
17503 --Deferred Accounting Option
17504 , p_source_40 IN VARCHAR2
17505 --Deferred Accounting Start Date
17506 , p_source_41 IN DATE
17507 --Override Accounted Amount Indicator
17508 , p_source_42 IN VARCHAR2
17509 , p_source_42_meaning IN VARCHAR2
17510 --Invoice Supplier Identifier
17511 , p_source_43 IN NUMBER
17512 --Invoice Supplier Site Identifier
17513 , p_source_44 IN NUMBER
17514 --Third Party Type
17515 , p_source_45 IN VARCHAR2
17516 --Parent Reversal Identifier
17517 , p_source_46 IN NUMBER
17518 --Invoice Distribution Tax Line Identifier
17519 , p_source_48 IN NUMBER
17520 --Invoice Distribution Tax Distribution Identifier from Tax
17521 , p_source_49 IN NUMBER
17522 --Invoice Distribution Summary Tax Line Identifier
17523 , p_source_50 IN NUMBER
17524 --Payables Upgrade Credit Encumbrance Type Identifier
17525 , p_source_51 IN NUMBER
17526 --Payables Upgrade Debit Encumbrance Type Identifier
17527 , p_source_52 IN NUMBER
17528 --Invoice Distribution Amount
17529 , p_source_55 IN NUMBER
17530 --Invoice Distribution Ledger Amount
17531 , p_source_56 IN NUMBER
17532 )
17533 IS
17534
17535 l_component_type VARCHAR2(80);
17536 l_component_code VARCHAR2(30);
17537 l_component_type_code VARCHAR2(1);
17538 l_component_appl_id INTEGER;
17539 l_amb_context_code VARCHAR2(30);
17540 l_entity_code VARCHAR2(30);
17541 l_event_class_code VARCHAR2(30);
17542 l_ae_header_id NUMBER;
17543 l_event_type_code VARCHAR2(30);
17544 l_line_definition_code VARCHAR2(30);
17545 l_line_definition_owner_code VARCHAR2(1);
17546 --
17547 -- adr variables
17548 l_segment VARCHAR2(30);
17549 l_ccid NUMBER;
17550 l_adr_transaction_coa_id NUMBER;
17551 l_adr_accounting_coa_id NUMBER;
17552 l_adr_flexfield_segment_code VARCHAR2(30);
17553 l_adr_flex_value_set_id NUMBER;
17554 l_adr_value_type_code VARCHAR2(30);
17555 l_adr_value_combination_id NUMBER;
17556 l_adr_value_segment_code VARCHAR2(30);
17557
17558 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17559 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17560 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17561 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17562
17563 -- 4262811 Variables ------------------------------------------------------------------------------------------
17564 l_entered_amt_idx NUMBER;
17565 l_accted_amt_idx NUMBER;
17566 l_acc_rev_flag VARCHAR2(1);
17567 l_accrual_line_num NUMBER;
17568 l_tmp_amt NUMBER;
17569 l_acc_rev_natural_side_code VARCHAR2(1);
17570
17571 l_num_entries NUMBER;
17572 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17573 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17574 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17575 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17576 l_recog_line_1 NUMBER;
17577 l_recog_line_2 NUMBER;
17578
17579 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17580 l_bflow_applied_to_amt NUMBER; -- 5132302
17581 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17582
17583 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17584
17585 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17586 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17587
17588 ---------------------------------------------------------------------------------------------------------------
17589
17590
17591 --
17592 -- bulk performance
17593 --
17594 l_balance_type_code VARCHAR2(1);
17595 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17596 l_log_module VARCHAR2(240);
17597
17598 --
17599 -- Upgrade strategy
17600 --
17601 l_actual_upg_option VARCHAR2(1);
17602 l_enc_upg_option VARCHAR2(1);
17603
17604 --
17605 BEGIN
17606 --
17607 IF g_log_enabled THEN
17608 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
17609 END IF;
17610 --
17611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17612
17613 trace
17614 (p_msg => 'BEGIN of AcctLineType_36'
17615 ,p_level => C_LEVEL_PROCEDURE
17616 ,p_module => l_log_module);
17617
17618 END IF;
17619 --
17620 l_component_type := 'AMB_JLT';
17621 l_component_code := 'FV_AP_DM_ UPWARD_PYA_DR';
17622 l_component_type_code := 'S';
17623 l_component_appl_id := 200;
17624 l_amb_context_code := 'DEFAULT';
17625 l_entity_code := 'AP_INVOICES';
17626 l_event_class_code := 'DEBIT MEMOS';
17627 l_event_type_code := 'DEBIT MEMOS_ALL';
17628 l_line_definition_owner_code := 'S';
17629 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
17630 --
17631 l_balance_type_code := 'A';
17632 l_segment := NULL;
17633 l_ccid := NULL;
17634 l_adr_transaction_coa_id := NULL;
17635 l_adr_accounting_coa_id := NULL;
17636 l_adr_flexfield_segment_code := NULL;
17637 l_adr_flex_value_set_id := NULL;
17638 l_adr_value_type_code := NULL;
17639 l_adr_value_combination_id := NULL;
17640 l_adr_value_segment_code := NULL;
17641
17642 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17643 l_bflow_class_code := ''; -- 4219869 Business Flow
17644 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17645 l_budgetary_control_flag := 'Y';
17646
17647 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17648 l_bflow_applied_to_amt := NULL; -- 5132302
17649 l_entered_amt_idx := NULL; -- 4262811
17650 l_accted_amt_idx := NULL; -- 4262811
17651 l_acc_rev_flag := NULL; -- 4262811
17652 l_accrual_line_num := NULL; -- 4262811
17653 l_tmp_amt := NULL; -- 4262811
17654 --
17655
17656 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17657 l_balance_type_code <> 'B' THEN
17658 IF NVL(p_source_13,'
17659 ') = 'DEBIT' AND
17660 NVL(p_source_9,'
17661 ') = 'Y' AND
17662 (NVL(p_source_8,'
17663 ') = 'ITEM' OR
17664 NVL(p_source_8,'
17665 ') = 'ACCRUAL' OR
17666 NVL(p_source_8,'
17667 ') = 'FREIGHT' OR
17668 NVL(p_source_8,'
17669 ') = 'MISCELLANEOUS' OR
17670 NVL(p_source_8,'
17671 ') = 'IPV') AND
17672 NVL(p_source_14,'
17673 ') = 'Upward'
17674 THEN
17675
17676 --
17677 XLA_AE_LINES_PKG.SetNewLine;
17678
17679 p_balance_type_code := l_balance_type_code;
17680 -- set the flag so later we will know whether the gain loss line needs to be created
17681
17682 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17683 p_actual_flag :='A';
17684 END IF;
17685
17686 --
17687 -- bulk performance
17688 --
17689 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17690 p_header_num => 0); -- 4262811
17691 --
17692 -- set accounting line options
17693 --
17694 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17695 p_natural_side_code => 'C'
17696 , p_gain_or_loss_flag => 'N'
17697 , p_gl_transfer_mode_code => 'S'
17698 , p_acct_entry_type_code => 'A'
17699 , p_switch_side_flag => 'N'
17700 , p_merge_duplicate_code => 'N'
17701 );
17702 --
17703 l_acc_rev_natural_side_code := 'D'; -- 4262811
17704 --
17705 --
17706 -- set accounting line type info
17707 --
17708 xla_ae_lines_pkg.SetAcctLineType
17709 (p_component_type => l_component_type
17710 ,p_event_type_code => l_event_type_code
17711 ,p_line_definition_owner_code => l_line_definition_owner_code
17712 ,p_line_definition_code => l_line_definition_code
17713 ,p_accounting_line_code => l_component_code
17714 ,p_accounting_line_type_code => l_component_type_code
17715 ,p_accounting_line_appl_id => l_component_appl_id
17716 ,p_amb_context_code => l_amb_context_code
17717 ,p_entity_code => l_entity_code
17718 ,p_event_class_code => l_event_class_code);
17719 --
17720 -- set accounting class
17721 --
17722 xla_ae_lines_pkg.SetAcctClass(
17723 p_accounting_class_code => 'ACCOUNTSPAYABLE'
17724 , p_ae_header_id => l_ae_header_id
17725 );
17726
17727 --
17728 -- set rounding class
17729 --
17730 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17731 'ACCOUNTSPAYABLE';
17732
17733 --
17734 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17735 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17736 --
17737 -- bulk performance
17738 --
17739 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17740
17741 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17742 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17743
17744 -- 4955764
17745 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17746 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17747
17748 -- 4458381 Public Sector Enh
17749
17750 --
17751 -- set accounting attributes for the line type
17752 --
17753 l_entered_amt_idx := 23;
17754 l_accted_amt_idx := 28;
17755 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17756 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17757 l_rec_acct_attrs.array_char_value(1) := p_source_15;
17758 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17759 l_rec_acct_attrs.array_num_value(2) :=
17760 xla_ae_sources_pkg.GetSystemSourceNum(
17761 p_source_code => 'XLA_EVENT_APPL_ID'
17762 , p_source_type_code => 'Y'
17763 , p_source_application_id => 602
17764 );
17765 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17766 l_rec_acct_attrs.array_char_value(3) := p_source_17;
17767 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17768 l_rec_acct_attrs.array_char_value(4) :=
17769 xla_ae_sources_pkg.GetSystemSourceChar(
17770 p_source_code => 'XLA_ENTITY_CODE'
17771 , p_source_type_code => 'Y'
17772 , p_source_application_id => 602
17773 );
17774 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17775 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
17776 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17777 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
17778 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
17779 l_rec_acct_attrs.array_num_value(7) := p_source_21;
17780 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17781 l_rec_acct_attrs.array_char_value(8) := p_source_22;
17782 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
17783 l_rec_acct_attrs.array_char_value(9) := p_source_23;
17784 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
17785 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
17786 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17787 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
17788 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
17789 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
17790 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
17791 l_rec_acct_attrs.array_char_value(13) := p_source_17;
17792 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
17793 l_rec_acct_attrs.array_num_value(14) := p_source_27;
17794 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
17795 l_rec_acct_attrs.array_num_value(15) := p_source_28;
17796 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
17797 l_rec_acct_attrs.array_char_value(16) := p_source_29;
17798 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
17799 l_rec_acct_attrs.array_num_value(17) := p_source_30;
17800 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
17801 l_rec_acct_attrs.array_num_value(18) := p_source_31;
17802 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
17803 l_rec_acct_attrs.array_num_value(19) := p_source_32;
17804 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
17805 l_rec_acct_attrs.array_char_value(20) := p_source_29;
17806 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
17807 l_rec_acct_attrs.array_num_value(21) := p_source_33;
17808 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
17809 l_rec_acct_attrs.array_char_value(22) := p_source_34;
17810 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
17811 l_rec_acct_attrs.array_num_value(23) := p_source_55;
17812 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
17813 l_rec_acct_attrs.array_char_value(24) := p_source_29;
17814 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
17815 l_rec_acct_attrs.array_date_value(25) := p_source_36;
17816 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
17817 l_rec_acct_attrs.array_num_value(26) := p_source_37;
17818 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
17819 l_rec_acct_attrs.array_char_value(27) := p_source_38;
17820 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
17821 l_rec_acct_attrs.array_num_value(28) := p_source_56;
17822 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
17823 l_rec_acct_attrs.array_date_value(29) := p_source_39;
17824 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
17825 l_rec_acct_attrs.array_char_value(30) := p_source_40;
17826 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
17827 l_rec_acct_attrs.array_date_value(31) := p_source_41;
17828 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
17829 l_rec_acct_attrs.array_char_value(32) := p_source_42;
17830 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
17831 l_rec_acct_attrs.array_num_value(33) := p_source_43;
17832 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
17833 l_rec_acct_attrs.array_num_value(34) := p_source_44;
17834 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
17835 l_rec_acct_attrs.array_char_value(35) := p_source_45;
17836 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
17837 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
17838 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
17839 l_rec_acct_attrs.array_char_value(37) := p_source_17;
17840 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
17841 l_rec_acct_attrs.array_num_value(38) := p_source_48;
17842 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
17843 l_rec_acct_attrs.array_num_value(39) := p_source_49;
17844 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
17845 l_rec_acct_attrs.array_num_value(40) := p_source_50;
17846 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
17847 l_rec_acct_attrs.array_num_value(41) := p_source_51;
17848 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
17849 l_rec_acct_attrs.array_num_value(42) := p_source_52;
17850
17851 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17852 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17853
17854 ---------------------------------------------------------------------------------------------------------------
17855 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17856 ---------------------------------------------------------------------------------------------------------------
17857 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17858
17859 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17860 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17861
17862 IF xla_accounting_cache_pkg.GetValueChar
17863 (p_source_code => 'LEDGER_CATEGORY_CODE'
17864 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17865 AND l_bflow_method_code = 'PRIOR_ENTRY'
17866 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17867 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17868 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17869 )
17870 THEN
17871 xla_ae_lines_pkg.BflowUpgEntry
17872 (p_business_method_code => l_bflow_method_code
17873 ,p_business_class_code => l_bflow_class_code
17874 ,p_balance_type => l_balance_type_code);
17875 ELSE
17876 NULL;
17877 -- No business flow processing for business flow method of NONE.
17878 END IF;
17879
17880 --
17881 -- call analytical criteria
17882 --
17883
17884 --
17885 -- call description
17886 --
17887
17888 xla_ae_lines_pkg.SetLineDescription(
17889 p_ae_header_id => l_ae_header_id
17890 ,p_description => Description_2 (
17891 p_application_id => p_application_id
17892 , p_ae_header_id => l_ae_header_id
17893 , p_source_1 => p_source_1
17894 )
17895 );
17896
17897
17898 --
17899 -- call ADRs
17900 -- Bug 4922099
17901 --
17902 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17903 (NVL(l_actual_upg_option, 'N') = 'O') OR
17904 (NVL(l_enc_upg_option, 'N') = 'O')
17905 )
17906 THEN
17907 NULL;
17908 --
17909 --
17910
17911 l_ccid := AcctDerRule_3(
17912 p_application_id => p_application_id
17913 , p_ae_header_id => l_ae_header_id
17914 , p_source_2 => p_source_2
17915 , x_transaction_coa_id => l_adr_transaction_coa_id
17916 , x_accounting_coa_id => l_adr_accounting_coa_id
17917 , x_value_type_code => l_adr_value_type_code
17918 , p_side => 'NA'
17919 );
17920
17921 xla_ae_lines_pkg.set_ccid(
17922 p_code_combination_id => l_ccid
17923 , p_value_type_code => l_adr_value_type_code
17924 , p_transaction_coa_id => l_adr_transaction_coa_id
17925 , p_accounting_coa_id => l_adr_accounting_coa_id
17926 , p_adr_code => 'AP_INVOICE_DIST'
17927 , p_adr_type_code => 'S'
17928 , p_component_type => l_component_type
17929 , p_component_code => l_component_code
17930 , p_component_type_code => l_component_type_code
17931 , p_component_appl_id => l_component_appl_id
17932 , p_amb_context_code => l_amb_context_code
17933 , p_side => 'NA'
17934 );
17935
17936
17937 l_segment := AcctDerRule_8(
17938 p_application_id => p_application_id
17939 , p_ae_header_id => l_ae_header_id
17940 , p_source_4 => p_source_4
17941 , p_source_5 => p_source_5
17942 , p_source_6 => p_source_6
17943 , x_transaction_coa_id => l_adr_transaction_coa_id
17944 , x_accounting_coa_id => l_adr_accounting_coa_id
17945 , x_flexfield_segment_code => l_adr_flexfield_segment_code
17946 , x_flex_value_set_id => l_adr_flex_value_set_id
17947 , x_value_type_code => l_adr_value_type_code
17948 , x_value_combination_id => l_adr_value_combination_id
17949 , x_value_segment_code => l_adr_value_segment_code
17950 , p_side => 'NA'
17951 , p_override_seg_flag => 'Y'
17952 );
17953
17954 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
17955
17956 xla_ae_lines_pkg.set_segment(
17957 p_to_segment_code => 'GL_ACCOUNT'
17958 , p_segment_value => l_segment
17959 , p_from_segment_code => l_adr_value_segment_code
17960 , p_from_combination_id => l_adr_value_combination_id
17961 , p_value_type_code => l_adr_value_type_code
17962 , p_transaction_coa_id => l_adr_transaction_coa_id
17963 , p_accounting_coa_id => l_adr_accounting_coa_id
17964 , p_flexfield_segment_code => l_adr_flexfield_segment_code
17965 , p_flex_value_set_id => l_adr_flex_value_set_id
17966 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
17967 , p_adr_type_code => 'S'
17968 , p_component_type => l_component_type
17969 , p_component_code => l_component_code
17970 , p_component_type_code => l_component_type_code
17971 , p_component_appl_id => l_component_appl_id
17972 , p_amb_context_code => l_amb_context_code
17973 , p_entity_code => 'AP_INVOICES'
17974 , p_event_class_code => 'DEBIT MEMOS'
17975 , p_side => 'NA'
17976 );
17977
17978 END IF;
17979
17980 --
17981 --
17982 END IF;
17983 --
17984 -- Bug 4922099
17985 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17986 (NVL(l_enc_upg_option, 'N') = 'O')
17987 ) AND
17988 (l_bflow_method_code = 'PRIOR_ENTRY')
17989 )
17990 THEN
17991 IF
17992 --
17993 1 = 2
17994 --
17995 THEN
17996 xla_accounting_err_pkg.build_message
17997 (p_appli_s_name => 'XLA'
17998 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17999 ,p_token_1 => 'LINE_NUMBER'
18000 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18001 ,p_token_2 => 'LINE_TYPE_NAME'
18002 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18003 l_component_type
18004 ,l_component_code
18005 ,l_component_type_code
18006 ,l_component_appl_id
18007 ,l_amb_context_code
18008 ,l_entity_code
18009 ,l_event_class_code
18010 )
18011 ,p_token_3 => 'OWNER'
18012 ,p_value_3 => xla_lookups_pkg.get_meaning(
18013 p_lookup_type => 'XLA_OWNER_TYPE'
18014 ,p_lookup_code => l_component_type_code
18015 )
18016 ,p_token_4 => 'PRODUCT_NAME'
18017 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18018 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18019 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18020 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18021 ,p_ae_header_id => NULL
18022 );
18023
18024 IF (C_LEVEL_ERROR>= g_log_level) THEN
18025 trace
18026 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18027 ,p_level => C_LEVEL_ERROR
18028 ,p_module => l_log_module);
18029 END IF;
18030 END IF;
18031 END IF;
18032 --
18033 --
18034 ------------------------------------------------------------------------------------------------
18035 -- 4219869 Business Flow
18036 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18037 -- Prior Entry. Currently, the following code is always generated.
18038 ------------------------------------------------------------------------------------------------
18039 XLA_AE_LINES_PKG.ValidateCurrentLine;
18040
18041 ------------------------------------------------------------------------------------
18042 -- 4219869 Business Flow
18043 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18044 ------------------------------------------------------------------------------------
18045 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18046
18047 ----------------------------------------------------------------------------------
18048 -- 4219869 Business Flow
18049 -- Update journal entry status -- Need to generate this within IF <condition>
18050 ----------------------------------------------------------------------------------
18051 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18052 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18053 ,p_balance_type_code => l_balance_type_code
18054 );
18055
18056 -------------------------------------------------------------------------------------------
18057 -- 4262811 - Generate the Accrual Reversal lines
18058 -------------------------------------------------------------------------------------------
18059 BEGIN
18060 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18061 (g_array_event(p_event_id).array_value_num('header_index'));
18062 IF l_acc_rev_flag IS NULL THEN
18063 l_acc_rev_flag := 'N';
18064 END IF;
18065 EXCEPTION
18066 WHEN OTHERS THEN
18067 l_acc_rev_flag := 'N';
18068 END;
18069 --
18070 IF (l_acc_rev_flag = 'Y') THEN
18071
18072 -- 4645092 ------------------------------------------------------------------------------
18073 -- To allow MPA report to determine if it should generate report process
18074 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18075 ------------------------------------------------------------------------------------------
18076
18077 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18078 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18079 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18080 -- call ADRs
18081 -- Bug 4922099
18082 --
18083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18084 (NVL(l_actual_upg_option, 'N') = 'O') OR
18085 (NVL(l_enc_upg_option, 'N') = 'O')
18086 )
18087 THEN
18088 NULL;
18089 --
18090 --
18091
18092 l_ccid := AcctDerRule_3(
18093 p_application_id => p_application_id
18094 , p_ae_header_id => l_ae_header_id
18095 , p_source_2 => p_source_2
18096 , x_transaction_coa_id => l_adr_transaction_coa_id
18097 , x_accounting_coa_id => l_adr_accounting_coa_id
18098 , x_value_type_code => l_adr_value_type_code
18099 , p_side => 'NA'
18100 );
18101
18102 xla_ae_lines_pkg.set_ccid(
18103 p_code_combination_id => l_ccid
18104 , p_value_type_code => l_adr_value_type_code
18105 , p_transaction_coa_id => l_adr_transaction_coa_id
18106 , p_accounting_coa_id => l_adr_accounting_coa_id
18107 , p_adr_code => 'AP_INVOICE_DIST'
18108 , p_adr_type_code => 'S'
18109 , p_component_type => l_component_type
18110 , p_component_code => l_component_code
18111 , p_component_type_code => l_component_type_code
18112 , p_component_appl_id => l_component_appl_id
18113 , p_amb_context_code => l_amb_context_code
18114 , p_side => 'NA'
18115 );
18116
18117
18118 l_segment := AcctDerRule_8(
18119 p_application_id => p_application_id
18120 , p_ae_header_id => l_ae_header_id
18121 , p_source_4 => p_source_4
18122 , p_source_5 => p_source_5
18123 , p_source_6 => p_source_6
18124 , x_transaction_coa_id => l_adr_transaction_coa_id
18125 , x_accounting_coa_id => l_adr_accounting_coa_id
18126 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18127 , x_flex_value_set_id => l_adr_flex_value_set_id
18128 , x_value_type_code => l_adr_value_type_code
18129 , x_value_combination_id => l_adr_value_combination_id
18130 , x_value_segment_code => l_adr_value_segment_code
18131 , p_side => 'NA'
18132 , p_override_seg_flag => 'Y'
18133 );
18134
18135 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18136
18137 xla_ae_lines_pkg.set_segment(
18138 p_to_segment_code => 'GL_ACCOUNT'
18139 , p_segment_value => l_segment
18140 , p_from_segment_code => l_adr_value_segment_code
18141 , p_from_combination_id => l_adr_value_combination_id
18142 , p_value_type_code => l_adr_value_type_code
18143 , p_transaction_coa_id => l_adr_transaction_coa_id
18144 , p_accounting_coa_id => l_adr_accounting_coa_id
18145 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18146 , p_flex_value_set_id => l_adr_flex_value_set_id
18147 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
18148 , p_adr_type_code => 'S'
18149 , p_component_type => l_component_type
18150 , p_component_code => l_component_code
18151 , p_component_type_code => l_component_type_code
18152 , p_component_appl_id => l_component_appl_id
18153 , p_amb_context_code => l_amb_context_code
18154 , p_entity_code => 'AP_INVOICES'
18155 , p_event_class_code => 'DEBIT MEMOS'
18156 , p_side => 'NA'
18157 );
18158
18159 END IF;
18160
18161 --
18162 --
18163 END IF;
18164
18165 --
18166 -- Update the line information that should be overwritten
18167 --
18168 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18169 p_header_num => 1);
18170 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18171
18172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18173
18174 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18175 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18176 END IF;
18177
18178 --
18179 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18180 --
18181 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18182 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18183 ELSE
18184 ---------------------------------------------------------------------------------------------------
18185 -- 4262811a Switch Sign
18186 ---------------------------------------------------------------------------------------------------
18187 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18191 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18192 -- 5132302
18193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18194 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18195
18196 END IF;
18197
18198 -- 4955764
18199 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18200 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18201
18202
18203 XLA_AE_LINES_PKG.ValidateCurrentLine;
18204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18205
18206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18208 ,p_balance_type_code => l_balance_type_code);
18209
18210 END IF;
18211
18212 -----------------------------------------------------------------------------------------
18213 -- 4262811 Multiperiod Accounting
18214 -----------------------------------------------------------------------------------------
18215 -- No MPA option is assigned.
18216
18217
18218 END IF;
18219 END IF;
18220 --
18221
18222 --
18223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18224 trace
18225 (p_msg => 'END of AcctLineType_36'
18226 ,p_level => C_LEVEL_PROCEDURE
18227 ,p_module => l_log_module);
18228 END IF;
18229 --
18230 EXCEPTION
18231 WHEN xla_exceptions_pkg.application_exception THEN
18232 RAISE;
18233 WHEN OTHERS THEN
18234 xla_exceptions_pkg.raise_message
18235 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_36');
18236 END AcctLineType_36;
18237 --
18238
18239 ---------------------------------------
18240 --
18241 -- PRIVATE FUNCTION
18242 -- AcctLineType_37
18243 --
18244 ---------------------------------------
18245 PROCEDURE AcctLineType_37 (
18246 p_application_id IN NUMBER
18247 ,p_event_id IN NUMBER
18248 ,p_calculate_acctd_flag IN VARCHAR2
18249 ,p_calculate_g_l_flag IN VARCHAR2
18250 ,p_actual_flag IN OUT VARCHAR2
18251 ,p_balance_type_code OUT VARCHAR2
18252 ,p_gain_or_loss_ref OUT VARCHAR2
18253
18254 --Invoice Distribution Description
18255 , p_source_1 IN VARCHAR2
18256 --Invoice Distribution Account
18257 , p_source_2 IN NUMBER
18258 --Federal Fund Category Description
18259 , p_source_6 IN VARCHAR2
18260 --Accounting Reversal Indicator
18261 , p_source_15 IN VARCHAR2
18262 --Distribution Link Type
18263 , p_source_17 IN VARCHAR2
18264 --Allocation to Main Distribution Identifier
18265 , p_source_19 IN NUMBER
18266 --Invoice Identifier
18267 , p_source_20 IN NUMBER
18268 --Business Flow Accounts Payable Application Identifier
18269 , p_source_21 IN NUMBER
18270 --Business Flow Invoice Distribution Type
18271 , p_source_22 IN VARCHAR2
18272 --Business Flow Invoice Entity Code
18273 , p_source_23 IN VARCHAR2
18274 --Business Flow Invoice Distribution Identifier
18275 , p_source_24 IN NUMBER
18276 --Business Flow Invoice Identifier
18277 , p_source_25 IN NUMBER
18278 --Invoice Distribution Identifier
18279 , p_source_26 IN NUMBER
18280 --Payables Encumbrance Upgrade Credit Account
18281 , p_source_27 IN NUMBER
18282 --Payables Encumbrance Upgrade Credit Amount
18283 , p_source_28 IN NUMBER
18284 --Invoice Currency Code
18285 , p_source_29 IN VARCHAR2
18286 --Payables Encumbrance Upgrade Credit Base Amount
18287 , p_source_30 IN NUMBER
18288 --Payables Encumbrance Upgrade Debit Account
18289 , p_source_31 IN NUMBER
18290 --Payables Encumbrance Upgrade Debit Amount
18291 , p_source_32 IN NUMBER
18292 --Payables Encumbrance Upgrade Debit Base Amount
18293 , p_source_33 IN NUMBER
18294 --Payables Encumbrance Upgrade Option
18295 , p_source_34 IN VARCHAR2
18296 --Invoice Exchange Date
18297 , p_source_36 IN DATE
18298 --Invoice Exchange Rate
18299 , p_source_37 IN NUMBER
18300 --Invoice Exchange Rate Type
18301 , p_source_38 IN VARCHAR2
18302 --Deferred Accounting End Date
18303 , p_source_39 IN DATE
18304 --Deferred Accounting Option
18305 , p_source_40 IN VARCHAR2
18306 --Deferred Accounting Start Date
18307 , p_source_41 IN DATE
18308 --Override Accounted Amount Indicator
18309 , p_source_42 IN VARCHAR2
18310 , p_source_42_meaning IN VARCHAR2
18311 --Invoice Supplier Identifier
18312 , p_source_43 IN NUMBER
18313 --Invoice Supplier Site Identifier
18314 , p_source_44 IN NUMBER
18315 --Third Party Type
18316 , p_source_45 IN VARCHAR2
18317 --Parent Reversal Identifier
18318 , p_source_46 IN NUMBER
18319 --Invoice Distribution Tax Line Identifier
18320 , p_source_48 IN NUMBER
18321 --Invoice Distribution Tax Distribution Identifier from Tax
18322 , p_source_49 IN NUMBER
18323 --Invoice Distribution Summary Tax Line Identifier
18324 , p_source_50 IN NUMBER
18325 --Payables Upgrade Credit Encumbrance Type Identifier
18326 , p_source_51 IN NUMBER
18327 --Payables Upgrade Debit Encumbrance Type Identifier
18328 , p_source_52 IN NUMBER
18329 --Invoice Distribution Amount
18330 , p_source_55 IN NUMBER
18331 --Invoice Distribution Ledger Amount Before Rounding
18332 , p_source_58 IN NUMBER
18333 )
18334 IS
18335
18336 l_component_type VARCHAR2(80);
18337 l_component_code VARCHAR2(30);
18338 l_component_type_code VARCHAR2(1);
18339 l_component_appl_id INTEGER;
18340 l_amb_context_code VARCHAR2(30);
18341 l_entity_code VARCHAR2(30);
18342 l_event_class_code VARCHAR2(30);
18343 l_ae_header_id NUMBER;
18344 l_event_type_code VARCHAR2(30);
18345 l_line_definition_code VARCHAR2(30);
18346 l_line_definition_owner_code VARCHAR2(1);
18347 --
18348 -- adr variables
18349 l_segment VARCHAR2(30);
18350 l_ccid NUMBER;
18351 l_adr_transaction_coa_id NUMBER;
18352 l_adr_accounting_coa_id NUMBER;
18353 l_adr_flexfield_segment_code VARCHAR2(30);
18354 l_adr_flex_value_set_id NUMBER;
18355 l_adr_value_type_code VARCHAR2(30);
18356 l_adr_value_combination_id NUMBER;
18357 l_adr_value_segment_code VARCHAR2(30);
18358
18359 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18360 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18361 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18362 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18363
18364 -- 4262811 Variables ------------------------------------------------------------------------------------------
18365 l_entered_amt_idx NUMBER;
18366 l_accted_amt_idx NUMBER;
18367 l_acc_rev_flag VARCHAR2(1);
18368 l_accrual_line_num NUMBER;
18369 l_tmp_amt NUMBER;
18370 l_acc_rev_natural_side_code VARCHAR2(1);
18371
18372 l_num_entries NUMBER;
18373 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18374 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18375 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18376 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18377 l_recog_line_1 NUMBER;
18378 l_recog_line_2 NUMBER;
18379
18380 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18381 l_bflow_applied_to_amt NUMBER; -- 5132302
18382 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18383
18384 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18385
18386 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18387 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18388
18389 ---------------------------------------------------------------------------------------------------------------
18390
18391
18392 --
18393 -- bulk performance
18394 --
18395 l_balance_type_code VARCHAR2(1);
18396 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18397 l_log_module VARCHAR2(240);
18398
18399 --
18400 -- Upgrade strategy
18401 --
18402 l_actual_upg_option VARCHAR2(1);
18403 l_enc_upg_option VARCHAR2(1);
18404
18405 --
18406 BEGIN
18407 --
18408 IF g_log_enabled THEN
18409 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
18410 END IF;
18411 --
18412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18413
18414 trace
18415 (p_msg => 'BEGIN of AcctLineType_37'
18416 ,p_level => C_LEVEL_PROCEDURE
18417 ,p_module => l_log_module);
18418
18419 END IF;
18420 --
18421 l_component_type := 'AMB_JLT';
18422 l_component_code := 'FV_AP_DM_DIRECT_FUND_CR';
18423 l_component_type_code := 'S';
18424 l_component_appl_id := 200;
18425 l_amb_context_code := 'DEFAULT';
18426 l_entity_code := 'AP_INVOICES';
18427 l_event_class_code := 'DEBIT MEMOS';
18428 l_event_type_code := 'DEBIT MEMOS_ALL';
18429 l_line_definition_owner_code := 'S';
18430 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
18431 --
18432 l_balance_type_code := 'A';
18433 l_segment := NULL;
18434 l_ccid := NULL;
18435 l_adr_transaction_coa_id := NULL;
18436 l_adr_accounting_coa_id := NULL;
18437 l_adr_flexfield_segment_code := NULL;
18438 l_adr_flex_value_set_id := NULL;
18439 l_adr_value_type_code := NULL;
18440 l_adr_value_combination_id := NULL;
18441 l_adr_value_segment_code := NULL;
18442
18443 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18444 l_bflow_class_code := 'FV_DIRECT_FUND_CR'; -- 4219869 Business Flow
18445 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18446 l_budgetary_control_flag := 'Y';
18447
18448 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18449 l_bflow_applied_to_amt := NULL; -- 5132302
18450 l_entered_amt_idx := NULL; -- 4262811
18451 l_accted_amt_idx := NULL; -- 4262811
18452 l_acc_rev_flag := NULL; -- 4262811
18453 l_accrual_line_num := NULL; -- 4262811
18454 l_tmp_amt := NULL; -- 4262811
18455 --
18456
18457 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18458 l_balance_type_code <> 'B' THEN
18459 IF NVL(p_source_6,'
18460 ') = 'Direct' AND
18461 NVL(
18462 xla_ae_sources_pkg.GetSystemSourceChar(
18463 p_source_code => 'XLA_EVENT_TYPE_CODE'
18464 , p_source_type_code => 'Y'
18465 , p_source_application_id => 602
18466 ),'
18467 ') <> 'DEBIT MEMO CANCELLED'
18468 THEN
18469
18470 --
18471 XLA_AE_LINES_PKG.SetNewLine;
18472
18473 p_balance_type_code := l_balance_type_code;
18474 -- set the flag so later we will know whether the gain loss line needs to be created
18475
18476 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18477 p_actual_flag :='A';
18478 END IF;
18479
18480 --
18481 -- bulk performance
18482 --
18483 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18484 p_header_num => 0); -- 4262811
18485 --
18486 -- set accounting line options
18487 --
18488 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18489 p_natural_side_code => 'D'
18490 , p_gain_or_loss_flag => 'N'
18491 , p_gl_transfer_mode_code => 'S'
18492 , p_acct_entry_type_code => 'A'
18493 , p_switch_side_flag => 'N'
18494 , p_merge_duplicate_code => 'N'
18495 );
18496 --
18497 l_acc_rev_natural_side_code := 'C'; -- 4262811
18498 --
18499 --
18500 -- set accounting line type info
18501 --
18502 xla_ae_lines_pkg.SetAcctLineType
18503 (p_component_type => l_component_type
18504 ,p_event_type_code => l_event_type_code
18505 ,p_line_definition_owner_code => l_line_definition_owner_code
18506 ,p_line_definition_code => l_line_definition_code
18507 ,p_accounting_line_code => l_component_code
18508 ,p_accounting_line_type_code => l_component_type_code
18509 ,p_accounting_line_appl_id => l_component_appl_id
18510 ,p_amb_context_code => l_amb_context_code
18511 ,p_entity_code => l_entity_code
18512 ,p_event_class_code => l_event_class_code);
18513 --
18514 -- set accounting class
18515 --
18516 xla_ae_lines_pkg.SetAcctClass(
18517 p_accounting_class_code => 'ACCOUNTSPAYABLE'
18518 , p_ae_header_id => l_ae_header_id
18519 );
18520
18521 --
18522 -- set rounding class
18523 --
18524 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18525 'ACCOUNTSPAYABLE';
18526
18527 --
18528 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18529 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18530 --
18531 -- bulk performance
18532 --
18533 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18534
18535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18536 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18537
18538 -- 4955764
18539 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18540 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18541
18542 -- 4458381 Public Sector Enh
18543
18544 --
18545 -- set accounting attributes for the line type
18546 --
18547 l_entered_amt_idx := 23;
18548 l_accted_amt_idx := 28;
18549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18550 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18551 l_rec_acct_attrs.array_char_value(1) := p_source_15;
18552 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18553 l_rec_acct_attrs.array_num_value(2) :=
18554 xla_ae_sources_pkg.GetSystemSourceNum(
18555 p_source_code => 'XLA_EVENT_APPL_ID'
18556 , p_source_type_code => 'Y'
18557 , p_source_application_id => 602
18558 );
18559 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18560 l_rec_acct_attrs.array_char_value(3) := p_source_17;
18561 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18562 l_rec_acct_attrs.array_char_value(4) :=
18563 xla_ae_sources_pkg.GetSystemSourceChar(
18564 p_source_code => 'XLA_ENTITY_CODE'
18565 , p_source_type_code => 'Y'
18566 , p_source_application_id => 602
18567 );
18568 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18569 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
18570 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18571 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
18572 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18573 l_rec_acct_attrs.array_num_value(7) := p_source_21;
18574 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18575 l_rec_acct_attrs.array_char_value(8) := p_source_22;
18576 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18577 l_rec_acct_attrs.array_char_value(9) := p_source_23;
18578 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18579 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
18580 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18581 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
18582 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
18583 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
18584 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
18585 l_rec_acct_attrs.array_char_value(13) := p_source_17;
18586 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
18587 l_rec_acct_attrs.array_num_value(14) := p_source_27;
18588 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
18589 l_rec_acct_attrs.array_num_value(15) := p_source_28;
18590 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
18591 l_rec_acct_attrs.array_char_value(16) := p_source_29;
18592 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
18593 l_rec_acct_attrs.array_num_value(17) := p_source_30;
18594 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
18595 l_rec_acct_attrs.array_num_value(18) := p_source_31;
18596 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
18597 l_rec_acct_attrs.array_num_value(19) := p_source_32;
18598 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
18599 l_rec_acct_attrs.array_char_value(20) := p_source_29;
18600 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
18601 l_rec_acct_attrs.array_num_value(21) := p_source_33;
18602 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
18603 l_rec_acct_attrs.array_char_value(22) := p_source_34;
18604 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
18605 l_rec_acct_attrs.array_num_value(23) := p_source_55;
18606 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
18607 l_rec_acct_attrs.array_char_value(24) := p_source_29;
18608 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
18609 l_rec_acct_attrs.array_date_value(25) := p_source_36;
18610 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
18611 l_rec_acct_attrs.array_num_value(26) := p_source_37;
18612 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
18613 l_rec_acct_attrs.array_char_value(27) := p_source_38;
18614 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
18615 l_rec_acct_attrs.array_num_value(28) := p_source_58;
18616 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
18617 l_rec_acct_attrs.array_date_value(29) := p_source_39;
18618 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
18619 l_rec_acct_attrs.array_char_value(30) := p_source_40;
18620 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
18621 l_rec_acct_attrs.array_date_value(31) := p_source_41;
18622 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
18623 l_rec_acct_attrs.array_char_value(32) := p_source_42;
18624 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
18625 l_rec_acct_attrs.array_num_value(33) := p_source_43;
18626 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
18627 l_rec_acct_attrs.array_num_value(34) := p_source_44;
18628 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
18629 l_rec_acct_attrs.array_char_value(35) := p_source_45;
18630 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
18631 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
18632 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
18633 l_rec_acct_attrs.array_char_value(37) := p_source_17;
18634 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
18635 l_rec_acct_attrs.array_num_value(38) := p_source_48;
18636 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
18637 l_rec_acct_attrs.array_num_value(39) := p_source_49;
18638 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
18639 l_rec_acct_attrs.array_num_value(40) := p_source_50;
18640 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
18641 l_rec_acct_attrs.array_num_value(41) := p_source_51;
18642 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
18643 l_rec_acct_attrs.array_num_value(42) := p_source_52;
18644
18645 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18646 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18647
18648 ---------------------------------------------------------------------------------------------------------------
18649 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18650 ---------------------------------------------------------------------------------------------------------------
18651 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18652
18653 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18654 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18655
18656 IF xla_accounting_cache_pkg.GetValueChar
18657 (p_source_code => 'LEDGER_CATEGORY_CODE'
18658 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18659 AND l_bflow_method_code = 'PRIOR_ENTRY'
18660 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18661 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18662 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18663 )
18664 THEN
18665 xla_ae_lines_pkg.BflowUpgEntry
18666 (p_business_method_code => l_bflow_method_code
18667 ,p_business_class_code => l_bflow_class_code
18668 ,p_balance_type => l_balance_type_code);
18669 ELSE
18670 NULL;
18671 -- No business flow processing for business flow method of NONE.
18672 END IF;
18673
18674 --
18675 -- call analytical criteria
18676 --
18677
18678 --
18679 -- call description
18680 --
18681
18682 xla_ae_lines_pkg.SetLineDescription(
18683 p_ae_header_id => l_ae_header_id
18684 ,p_description => Description_2 (
18685 p_application_id => p_application_id
18686 , p_ae_header_id => l_ae_header_id
18687 , p_source_1 => p_source_1
18688 )
18689 );
18690
18691
18692 --
18693 -- call ADRs
18694 -- Bug 4922099
18695 --
18696 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18697 (NVL(l_actual_upg_option, 'N') = 'O') OR
18698 (NVL(l_enc_upg_option, 'N') = 'O')
18699 )
18700 THEN
18701 NULL;
18702 --
18703 --
18704
18705 l_ccid := AcctDerRule_3(
18706 p_application_id => p_application_id
18707 , p_ae_header_id => l_ae_header_id
18708 , p_source_2 => p_source_2
18709 , x_transaction_coa_id => l_adr_transaction_coa_id
18710 , x_accounting_coa_id => l_adr_accounting_coa_id
18711 , x_value_type_code => l_adr_value_type_code
18712 , p_side => 'NA'
18713 );
18714
18715 xla_ae_lines_pkg.set_ccid(
18716 p_code_combination_id => l_ccid
18717 , p_value_type_code => l_adr_value_type_code
18718 , p_transaction_coa_id => l_adr_transaction_coa_id
18719 , p_accounting_coa_id => l_adr_accounting_coa_id
18720 , p_adr_code => 'AP_INVOICE_DIST'
18721 , p_adr_type_code => 'S'
18722 , p_component_type => l_component_type
18723 , p_component_code => l_component_code
18724 , p_component_type_code => l_component_type_code
18725 , p_component_appl_id => l_component_appl_id
18726 , p_amb_context_code => l_amb_context_code
18727 , p_side => 'NA'
18728 );
18729
18730
18731 l_segment := AcctDerRule_4(
18732 p_application_id => p_application_id
18733 , p_ae_header_id => l_ae_header_id
18734 , x_transaction_coa_id => l_adr_transaction_coa_id
18735 , x_accounting_coa_id => l_adr_accounting_coa_id
18736 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18737 , x_flex_value_set_id => l_adr_flex_value_set_id
18741 , p_side => 'NA'
18738 , x_value_type_code => l_adr_value_type_code
18739 , x_value_combination_id => l_adr_value_combination_id
18740 , x_value_segment_code => l_adr_value_segment_code
18742 , p_override_seg_flag => 'Y'
18743 );
18744
18745 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18746
18747 xla_ae_lines_pkg.set_segment(
18748 p_to_segment_code => 'GL_ACCOUNT'
18749 , p_segment_value => l_segment
18750 , p_from_segment_code => l_adr_value_segment_code
18751 , p_from_combination_id => l_adr_value_combination_id
18752 , p_value_type_code => l_adr_value_type_code
18753 , p_transaction_coa_id => l_adr_transaction_coa_id
18754 , p_accounting_coa_id => l_adr_accounting_coa_id
18755 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18756 , p_flex_value_set_id => l_adr_flex_value_set_id
18757 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
18758 , p_adr_type_code => 'S'
18759 , p_component_type => l_component_type
18760 , p_component_code => l_component_code
18761 , p_component_type_code => l_component_type_code
18762 , p_component_appl_id => l_component_appl_id
18763 , p_amb_context_code => l_amb_context_code
18764 , p_entity_code => 'AP_INVOICES'
18765 , p_event_class_code => 'DEBIT MEMOS'
18766 , p_side => 'NA'
18767 );
18768
18769 END IF;
18770
18771 --
18772 --
18773 END IF;
18774 --
18775 -- Bug 4922099
18776 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18777 (NVL(l_enc_upg_option, 'N') = 'O')
18778 ) AND
18779 (l_bflow_method_code = 'PRIOR_ENTRY')
18780 )
18781 THEN
18782 IF
18783 --
18784 1 = 2
18785 --
18786 THEN
18787 xla_accounting_err_pkg.build_message
18788 (p_appli_s_name => 'XLA'
18789 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18790 ,p_token_1 => 'LINE_NUMBER'
18791 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18792 ,p_token_2 => 'LINE_TYPE_NAME'
18793 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18794 l_component_type
18795 ,l_component_code
18796 ,l_component_type_code
18797 ,l_component_appl_id
18798 ,l_amb_context_code
18799 ,l_entity_code
18800 ,l_event_class_code
18801 )
18802 ,p_token_3 => 'OWNER'
18803 ,p_value_3 => xla_lookups_pkg.get_meaning(
18804 p_lookup_type => 'XLA_OWNER_TYPE'
18805 ,p_lookup_code => l_component_type_code
18806 )
18807 ,p_token_4 => 'PRODUCT_NAME'
18808 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18809 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18810 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18811 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18812 ,p_ae_header_id => NULL
18813 );
18814
18815 IF (C_LEVEL_ERROR>= g_log_level) THEN
18816 trace
18817 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18818 ,p_level => C_LEVEL_ERROR
18819 ,p_module => l_log_module);
18820 END IF;
18821 END IF;
18822 END IF;
18823 --
18824 --
18825 ------------------------------------------------------------------------------------------------
18826 -- 4219869 Business Flow
18827 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18828 -- Prior Entry. Currently, the following code is always generated.
18829 ------------------------------------------------------------------------------------------------
18830 XLA_AE_LINES_PKG.ValidateCurrentLine;
18831
18832 ------------------------------------------------------------------------------------
18833 -- 4219869 Business Flow
18834 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18835 ------------------------------------------------------------------------------------
18836 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18837
18838 ----------------------------------------------------------------------------------
18839 -- 4219869 Business Flow
18840 -- Update journal entry status -- Need to generate this within IF <condition>
18841 ----------------------------------------------------------------------------------
18842 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18843 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18844 ,p_balance_type_code => l_balance_type_code
18845 );
18846
18847 -------------------------------------------------------------------------------------------
18848 -- 4262811 - Generate the Accrual Reversal lines
18849 -------------------------------------------------------------------------------------------
18850 BEGIN
18851 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18852 (g_array_event(p_event_id).array_value_num('header_index'));
18853 IF l_acc_rev_flag IS NULL THEN
18854 l_acc_rev_flag := 'N';
18855 END IF;
18856 EXCEPTION
18857 WHEN OTHERS THEN
18858 l_acc_rev_flag := 'N';
18859 END;
18860 --
18861 IF (l_acc_rev_flag = 'Y') THEN
18862
18863 -- 4645092 ------------------------------------------------------------------------------
18864 -- To allow MPA report to determine if it should generate report process
18865 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18866 ------------------------------------------------------------------------------------------
18867
18868 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18869 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18870 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18871 -- call ADRs
18872 -- Bug 4922099
18873 --
18874 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18875 (NVL(l_actual_upg_option, 'N') = 'O') OR
18876 (NVL(l_enc_upg_option, 'N') = 'O')
18877 )
18878 THEN
18879 NULL;
18880 --
18881 --
18882
18883 l_ccid := AcctDerRule_3(
18884 p_application_id => p_application_id
18885 , p_ae_header_id => l_ae_header_id
18886 , p_source_2 => p_source_2
18887 , x_transaction_coa_id => l_adr_transaction_coa_id
18888 , x_accounting_coa_id => l_adr_accounting_coa_id
18889 , x_value_type_code => l_adr_value_type_code
18890 , p_side => 'NA'
18891 );
18892
18893 xla_ae_lines_pkg.set_ccid(
18894 p_code_combination_id => l_ccid
18895 , p_value_type_code => l_adr_value_type_code
18896 , p_transaction_coa_id => l_adr_transaction_coa_id
18897 , p_accounting_coa_id => l_adr_accounting_coa_id
18898 , p_adr_code => 'AP_INVOICE_DIST'
18899 , p_adr_type_code => 'S'
18900 , p_component_type => l_component_type
18901 , p_component_code => l_component_code
18902 , p_component_type_code => l_component_type_code
18903 , p_component_appl_id => l_component_appl_id
18904 , p_amb_context_code => l_amb_context_code
18905 , p_side => 'NA'
18906 );
18907
18908
18909 l_segment := AcctDerRule_4(
18910 p_application_id => p_application_id
18911 , p_ae_header_id => l_ae_header_id
18912 , x_transaction_coa_id => l_adr_transaction_coa_id
18913 , x_accounting_coa_id => l_adr_accounting_coa_id
18914 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18915 , x_flex_value_set_id => l_adr_flex_value_set_id
18916 , x_value_type_code => l_adr_value_type_code
18917 , x_value_combination_id => l_adr_value_combination_id
18918 , x_value_segment_code => l_adr_value_segment_code
18919 , p_side => 'NA'
18920 , p_override_seg_flag => 'Y'
18921 );
18922
18923 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18924
18925 xla_ae_lines_pkg.set_segment(
18926 p_to_segment_code => 'GL_ACCOUNT'
18927 , p_segment_value => l_segment
18928 , p_from_segment_code => l_adr_value_segment_code
18929 , p_from_combination_id => l_adr_value_combination_id
18930 , p_value_type_code => l_adr_value_type_code
18931 , p_transaction_coa_id => l_adr_transaction_coa_id
18932 , p_accounting_coa_id => l_adr_accounting_coa_id
18933 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18934 , p_flex_value_set_id => l_adr_flex_value_set_id
18935 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
18936 , p_adr_type_code => 'S'
18937 , p_component_type => l_component_type
18938 , p_component_code => l_component_code
18939 , p_component_type_code => l_component_type_code
18940 , p_component_appl_id => l_component_appl_id
18941 , p_amb_context_code => l_amb_context_code
18942 , p_entity_code => 'AP_INVOICES'
18943 , p_event_class_code => 'DEBIT MEMOS'
18944 , p_side => 'NA'
18945 );
18946
18947 END IF;
18948
18949 --
18950 --
18951 END IF;
18952
18953 --
18954 -- Update the line information that should be overwritten
18955 --
18956 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18957 p_header_num => 1);
18958 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18959
18960 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18961
18962 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18963 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18964 END IF;
18965
18966 --
18967 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18968 --
18969 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18970 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18971 ELSE
18972 ---------------------------------------------------------------------------------------------------
18973 -- 4262811a Switch Sign
18974 ---------------------------------------------------------------------------------------------------
18975 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18976 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18977 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18978 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18979 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18980 -- 5132302
18981 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18982 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18983
18984 END IF;
18985
18986 -- 4955764
18987 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18988 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18989
18990
18991 XLA_AE_LINES_PKG.ValidateCurrentLine;
18992 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18993
18994 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18995 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18996 ,p_balance_type_code => l_balance_type_code);
18997
18998 END IF;
18999
19000 -----------------------------------------------------------------------------------------
19001 -- 4262811 Multiperiod Accounting
19002 -----------------------------------------------------------------------------------------
19003 -- No MPA option is assigned.
19004
19005
19006 END IF;
19007 END IF;
19008 --
19009
19010 --
19011 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19012 trace
19013 (p_msg => 'END of AcctLineType_37'
19014 ,p_level => C_LEVEL_PROCEDURE
19015 ,p_module => l_log_module);
19016 END IF;
19017 --
19018 EXCEPTION
19019 WHEN xla_exceptions_pkg.application_exception THEN
19020 RAISE;
19021 WHEN OTHERS THEN
19022 xla_exceptions_pkg.raise_message
19023 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_37');
19024 END AcctLineType_37;
19025 --
19026
19027 ---------------------------------------
19028 --
19029 -- PRIVATE FUNCTION
19030 -- AcctLineType_38
19031 --
19032 ---------------------------------------
19033 PROCEDURE AcctLineType_38 (
19034 p_application_id IN NUMBER
19035 ,p_event_id IN NUMBER
19036 ,p_calculate_acctd_flag IN VARCHAR2
19037 ,p_calculate_g_l_flag IN VARCHAR2
19038 ,p_actual_flag IN OUT VARCHAR2
19039 ,p_balance_type_code OUT VARCHAR2
19040 ,p_gain_or_loss_ref OUT VARCHAR2
19041
19042 --Invoice Distribution Description
19043 , p_source_1 IN VARCHAR2
19044 --Invoice Distribution Account
19045 , p_source_2 IN NUMBER
19046 --Federal Fund Category Description
19047 , p_source_6 IN VARCHAR2
19048 --Accounting Reversal Indicator
19049 , p_source_15 IN VARCHAR2
19050 --Distribution Link Type
19051 , p_source_17 IN VARCHAR2
19052 --Allocation to Main Distribution Identifier
19053 , p_source_19 IN NUMBER
19054 --Invoice Identifier
19055 , p_source_20 IN NUMBER
19056 --Business Flow Accounts Payable Application Identifier
19057 , p_source_21 IN NUMBER
19058 --Business Flow Invoice Distribution Type
19059 , p_source_22 IN VARCHAR2
19060 --Business Flow Invoice Entity Code
19061 , p_source_23 IN VARCHAR2
19062 --Business Flow Invoice Distribution Identifier
19063 , p_source_24 IN NUMBER
19064 --Business Flow Invoice Identifier
19065 , p_source_25 IN NUMBER
19066 --Invoice Distribution Identifier
19067 , p_source_26 IN NUMBER
19068 --Payables Encumbrance Upgrade Credit Account
19069 , p_source_27 IN NUMBER
19070 --Payables Encumbrance Upgrade Credit Amount
19071 , p_source_28 IN NUMBER
19072 --Invoice Currency Code
19073 , p_source_29 IN VARCHAR2
19074 --Payables Encumbrance Upgrade Credit Base Amount
19075 , p_source_30 IN NUMBER
19076 --Payables Encumbrance Upgrade Debit Account
19077 , p_source_31 IN NUMBER
19078 --Payables Encumbrance Upgrade Debit Amount
19079 , p_source_32 IN NUMBER
19080 --Payables Encumbrance Upgrade Debit Base Amount
19081 , p_source_33 IN NUMBER
19082 --Payables Encumbrance Upgrade Option
19083 , p_source_34 IN VARCHAR2
19084 --Invoice Exchange Date
19085 , p_source_36 IN DATE
19086 --Invoice Exchange Rate
19087 , p_source_37 IN NUMBER
19088 --Invoice Exchange Rate Type
19089 , p_source_38 IN VARCHAR2
19090 --Deferred Accounting End Date
19091 , p_source_39 IN DATE
19092 --Deferred Accounting Option
19093 , p_source_40 IN VARCHAR2
19094 --Deferred Accounting Start Date
19095 , p_source_41 IN DATE
19096 --Override Accounted Amount Indicator
19097 , p_source_42 IN VARCHAR2
19098 , p_source_42_meaning IN VARCHAR2
19099 --Invoice Supplier Identifier
19100 , p_source_43 IN NUMBER
19101 --Invoice Supplier Site Identifier
19102 , p_source_44 IN NUMBER
19103 --Third Party Type
19104 , p_source_45 IN VARCHAR2
19105 --Parent Reversal Identifier
19106 , p_source_46 IN NUMBER
19107 --Invoice Distribution Tax Line Identifier
19108 , p_source_48 IN NUMBER
19109 --Invoice Distribution Tax Distribution Identifier from Tax
19110 , p_source_49 IN NUMBER
19111 --Invoice Distribution Summary Tax Line Identifier
19112 , p_source_50 IN NUMBER
19113 --Payables Upgrade Credit Encumbrance Type Identifier
19114 , p_source_51 IN NUMBER
19115 --Payables Upgrade Debit Encumbrance Type Identifier
19116 , p_source_52 IN NUMBER
19117 --Invoice Distribution Amount
19118 , p_source_55 IN NUMBER
19119 --Invoice Distribution Ledger Amount Before Rounding
19120 , p_source_58 IN NUMBER
19121 )
19122 IS
19123
19124 l_component_type VARCHAR2(80);
19125 l_component_code VARCHAR2(30);
19126 l_component_type_code VARCHAR2(1);
19127 l_component_appl_id INTEGER;
19128 l_amb_context_code VARCHAR2(30);
19129 l_entity_code VARCHAR2(30);
19130 l_event_class_code VARCHAR2(30);
19131 l_ae_header_id NUMBER;
19132 l_event_type_code VARCHAR2(30);
19133 l_line_definition_code VARCHAR2(30);
19134 l_line_definition_owner_code VARCHAR2(1);
19135 --
19136 -- adr variables
19137 l_segment VARCHAR2(30);
19138 l_ccid NUMBER;
19139 l_adr_transaction_coa_id NUMBER;
19140 l_adr_accounting_coa_id NUMBER;
19141 l_adr_flexfield_segment_code VARCHAR2(30);
19142 l_adr_flex_value_set_id NUMBER;
19143 l_adr_value_type_code VARCHAR2(30);
19144 l_adr_value_combination_id NUMBER;
19145 l_adr_value_segment_code VARCHAR2(30);
19146
19147 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19148 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19149 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19150 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19151
19152 -- 4262811 Variables ------------------------------------------------------------------------------------------
19153 l_entered_amt_idx NUMBER;
19154 l_accted_amt_idx NUMBER;
19155 l_acc_rev_flag VARCHAR2(1);
19156 l_accrual_line_num NUMBER;
19157 l_tmp_amt NUMBER;
19158 l_acc_rev_natural_side_code VARCHAR2(1);
19159
19160 l_num_entries NUMBER;
19161 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19162 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19163 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19164 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19165 l_recog_line_1 NUMBER;
19166 l_recog_line_2 NUMBER;
19167
19168 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19169 l_bflow_applied_to_amt NUMBER; -- 5132302
19170 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19171
19172 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19173
19174 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19175 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19176
19177 ---------------------------------------------------------------------------------------------------------------
19178
19179
19180 --
19181 -- bulk performance
19182 --
19183 l_balance_type_code VARCHAR2(1);
19184 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19185 l_log_module VARCHAR2(240);
19186
19187 --
19188 -- Upgrade strategy
19189 --
19190 l_actual_upg_option VARCHAR2(1);
19191 l_enc_upg_option VARCHAR2(1);
19192
19193 --
19194 BEGIN
19195 --
19196 IF g_log_enabled THEN
19197 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
19198 END IF;
19199 --
19200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19201
19202 trace
19203 (p_msg => 'BEGIN of AcctLineType_38'
19204 ,p_level => C_LEVEL_PROCEDURE
19205 ,p_module => l_log_module);
19206
19207 END IF;
19208 --
19209 l_component_type := 'AMB_JLT';
19210 l_component_code := 'FV_AP_DM_DIRECT_FUND_DR';
19211 l_component_type_code := 'S';
19212 l_component_appl_id := 200;
19213 l_amb_context_code := 'DEFAULT';
19214 l_entity_code := 'AP_INVOICES';
19215 l_event_class_code := 'DEBIT MEMOS';
19216 l_event_type_code := 'DEBIT MEMOS_ALL';
19217 l_line_definition_owner_code := 'S';
19218 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
19219 --
19220 l_balance_type_code := 'A';
19221 l_segment := NULL;
19222 l_ccid := NULL;
19223 l_adr_transaction_coa_id := NULL;
19224 l_adr_accounting_coa_id := NULL;
19225 l_adr_flexfield_segment_code := NULL;
19226 l_adr_flex_value_set_id := NULL;
19227 l_adr_value_type_code := NULL;
19228 l_adr_value_combination_id := NULL;
19229 l_adr_value_segment_code := NULL;
19230
19231 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19232 l_bflow_class_code := 'FV_DIRECT_FUND_DR'; -- 4219869 Business Flow
19233 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19234 l_budgetary_control_flag := 'Y';
19235
19236 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19237 l_bflow_applied_to_amt := NULL; -- 5132302
19238 l_entered_amt_idx := NULL; -- 4262811
19239 l_accted_amt_idx := NULL; -- 4262811
19240 l_acc_rev_flag := NULL; -- 4262811
19241 l_accrual_line_num := NULL; -- 4262811
19242 l_tmp_amt := NULL; -- 4262811
19243 --
19244
19245 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19246 l_balance_type_code <> 'B' THEN
19247 IF NVL(p_source_6,'
19248 ') = 'Direct' AND
19249 NVL(
19250 xla_ae_sources_pkg.GetSystemSourceChar(
19251 p_source_code => 'XLA_EVENT_TYPE_CODE'
19252 , p_source_type_code => 'Y'
19253 , p_source_application_id => 602
19254 ),'
19255 ') <> 'DEBIT MEMO CANCELLED'
19256 THEN
19257
19258 --
19259 XLA_AE_LINES_PKG.SetNewLine;
19260
19261 p_balance_type_code := l_balance_type_code;
19262 -- set the flag so later we will know whether the gain loss line needs to be created
19263
19264 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19265 p_actual_flag :='A';
19266 END IF;
19267
19268 --
19269 -- bulk performance
19270 --
19271 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19272 p_header_num => 0); -- 4262811
19273 --
19274 -- set accounting line options
19275 --
19276 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19277 p_natural_side_code => 'C'
19278 , p_gain_or_loss_flag => 'N'
19279 , p_gl_transfer_mode_code => 'S'
19280 , p_acct_entry_type_code => 'A'
19281 , p_switch_side_flag => 'N'
19282 , p_merge_duplicate_code => 'N'
19283 );
19284 --
19285 l_acc_rev_natural_side_code := 'D'; -- 4262811
19286 --
19287 --
19288 -- set accounting line type info
19289 --
19290 xla_ae_lines_pkg.SetAcctLineType
19291 (p_component_type => l_component_type
19292 ,p_event_type_code => l_event_type_code
19293 ,p_line_definition_owner_code => l_line_definition_owner_code
19294 ,p_line_definition_code => l_line_definition_code
19295 ,p_accounting_line_code => l_component_code
19296 ,p_accounting_line_type_code => l_component_type_code
19297 ,p_accounting_line_appl_id => l_component_appl_id
19298 ,p_amb_context_code => l_amb_context_code
19299 ,p_entity_code => l_entity_code
19300 ,p_event_class_code => l_event_class_code);
19301 --
19302 -- set accounting class
19303 --
19304 xla_ae_lines_pkg.SetAcctClass(
19305 p_accounting_class_code => 'ACCOUNTSPAYABLE'
19306 , p_ae_header_id => l_ae_header_id
19307 );
19308
19309 --
19310 -- set rounding class
19311 --
19312 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19313 'ACCOUNTSPAYABLE';
19314
19315 --
19316 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19317 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19318 --
19319 -- bulk performance
19320 --
19321 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19322
19323 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19324 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19325
19326 -- 4955764
19327 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19328 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19329
19330 -- 4458381 Public Sector Enh
19331
19332 --
19333 -- set accounting attributes for the line type
19334 --
19335 l_entered_amt_idx := 23;
19336 l_accted_amt_idx := 28;
19337 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19338 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19339 l_rec_acct_attrs.array_char_value(1) := p_source_15;
19340 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19341 l_rec_acct_attrs.array_num_value(2) :=
19342 xla_ae_sources_pkg.GetSystemSourceNum(
19343 p_source_code => 'XLA_EVENT_APPL_ID'
19344 , p_source_type_code => 'Y'
19345 , p_source_application_id => 602
19346 );
19347 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19348 l_rec_acct_attrs.array_char_value(3) := p_source_17;
19349 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19350 l_rec_acct_attrs.array_char_value(4) :=
19351 xla_ae_sources_pkg.GetSystemSourceChar(
19352 p_source_code => 'XLA_ENTITY_CODE'
19353 , p_source_type_code => 'Y'
19354 , p_source_application_id => 602
19355 );
19356 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19357 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
19358 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19359 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
19360 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19361 l_rec_acct_attrs.array_num_value(7) := p_source_21;
19362 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19363 l_rec_acct_attrs.array_char_value(8) := p_source_22;
19364 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19365 l_rec_acct_attrs.array_char_value(9) := p_source_23;
19366 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19367 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
19368 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19369 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
19370 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19371 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
19372 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19373 l_rec_acct_attrs.array_char_value(13) := p_source_17;
19374 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19375 l_rec_acct_attrs.array_num_value(14) := p_source_27;
19376 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19377 l_rec_acct_attrs.array_num_value(15) := p_source_28;
19378 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19379 l_rec_acct_attrs.array_char_value(16) := p_source_29;
19380 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19381 l_rec_acct_attrs.array_num_value(17) := p_source_30;
19382 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19383 l_rec_acct_attrs.array_num_value(18) := p_source_31;
19384 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19385 l_rec_acct_attrs.array_num_value(19) := p_source_32;
19386 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19387 l_rec_acct_attrs.array_char_value(20) := p_source_29;
19388 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19389 l_rec_acct_attrs.array_num_value(21) := p_source_33;
19390 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19391 l_rec_acct_attrs.array_char_value(22) := p_source_34;
19392 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19393 l_rec_acct_attrs.array_num_value(23) := p_source_55;
19394 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19395 l_rec_acct_attrs.array_char_value(24) := p_source_29;
19396 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
19397 l_rec_acct_attrs.array_date_value(25) := p_source_36;
19398 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
19399 l_rec_acct_attrs.array_num_value(26) := p_source_37;
19400 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
19401 l_rec_acct_attrs.array_char_value(27) := p_source_38;
19402 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
19403 l_rec_acct_attrs.array_num_value(28) := p_source_58;
19404 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
19405 l_rec_acct_attrs.array_date_value(29) := p_source_39;
19406 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
19407 l_rec_acct_attrs.array_char_value(30) := p_source_40;
19408 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
19409 l_rec_acct_attrs.array_date_value(31) := p_source_41;
19410 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
19411 l_rec_acct_attrs.array_char_value(32) := p_source_42;
19412 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
19413 l_rec_acct_attrs.array_num_value(33) := p_source_43;
19414 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
19415 l_rec_acct_attrs.array_num_value(34) := p_source_44;
19416 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
19417 l_rec_acct_attrs.array_char_value(35) := p_source_45;
19418 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
19419 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
19420 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
19421 l_rec_acct_attrs.array_char_value(37) := p_source_17;
19422 l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
19423 l_rec_acct_attrs.array_num_value(38) := p_source_48;
19424 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
19425 l_rec_acct_attrs.array_num_value(39) := p_source_49;
19426 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
19427 l_rec_acct_attrs.array_num_value(40) := p_source_50;
19428 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
19429 l_rec_acct_attrs.array_num_value(41) := p_source_51;
19430 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
19431 l_rec_acct_attrs.array_num_value(42) := p_source_52;
19432
19433 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19434 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19435
19436 ---------------------------------------------------------------------------------------------------------------
19437 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19438 ---------------------------------------------------------------------------------------------------------------
19439 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19440
19441 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19442 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19443
19444 IF xla_accounting_cache_pkg.GetValueChar
19445 (p_source_code => 'LEDGER_CATEGORY_CODE'
19446 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19447 AND l_bflow_method_code = 'PRIOR_ENTRY'
19448 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19449 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19450 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19451 )
19452 THEN
19453 xla_ae_lines_pkg.BflowUpgEntry
19454 (p_business_method_code => l_bflow_method_code
19455 ,p_business_class_code => l_bflow_class_code
19456 ,p_balance_type => l_balance_type_code);
19457 ELSE
19458 NULL;
19459 -- No business flow processing for business flow method of NONE.
19460 END IF;
19461
19462 --
19463 -- call analytical criteria
19464 --
19465
19466 --
19467 -- call description
19468 --
19469
19470 xla_ae_lines_pkg.SetLineDescription(
19471 p_ae_header_id => l_ae_header_id
19472 ,p_description => Description_2 (
19473 p_application_id => p_application_id
19474 , p_ae_header_id => l_ae_header_id
19475 , p_source_1 => p_source_1
19476 )
19477 );
19478
19479
19480 --
19481 -- call ADRs
19482 -- Bug 4922099
19483 --
19484 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19485 (NVL(l_actual_upg_option, 'N') = 'O') OR
19486 (NVL(l_enc_upg_option, 'N') = 'O')
19487 )
19488 THEN
19489 NULL;
19490 --
19491 --
19492
19493 l_ccid := AcctDerRule_3(
19494 p_application_id => p_application_id
19495 , p_ae_header_id => l_ae_header_id
19496 , p_source_2 => p_source_2
19497 , x_transaction_coa_id => l_adr_transaction_coa_id
19498 , x_accounting_coa_id => l_adr_accounting_coa_id
19499 , x_value_type_code => l_adr_value_type_code
19500 , p_side => 'NA'
19501 );
19502
19503 xla_ae_lines_pkg.set_ccid(
19504 p_code_combination_id => l_ccid
19505 , p_value_type_code => l_adr_value_type_code
19506 , p_transaction_coa_id => l_adr_transaction_coa_id
19507 , p_accounting_coa_id => l_adr_accounting_coa_id
19508 , p_adr_code => 'AP_INVOICE_DIST'
19509 , p_adr_type_code => 'S'
19510 , p_component_type => l_component_type
19511 , p_component_code => l_component_code
19512 , p_component_type_code => l_component_type_code
19513 , p_component_appl_id => l_component_appl_id
19514 , p_amb_context_code => l_amb_context_code
19515 , p_side => 'NA'
19516 );
19517
19518
19519 l_segment := AcctDerRule_15(
19520 p_application_id => p_application_id
19521 , p_ae_header_id => l_ae_header_id
19522 , x_transaction_coa_id => l_adr_transaction_coa_id
19523 , x_accounting_coa_id => l_adr_accounting_coa_id
19524 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19525 , x_flex_value_set_id => l_adr_flex_value_set_id
19526 , x_value_type_code => l_adr_value_type_code
19527 , x_value_combination_id => l_adr_value_combination_id
19528 , x_value_segment_code => l_adr_value_segment_code
19529 , p_side => 'NA'
19530 , p_override_seg_flag => 'Y'
19531 );
19532
19533 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19534
19535 xla_ae_lines_pkg.set_segment(
19536 p_to_segment_code => 'GL_ACCOUNT'
19537 , p_segment_value => l_segment
19538 , p_from_segment_code => l_adr_value_segment_code
19539 , p_from_combination_id => l_adr_value_combination_id
19540 , p_value_type_code => l_adr_value_type_code
19541 , p_transaction_coa_id => l_adr_transaction_coa_id
19542 , p_accounting_coa_id => l_adr_accounting_coa_id
19543 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19544 , p_flex_value_set_id => l_adr_flex_value_set_id
19545 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
19546 , p_adr_type_code => 'S'
19547 , p_component_type => l_component_type
19548 , p_component_code => l_component_code
19549 , p_component_type_code => l_component_type_code
19550 , p_component_appl_id => l_component_appl_id
19551 , p_amb_context_code => l_amb_context_code
19552 , p_entity_code => 'AP_INVOICES'
19553 , p_event_class_code => 'DEBIT MEMOS'
19554 , p_side => 'NA'
19555 );
19556
19557 END IF;
19558
19559 --
19560 --
19561 END IF;
19562 --
19563 -- Bug 4922099
19564 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19565 (NVL(l_enc_upg_option, 'N') = 'O')
19566 ) AND
19567 (l_bflow_method_code = 'PRIOR_ENTRY')
19568 )
19569 THEN
19570 IF
19571 --
19572 1 = 2
19573 --
19574 THEN
19575 xla_accounting_err_pkg.build_message
19576 (p_appli_s_name => 'XLA'
19577 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19578 ,p_token_1 => 'LINE_NUMBER'
19579 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19580 ,p_token_2 => 'LINE_TYPE_NAME'
19581 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19582 l_component_type
19583 ,l_component_code
19584 ,l_component_type_code
19585 ,l_component_appl_id
19586 ,l_amb_context_code
19587 ,l_entity_code
19588 ,l_event_class_code
19589 )
19590 ,p_token_3 => 'OWNER'
19591 ,p_value_3 => xla_lookups_pkg.get_meaning(
19592 p_lookup_type => 'XLA_OWNER_TYPE'
19593 ,p_lookup_code => l_component_type_code
19594 )
19595 ,p_token_4 => 'PRODUCT_NAME'
19596 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19597 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19598 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19599 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19600 ,p_ae_header_id => NULL
19601 );
19602
19603 IF (C_LEVEL_ERROR>= g_log_level) THEN
19604 trace
19605 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19606 ,p_level => C_LEVEL_ERROR
19607 ,p_module => l_log_module);
19608 END IF;
19609 END IF;
19610 END IF;
19611 --
19612 --
19613 ------------------------------------------------------------------------------------------------
19614 -- 4219869 Business Flow
19615 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19616 -- Prior Entry. Currently, the following code is always generated.
19617 ------------------------------------------------------------------------------------------------
19618 XLA_AE_LINES_PKG.ValidateCurrentLine;
19619
19620 ------------------------------------------------------------------------------------
19621 -- 4219869 Business Flow
19622 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19623 ------------------------------------------------------------------------------------
19624 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19625
19626 ----------------------------------------------------------------------------------
19627 -- 4219869 Business Flow
19628 -- Update journal entry status -- Need to generate this within IF <condition>
19629 ----------------------------------------------------------------------------------
19630 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19631 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19632 ,p_balance_type_code => l_balance_type_code
19633 );
19634
19635 -------------------------------------------------------------------------------------------
19636 -- 4262811 - Generate the Accrual Reversal lines
19637 -------------------------------------------------------------------------------------------
19638 BEGIN
19639 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19640 (g_array_event(p_event_id).array_value_num('header_index'));
19641 IF l_acc_rev_flag IS NULL THEN
19642 l_acc_rev_flag := 'N';
19643 END IF;
19644 EXCEPTION
19645 WHEN OTHERS THEN
19646 l_acc_rev_flag := 'N';
19647 END;
19648 --
19649 IF (l_acc_rev_flag = 'Y') THEN
19650
19651 -- 4645092 ------------------------------------------------------------------------------
19652 -- To allow MPA report to determine if it should generate report process
19653 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19654 ------------------------------------------------------------------------------------------
19655
19656 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19657 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19658 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19659 -- call ADRs
19660 -- Bug 4922099
19661 --
19662 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19663 (NVL(l_actual_upg_option, 'N') = 'O') OR
19664 (NVL(l_enc_upg_option, 'N') = 'O')
19665 )
19666 THEN
19667 NULL;
19668 --
19669 --
19670
19671 l_ccid := AcctDerRule_3(
19672 p_application_id => p_application_id
19673 , p_ae_header_id => l_ae_header_id
19674 , p_source_2 => p_source_2
19675 , x_transaction_coa_id => l_adr_transaction_coa_id
19676 , x_accounting_coa_id => l_adr_accounting_coa_id
19677 , x_value_type_code => l_adr_value_type_code
19678 , p_side => 'NA'
19679 );
19680
19681 xla_ae_lines_pkg.set_ccid(
19682 p_code_combination_id => l_ccid
19683 , p_value_type_code => l_adr_value_type_code
19684 , p_transaction_coa_id => l_adr_transaction_coa_id
19685 , p_accounting_coa_id => l_adr_accounting_coa_id
19686 , p_adr_code => 'AP_INVOICE_DIST'
19687 , p_adr_type_code => 'S'
19688 , p_component_type => l_component_type
19689 , p_component_code => l_component_code
19690 , p_component_type_code => l_component_type_code
19691 , p_component_appl_id => l_component_appl_id
19692 , p_amb_context_code => l_amb_context_code
19693 , p_side => 'NA'
19694 );
19695
19696
19697 l_segment := AcctDerRule_15(
19698 p_application_id => p_application_id
19699 , p_ae_header_id => l_ae_header_id
19700 , x_transaction_coa_id => l_adr_transaction_coa_id
19701 , x_accounting_coa_id => l_adr_accounting_coa_id
19702 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19703 , x_flex_value_set_id => l_adr_flex_value_set_id
19704 , x_value_type_code => l_adr_value_type_code
19705 , x_value_combination_id => l_adr_value_combination_id
19706 , x_value_segment_code => l_adr_value_segment_code
19707 , p_side => 'NA'
19708 , p_override_seg_flag => 'Y'
19709 );
19710
19711 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19712
19713 xla_ae_lines_pkg.set_segment(
19714 p_to_segment_code => 'GL_ACCOUNT'
19715 , p_segment_value => l_segment
19716 , p_from_segment_code => l_adr_value_segment_code
19717 , p_from_combination_id => l_adr_value_combination_id
19718 , p_value_type_code => l_adr_value_type_code
19719 , p_transaction_coa_id => l_adr_transaction_coa_id
19720 , p_accounting_coa_id => l_adr_accounting_coa_id
19721 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19722 , p_flex_value_set_id => l_adr_flex_value_set_id
19723 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
19724 , p_adr_type_code => 'S'
19725 , p_component_type => l_component_type
19726 , p_component_code => l_component_code
19727 , p_component_type_code => l_component_type_code
19728 , p_component_appl_id => l_component_appl_id
19729 , p_amb_context_code => l_amb_context_code
19730 , p_entity_code => 'AP_INVOICES'
19731 , p_event_class_code => 'DEBIT MEMOS'
19732 , p_side => 'NA'
19733 );
19734
19735 END IF;
19736
19737 --
19738 --
19739 END IF;
19740
19741 --
19742 -- Update the line information that should be overwritten
19743 --
19744 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19745 p_header_num => 1);
19746 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19747
19748 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19749
19750 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19751 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19752 END IF;
19753
19754 --
19755 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19756 --
19757 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19758 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19759 ELSE
19760 ---------------------------------------------------------------------------------------------------
19761 -- 4262811a Switch Sign
19762 ---------------------------------------------------------------------------------------------------
19763 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19764 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19765 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19766 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19767 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19768 -- 5132302
19769 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19770 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19771
19772 END IF;
19773
19774 -- 4955764
19775 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19776 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19777
19778
19779 XLA_AE_LINES_PKG.ValidateCurrentLine;
19780 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19781
19782 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19783 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19784 ,p_balance_type_code => l_balance_type_code);
19785
19786 END IF;
19787
19788 -----------------------------------------------------------------------------------------
19789 -- 4262811 Multiperiod Accounting
19790 -----------------------------------------------------------------------------------------
19791 -- No MPA option is assigned.
19792
19793
19794 END IF;
19795 END IF;
19796 --
19797
19798 --
19799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19800 trace
19801 (p_msg => 'END of AcctLineType_38'
19802 ,p_level => C_LEVEL_PROCEDURE
19803 ,p_module => l_log_module);
19804 END IF;
19805 --
19806 EXCEPTION
19807 WHEN xla_exceptions_pkg.application_exception THEN
19808 RAISE;
19809 WHEN OTHERS THEN
19810 xla_exceptions_pkg.raise_message
19811 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_38');
19812 END AcctLineType_38;
19813 --
19814
19815 ---------------------------------------
19816 --
19817 -- PRIVATE FUNCTION
19818 -- AcctLineType_39
19819 --
19820 ---------------------------------------
19821 PROCEDURE AcctLineType_39 (
19822 p_application_id IN NUMBER
19823 ,p_event_id IN NUMBER
19824 ,p_calculate_acctd_flag IN VARCHAR2
19825 ,p_calculate_g_l_flag IN VARCHAR2
19826 ,p_actual_flag IN OUT VARCHAR2
19827 ,p_balance_type_code OUT VARCHAR2
19828 ,p_gain_or_loss_ref OUT VARCHAR2
19829
19830 --Federal Fund Category Description
19831 , p_source_6 IN VARCHAR2
19832 --Accounting Reversal Indicator
19833 , p_source_15 IN VARCHAR2
19834 --Distribution Link Type
19835 , p_source_17 IN VARCHAR2
19836 --Allocation to Main Distribution Identifier
19837 , p_source_19 IN NUMBER
19838 --Invoice Identifier
19839 , p_source_20 IN NUMBER
19840 --Business Flow Accounts Payable Application Identifier
19841 , p_source_21 IN NUMBER
19842 --Business Flow Invoice Distribution Type
19843 , p_source_22 IN VARCHAR2
19844 --Business Flow Invoice Entity Code
19845 , p_source_23 IN VARCHAR2
19846 --Business Flow Invoice Distribution Identifier
19847 , p_source_24 IN NUMBER
19848 --Business Flow Invoice Identifier
19849 , p_source_25 IN NUMBER
19850 --Invoice Distribution Identifier
19851 , p_source_26 IN NUMBER
19852 --Payables Encumbrance Upgrade Credit Account
19853 , p_source_27 IN NUMBER
19854 --Payables Encumbrance Upgrade Credit Amount
19855 , p_source_28 IN NUMBER
19856 --Invoice Currency Code
19857 , p_source_29 IN VARCHAR2
19858 --Payables Encumbrance Upgrade Credit Base Amount
19859 , p_source_30 IN NUMBER
19860 --Payables Encumbrance Upgrade Debit Account
19861 , p_source_31 IN NUMBER
19862 --Payables Encumbrance Upgrade Debit Amount
19863 , p_source_32 IN NUMBER
19864 --Payables Encumbrance Upgrade Debit Base Amount
19865 , p_source_33 IN NUMBER
19866 --Payables Encumbrance Upgrade Option
19867 , p_source_34 IN VARCHAR2
19868 --Deferred Accounting End Date
19869 , p_source_39 IN DATE
19870 --Deferred Accounting Option
19871 , p_source_40 IN VARCHAR2
19872 --Deferred Accounting Start Date
19873 , p_source_41 IN DATE
19874 --Override Accounted Amount Indicator
19875 , p_source_42 IN VARCHAR2
19876 , p_source_42_meaning IN VARCHAR2
19877 --Third Party Type
19878 , p_source_45 IN VARCHAR2
19879 --Parent Reversal Identifier
19880 , p_source_46 IN NUMBER
19881 --Invoice Distribution Tax Line Identifier
19882 , p_source_48 IN NUMBER
19883 --Invoice Distribution Tax Distribution Identifier from Tax
19884 , p_source_49 IN NUMBER
19885 --Invoice Distribution Summary Tax Line Identifier
19886 , p_source_50 IN NUMBER
19887 --Payables Upgrade Credit Encumbrance Type Identifier
19888 , p_source_51 IN NUMBER
19889 --Payables Upgrade Debit Encumbrance Type Identifier
19890 , p_source_52 IN NUMBER
19891 --Invoice Distribution Amount
19892 , p_source_55 IN NUMBER
19893 --Invoice Distribution Ledger Amount Before Rounding
19894 , p_source_58 IN NUMBER
19895 )
19896 IS
19897
19898 l_component_type VARCHAR2(80);
19899 l_component_code VARCHAR2(30);
19900 l_component_type_code VARCHAR2(1);
19901 l_component_appl_id INTEGER;
19902 l_amb_context_code VARCHAR2(30);
19903 l_entity_code VARCHAR2(30);
19904 l_event_class_code VARCHAR2(30);
19905 l_ae_header_id NUMBER;
19906 l_event_type_code VARCHAR2(30);
19907 l_line_definition_code VARCHAR2(30);
19908 l_line_definition_owner_code VARCHAR2(1);
19909 --
19910 -- adr variables
19911 l_segment VARCHAR2(30);
19912 l_ccid NUMBER;
19913 l_adr_transaction_coa_id NUMBER;
19914 l_adr_accounting_coa_id NUMBER;
19915 l_adr_flexfield_segment_code VARCHAR2(30);
19916 l_adr_flex_value_set_id NUMBER;
19917 l_adr_value_type_code VARCHAR2(30);
19918 l_adr_value_combination_id NUMBER;
19919 l_adr_value_segment_code VARCHAR2(30);
19920
19921 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19922 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19923 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19924 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19925
19926 -- 4262811 Variables ------------------------------------------------------------------------------------------
19927 l_entered_amt_idx NUMBER;
19928 l_accted_amt_idx NUMBER;
19929 l_acc_rev_flag VARCHAR2(1);
19930 l_accrual_line_num NUMBER;
19931 l_tmp_amt NUMBER;
19932 l_acc_rev_natural_side_code VARCHAR2(1);
19933
19934 l_num_entries NUMBER;
19935 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19936 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19937 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19938 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19939 l_recog_line_1 NUMBER;
19940 l_recog_line_2 NUMBER;
19941
19942 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19943 l_bflow_applied_to_amt NUMBER; -- 5132302
19944 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19945
19946 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19947
19948 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19949 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19950
19951 ---------------------------------------------------------------------------------------------------------------
19952
19953
19954 --
19955 -- bulk performance
19956 --
19957 l_balance_type_code VARCHAR2(1);
19958 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19959 l_log_module VARCHAR2(240);
19960
19961 --
19962 -- Upgrade strategy
19963 --
19964 l_actual_upg_option VARCHAR2(1);
19965 l_enc_upg_option VARCHAR2(1);
19966
19967 --
19968 BEGIN
19969 --
19970 IF g_log_enabled THEN
19971 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
19972 END IF;
19973 --
19974 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19975
19976 trace
19977 (p_msg => 'BEGIN of AcctLineType_39'
19978 ,p_level => C_LEVEL_PROCEDURE
19979 ,p_module => l_log_module);
19980
19981 END IF;
19982 --
19983 l_component_type := 'AMB_JLT';
19984 l_component_code := 'FV_AP_DM_REV_DIRECT_FUND_CR';
19985 l_component_type_code := 'S';
19986 l_component_appl_id := 200;
19987 l_amb_context_code := 'DEFAULT';
19988 l_entity_code := 'AP_INVOICES';
19989 l_event_class_code := 'DEBIT MEMOS';
19990 l_event_type_code := 'DEBIT MEMOS_ALL';
19991 l_line_definition_owner_code := 'S';
19992 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
19993 --
19994 l_balance_type_code := 'A';
19995 l_segment := NULL;
19996 l_ccid := NULL;
19997 l_adr_transaction_coa_id := NULL;
19998 l_adr_accounting_coa_id := NULL;
19999 l_adr_flexfield_segment_code := NULL;
20000 l_adr_flex_value_set_id := NULL;
20001 l_adr_value_type_code := NULL;
20002 l_adr_value_combination_id := NULL;
20003 l_adr_value_segment_code := NULL;
20004
20005 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20006 l_bflow_class_code := 'FV_DIRECT_FUND_DR'; -- 4219869 Business Flow
20007 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
20008 l_budgetary_control_flag := 'Y';
20009
20010 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20011 l_bflow_applied_to_amt := NULL; -- 5132302
20012 l_entered_amt_idx := NULL; -- 4262811
20013 l_accted_amt_idx := NULL; -- 4262811
20014 l_acc_rev_flag := NULL; -- 4262811
20015 l_accrual_line_num := NULL; -- 4262811
20016 l_tmp_amt := NULL; -- 4262811
20017 --
20018
20019 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20020 l_balance_type_code <> 'B' THEN
20021 IF NVL(p_source_6,'
20022 ') = 'Direct' AND
20023 NVL(
20024 xla_ae_sources_pkg.GetSystemSourceChar(
20025 p_source_code => 'XLA_EVENT_TYPE_CODE'
20026 , p_source_type_code => 'Y'
20027 , p_source_application_id => 602
20028 ),'
20029 ') = 'DEBIT MEMO CANCELLED'
20030 THEN
20031
20032 --
20033 XLA_AE_LINES_PKG.SetNewLine;
20034
20035 p_balance_type_code := l_balance_type_code;
20036 -- set the flag so later we will know whether the gain loss line needs to be created
20037
20038 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20039 p_actual_flag :='A';
20040 END IF;
20041
20042 --
20043 -- bulk performance
20044 --
20045 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20046 p_header_num => 0); -- 4262811
20047 --
20048 -- set accounting line options
20049 --
20050 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20051 p_natural_side_code => 'D'
20052 , p_gain_or_loss_flag => 'N'
20053 , p_gl_transfer_mode_code => 'S'
20054 , p_acct_entry_type_code => 'A'
20055 , p_switch_side_flag => 'N'
20056 , p_merge_duplicate_code => 'N'
20057 );
20058 --
20059 l_acc_rev_natural_side_code := 'C'; -- 4262811
20060 --
20061 --
20062 -- set accounting line type info
20063 --
20064 xla_ae_lines_pkg.SetAcctLineType
20065 (p_component_type => l_component_type
20066 ,p_event_type_code => l_event_type_code
20067 ,p_line_definition_owner_code => l_line_definition_owner_code
20068 ,p_line_definition_code => l_line_definition_code
20069 ,p_accounting_line_code => l_component_code
20070 ,p_accounting_line_type_code => l_component_type_code
20071 ,p_accounting_line_appl_id => l_component_appl_id
20072 ,p_amb_context_code => l_amb_context_code
20073 ,p_entity_code => l_entity_code
20074 ,p_event_class_code => l_event_class_code);
20075 --
20076 -- set accounting class
20077 --
20078 xla_ae_lines_pkg.SetAcctClass(
20079 p_accounting_class_code => 'ACCOUNTSPAYABLE'
20080 , p_ae_header_id => l_ae_header_id
20081 );
20082
20083 --
20084 -- set rounding class
20085 --
20086 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20087 'ACCOUNTSPAYABLE';
20088
20089 --
20090 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20091 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20092 --
20093 -- bulk performance
20094 --
20095 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20096
20097 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20098 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20099
20100 -- 4955764
20101 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20102 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20103
20104 -- 4458381 Public Sector Enh
20105
20106 --
20107 -- set accounting attributes for the line type
20108 --
20109 l_entered_amt_idx := 23;
20110 l_accted_amt_idx := 25;
20111 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20112 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20113 l_rec_acct_attrs.array_char_value(1) := p_source_15;
20114 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20115 l_rec_acct_attrs.array_num_value(2) :=
20116 xla_ae_sources_pkg.GetSystemSourceNum(
20117 p_source_code => 'XLA_EVENT_APPL_ID'
20118 , p_source_type_code => 'Y'
20119 , p_source_application_id => 602
20120 );
20121 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20122 l_rec_acct_attrs.array_char_value(3) := p_source_17;
20123 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20124 l_rec_acct_attrs.array_char_value(4) :=
20125 xla_ae_sources_pkg.GetSystemSourceChar(
20126 p_source_code => 'XLA_ENTITY_CODE'
20127 , p_source_type_code => 'Y'
20128 , p_source_application_id => 602
20129 );
20130 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20131 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
20132 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20133 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
20134 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
20135 l_rec_acct_attrs.array_num_value(7) := p_source_21;
20136 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20137 l_rec_acct_attrs.array_char_value(8) := p_source_22;
20138 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
20139 l_rec_acct_attrs.array_char_value(9) := p_source_23;
20140 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
20141 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
20142 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20143 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
20144 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
20145 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
20146 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
20147 l_rec_acct_attrs.array_char_value(13) := p_source_17;
20148 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
20149 l_rec_acct_attrs.array_num_value(14) := p_source_27;
20150 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
20151 l_rec_acct_attrs.array_num_value(15) := p_source_28;
20152 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
20153 l_rec_acct_attrs.array_char_value(16) := p_source_29;
20154 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
20155 l_rec_acct_attrs.array_num_value(17) := p_source_30;
20156 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
20157 l_rec_acct_attrs.array_num_value(18) := p_source_31;
20158 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
20159 l_rec_acct_attrs.array_num_value(19) := p_source_32;
20160 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
20161 l_rec_acct_attrs.array_char_value(20) := p_source_29;
20162 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
20163 l_rec_acct_attrs.array_num_value(21) := p_source_33;
20164 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
20165 l_rec_acct_attrs.array_char_value(22) := p_source_34;
20166 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
20167 l_rec_acct_attrs.array_num_value(23) := p_source_55;
20168 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
20169 l_rec_acct_attrs.array_char_value(24) := p_source_29;
20170 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
20171 l_rec_acct_attrs.array_num_value(25) := p_source_58;
20172 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
20173 l_rec_acct_attrs.array_date_value(26) := p_source_39;
20174 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
20175 l_rec_acct_attrs.array_char_value(27) := p_source_40;
20176 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
20177 l_rec_acct_attrs.array_date_value(28) := p_source_41;
20178 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
20179 l_rec_acct_attrs.array_char_value(29) := p_source_42;
20180 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
20181 l_rec_acct_attrs.array_char_value(30) := p_source_45;
20182 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
20183 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_46);
20184 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
20185 l_rec_acct_attrs.array_char_value(32) := p_source_17;
20186 l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
20187 l_rec_acct_attrs.array_num_value(33) := p_source_48;
20188 l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
20189 l_rec_acct_attrs.array_num_value(34) := p_source_49;
20190 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
20191 l_rec_acct_attrs.array_num_value(35) := p_source_50;
20192 l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
20193 l_rec_acct_attrs.array_num_value(36) := p_source_51;
20194 l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
20195 l_rec_acct_attrs.array_num_value(37) := p_source_52;
20196
20197 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20198 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20199
20200 ---------------------------------------------------------------------------------------------------------------
20201 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20202 ---------------------------------------------------------------------------------------------------------------
20203 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20204
20205 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20206 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20207
20208 IF xla_accounting_cache_pkg.GetValueChar
20209 (p_source_code => 'LEDGER_CATEGORY_CODE'
20210 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20211 AND l_bflow_method_code = 'PRIOR_ENTRY'
20212 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20213 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20214 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20215 )
20216 THEN
20217 xla_ae_lines_pkg.BflowUpgEntry
20218 (p_business_method_code => l_bflow_method_code
20219 ,p_business_class_code => l_bflow_class_code
20220 ,p_balance_type => l_balance_type_code);
20221 ELSE
20222 NULL;
20223 XLA_AE_LINES_PKG.business_flow_validation(
20224 p_business_method_code => l_bflow_method_code
20225 ,p_business_class_code => l_bflow_class_code
20226 ,p_inherit_description_flag => l_inherit_desc_flag);
20227 END IF;
20228
20229 --
20230 -- call analytical criteria
20231 --
20232 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20233 --
20234 -- call description
20235 --
20236 -- No description or it is inherited.
20237 --
20238 -- call ADRs
20239 -- Bug 4922099
20240 --
20241 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20242 (NVL(l_actual_upg_option, 'N') = 'O') OR
20243 (NVL(l_enc_upg_option, 'N') = 'O')
20244 )
20245 THEN
20246 NULL;
20247 --
20248 --
20249
20250 --
20251 --
20252 END IF;
20253 --
20254 -- Bug 4922099
20255 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20256 (NVL(l_enc_upg_option, 'N') = 'O')
20257 ) AND
20258 (l_bflow_method_code = 'PRIOR_ENTRY')
20259 )
20260 THEN
20261 IF
20262 --
20263 1 = 1
20264 --
20265 THEN
20266 xla_accounting_err_pkg.build_message
20267 (p_appli_s_name => 'XLA'
20268 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20269 ,p_token_1 => 'LINE_NUMBER'
20270 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20271 ,p_token_2 => 'LINE_TYPE_NAME'
20272 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20273 l_component_type
20274 ,l_component_code
20275 ,l_component_type_code
20276 ,l_component_appl_id
20277 ,l_amb_context_code
20278 ,l_entity_code
20279 ,l_event_class_code
20280 )
20281 ,p_token_3 => 'OWNER'
20282 ,p_value_3 => xla_lookups_pkg.get_meaning(
20283 p_lookup_type => 'XLA_OWNER_TYPE'
20284 ,p_lookup_code => l_component_type_code
20285 )
20286 ,p_token_4 => 'PRODUCT_NAME'
20287 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20288 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20289 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20290 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20291 ,p_ae_header_id => NULL
20292 );
20293
20294 IF (C_LEVEL_ERROR>= g_log_level) THEN
20295 trace
20296 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20297 ,p_level => C_LEVEL_ERROR
20298 ,p_module => l_log_module);
20299 END IF;
20300 END IF;
20301 END IF;
20302 --
20303 --
20304 ------------------------------------------------------------------------------------------------
20305 -- 4219869 Business Flow
20306 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20307 -- Prior Entry. Currently, the following code is always generated.
20308 ------------------------------------------------------------------------------------------------
20309 -- No ValidateCurrentLine for business flow method of Prior Entry
20310
20311 ------------------------------------------------------------------------------------
20312 -- 4219869 Business Flow
20313 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20314 ------------------------------------------------------------------------------------
20315 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20316
20317 ----------------------------------------------------------------------------------
20318 -- 4219869 Business Flow
20319 -- Update journal entry status -- Need to generate this within IF <condition>
20320 ----------------------------------------------------------------------------------
20321 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20322 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20323 ,p_balance_type_code => l_balance_type_code
20324 );
20325
20326 -------------------------------------------------------------------------------------------
20327 -- 4262811 - Generate the Accrual Reversal lines
20328 -------------------------------------------------------------------------------------------
20329 BEGIN
20330 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20331 (g_array_event(p_event_id).array_value_num('header_index'));
20332 IF l_acc_rev_flag IS NULL THEN
20333 l_acc_rev_flag := 'N';
20334 END IF;
20335 EXCEPTION
20336 WHEN OTHERS THEN
20337 l_acc_rev_flag := 'N';
20338 END;
20339 --
20340 IF (l_acc_rev_flag = 'Y') THEN
20341
20342 -- 4645092 ------------------------------------------------------------------------------
20343 -- To allow MPA report to determine if it should generate report process
20344 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20345 ------------------------------------------------------------------------------------------
20346
20347 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20348 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20349 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20350 -- call ADRs
20351 -- Bug 4922099
20352 --
20353 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20354 (NVL(l_actual_upg_option, 'N') = 'O') OR
20355 (NVL(l_enc_upg_option, 'N') = 'O')
20356 )
20357 THEN
20358 NULL;
20359 --
20360 --
20361
20362 --
20363 --
20364 END IF;
20365
20366 --
20367 -- Update the line information that should be overwritten
20368 --
20369 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20370 p_header_num => 1);
20371 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20372
20373 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20374
20375 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20376 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20377 END IF;
20378
20379 --
20380 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20381 --
20382 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20383 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20384 ELSE
20385 ---------------------------------------------------------------------------------------------------
20386 -- 4262811a Switch Sign
20387 ---------------------------------------------------------------------------------------------------
20388 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20389 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20391 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20393 -- 5132302
20394 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20396
20397 END IF;
20398
20399 -- 4955764
20400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20402
20403
20404 XLA_AE_LINES_PKG.ValidateCurrentLine;
20405 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20406
20407 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20408 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20409 ,p_balance_type_code => l_balance_type_code);
20410
20411 END IF;
20412
20413 -----------------------------------------------------------------------------------------
20414 -- 4262811 Multiperiod Accounting
20415 -----------------------------------------------------------------------------------------
20416 -- No MPA option is assigned.
20417
20418
20419 END IF;
20420 END IF;
20421 --
20422
20423 --
20424 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20425 trace
20426 (p_msg => 'END of AcctLineType_39'
20427 ,p_level => C_LEVEL_PROCEDURE
20428 ,p_module => l_log_module);
20429 END IF;
20430 --
20431 EXCEPTION
20432 WHEN xla_exceptions_pkg.application_exception THEN
20433 RAISE;
20434 WHEN OTHERS THEN
20435 xla_exceptions_pkg.raise_message
20436 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_39');
20437 END AcctLineType_39;
20438 --
20439
20440 ---------------------------------------
20441 --
20442 -- PRIVATE FUNCTION
20443 -- AcctLineType_40
20444 --
20445 ---------------------------------------
20446 PROCEDURE AcctLineType_40 (
20447 p_application_id IN NUMBER
20448 ,p_event_id IN NUMBER
20449 ,p_calculate_acctd_flag IN VARCHAR2
20450 ,p_calculate_g_l_flag IN VARCHAR2
20451 ,p_actual_flag IN OUT VARCHAR2
20452 ,p_balance_type_code OUT VARCHAR2
20453 ,p_gain_or_loss_ref OUT VARCHAR2
20454
20455 --Federal Fund Category Description
20456 , p_source_6 IN VARCHAR2
20457 --Accounting Reversal Indicator
20458 , p_source_15 IN VARCHAR2
20459 --Distribution Link Type
20460 , p_source_17 IN VARCHAR2
20461 --Allocation to Main Distribution Identifier
20462 , p_source_19 IN NUMBER
20463 --Invoice Identifier
20464 , p_source_20 IN NUMBER
20465 --Business Flow Accounts Payable Application Identifier
20466 , p_source_21 IN NUMBER
20467 --Business Flow Invoice Distribution Type
20468 , p_source_22 IN VARCHAR2
20469 --Business Flow Invoice Entity Code
20470 , p_source_23 IN VARCHAR2
20471 --Business Flow Invoice Distribution Identifier
20472 , p_source_24 IN NUMBER
20473 --Business Flow Invoice Identifier
20474 , p_source_25 IN NUMBER
20475 --Invoice Distribution Identifier
20476 , p_source_26 IN NUMBER
20477 --Payables Encumbrance Upgrade Credit Account
20478 , p_source_27 IN NUMBER
20479 --Payables Encumbrance Upgrade Credit Amount
20480 , p_source_28 IN NUMBER
20481 --Invoice Currency Code
20482 , p_source_29 IN VARCHAR2
20483 --Payables Encumbrance Upgrade Credit Base Amount
20484 , p_source_30 IN NUMBER
20485 --Payables Encumbrance Upgrade Debit Account
20486 , p_source_31 IN NUMBER
20487 --Payables Encumbrance Upgrade Debit Amount
20488 , p_source_32 IN NUMBER
20489 --Payables Encumbrance Upgrade Debit Base Amount
20490 , p_source_33 IN NUMBER
20491 --Payables Encumbrance Upgrade Option
20492 , p_source_34 IN VARCHAR2
20493 --Deferred Accounting End Date
20494 , p_source_39 IN DATE
20495 --Deferred Accounting Option
20496 , p_source_40 IN VARCHAR2
20497 --Deferred Accounting Start Date
20498 , p_source_41 IN DATE
20499 --Override Accounted Amount Indicator
20500 , p_source_42 IN VARCHAR2
20501 , p_source_42_meaning IN VARCHAR2
20502 --Third Party Type
20503 , p_source_45 IN VARCHAR2
20504 --Parent Reversal Identifier
20505 , p_source_46 IN NUMBER
20506 --Invoice Distribution Tax Line Identifier
20507 , p_source_48 IN NUMBER
20508 --Invoice Distribution Tax Distribution Identifier from Tax
20509 , p_source_49 IN NUMBER
20510 --Invoice Distribution Summary Tax Line Identifier
20511 , p_source_50 IN NUMBER
20512 --Payables Upgrade Credit Encumbrance Type Identifier
20513 , p_source_51 IN NUMBER
20514 --Payables Upgrade Debit Encumbrance Type Identifier
20515 , p_source_52 IN NUMBER
20516 --Invoice Distribution Amount
20517 , p_source_55 IN NUMBER
20518 --Invoice Distribution Ledger Amount Before Rounding
20519 , p_source_58 IN NUMBER
20520 )
20521 IS
20522
20523 l_component_type VARCHAR2(80);
20524 l_component_code VARCHAR2(30);
20525 l_component_type_code VARCHAR2(1);
20526 l_component_appl_id INTEGER;
20527 l_amb_context_code VARCHAR2(30);
20528 l_entity_code VARCHAR2(30);
20529 l_event_class_code VARCHAR2(30);
20530 l_ae_header_id NUMBER;
20531 l_event_type_code VARCHAR2(30);
20532 l_line_definition_code VARCHAR2(30);
20533 l_line_definition_owner_code VARCHAR2(1);
20534 --
20535 -- adr variables
20536 l_segment VARCHAR2(30);
20537 l_ccid NUMBER;
20538 l_adr_transaction_coa_id NUMBER;
20539 l_adr_accounting_coa_id NUMBER;
20540 l_adr_flexfield_segment_code VARCHAR2(30);
20541 l_adr_flex_value_set_id NUMBER;
20542 l_adr_value_type_code VARCHAR2(30);
20543 l_adr_value_combination_id NUMBER;
20544 l_adr_value_segment_code VARCHAR2(30);
20545
20546 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20547 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20548 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20549 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20550
20551 -- 4262811 Variables ------------------------------------------------------------------------------------------
20552 l_entered_amt_idx NUMBER;
20553 l_accted_amt_idx NUMBER;
20554 l_acc_rev_flag VARCHAR2(1);
20555 l_accrual_line_num NUMBER;
20556 l_tmp_amt NUMBER;
20557 l_acc_rev_natural_side_code VARCHAR2(1);
20558
20559 l_num_entries NUMBER;
20560 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20561 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20562 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20563 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20564 l_recog_line_1 NUMBER;
20565 l_recog_line_2 NUMBER;
20566
20567 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20568 l_bflow_applied_to_amt NUMBER; -- 5132302
20569 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20570
20571 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20572
20573 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20574 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20575
20576 ---------------------------------------------------------------------------------------------------------------
20577
20578
20579 --
20580 -- bulk performance
20581 --
20582 l_balance_type_code VARCHAR2(1);
20583 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20584 l_log_module VARCHAR2(240);
20585
20586 --
20587 -- Upgrade strategy
20588 --
20589 l_actual_upg_option VARCHAR2(1);
20590 l_enc_upg_option VARCHAR2(1);
20591
20592 --
20593 BEGIN
20594 --
20595 IF g_log_enabled THEN
20596 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
20597 END IF;
20598 --
20599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20600
20601 trace
20602 (p_msg => 'BEGIN of AcctLineType_40'
20603 ,p_level => C_LEVEL_PROCEDURE
20604 ,p_module => l_log_module);
20605
20606 END IF;
20607 --
20608 l_component_type := 'AMB_JLT';
20609 l_component_code := 'FV_AP_DM_REV_DIRECT_FUND_DR';
20610 l_component_type_code := 'S';
20611 l_component_appl_id := 200;
20612 l_amb_context_code := 'DEFAULT';
20613 l_entity_code := 'AP_INVOICES';
20614 l_event_class_code := 'DEBIT MEMOS';
20615 l_event_type_code := 'DEBIT MEMOS_ALL';
20616 l_line_definition_owner_code := 'S';
20617 l_line_definition_code := 'FV_AP_ACCRUAL_DEBITMEMOS_ALL';
20618 --
20619 l_balance_type_code := 'A';
20620 l_segment := NULL;
20621 l_ccid := NULL;
20622 l_adr_transaction_coa_id := NULL;
20623 l_adr_accounting_coa_id := NULL;
20624 l_adr_flexfield_segment_code := NULL;
20625 l_adr_flex_value_set_id := NULL;
20626 l_adr_value_type_code := NULL;
20627 l_adr_value_combination_id := NULL;
20628 l_adr_value_segment_code := NULL;
20629
20630 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20631 l_bflow_class_code := 'FV_DIRECT_FUND_CR'; -- 4219869 Business Flow
20632 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
20633 l_budgetary_control_flag := 'Y';
20634
20635 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20636 l_bflow_applied_to_amt := NULL; -- 5132302
20637 l_entered_amt_idx := NULL; -- 4262811
20638 l_accted_amt_idx := NULL; -- 4262811
20639 l_acc_rev_flag := NULL; -- 4262811
20640 l_accrual_line_num := NULL; -- 4262811
20641 l_tmp_amt := NULL; -- 4262811
20642 --
20643
20644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20645 l_balance_type_code <> 'B' THEN
20646 IF NVL(p_source_6,'
20647 ') = 'Direct' AND
20648 NVL(
20649 xla_ae_sources_pkg.GetSystemSourceChar(
20650 p_source_code => 'XLA_EVENT_TYPE_CODE'
20651 , p_source_type_code => 'Y'
20652 , p_source_application_id => 602
20653 ),'
20654 ') = 'DEBIT MEMO CANCELLED'
20655 THEN
20656
20657 --
20658 XLA_AE_LINES_PKG.SetNewLine;
20659
20660 p_balance_type_code := l_balance_type_code;
20661 -- set the flag so later we will know whether the gain loss line needs to be created
20662
20663 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20664 p_actual_flag :='A';
20665 END IF;
20666
20667 --
20668 -- bulk performance
20669 --
20670 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20671 p_header_num => 0); -- 4262811
20672 --
20673 -- set accounting line options
20674 --
20675 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20676 p_natural_side_code => 'C'
20677 , p_gain_or_loss_flag => 'N'
20678 , p_gl_transfer_mode_code => 'S'
20679 , p_acct_entry_type_code => 'A'
20680 , p_switch_side_flag => 'N'
20681 , p_merge_duplicate_code => 'N'
20682 );
20683 --
20684 l_acc_rev_natural_side_code := 'D'; -- 4262811
20685 --
20686 --
20687 -- set accounting line type info
20688 --
20689 xla_ae_lines_pkg.SetAcctLineType
20690 (p_component_type => l_component_type
20691 ,p_event_type_code => l_event_type_code
20692 ,p_line_definition_owner_code => l_line_definition_owner_code
20693 ,p_line_definition_code => l_line_definition_code
20694 ,p_accounting_line_code => l_component_code
20695 ,p_accounting_line_type_code => l_component_type_code
20696 ,p_accounting_line_appl_id => l_component_appl_id
20697 ,p_amb_context_code => l_amb_context_code
20698 ,p_entity_code => l_entity_code
20699 ,p_event_class_code => l_event_class_code);
20700 --
20701 -- set accounting class
20702 --
20703 xla_ae_lines_pkg.SetAcctClass(
20704 p_accounting_class_code => 'ACCOUNTSPAYABLE'
20705 , p_ae_header_id => l_ae_header_id
20706 );
20707
20708 --
20709 -- set rounding class
20710 --
20711 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20712 'ACCOUNTSPAYABLE';
20713
20714 --
20715 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20716 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20717 --
20718 -- bulk performance
20719 --
20720 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20721
20722 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20723 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20724
20725 -- 4955764
20726 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20727 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20728
20729 -- 4458381 Public Sector Enh
20730
20731 --
20732 -- set accounting attributes for the line type
20733 --
20734 l_entered_amt_idx := 23;
20735 l_accted_amt_idx := 25;
20736 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20737 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20738 l_rec_acct_attrs.array_char_value(1) := p_source_15;
20739 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20740 l_rec_acct_attrs.array_num_value(2) :=
20741 xla_ae_sources_pkg.GetSystemSourceNum(
20742 p_source_code => 'XLA_EVENT_APPL_ID'
20743 , p_source_type_code => 'Y'
20744 , p_source_application_id => 602
20745 );
20746 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20747 l_rec_acct_attrs.array_char_value(3) := p_source_17;
20748 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20749 l_rec_acct_attrs.array_char_value(4) :=
20750 xla_ae_sources_pkg.GetSystemSourceChar(
20751 p_source_code => 'XLA_ENTITY_CODE'
20752 , p_source_type_code => 'Y'
20753 , p_source_application_id => 602
20754 );
20755 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20756 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
20757 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20758 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
20759 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
20760 l_rec_acct_attrs.array_num_value(7) := p_source_21;
20761 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20762 l_rec_acct_attrs.array_char_value(8) := p_source_22;
20763 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
20764 l_rec_acct_attrs.array_char_value(9) := p_source_23;
20765 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
20766 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
20767 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20768 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
20769 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
20770 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
20771 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
20772 l_rec_acct_attrs.array_char_value(13) := p_source_17;
20773 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
20774 l_rec_acct_attrs.array_num_value(14) := p_source_27;
20775 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
20776 l_rec_acct_attrs.array_num_value(15) := p_source_28;
20777 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
20778 l_rec_acct_attrs.array_char_value(16) := p_source_29;
20779 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
20780 l_rec_acct_attrs.array_num_value(17) := p_source_30;
20781 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
20782 l_rec_acct_attrs.array_num_value(18) := p_source_31;
20783 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
20784 l_rec_acct_attrs.array_num_value(19) := p_source_32;
20785 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
20786 l_rec_acct_attrs.array_char_value(20) := p_source_29;
20787 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
20788 l_rec_acct_attrs.array_num_value(21) := p_source_33;
20789 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
20790 l_rec_acct_attrs.array_char_value(22) := p_source_34;
20791 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
20792 l_rec_acct_attrs.array_num_value(23) := p_source_55;
20793 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
20794 l_rec_acct_attrs.array_char_value(24) := p_source_29;
20795 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
20796 l_rec_acct_attrs.array_num_value(25) := p_source_58;
20797 l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
20798 l_rec_acct_attrs.array_date_value(26) := p_source_39;
20799 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
20800 l_rec_acct_attrs.array_char_value(27) := p_source_40;
20801 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
20802 l_rec_acct_attrs.array_date_value(28) := p_source_41;
20803 l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
20804 l_rec_acct_attrs.array_char_value(29) := p_source_42;
20805 l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
20806 l_rec_acct_attrs.array_char_value(30) := p_source_45;
20807 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
20808 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_46);
20809 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
20810 l_rec_acct_attrs.array_char_value(32) := p_source_17;
20811 l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
20812 l_rec_acct_attrs.array_num_value(33) := p_source_48;
20813 l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
20814 l_rec_acct_attrs.array_num_value(34) := p_source_49;
20815 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
20816 l_rec_acct_attrs.array_num_value(35) := p_source_50;
20817 l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
20818 l_rec_acct_attrs.array_num_value(36) := p_source_51;
20819 l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
20820 l_rec_acct_attrs.array_num_value(37) := p_source_52;
20821
20822 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20823 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20824
20825 ---------------------------------------------------------------------------------------------------------------
20826 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20827 ---------------------------------------------------------------------------------------------------------------
20828 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20829
20830 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20831 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20832
20833 IF xla_accounting_cache_pkg.GetValueChar
20834 (p_source_code => 'LEDGER_CATEGORY_CODE'
20835 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20836 AND l_bflow_method_code = 'PRIOR_ENTRY'
20837 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20838 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20839 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20840 )
20841 THEN
20842 xla_ae_lines_pkg.BflowUpgEntry
20843 (p_business_method_code => l_bflow_method_code
20844 ,p_business_class_code => l_bflow_class_code
20845 ,p_balance_type => l_balance_type_code);
20846 ELSE
20847 NULL;
20848 XLA_AE_LINES_PKG.business_flow_validation(
20849 p_business_method_code => l_bflow_method_code
20850 ,p_business_class_code => l_bflow_class_code
20851 ,p_inherit_description_flag => l_inherit_desc_flag);
20852 END IF;
20853
20854 --
20855 -- call analytical criteria
20856 --
20857 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20858 --
20859 -- call description
20860 --
20861 -- No description or it is inherited.
20862 --
20863 -- call ADRs
20864 -- Bug 4922099
20865 --
20866 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20867 (NVL(l_actual_upg_option, 'N') = 'O') OR
20868 (NVL(l_enc_upg_option, 'N') = 'O')
20869 )
20870 THEN
20871 NULL;
20872 --
20873 --
20874
20875 --
20876 --
20877 END IF;
20878 --
20879 -- Bug 4922099
20880 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20881 (NVL(l_enc_upg_option, 'N') = 'O')
20882 ) AND
20883 (l_bflow_method_code = 'PRIOR_ENTRY')
20884 )
20885 THEN
20886 IF
20887 --
20888 1 = 1
20889 --
20890 THEN
20891 xla_accounting_err_pkg.build_message
20892 (p_appli_s_name => 'XLA'
20893 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20894 ,p_token_1 => 'LINE_NUMBER'
20895 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20896 ,p_token_2 => 'LINE_TYPE_NAME'
20897 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20898 l_component_type
20899 ,l_component_code
20900 ,l_component_type_code
20901 ,l_component_appl_id
20902 ,l_amb_context_code
20903 ,l_entity_code
20904 ,l_event_class_code
20905 )
20906 ,p_token_3 => 'OWNER'
20907 ,p_value_3 => xla_lookups_pkg.get_meaning(
20908 p_lookup_type => 'XLA_OWNER_TYPE'
20909 ,p_lookup_code => l_component_type_code
20910 )
20911 ,p_token_4 => 'PRODUCT_NAME'
20912 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20913 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20914 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20915 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20916 ,p_ae_header_id => NULL
20917 );
20918
20919 IF (C_LEVEL_ERROR>= g_log_level) THEN
20920 trace
20921 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20922 ,p_level => C_LEVEL_ERROR
20923 ,p_module => l_log_module);
20924 END IF;
20925 END IF;
20926 END IF;
20927 --
20928 --
20929 ------------------------------------------------------------------------------------------------
20930 -- 4219869 Business Flow
20931 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20932 -- Prior Entry. Currently, the following code is always generated.
20933 ------------------------------------------------------------------------------------------------
20934 -- No ValidateCurrentLine for business flow method of Prior Entry
20935
20936 ------------------------------------------------------------------------------------
20937 -- 4219869 Business Flow
20938 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20939 ------------------------------------------------------------------------------------
20940 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20941
20942 ----------------------------------------------------------------------------------
20943 -- 4219869 Business Flow
20944 -- Update journal entry status -- Need to generate this within IF <condition>
20945 ----------------------------------------------------------------------------------
20946 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20947 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20948 ,p_balance_type_code => l_balance_type_code
20949 );
20950
20951 -------------------------------------------------------------------------------------------
20952 -- 4262811 - Generate the Accrual Reversal lines
20953 -------------------------------------------------------------------------------------------
20954 BEGIN
20955 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20956 (g_array_event(p_event_id).array_value_num('header_index'));
20957 IF l_acc_rev_flag IS NULL THEN
20958 l_acc_rev_flag := 'N';
20959 END IF;
20960 EXCEPTION
20961 WHEN OTHERS THEN
20962 l_acc_rev_flag := 'N';
20963 END;
20964 --
20965 IF (l_acc_rev_flag = 'Y') THEN
20966
20967 -- 4645092 ------------------------------------------------------------------------------
20968 -- To allow MPA report to determine if it should generate report process
20969 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20970 ------------------------------------------------------------------------------------------
20971
20972 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20973 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20974 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20975 -- call ADRs
20976 -- Bug 4922099
20977 --
20978 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20979 (NVL(l_actual_upg_option, 'N') = 'O') OR
20980 (NVL(l_enc_upg_option, 'N') = 'O')
20981 )
20982 THEN
20983 NULL;
20984 --
20985 --
20986
20987 --
20988 --
20989 END IF;
20990
20991 --
20992 -- Update the line information that should be overwritten
20993 --
20994 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20995 p_header_num => 1);
20996 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20997
20998 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20999
21000 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21001 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21002 END IF;
21003
21004 --
21005 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21006 --
21007 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21008 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21009 ELSE
21010 ---------------------------------------------------------------------------------------------------
21011 -- 4262811a Switch Sign
21012 ---------------------------------------------------------------------------------------------------
21013 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21016 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21017 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21018 -- 5132302
21019 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21020 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21021
21022 END IF;
21023
21024 -- 4955764
21025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21027
21028
21029 XLA_AE_LINES_PKG.ValidateCurrentLine;
21030 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21031
21032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21034 ,p_balance_type_code => l_balance_type_code);
21035
21036 END IF;
21037
21038 -----------------------------------------------------------------------------------------
21039 -- 4262811 Multiperiod Accounting
21040 -----------------------------------------------------------------------------------------
21041 -- No MPA option is assigned.
21042
21043
21044 END IF;
21045 END IF;
21046 --
21047
21048 --
21049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21050 trace
21051 (p_msg => 'END of AcctLineType_40'
21052 ,p_level => C_LEVEL_PROCEDURE
21053 ,p_module => l_log_module);
21054 END IF;
21055 --
21056 EXCEPTION
21057 WHEN xla_exceptions_pkg.application_exception THEN
21058 RAISE;
21059 WHEN OTHERS THEN
21060 xla_exceptions_pkg.raise_message
21061 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_40');
21062 END AcctLineType_40;
21063 --
21064
21065 ---------------------------------------
21066 --
21067 -- PRIVATE FUNCTION
21068 -- AcctLineType_41
21069 --
21070 ---------------------------------------
21071 PROCEDURE AcctLineType_41 (
21072 p_application_id IN NUMBER
21073 ,p_event_id IN NUMBER
21074 ,p_calculate_acctd_flag IN VARCHAR2
21075 ,p_calculate_g_l_flag IN VARCHAR2
21076 ,p_actual_flag IN OUT VARCHAR2
21077 ,p_balance_type_code OUT VARCHAR2
21078 ,p_gain_or_loss_ref OUT VARCHAR2
21079
21080 --Invoice Distribution Description
21081 , p_source_1 IN VARCHAR2
21082 --Invoice Distribution Account
21083 , p_source_2 IN NUMBER
21084 --Federal Anticipation
21085 , p_source_3 IN VARCHAR2
21086 --Invoice Distribution Type
21087 , p_source_8 IN VARCHAR2
21088 , p_source_8_meaning IN VARCHAR2
21089 --Federal Prior Year Flag
21090 , p_source_9 IN VARCHAR2
21091 --Accrue on Receipt Option
21092 , p_source_11 IN VARCHAR2
21093 , p_source_11_meaning IN VARCHAR2
21094 --Purchase Order Distribution Identifier
21095 , p_source_12 IN NUMBER
21096 --Invoice Type
21097 , p_source_13 IN VARCHAR2
21098 , p_source_13_meaning IN VARCHAR2
21099 --Federal Adjustment Type
21100 , p_source_14 IN VARCHAR2
21101 --Accounting Reversal Indicator
21102 , p_source_15 IN VARCHAR2
21103 --Distribution Link Type
21104 , p_source_17 IN VARCHAR2
21105 --Allocation to Main Distribution Identifier
21106 , p_source_19 IN NUMBER
21107 --Invoice Identifier
21108 , p_source_20 IN NUMBER
21109 --Business Flow Accounts Payable Application Identifier
21110 , p_source_21 IN NUMBER
21111 --Business Flow Invoice Distribution Type
21112 , p_source_22 IN VARCHAR2
21113 --Business Flow Invoice Entity Code
21114 , p_source_23 IN VARCHAR2
21115 --Business Flow Invoice Distribution Identifier
21116 , p_source_24 IN NUMBER
21117 --Business Flow Invoice Identifier
21118 , p_source_25 IN NUMBER
21119 --Invoice Distribution Identifier
21120 , p_source_26 IN NUMBER
21121 --Payables Encumbrance Upgrade Credit Account
21122 , p_source_27 IN NUMBER
21123 --Payables Encumbrance Upgrade Credit Amount
21124 , p_source_28 IN NUMBER
21125 --Invoice Currency Code
21126 , p_source_29 IN VARCHAR2
21127 --Payables Encumbrance Upgrade Credit Base Amount
21128 , p_source_30 IN NUMBER
21129 --Payables Encumbrance Upgrade Debit Account
21130 , p_source_31 IN NUMBER
21131 --Payables Encumbrance Upgrade Debit Amount
21132 , p_source_32 IN NUMBER
21133 --Payables Encumbrance Upgrade Debit Base Amount
21134 , p_source_33 IN NUMBER
21135 --Payables Encumbrance Upgrade Option
21136 , p_source_34 IN VARCHAR2
21137 --Federal Anticipated Amt
21138 , p_source_35 IN NUMBER
21139 --Invoice Exchange Date
21140 , p_source_36 IN DATE
21141 --Invoice Exchange Rate
21142 , p_source_37 IN NUMBER
21143 --Invoice Exchange Rate Type
21144 , p_source_38 IN VARCHAR2
21145 --Deferred Accounting End Date
21146 , p_source_39 IN DATE
21147 --Deferred Accounting Option
21148 , p_source_40 IN VARCHAR2
21149 --Deferred Accounting Start Date
21150 , p_source_41 IN DATE
21151 --Override Accounted Amount Indicator
21152 , p_source_42 IN VARCHAR2
21153 , p_source_42_meaning IN VARCHAR2
21154 --Invoice Supplier Identifier
21155 , p_source_43 IN NUMBER
21156 --Invoice Supplier Site Identifier
21157 , p_source_44 IN NUMBER
21158 --Third Party Type
21159 , p_source_45 IN VARCHAR2
21160 --Parent Reversal Identifier
21161 , p_source_46 IN NUMBER
21162 --Invoice Distribution Statistical Amount
21163 , p_source_47 IN NUMBER
21164 --Invoice Distribution Tax Line Identifier
21165 , p_source_48 IN NUMBER
21166 --Invoice Distribution Tax Distribution Identifier from Tax
21167 , p_source_49 IN NUMBER
21168 --Invoice Distribution Summary Tax Line Identifier
21169 , p_source_50 IN NUMBER
21170 --Payables Upgrade Credit Encumbrance Type Identifier
21171 , p_source_51 IN NUMBER
21172 --Payables Upgrade Debit Encumbrance Type Identifier
21173 , p_source_52 IN NUMBER
21174 --Invoice Distribution Amount
21175 , p_source_55 IN NUMBER
21176 )
21177 IS
21178
21179 l_component_type VARCHAR2(80);
21180 l_component_code VARCHAR2(30);
21181 l_component_type_code VARCHAR2(1);
21182 l_component_appl_id INTEGER;
21183 l_amb_context_code VARCHAR2(30);
21184 l_entity_code VARCHAR2(30);
21185 l_event_class_code VARCHAR2(30);
21186 l_ae_header_id NUMBER;
21187 l_event_type_code VARCHAR2(30);
21188 l_line_definition_code VARCHAR2(30);
21189 l_line_definition_owner_code VARCHAR2(1);
21190 --
21191 -- adr variables
21192 l_segment VARCHAR2(30);
21193 l_ccid NUMBER;
21194 l_adr_transaction_coa_id NUMBER;
21195 l_adr_accounting_coa_id NUMBER;
21196 l_adr_flexfield_segment_code VARCHAR2(30);
21197 l_adr_flex_value_set_id NUMBER;
21198 l_adr_value_type_code VARCHAR2(30);
21199 l_adr_value_combination_id NUMBER;
21200 l_adr_value_segment_code VARCHAR2(30);
21201
21202 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21203 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21204 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21205 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21206
21207 -- 4262811 Variables ------------------------------------------------------------------------------------------
21208 l_entered_amt_idx NUMBER;
21209 l_accted_amt_idx NUMBER;
21210 l_acc_rev_flag VARCHAR2(1);
21211 l_accrual_line_num NUMBER;
21212 l_tmp_amt NUMBER;
21213 l_acc_rev_natural_side_code VARCHAR2(1);
21214
21215 l_num_entries NUMBER;
21216 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21217 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21218 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21219 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21220 l_recog_line_1 NUMBER;
21221 l_recog_line_2 NUMBER;
21222
21223 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21224 l_bflow_applied_to_amt NUMBER; -- 5132302
21225 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21226
21227 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21228
21229 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21230 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21231
21232 ---------------------------------------------------------------------------------------------------------------
21233
21234
21235 --
21236 -- bulk performance
21237 --
21238 l_balance_type_code VARCHAR2(1);
21239 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21240 l_log_module VARCHAR2(240);
21241
21242 --
21243 -- Upgrade strategy
21244 --
21245 l_actual_upg_option VARCHAR2(1);
21246 l_enc_upg_option VARCHAR2(1);
21247
21248 --
21249 BEGIN
21250 --
21251 IF g_log_enabled THEN
21252 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
21253 END IF;
21254 --
21255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21256
21257 trace
21258 (p_msg => 'BEGIN of AcctLineType_41'
21259 ,p_level => C_LEVEL_PROCEDURE
21260 ,p_module => l_log_module);
21261
21262 END IF;
21263 --
21264 l_component_type := 'AMB_JLT';
21265 l_component_code := 'FV_AP_INV_ DWD_ANPT_PYA_CR';
21266 l_component_type_code := 'S';
21267 l_component_appl_id := 200;
21268 l_amb_context_code := 'DEFAULT';
21269 l_entity_code := 'AP_INVOICES';
21270 l_event_class_code := 'INVOICES';
21271 l_event_type_code := 'INVOICES_ALL';
21272 l_line_definition_owner_code := 'S';
21273 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
21274 --
21275 l_balance_type_code := 'A';
21276 l_segment := NULL;
21277 l_ccid := NULL;
21278 l_adr_transaction_coa_id := NULL;
21279 l_adr_accounting_coa_id := NULL;
21280 l_adr_flexfield_segment_code := NULL;
21281 l_adr_flex_value_set_id := NULL;
21282 l_adr_value_type_code := NULL;
21283 l_adr_value_combination_id := NULL;
21284 l_adr_value_segment_code := NULL;
21285
21286 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21287 l_bflow_class_code := ''; -- 4219869 Business Flow
21288 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21289 l_budgetary_control_flag := 'Y';
21290
21291 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21292 l_bflow_applied_to_amt := NULL; -- 5132302
21293 l_entered_amt_idx := NULL; -- 4262811
21294 l_accted_amt_idx := NULL; -- 4262811
21295 l_acc_rev_flag := NULL; -- 4262811
21296 l_accrual_line_num := NULL; -- 4262811
21297 l_tmp_amt := NULL; -- 4262811
21298 --
21299
21300 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21301 l_balance_type_code <> 'B' THEN
21302 IF ((p_source_12 IS NULL AND
21303 (NVL(p_source_13,'
21304 ') = 'STANDARD' OR
21305 NVL(p_source_13,'
21306 ') = 'MIXED' OR
21307 NVL(p_source_13,'
21308 ') = 'INTEREST' OR
21309 NVL(p_source_13,'
21310 ') = 'EXPENSE REPORT') AND
21311 (NVL(p_source_8,'
21312 ') = 'ITEM' OR
21313 NVL(p_source_8,'
21314 ') = 'ACCRUAL' OR
21315 NVL(p_source_8,'
21316 ') = 'MISCELLANEOUS' OR
21317 NVL(p_source_8,'
21318 ') = 'FREIGHT' OR
21319 NVL(p_source_8,'
21320 ') = 'IPV')
21321 ) OR (p_source_12 IS NOT NULL AND
21322 NVL(p_source_8,'
21323 ') = 'IPV')
21324 ) AND NVL(p_source_9,'
21325 ') = 'Y' AND
21326 NVL(p_source_14,'
21327 ') = 'Downward' AND
21328 (NVL(p_source_3,'
21329 ') = 'Anticipated' OR
21330 NVL(p_source_3,'
21331 ') = 'Partial') AND
21332 NVL(p_source_11,'
21333 ') <> 'Y'
21334 THEN
21335
21336 --
21337 XLA_AE_LINES_PKG.SetNewLine;
21338
21339 p_balance_type_code := l_balance_type_code;
21340 -- set the flag so later we will know whether the gain loss line needs to be created
21341
21342 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21343 p_actual_flag :='A';
21344 END IF;
21345
21346 --
21347 -- bulk performance
21348 --
21349 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21350 p_header_num => 0); -- 4262811
21351 --
21352 -- set accounting line options
21353 --
21354 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21355 p_natural_side_code => 'C'
21356 , p_gain_or_loss_flag => 'N'
21357 , p_gl_transfer_mode_code => 'S'
21358 , p_acct_entry_type_code => 'A'
21359 , p_switch_side_flag => 'N'
21360 , p_merge_duplicate_code => 'N'
21361 );
21362 --
21363 l_acc_rev_natural_side_code := 'D'; -- 4262811
21364 --
21365 --
21366 -- set accounting line type info
21367 --
21368 xla_ae_lines_pkg.SetAcctLineType
21369 (p_component_type => l_component_type
21370 ,p_event_type_code => l_event_type_code
21371 ,p_line_definition_owner_code => l_line_definition_owner_code
21372 ,p_line_definition_code => l_line_definition_code
21373 ,p_accounting_line_code => l_component_code
21374 ,p_accounting_line_type_code => l_component_type_code
21375 ,p_accounting_line_appl_id => l_component_appl_id
21376 ,p_amb_context_code => l_amb_context_code
21377 ,p_entity_code => l_entity_code
21378 ,p_event_class_code => l_event_class_code);
21379 --
21380 -- set accounting class
21381 --
21382 xla_ae_lines_pkg.SetAcctClass(
21383 p_accounting_class_code => 'ACCOUNTSPAYABLE'
21384 , p_ae_header_id => l_ae_header_id
21385 );
21386
21387 --
21388 -- set rounding class
21389 --
21390 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21391 'ACCOUNTSPAYABLE';
21392
21393 --
21394 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21395 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21396 --
21397 -- bulk performance
21398 --
21399 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21400
21401 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21402 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21403
21404 -- 4955764
21405 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21406 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21407
21408 -- 4458381 Public Sector Enh
21409
21410 --
21411 -- set accounting attributes for the line type
21412 --
21413 l_entered_amt_idx := 24;
21414 l_accted_amt_idx := 29;
21415 l_bflow_applied_to_amt_idx := 7; -- 5132302
21416 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21417 l_rec_acct_attrs.array_char_value(1) := p_source_15;
21418 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21419 l_rec_acct_attrs.array_num_value(2) :=
21420 xla_ae_sources_pkg.GetSystemSourceNum(
21421 p_source_code => 'XLA_EVENT_APPL_ID'
21422 , p_source_type_code => 'Y'
21423 , p_source_application_id => 602
21424 );
21425 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21426 l_rec_acct_attrs.array_char_value(3) := p_source_17;
21427 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21428 l_rec_acct_attrs.array_char_value(4) :=
21429 xla_ae_sources_pkg.GetSystemSourceChar(
21430 p_source_code => 'XLA_ENTITY_CODE'
21431 , p_source_type_code => 'Y'
21432 , p_source_application_id => 602
21433 );
21434 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21435 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
21436 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21437 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
21438 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
21439 l_rec_acct_attrs.array_num_value(7) := p_source_55;
21440 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
21441 l_rec_acct_attrs.array_num_value(8) := p_source_21;
21442 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21443 l_rec_acct_attrs.array_char_value(9) := p_source_22;
21444 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
21445 l_rec_acct_attrs.array_char_value(10) := p_source_23;
21446 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
21447 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
21448 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21449 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
21450 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
21451 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
21452 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
21453 l_rec_acct_attrs.array_char_value(14) := p_source_17;
21454 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
21455 l_rec_acct_attrs.array_num_value(15) := p_source_27;
21456 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
21457 l_rec_acct_attrs.array_num_value(16) := p_source_28;
21458 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
21459 l_rec_acct_attrs.array_char_value(17) := p_source_29;
21460 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
21461 l_rec_acct_attrs.array_num_value(18) := p_source_30;
21462 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
21463 l_rec_acct_attrs.array_num_value(19) := p_source_31;
21464 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
21465 l_rec_acct_attrs.array_num_value(20) := p_source_32;
21466 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
21467 l_rec_acct_attrs.array_char_value(21) := p_source_29;
21468 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
21469 l_rec_acct_attrs.array_num_value(22) := p_source_33;
21470 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
21471 l_rec_acct_attrs.array_char_value(23) := p_source_34;
21472 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
21473 l_rec_acct_attrs.array_num_value(24) := p_source_35;
21474 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
21475 l_rec_acct_attrs.array_char_value(25) := p_source_29;
21476 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
21477 l_rec_acct_attrs.array_date_value(26) := p_source_36;
21478 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
21479 l_rec_acct_attrs.array_num_value(27) := p_source_37;
21480 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
21481 l_rec_acct_attrs.array_char_value(28) := p_source_38;
21482 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
21483 l_rec_acct_attrs.array_num_value(29) := p_source_35;
21484 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
21485 l_rec_acct_attrs.array_date_value(30) := p_source_39;
21486 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
21487 l_rec_acct_attrs.array_char_value(31) := p_source_40;
21488 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
21489 l_rec_acct_attrs.array_date_value(32) := p_source_41;
21490 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
21491 l_rec_acct_attrs.array_char_value(33) := p_source_42;
21492 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
21493 l_rec_acct_attrs.array_num_value(34) := p_source_43;
21494 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
21495 l_rec_acct_attrs.array_num_value(35) := p_source_44;
21496 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
21497 l_rec_acct_attrs.array_char_value(36) := p_source_45;
21498 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
21499 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
21500 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
21501 l_rec_acct_attrs.array_char_value(38) := p_source_17;
21502 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
21503 l_rec_acct_attrs.array_num_value(39) := p_source_47;
21504 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
21505 l_rec_acct_attrs.array_num_value(40) := p_source_48;
21506 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
21507 l_rec_acct_attrs.array_num_value(41) := p_source_49;
21508 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
21509 l_rec_acct_attrs.array_num_value(42) := p_source_50;
21510 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
21511 l_rec_acct_attrs.array_num_value(43) := p_source_51;
21512 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
21513 l_rec_acct_attrs.array_num_value(44) := p_source_52;
21514
21515 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21516 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21517
21518 ---------------------------------------------------------------------------------------------------------------
21519 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21520 ---------------------------------------------------------------------------------------------------------------
21521 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21522
21523 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21524 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21525
21526 IF xla_accounting_cache_pkg.GetValueChar
21527 (p_source_code => 'LEDGER_CATEGORY_CODE'
21528 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21529 AND l_bflow_method_code = 'PRIOR_ENTRY'
21530 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21531 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21532 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21533 )
21534 THEN
21535 xla_ae_lines_pkg.BflowUpgEntry
21536 (p_business_method_code => l_bflow_method_code
21537 ,p_business_class_code => l_bflow_class_code
21538 ,p_balance_type => l_balance_type_code);
21539 ELSE
21540 NULL;
21541 -- No business flow processing for business flow method of NONE.
21542 END IF;
21543
21544 --
21545 -- call analytical criteria
21546 --
21547
21548 --
21549 -- call description
21550 --
21551
21552 xla_ae_lines_pkg.SetLineDescription(
21553 p_ae_header_id => l_ae_header_id
21554 ,p_description => Description_2 (
21555 p_application_id => p_application_id
21556 , p_ae_header_id => l_ae_header_id
21557 , p_source_1 => p_source_1
21558 )
21559 );
21560
21561
21562 --
21563 -- call ADRs
21564 -- Bug 4922099
21565 --
21566 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21567 (NVL(l_actual_upg_option, 'N') = 'O') OR
21568 (NVL(l_enc_upg_option, 'N') = 'O')
21569 )
21570 THEN
21571 NULL;
21572 --
21573 --
21574
21575 l_ccid := AcctDerRule_3(
21576 p_application_id => p_application_id
21577 , p_ae_header_id => l_ae_header_id
21578 , p_source_2 => p_source_2
21579 , x_transaction_coa_id => l_adr_transaction_coa_id
21580 , x_accounting_coa_id => l_adr_accounting_coa_id
21581 , x_value_type_code => l_adr_value_type_code
21582 , p_side => 'NA'
21583 );
21584
21585 xla_ae_lines_pkg.set_ccid(
21586 p_code_combination_id => l_ccid
21587 , p_value_type_code => l_adr_value_type_code
21588 , p_transaction_coa_id => l_adr_transaction_coa_id
21589 , p_accounting_coa_id => l_adr_accounting_coa_id
21590 , p_adr_code => 'AP_INVOICE_DIST'
21591 , p_adr_type_code => 'S'
21592 , p_component_type => l_component_type
21593 , p_component_code => l_component_code
21594 , p_component_type_code => l_component_type_code
21595 , p_component_appl_id => l_component_appl_id
21596 , p_amb_context_code => l_amb_context_code
21597 , p_side => 'NA'
21598 );
21599
21600
21601 l_segment := AcctDerRule_5(
21602 p_application_id => p_application_id
21603 , p_ae_header_id => l_ae_header_id
21604 , p_source_3 => p_source_3
21605 , x_transaction_coa_id => l_adr_transaction_coa_id
21606 , x_accounting_coa_id => l_adr_accounting_coa_id
21607 , x_flexfield_segment_code => l_adr_flexfield_segment_code
21608 , x_flex_value_set_id => l_adr_flex_value_set_id
21609 , x_value_type_code => l_adr_value_type_code
21610 , x_value_combination_id => l_adr_value_combination_id
21611 , x_value_segment_code => l_adr_value_segment_code
21612 , p_side => 'NA'
21613 , p_override_seg_flag => 'Y'
21614 );
21615
21616 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
21617
21618 xla_ae_lines_pkg.set_segment(
21619 p_to_segment_code => 'GL_ACCOUNT'
21620 , p_segment_value => l_segment
21621 , p_from_segment_code => l_adr_value_segment_code
21622 , p_from_combination_id => l_adr_value_combination_id
21623 , p_value_type_code => l_adr_value_type_code
21624 , p_transaction_coa_id => l_adr_transaction_coa_id
21625 , p_accounting_coa_id => l_adr_accounting_coa_id
21626 , p_flexfield_segment_code => l_adr_flexfield_segment_code
21627 , p_flex_value_set_id => l_adr_flex_value_set_id
21628 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
21629 , p_adr_type_code => 'S'
21630 , p_component_type => l_component_type
21631 , p_component_code => l_component_code
21632 , p_component_type_code => l_component_type_code
21633 , p_component_appl_id => l_component_appl_id
21634 , p_amb_context_code => l_amb_context_code
21635 , p_entity_code => 'AP_INVOICES'
21636 , p_event_class_code => 'INVOICES'
21637 , p_side => 'NA'
21638 );
21639
21640 END IF;
21641
21642 --
21643 --
21644 END IF;
21645 --
21646 -- Bug 4922099
21647 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21648 (NVL(l_enc_upg_option, 'N') = 'O')
21649 ) AND
21650 (l_bflow_method_code = 'PRIOR_ENTRY')
21651 )
21652 THEN
21653 IF
21654 --
21655 1 = 2
21656 --
21657 THEN
21658 xla_accounting_err_pkg.build_message
21659 (p_appli_s_name => 'XLA'
21660 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21661 ,p_token_1 => 'LINE_NUMBER'
21662 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21663 ,p_token_2 => 'LINE_TYPE_NAME'
21664 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21665 l_component_type
21666 ,l_component_code
21667 ,l_component_type_code
21668 ,l_component_appl_id
21669 ,l_amb_context_code
21670 ,l_entity_code
21671 ,l_event_class_code
21672 )
21673 ,p_token_3 => 'OWNER'
21674 ,p_value_3 => xla_lookups_pkg.get_meaning(
21675 p_lookup_type => 'XLA_OWNER_TYPE'
21676 ,p_lookup_code => l_component_type_code
21677 )
21678 ,p_token_4 => 'PRODUCT_NAME'
21679 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21680 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21681 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21682 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21683 ,p_ae_header_id => NULL
21684 );
21685
21686 IF (C_LEVEL_ERROR>= g_log_level) THEN
21687 trace
21688 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21689 ,p_level => C_LEVEL_ERROR
21690 ,p_module => l_log_module);
21691 END IF;
21692 END IF;
21693 END IF;
21694 --
21695 --
21696 ------------------------------------------------------------------------------------------------
21697 -- 4219869 Business Flow
21698 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21699 -- Prior Entry. Currently, the following code is always generated.
21700 ------------------------------------------------------------------------------------------------
21701 XLA_AE_LINES_PKG.ValidateCurrentLine;
21702
21703 ------------------------------------------------------------------------------------
21704 -- 4219869 Business Flow
21705 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21706 ------------------------------------------------------------------------------------
21707 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21708
21709 ----------------------------------------------------------------------------------
21710 -- 4219869 Business Flow
21711 -- Update journal entry status -- Need to generate this within IF <condition>
21712 ----------------------------------------------------------------------------------
21713 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21714 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21715 ,p_balance_type_code => l_balance_type_code
21716 );
21717
21718 -------------------------------------------------------------------------------------------
21719 -- 4262811 - Generate the Accrual Reversal lines
21720 -------------------------------------------------------------------------------------------
21721 BEGIN
21722 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21723 (g_array_event(p_event_id).array_value_num('header_index'));
21724 IF l_acc_rev_flag IS NULL THEN
21725 l_acc_rev_flag := 'N';
21726 END IF;
21727 EXCEPTION
21728 WHEN OTHERS THEN
21729 l_acc_rev_flag := 'N';
21730 END;
21731 --
21732 IF (l_acc_rev_flag = 'Y') THEN
21733
21734 -- 4645092 ------------------------------------------------------------------------------
21735 -- To allow MPA report to determine if it should generate report process
21736 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21737 ------------------------------------------------------------------------------------------
21738
21739 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21740 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21741 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21742 -- call ADRs
21743 -- Bug 4922099
21744 --
21745 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21746 (NVL(l_actual_upg_option, 'N') = 'O') OR
21747 (NVL(l_enc_upg_option, 'N') = 'O')
21748 )
21749 THEN
21750 NULL;
21751 --
21752 --
21753
21754 l_ccid := AcctDerRule_3(
21755 p_application_id => p_application_id
21756 , p_ae_header_id => l_ae_header_id
21757 , p_source_2 => p_source_2
21758 , x_transaction_coa_id => l_adr_transaction_coa_id
21759 , x_accounting_coa_id => l_adr_accounting_coa_id
21760 , x_value_type_code => l_adr_value_type_code
21761 , p_side => 'NA'
21762 );
21763
21764 xla_ae_lines_pkg.set_ccid(
21765 p_code_combination_id => l_ccid
21766 , p_value_type_code => l_adr_value_type_code
21767 , p_transaction_coa_id => l_adr_transaction_coa_id
21768 , p_accounting_coa_id => l_adr_accounting_coa_id
21769 , p_adr_code => 'AP_INVOICE_DIST'
21770 , p_adr_type_code => 'S'
21771 , p_component_type => l_component_type
21772 , p_component_code => l_component_code
21773 , p_component_type_code => l_component_type_code
21774 , p_component_appl_id => l_component_appl_id
21775 , p_amb_context_code => l_amb_context_code
21776 , p_side => 'NA'
21777 );
21778
21779
21780 l_segment := AcctDerRule_5(
21781 p_application_id => p_application_id
21782 , p_ae_header_id => l_ae_header_id
21783 , p_source_3 => p_source_3
21784 , x_transaction_coa_id => l_adr_transaction_coa_id
21785 , x_accounting_coa_id => l_adr_accounting_coa_id
21786 , x_flexfield_segment_code => l_adr_flexfield_segment_code
21787 , x_flex_value_set_id => l_adr_flex_value_set_id
21788 , x_value_type_code => l_adr_value_type_code
21789 , x_value_combination_id => l_adr_value_combination_id
21790 , x_value_segment_code => l_adr_value_segment_code
21791 , p_side => 'NA'
21792 , p_override_seg_flag => 'Y'
21793 );
21794
21795 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
21796
21797 xla_ae_lines_pkg.set_segment(
21798 p_to_segment_code => 'GL_ACCOUNT'
21799 , p_segment_value => l_segment
21800 , p_from_segment_code => l_adr_value_segment_code
21801 , p_from_combination_id => l_adr_value_combination_id
21802 , p_value_type_code => l_adr_value_type_code
21803 , p_transaction_coa_id => l_adr_transaction_coa_id
21804 , p_accounting_coa_id => l_adr_accounting_coa_id
21805 , p_flexfield_segment_code => l_adr_flexfield_segment_code
21806 , p_flex_value_set_id => l_adr_flex_value_set_id
21807 , p_adr_code => 'FV_445002_DWD_PYA_ANCPT_ACCT'
21808 , p_adr_type_code => 'S'
21809 , p_component_type => l_component_type
21810 , p_component_code => l_component_code
21811 , p_component_type_code => l_component_type_code
21812 , p_component_appl_id => l_component_appl_id
21813 , p_amb_context_code => l_amb_context_code
21814 , p_entity_code => 'AP_INVOICES'
21815 , p_event_class_code => 'INVOICES'
21816 , p_side => 'NA'
21817 );
21818
21819 END IF;
21820
21821 --
21822 --
21823 END IF;
21824
21825 --
21826 -- Update the line information that should be overwritten
21827 --
21828 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21829 p_header_num => 1);
21830 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21831
21832 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21833
21834 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21835 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21836 END IF;
21837
21838 --
21839 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21840 --
21841 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21842 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21843 ELSE
21844 ---------------------------------------------------------------------------------------------------
21845 -- 4262811a Switch Sign
21846 ---------------------------------------------------------------------------------------------------
21847 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21848 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21849 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21850 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21851 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21852 -- 5132302
21853 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21854 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21855
21856 END IF;
21857
21858 -- 4955764
21859 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21860 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21861
21862
21863 XLA_AE_LINES_PKG.ValidateCurrentLine;
21864 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21865
21866 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21867 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21868 ,p_balance_type_code => l_balance_type_code);
21869
21870 END IF;
21871
21872 -----------------------------------------------------------------------------------------
21873 -- 4262811 Multiperiod Accounting
21874 -----------------------------------------------------------------------------------------
21875 -- No MPA option is assigned.
21876
21877
21878 END IF;
21879 END IF;
21880 --
21881
21882 --
21883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21884 trace
21885 (p_msg => 'END of AcctLineType_41'
21886 ,p_level => C_LEVEL_PROCEDURE
21887 ,p_module => l_log_module);
21888 END IF;
21889 --
21890 EXCEPTION
21891 WHEN xla_exceptions_pkg.application_exception THEN
21892 RAISE;
21893 WHEN OTHERS THEN
21894 xla_exceptions_pkg.raise_message
21895 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_41');
21896 END AcctLineType_41;
21897 --
21898
21899 ---------------------------------------
21900 --
21901 -- PRIVATE FUNCTION
21902 -- AcctLineType_42
21903 --
21904 ---------------------------------------
21905 PROCEDURE AcctLineType_42 (
21906 p_application_id IN NUMBER
21907 ,p_event_id IN NUMBER
21908 ,p_calculate_acctd_flag IN VARCHAR2
21909 ,p_calculate_g_l_flag IN VARCHAR2
21910 ,p_actual_flag IN OUT VARCHAR2
21911 ,p_balance_type_code OUT VARCHAR2
21912 ,p_gain_or_loss_ref OUT VARCHAR2
21913
21914 --Invoice Distribution Description
21915 , p_source_1 IN VARCHAR2
21916 --Invoice Distribution Account
21917 , p_source_2 IN NUMBER
21918 --Invoice Distribution Type
21919 , p_source_8 IN VARCHAR2
21920 , p_source_8_meaning IN VARCHAR2
21921 --Federal Prior Year Flag
21922 , p_source_9 IN VARCHAR2
21923 --Accrue on Receipt Option
21924 , p_source_11 IN VARCHAR2
21925 , p_source_11_meaning IN VARCHAR2
21926 --Purchase Order Distribution Identifier
21927 , p_source_12 IN NUMBER
21928 --Invoice Type
21929 , p_source_13 IN VARCHAR2
21930 , p_source_13_meaning IN VARCHAR2
21931 --Federal Adjustment Type
21932 , p_source_14 IN VARCHAR2
21933 --Accounting Reversal Indicator
21934 , p_source_15 IN VARCHAR2
21935 --Distribution Link Type
21936 , p_source_17 IN VARCHAR2
21937 --Allocation to Main Distribution Identifier
21938 , p_source_19 IN NUMBER
21939 --Invoice Identifier
21940 , p_source_20 IN NUMBER
21941 --Business Flow Accounts Payable Application Identifier
21942 , p_source_21 IN NUMBER
21943 --Business Flow Invoice Distribution Type
21944 , p_source_22 IN VARCHAR2
21945 --Business Flow Invoice Entity Code
21946 , p_source_23 IN VARCHAR2
21947 --Business Flow Invoice Distribution Identifier
21948 , p_source_24 IN NUMBER
21949 --Business Flow Invoice Identifier
21950 , p_source_25 IN NUMBER
21951 --Invoice Distribution Identifier
21952 , p_source_26 IN NUMBER
21953 --Payables Encumbrance Upgrade Credit Account
21954 , p_source_27 IN NUMBER
21955 --Payables Encumbrance Upgrade Credit Amount
21956 , p_source_28 IN NUMBER
21957 --Invoice Currency Code
21958 , p_source_29 IN VARCHAR2
21959 --Payables Encumbrance Upgrade Credit Base Amount
21960 , p_source_30 IN NUMBER
21961 --Payables Encumbrance Upgrade Debit Account
21962 , p_source_31 IN NUMBER
21963 --Payables Encumbrance Upgrade Debit Amount
21964 , p_source_32 IN NUMBER
21965 --Payables Encumbrance Upgrade Debit Base Amount
21966 , p_source_33 IN NUMBER
21967 --Payables Encumbrance Upgrade Option
21968 , p_source_34 IN VARCHAR2
21969 --Invoice Exchange Date
21970 , p_source_36 IN DATE
21971 --Invoice Exchange Rate
21972 , p_source_37 IN NUMBER
21973 --Invoice Exchange Rate Type
21974 , p_source_38 IN VARCHAR2
21975 --Deferred Accounting End Date
21976 , p_source_39 IN DATE
21977 --Deferred Accounting Option
21978 , p_source_40 IN VARCHAR2
21979 --Deferred Accounting Start Date
21980 , p_source_41 IN DATE
21981 --Override Accounted Amount Indicator
21982 , p_source_42 IN VARCHAR2
21983 , p_source_42_meaning IN VARCHAR2
21984 --Invoice Supplier Identifier
21985 , p_source_43 IN NUMBER
21986 --Invoice Supplier Site Identifier
21987 , p_source_44 IN NUMBER
21988 --Third Party Type
21989 , p_source_45 IN VARCHAR2
21990 --Parent Reversal Identifier
21991 , p_source_46 IN NUMBER
21992 --Invoice Distribution Statistical Amount
21993 , p_source_47 IN NUMBER
21994 --Invoice Distribution Tax Line Identifier
21995 , p_source_48 IN NUMBER
21996 --Invoice Distribution Tax Distribution Identifier from Tax
21997 , p_source_49 IN NUMBER
21998 --Invoice Distribution Summary Tax Line Identifier
21999 , p_source_50 IN NUMBER
22000 --Payables Upgrade Credit Encumbrance Type Identifier
22001 , p_source_51 IN NUMBER
22002 --Payables Upgrade Debit Encumbrance Type Identifier
22003 , p_source_52 IN NUMBER
22004 --Invoice Distribution Amount
22005 , p_source_55 IN NUMBER
22006 --Invoice Distribution Ledger Amount
22007 , p_source_56 IN NUMBER
22008 )
22009 IS
22010
22011 l_component_type VARCHAR2(80);
22012 l_component_code VARCHAR2(30);
22013 l_component_type_code VARCHAR2(1);
22014 l_component_appl_id INTEGER;
22015 l_amb_context_code VARCHAR2(30);
22016 l_entity_code VARCHAR2(30);
22017 l_event_class_code VARCHAR2(30);
22018 l_ae_header_id NUMBER;
22019 l_event_type_code VARCHAR2(30);
22020 l_line_definition_code VARCHAR2(30);
22021 l_line_definition_owner_code VARCHAR2(1);
22022 --
22023 -- adr variables
22024 l_segment VARCHAR2(30);
22025 l_ccid NUMBER;
22026 l_adr_transaction_coa_id NUMBER;
22027 l_adr_accounting_coa_id NUMBER;
22028 l_adr_flexfield_segment_code VARCHAR2(30);
22029 l_adr_flex_value_set_id NUMBER;
22030 l_adr_value_type_code VARCHAR2(30);
22031 l_adr_value_combination_id NUMBER;
22032 l_adr_value_segment_code VARCHAR2(30);
22033
22034 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22035 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22036 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22037 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22038
22039 -- 4262811 Variables ------------------------------------------------------------------------------------------
22040 l_entered_amt_idx NUMBER;
22041 l_accted_amt_idx NUMBER;
22042 l_acc_rev_flag VARCHAR2(1);
22043 l_accrual_line_num NUMBER;
22044 l_tmp_amt NUMBER;
22045 l_acc_rev_natural_side_code VARCHAR2(1);
22046
22047 l_num_entries NUMBER;
22048 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22049 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22050 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22051 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22052 l_recog_line_1 NUMBER;
22053 l_recog_line_2 NUMBER;
22054
22055 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22056 l_bflow_applied_to_amt NUMBER; -- 5132302
22057 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22058
22059 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22060
22061 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22062 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22063
22064 ---------------------------------------------------------------------------------------------------------------
22065
22066
22067 --
22068 -- bulk performance
22069 --
22070 l_balance_type_code VARCHAR2(1);
22071 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22072 l_log_module VARCHAR2(240);
22073
22074 --
22075 -- Upgrade strategy
22076 --
22077 l_actual_upg_option VARCHAR2(1);
22078 l_enc_upg_option VARCHAR2(1);
22079
22080 --
22081 BEGIN
22082 --
22083 IF g_log_enabled THEN
22084 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
22085 END IF;
22086 --
22087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22088
22089 trace
22090 (p_msg => 'BEGIN of AcctLineType_42'
22091 ,p_level => C_LEVEL_PROCEDURE
22092 ,p_module => l_log_module);
22093
22094 END IF;
22095 --
22096 l_component_type := 'AMB_JLT';
22097 l_component_code := 'FV_AP_INV_ DWD_ANPT_PYA_DR';
22098 l_component_type_code := 'S';
22099 l_component_appl_id := 200;
22100 l_amb_context_code := 'DEFAULT';
22101 l_entity_code := 'AP_INVOICES';
22102 l_event_class_code := 'INVOICES';
22103 l_event_type_code := 'INVOICES_ALL';
22104 l_line_definition_owner_code := 'S';
22105 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
22106 --
22107 l_balance_type_code := 'A';
22108 l_segment := NULL;
22109 l_ccid := NULL;
22110 l_adr_transaction_coa_id := NULL;
22111 l_adr_accounting_coa_id := NULL;
22112 l_adr_flexfield_segment_code := NULL;
22113 l_adr_flex_value_set_id := NULL;
22114 l_adr_value_type_code := NULL;
22115 l_adr_value_combination_id := NULL;
22116 l_adr_value_segment_code := NULL;
22117
22118 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22119 l_bflow_class_code := ''; -- 4219869 Business Flow
22120 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22121 l_budgetary_control_flag := 'Y';
22122
22123 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22124 l_bflow_applied_to_amt := NULL; -- 5132302
22125 l_entered_amt_idx := NULL; -- 4262811
22126 l_accted_amt_idx := NULL; -- 4262811
22127 l_acc_rev_flag := NULL; -- 4262811
22128 l_accrual_line_num := NULL; -- 4262811
22129 l_tmp_amt := NULL; -- 4262811
22130 --
22131
22132 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22133 l_balance_type_code <> 'B' THEN
22134 IF ((NVL(p_source_9,'
22135 ') = 'Y' AND
22136 p_source_12 IS NOT NULL AND
22137 (NVL(p_source_13,'
22138 ') = 'STANDARD' OR
22139 NVL(p_source_13,'
22140 ') = 'MIXED' OR
22141 NVL(p_source_13,'
22142 ') = 'INTEREST' OR
22143 NVL(p_source_13,'
22144 ') = 'EXPENSE REPORT') AND
22145 (NVL(p_source_8,'
22146 ') = 'ITEM' OR
22147 NVL(p_source_8,'
22148 ') = 'ACCRUAL' OR
22149 NVL(p_source_8,'
22150 ') = 'FREIGHT' OR
22151 NVL(p_source_8,'
22152 ') = 'MISCELLANEOUS' OR
22153 NVL(p_source_8,'
22154 ') = 'IPV')
22155 ) OR (NVL(p_source_9,'
22156 ') = 'Y' AND
22157 p_source_12 IS NOT NULL AND
22158 NVL(p_source_8,'
22159 ') = 'IPV')
22160 ) AND NVL(p_source_14,'
22161 ') = 'Downward' AND
22162 NVL(p_source_11,'
22163 ') <> 'Y'
22164 THEN
22165
22166 --
22167 XLA_AE_LINES_PKG.SetNewLine;
22168
22169 p_balance_type_code := l_balance_type_code;
22170 -- set the flag so later we will know whether the gain loss line needs to be created
22171
22172 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22173 p_actual_flag :='A';
22174 END IF;
22175
22176 --
22177 -- bulk performance
22178 --
22179 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22180 p_header_num => 0); -- 4262811
22181 --
22182 -- set accounting line options
22183 --
22184 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22185 p_natural_side_code => 'C'
22186 , p_gain_or_loss_flag => 'N'
22187 , p_gl_transfer_mode_code => 'S'
22188 , p_acct_entry_type_code => 'A'
22189 , p_switch_side_flag => 'Y'
22190 , p_merge_duplicate_code => 'N'
22191 );
22192 --
22193 l_acc_rev_natural_side_code := 'D'; -- 4262811
22194 --
22195 --
22196 -- set accounting line type info
22197 --
22198 xla_ae_lines_pkg.SetAcctLineType
22199 (p_component_type => l_component_type
22200 ,p_event_type_code => l_event_type_code
22201 ,p_line_definition_owner_code => l_line_definition_owner_code
22202 ,p_line_definition_code => l_line_definition_code
22203 ,p_accounting_line_code => l_component_code
22204 ,p_accounting_line_type_code => l_component_type_code
22205 ,p_accounting_line_appl_id => l_component_appl_id
22206 ,p_amb_context_code => l_amb_context_code
22207 ,p_entity_code => l_entity_code
22208 ,p_event_class_code => l_event_class_code);
22209 --
22210 -- set accounting class
22211 --
22212 xla_ae_lines_pkg.SetAcctClass(
22213 p_accounting_class_code => 'ACCOUNTSPAYABLE'
22214 , p_ae_header_id => l_ae_header_id
22215 );
22216
22217 --
22218 -- set rounding class
22219 --
22220 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22221 'ACCOUNTSPAYABLE';
22222
22223 --
22224 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22225 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22226 --
22227 -- bulk performance
22228 --
22229 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22230
22231 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22232 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22233
22234 -- 4955764
22235 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22236 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22237
22238 -- 4458381 Public Sector Enh
22239
22240 --
22241 -- set accounting attributes for the line type
22242 --
22243 l_entered_amt_idx := 24;
22244 l_accted_amt_idx := 29;
22245 l_bflow_applied_to_amt_idx := 7; -- 5132302
22246 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22247 l_rec_acct_attrs.array_char_value(1) := p_source_15;
22248 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
22249 l_rec_acct_attrs.array_num_value(2) :=
22250 xla_ae_sources_pkg.GetSystemSourceNum(
22251 p_source_code => 'XLA_EVENT_APPL_ID'
22252 , p_source_type_code => 'Y'
22253 , p_source_application_id => 602
22254 );
22255 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
22256 l_rec_acct_attrs.array_char_value(3) := p_source_17;
22257 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
22258 l_rec_acct_attrs.array_char_value(4) :=
22259 xla_ae_sources_pkg.GetSystemSourceChar(
22260 p_source_code => 'XLA_ENTITY_CODE'
22261 , p_source_type_code => 'Y'
22262 , p_source_application_id => 602
22263 );
22264 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
22265 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
22266 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
22267 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
22268 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
22269 l_rec_acct_attrs.array_num_value(7) := p_source_55;
22270 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
22271 l_rec_acct_attrs.array_num_value(8) := p_source_21;
22272 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22273 l_rec_acct_attrs.array_char_value(9) := p_source_22;
22274 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
22275 l_rec_acct_attrs.array_char_value(10) := p_source_23;
22276 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
22277 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
22278 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22279 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
22280 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
22281 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
22282 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
22283 l_rec_acct_attrs.array_char_value(14) := p_source_17;
22284 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
22285 l_rec_acct_attrs.array_num_value(15) := p_source_27;
22286 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
22287 l_rec_acct_attrs.array_num_value(16) := p_source_28;
22288 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
22289 l_rec_acct_attrs.array_char_value(17) := p_source_29;
22290 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
22291 l_rec_acct_attrs.array_num_value(18) := p_source_30;
22292 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
22293 l_rec_acct_attrs.array_num_value(19) := p_source_31;
22294 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
22295 l_rec_acct_attrs.array_num_value(20) := p_source_32;
22296 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
22297 l_rec_acct_attrs.array_char_value(21) := p_source_29;
22298 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
22299 l_rec_acct_attrs.array_num_value(22) := p_source_33;
22300 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
22301 l_rec_acct_attrs.array_char_value(23) := p_source_34;
22302 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
22303 l_rec_acct_attrs.array_num_value(24) := p_source_55;
22304 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
22305 l_rec_acct_attrs.array_char_value(25) := p_source_29;
22306 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
22307 l_rec_acct_attrs.array_date_value(26) := p_source_36;
22308 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
22309 l_rec_acct_attrs.array_num_value(27) := p_source_37;
22310 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
22311 l_rec_acct_attrs.array_char_value(28) := p_source_38;
22312 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
22313 l_rec_acct_attrs.array_num_value(29) := p_source_56;
22314 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
22315 l_rec_acct_attrs.array_date_value(30) := p_source_39;
22316 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
22317 l_rec_acct_attrs.array_char_value(31) := p_source_40;
22318 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
22319 l_rec_acct_attrs.array_date_value(32) := p_source_41;
22320 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
22321 l_rec_acct_attrs.array_char_value(33) := p_source_42;
22322 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
22323 l_rec_acct_attrs.array_num_value(34) := p_source_43;
22324 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
22325 l_rec_acct_attrs.array_num_value(35) := p_source_44;
22326 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
22327 l_rec_acct_attrs.array_char_value(36) := p_source_45;
22328 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
22329 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
22330 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
22331 l_rec_acct_attrs.array_char_value(38) := p_source_17;
22332 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
22333 l_rec_acct_attrs.array_num_value(39) := p_source_47;
22334 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
22335 l_rec_acct_attrs.array_num_value(40) := p_source_48;
22336 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
22337 l_rec_acct_attrs.array_num_value(41) := p_source_49;
22338 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
22339 l_rec_acct_attrs.array_num_value(42) := p_source_50;
22340 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
22341 l_rec_acct_attrs.array_num_value(43) := p_source_51;
22342 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
22343 l_rec_acct_attrs.array_num_value(44) := p_source_52;
22344
22345 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22346 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22347
22348 ---------------------------------------------------------------------------------------------------------------
22349 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22350 ---------------------------------------------------------------------------------------------------------------
22351 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22352
22353 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22354 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22355
22356 IF xla_accounting_cache_pkg.GetValueChar
22357 (p_source_code => 'LEDGER_CATEGORY_CODE'
22358 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22359 AND l_bflow_method_code = 'PRIOR_ENTRY'
22360 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22361 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22362 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22363 )
22364 THEN
22365 xla_ae_lines_pkg.BflowUpgEntry
22366 (p_business_method_code => l_bflow_method_code
22367 ,p_business_class_code => l_bflow_class_code
22368 ,p_balance_type => l_balance_type_code);
22369 ELSE
22370 NULL;
22371 -- No business flow processing for business flow method of NONE.
22372 END IF;
22373
22374 --
22375 -- call analytical criteria
22376 --
22377
22378 --
22379 -- call description
22380 --
22381
22382 xla_ae_lines_pkg.SetLineDescription(
22383 p_ae_header_id => l_ae_header_id
22384 ,p_description => Description_2 (
22385 p_application_id => p_application_id
22386 , p_ae_header_id => l_ae_header_id
22387 , p_source_1 => p_source_1
22388 )
22389 );
22390
22391
22392 --
22393 -- call ADRs
22394 -- Bug 4922099
22395 --
22396 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22397 (NVL(l_actual_upg_option, 'N') = 'O') OR
22398 (NVL(l_enc_upg_option, 'N') = 'O')
22399 )
22400 THEN
22401 NULL;
22402 --
22403 --
22404
22405 l_ccid := AcctDerRule_3(
22406 p_application_id => p_application_id
22407 , p_ae_header_id => l_ae_header_id
22408 , p_source_2 => p_source_2
22409 , x_transaction_coa_id => l_adr_transaction_coa_id
22410 , x_accounting_coa_id => l_adr_accounting_coa_id
22411 , x_value_type_code => l_adr_value_type_code
22412 , p_side => 'NA'
22413 );
22414
22415 xla_ae_lines_pkg.set_ccid(
22416 p_code_combination_id => l_ccid
22417 , p_value_type_code => l_adr_value_type_code
22418 , p_transaction_coa_id => l_adr_transaction_coa_id
22419 , p_accounting_coa_id => l_adr_accounting_coa_id
22420 , p_adr_code => 'AP_INVOICE_DIST'
22421 , p_adr_type_code => 'S'
22422 , p_component_type => l_component_type
22423 , p_component_code => l_component_code
22424 , p_component_type_code => l_component_type_code
22425 , p_component_appl_id => l_component_appl_id
22426 , p_amb_context_code => l_amb_context_code
22427 , p_side => 'NA'
22428 );
22429
22430
22431 l_segment := AcctDerRule_13(
22432 p_application_id => p_application_id
22433 , p_ae_header_id => l_ae_header_id
22434 , x_transaction_coa_id => l_adr_transaction_coa_id
22435 , x_accounting_coa_id => l_adr_accounting_coa_id
22436 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22437 , x_flex_value_set_id => l_adr_flex_value_set_id
22438 , x_value_type_code => l_adr_value_type_code
22439 , x_value_combination_id => l_adr_value_combination_id
22440 , x_value_segment_code => l_adr_value_segment_code
22441 , p_side => 'NA'
22442 , p_override_seg_flag => 'Y'
22443 );
22444
22445 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22446
22447 xla_ae_lines_pkg.set_segment(
22448 p_to_segment_code => 'GL_ACCOUNT'
22449 , p_segment_value => l_segment
22450 , p_from_segment_code => l_adr_value_segment_code
22451 , p_from_combination_id => l_adr_value_combination_id
22452 , p_value_type_code => l_adr_value_type_code
22453 , p_transaction_coa_id => l_adr_transaction_coa_id
22454 , p_accounting_coa_id => l_adr_accounting_coa_id
22455 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22456 , p_flex_value_set_id => l_adr_flex_value_set_id
22457 , p_adr_code => 'FV_497101_DWD_PYA_DR'
22458 , p_adr_type_code => 'S'
22459 , p_component_type => l_component_type
22460 , p_component_code => l_component_code
22461 , p_component_type_code => l_component_type_code
22462 , p_component_appl_id => l_component_appl_id
22463 , p_amb_context_code => l_amb_context_code
22464 , p_entity_code => 'AP_INVOICES'
22465 , p_event_class_code => 'INVOICES'
22466 , p_side => 'NA'
22467 );
22468
22469 END IF;
22470
22471 --
22472 --
22473 END IF;
22474 --
22475 -- Bug 4922099
22476 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22477 (NVL(l_enc_upg_option, 'N') = 'O')
22478 ) AND
22479 (l_bflow_method_code = 'PRIOR_ENTRY')
22480 )
22481 THEN
22482 IF
22483 --
22484 1 = 2
22485 --
22486 THEN
22487 xla_accounting_err_pkg.build_message
22488 (p_appli_s_name => 'XLA'
22489 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22490 ,p_token_1 => 'LINE_NUMBER'
22491 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22492 ,p_token_2 => 'LINE_TYPE_NAME'
22493 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22494 l_component_type
22495 ,l_component_code
22496 ,l_component_type_code
22497 ,l_component_appl_id
22498 ,l_amb_context_code
22499 ,l_entity_code
22500 ,l_event_class_code
22501 )
22502 ,p_token_3 => 'OWNER'
22503 ,p_value_3 => xla_lookups_pkg.get_meaning(
22504 p_lookup_type => 'XLA_OWNER_TYPE'
22505 ,p_lookup_code => l_component_type_code
22506 )
22507 ,p_token_4 => 'PRODUCT_NAME'
22508 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22509 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22510 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22511 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22512 ,p_ae_header_id => NULL
22513 );
22514
22515 IF (C_LEVEL_ERROR>= g_log_level) THEN
22516 trace
22517 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22518 ,p_level => C_LEVEL_ERROR
22519 ,p_module => l_log_module);
22520 END IF;
22521 END IF;
22522 END IF;
22523 --
22524 --
22525 ------------------------------------------------------------------------------------------------
22526 -- 4219869 Business Flow
22527 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22528 -- Prior Entry. Currently, the following code is always generated.
22529 ------------------------------------------------------------------------------------------------
22530 XLA_AE_LINES_PKG.ValidateCurrentLine;
22531
22532 ------------------------------------------------------------------------------------
22533 -- 4219869 Business Flow
22534 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22535 ------------------------------------------------------------------------------------
22536 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22537
22538 ----------------------------------------------------------------------------------
22539 -- 4219869 Business Flow
22540 -- Update journal entry status -- Need to generate this within IF <condition>
22541 ----------------------------------------------------------------------------------
22542 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22543 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22544 ,p_balance_type_code => l_balance_type_code
22545 );
22546
22547 -------------------------------------------------------------------------------------------
22548 -- 4262811 - Generate the Accrual Reversal lines
22549 -------------------------------------------------------------------------------------------
22550 BEGIN
22551 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22552 (g_array_event(p_event_id).array_value_num('header_index'));
22553 IF l_acc_rev_flag IS NULL THEN
22554 l_acc_rev_flag := 'N';
22555 END IF;
22556 EXCEPTION
22557 WHEN OTHERS THEN
22558 l_acc_rev_flag := 'N';
22559 END;
22560 --
22561 IF (l_acc_rev_flag = 'Y') THEN
22562
22563 -- 4645092 ------------------------------------------------------------------------------
22564 -- To allow MPA report to determine if it should generate report process
22565 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22566 ------------------------------------------------------------------------------------------
22567
22568 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22569 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22570 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22571 -- call ADRs
22572 -- Bug 4922099
22573 --
22574 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22575 (NVL(l_actual_upg_option, 'N') = 'O') OR
22576 (NVL(l_enc_upg_option, 'N') = 'O')
22577 )
22578 THEN
22579 NULL;
22580 --
22581 --
22582
22583 l_ccid := AcctDerRule_3(
22584 p_application_id => p_application_id
22585 , p_ae_header_id => l_ae_header_id
22586 , p_source_2 => p_source_2
22587 , x_transaction_coa_id => l_adr_transaction_coa_id
22588 , x_accounting_coa_id => l_adr_accounting_coa_id
22589 , x_value_type_code => l_adr_value_type_code
22590 , p_side => 'NA'
22591 );
22592
22593 xla_ae_lines_pkg.set_ccid(
22594 p_code_combination_id => l_ccid
22595 , p_value_type_code => l_adr_value_type_code
22596 , p_transaction_coa_id => l_adr_transaction_coa_id
22597 , p_accounting_coa_id => l_adr_accounting_coa_id
22598 , p_adr_code => 'AP_INVOICE_DIST'
22599 , p_adr_type_code => 'S'
22600 , p_component_type => l_component_type
22601 , p_component_code => l_component_code
22602 , p_component_type_code => l_component_type_code
22603 , p_component_appl_id => l_component_appl_id
22604 , p_amb_context_code => l_amb_context_code
22605 , p_side => 'NA'
22606 );
22607
22608
22609 l_segment := AcctDerRule_13(
22610 p_application_id => p_application_id
22611 , p_ae_header_id => l_ae_header_id
22612 , x_transaction_coa_id => l_adr_transaction_coa_id
22613 , x_accounting_coa_id => l_adr_accounting_coa_id
22614 , x_flexfield_segment_code => l_adr_flexfield_segment_code
22615 , x_flex_value_set_id => l_adr_flex_value_set_id
22616 , x_value_type_code => l_adr_value_type_code
22617 , x_value_combination_id => l_adr_value_combination_id
22618 , x_value_segment_code => l_adr_value_segment_code
22619 , p_side => 'NA'
22620 , p_override_seg_flag => 'Y'
22621 );
22622
22623 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
22624
22625 xla_ae_lines_pkg.set_segment(
22626 p_to_segment_code => 'GL_ACCOUNT'
22627 , p_segment_value => l_segment
22628 , p_from_segment_code => l_adr_value_segment_code
22629 , p_from_combination_id => l_adr_value_combination_id
22630 , p_value_type_code => l_adr_value_type_code
22631 , p_transaction_coa_id => l_adr_transaction_coa_id
22632 , p_accounting_coa_id => l_adr_accounting_coa_id
22633 , p_flexfield_segment_code => l_adr_flexfield_segment_code
22634 , p_flex_value_set_id => l_adr_flex_value_set_id
22635 , p_adr_code => 'FV_497101_DWD_PYA_DR'
22636 , p_adr_type_code => 'S'
22637 , p_component_type => l_component_type
22638 , p_component_code => l_component_code
22639 , p_component_type_code => l_component_type_code
22640 , p_component_appl_id => l_component_appl_id
22641 , p_amb_context_code => l_amb_context_code
22642 , p_entity_code => 'AP_INVOICES'
22643 , p_event_class_code => 'INVOICES'
22644 , p_side => 'NA'
22645 );
22646
22647 END IF;
22648
22649 --
22650 --
22651 END IF;
22652
22653 --
22654 -- Update the line information that should be overwritten
22655 --
22656 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22657 p_header_num => 1);
22658 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22659
22660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22661
22662 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22663 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22664 END IF;
22665
22666 --
22667 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22668 --
22669 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22670 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22671 ELSE
22672 ---------------------------------------------------------------------------------------------------
22673 -- 4262811a Switch Sign
22674 ---------------------------------------------------------------------------------------------------
22675 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22676 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22677 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22678 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22679 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22680 -- 5132302
22681 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22682 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22683
22684 END IF;
22685
22686 -- 4955764
22687 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22688 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22689
22690
22691 XLA_AE_LINES_PKG.ValidateCurrentLine;
22692 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22693
22694 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22695 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22696 ,p_balance_type_code => l_balance_type_code);
22697
22698 END IF;
22699
22700 -----------------------------------------------------------------------------------------
22701 -- 4262811 Multiperiod Accounting
22702 -----------------------------------------------------------------------------------------
22703 -- No MPA option is assigned.
22704
22705
22706 END IF;
22707 END IF;
22708 --
22709
22710 --
22711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22712 trace
22713 (p_msg => 'END of AcctLineType_42'
22714 ,p_level => C_LEVEL_PROCEDURE
22715 ,p_module => l_log_module);
22716 END IF;
22717 --
22718 EXCEPTION
22719 WHEN xla_exceptions_pkg.application_exception THEN
22720 RAISE;
22721 WHEN OTHERS THEN
22722 xla_exceptions_pkg.raise_message
22723 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_42');
22724 END AcctLineType_42;
22725 --
22726
22727 ---------------------------------------
22728 --
22729 -- PRIVATE FUNCTION
22730 -- AcctLineType_43
22731 --
22732 ---------------------------------------
22733 PROCEDURE AcctLineType_43 (
22734 p_application_id IN NUMBER
22735 ,p_event_id IN NUMBER
22736 ,p_calculate_acctd_flag IN VARCHAR2
22737 ,p_calculate_g_l_flag IN VARCHAR2
22738 ,p_actual_flag IN OUT VARCHAR2
22739 ,p_balance_type_code OUT VARCHAR2
22740 ,p_gain_or_loss_ref OUT VARCHAR2
22741
22742 --Invoice Distribution Description
22743 , p_source_1 IN VARCHAR2
22744 --Invoice Distribution Account
22745 , p_source_2 IN NUMBER
22746 --Federal Anticipation
22747 , p_source_3 IN VARCHAR2
22748 --Invoice Distribution Type
22749 , p_source_8 IN VARCHAR2
22750 , p_source_8_meaning IN VARCHAR2
22751 --Federal Prior Year Flag
22752 , p_source_9 IN VARCHAR2
22753 --Accrue on Receipt Option
22754 , p_source_11 IN VARCHAR2
22755 , p_source_11_meaning IN VARCHAR2
22756 --Purchase Order Distribution Identifier
22757 , p_source_12 IN NUMBER
22758 --Invoice Type
22759 , p_source_13 IN VARCHAR2
22760 , p_source_13_meaning IN VARCHAR2
22761 --Federal Adjustment Type
22762 , p_source_14 IN VARCHAR2
22763 --Accounting Reversal Indicator
22764 , p_source_15 IN VARCHAR2
22765 --Distribution Link Type
22766 , p_source_17 IN VARCHAR2
22767 --Allocation to Main Distribution Identifier
22768 , p_source_19 IN NUMBER
22769 --Invoice Identifier
22770 , p_source_20 IN NUMBER
22771 --Business Flow Accounts Payable Application Identifier
22772 , p_source_21 IN NUMBER
22773 --Business Flow Invoice Distribution Type
22774 , p_source_22 IN VARCHAR2
22775 --Business Flow Invoice Entity Code
22776 , p_source_23 IN VARCHAR2
22777 --Business Flow Invoice Distribution Identifier
22778 , p_source_24 IN NUMBER
22779 --Business Flow Invoice Identifier
22780 , p_source_25 IN NUMBER
22781 --Invoice Distribution Identifier
22782 , p_source_26 IN NUMBER
22783 --Payables Encumbrance Upgrade Credit Account
22784 , p_source_27 IN NUMBER
22785 --Payables Encumbrance Upgrade Credit Amount
22786 , p_source_28 IN NUMBER
22787 --Invoice Currency Code
22788 , p_source_29 IN VARCHAR2
22789 --Payables Encumbrance Upgrade Credit Base Amount
22790 , p_source_30 IN NUMBER
22791 --Payables Encumbrance Upgrade Debit Account
22792 , p_source_31 IN NUMBER
22793 --Payables Encumbrance Upgrade Debit Amount
22794 , p_source_32 IN NUMBER
22795 --Payables Encumbrance Upgrade Debit Base Amount
22796 , p_source_33 IN NUMBER
22797 --Payables Encumbrance Upgrade Option
22798 , p_source_34 IN VARCHAR2
22799 --Invoice Exchange Date
22800 , p_source_36 IN DATE
22801 --Invoice Exchange Rate
22802 , p_source_37 IN NUMBER
22803 --Invoice Exchange Rate Type
22804 , p_source_38 IN VARCHAR2
22805 --Deferred Accounting End Date
22806 , p_source_39 IN DATE
22807 --Deferred Accounting Option
22808 , p_source_40 IN VARCHAR2
22809 --Deferred Accounting Start Date
22810 , p_source_41 IN DATE
22811 --Override Accounted Amount Indicator
22812 , p_source_42 IN VARCHAR2
22813 , p_source_42_meaning IN VARCHAR2
22814 --Invoice Supplier Identifier
22815 , p_source_43 IN NUMBER
22816 --Invoice Supplier Site Identifier
22817 , p_source_44 IN NUMBER
22818 --Third Party Type
22819 , p_source_45 IN VARCHAR2
22820 --Parent Reversal Identifier
22821 , p_source_46 IN NUMBER
22822 --Invoice Distribution Statistical Amount
22823 , p_source_47 IN NUMBER
22824 --Invoice Distribution Tax Line Identifier
22825 , p_source_48 IN NUMBER
22826 --Invoice Distribution Tax Distribution Identifier from Tax
22827 , p_source_49 IN NUMBER
22828 --Invoice Distribution Summary Tax Line Identifier
22829 , p_source_50 IN NUMBER
22830 --Payables Upgrade Credit Encumbrance Type Identifier
22831 , p_source_51 IN NUMBER
22832 --Payables Upgrade Debit Encumbrance Type Identifier
22833 , p_source_52 IN NUMBER
22834 --Federal Unanticipated Amt
22835 , p_source_54 IN NUMBER
22836 --Invoice Distribution Amount
22837 , p_source_55 IN NUMBER
22838 )
22839 IS
22840
22841 l_component_type VARCHAR2(80);
22842 l_component_code VARCHAR2(30);
22843 l_component_type_code VARCHAR2(1);
22844 l_component_appl_id INTEGER;
22845 l_amb_context_code VARCHAR2(30);
22846 l_entity_code VARCHAR2(30);
22847 l_event_class_code VARCHAR2(30);
22848 l_ae_header_id NUMBER;
22849 l_event_type_code VARCHAR2(30);
22850 l_line_definition_code VARCHAR2(30);
22851 l_line_definition_owner_code VARCHAR2(1);
22852 --
22853 -- adr variables
22854 l_segment VARCHAR2(30);
22855 l_ccid NUMBER;
22856 l_adr_transaction_coa_id NUMBER;
22857 l_adr_accounting_coa_id NUMBER;
22858 l_adr_flexfield_segment_code VARCHAR2(30);
22859 l_adr_flex_value_set_id NUMBER;
22860 l_adr_value_type_code VARCHAR2(30);
22861 l_adr_value_combination_id NUMBER;
22862 l_adr_value_segment_code VARCHAR2(30);
22863
22864 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22865 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22866 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22867 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22868
22869 -- 4262811 Variables ------------------------------------------------------------------------------------------
22870 l_entered_amt_idx NUMBER;
22871 l_accted_amt_idx NUMBER;
22872 l_acc_rev_flag VARCHAR2(1);
22873 l_accrual_line_num NUMBER;
22874 l_tmp_amt NUMBER;
22875 l_acc_rev_natural_side_code VARCHAR2(1);
22876
22877 l_num_entries NUMBER;
22878 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22879 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22880 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22881 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22882 l_recog_line_1 NUMBER;
22883 l_recog_line_2 NUMBER;
22884
22885 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22886 l_bflow_applied_to_amt NUMBER; -- 5132302
22887 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22888
22889 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22890
22891 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22892 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22893
22894 ---------------------------------------------------------------------------------------------------------------
22895
22896
22897 --
22898 -- bulk performance
22899 --
22900 l_balance_type_code VARCHAR2(1);
22901 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22902 l_log_module VARCHAR2(240);
22903
22904 --
22905 -- Upgrade strategy
22906 --
22907 l_actual_upg_option VARCHAR2(1);
22908 l_enc_upg_option VARCHAR2(1);
22909
22910 --
22911 BEGIN
22912 --
22913 IF g_log_enabled THEN
22914 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
22915 END IF;
22916 --
22917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22918
22919 trace
22920 (p_msg => 'BEGIN of AcctLineType_43'
22921 ,p_level => C_LEVEL_PROCEDURE
22922 ,p_module => l_log_module);
22923
22924 END IF;
22925 --
22926 l_component_type := 'AMB_JLT';
22927 l_component_code := 'FV_AP_INV_ DWD_UNANPT_PYA_CR';
22928 l_component_type_code := 'S';
22929 l_component_appl_id := 200;
22930 l_amb_context_code := 'DEFAULT';
22931 l_entity_code := 'AP_INVOICES';
22932 l_event_class_code := 'INVOICES';
22933 l_event_type_code := 'INVOICES_ALL';
22934 l_line_definition_owner_code := 'S';
22935 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
22936 --
22937 l_balance_type_code := 'A';
22938 l_segment := NULL;
22939 l_ccid := NULL;
22940 l_adr_transaction_coa_id := NULL;
22941 l_adr_accounting_coa_id := NULL;
22942 l_adr_flexfield_segment_code := NULL;
22943 l_adr_flex_value_set_id := NULL;
22944 l_adr_value_type_code := NULL;
22945 l_adr_value_combination_id := NULL;
22946 l_adr_value_segment_code := NULL;
22947
22948 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22949 l_bflow_class_code := ''; -- 4219869 Business Flow
22950 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22951 l_budgetary_control_flag := 'Y';
22952
22953 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22954 l_bflow_applied_to_amt := NULL; -- 5132302
22955 l_entered_amt_idx := NULL; -- 4262811
22956 l_accted_amt_idx := NULL; -- 4262811
22957 l_acc_rev_flag := NULL; -- 4262811
22958 l_accrual_line_num := NULL; -- 4262811
22959 l_tmp_amt := NULL; -- 4262811
22960 --
22961
22962 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22963 l_balance_type_code <> 'B' THEN
22964 IF ((p_source_12 IS NULL AND
22965 (NVL(p_source_13,'
22966 ') = 'STANDARD' OR
22967 NVL(p_source_13,'
22968 ') = 'MIXED' OR
22969 NVL(p_source_13,'
22970 ') = 'EXPENSE REPORT' OR
22971 NVL(p_source_13,'
22972 ') = 'INTEREST') AND
22973 (NVL(p_source_8,'
22974 ') = 'ITEM' OR
22975 NVL(p_source_8,'
22976 ') = 'ACCRUAL' OR
22977 NVL(p_source_8,'
22978 ') = 'MISCELLANEOUS' OR
22979 NVL(p_source_8,'
22980 ') = 'FREIGHT' OR
22981 NVL(p_source_8,'
22982 ') = 'IPV')
22983 ) OR (p_source_12 IS NOT NULL AND
22984 NVL(p_source_8,'
22985 ') = 'IPV')
22986 ) AND NVL(p_source_9,'
22987 ') = 'Y' AND
22988 NVL(p_source_14,'
22989 ') = 'Downward' AND
22990 (NVL(p_source_3,'
22991 ') = 'UnAnticipated' OR
22992 NVL(p_source_3,'
22993 ') = 'Partial') AND
22994 NVL(p_source_11,'
22995 ') <> 'Y'
22996 THEN
22997
22998 --
22999 XLA_AE_LINES_PKG.SetNewLine;
23000
23001 p_balance_type_code := l_balance_type_code;
23002 -- set the flag so later we will know whether the gain loss line needs to be created
23003
23004 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23005 p_actual_flag :='A';
23006 END IF;
23007
23008 --
23009 -- bulk performance
23010 --
23011 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23012 p_header_num => 0); -- 4262811
23013 --
23014 -- set accounting line options
23015 --
23016 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23017 p_natural_side_code => 'C'
23018 , p_gain_or_loss_flag => 'N'
23019 , p_gl_transfer_mode_code => 'S'
23020 , p_acct_entry_type_code => 'A'
23021 , p_switch_side_flag => 'N'
23022 , p_merge_duplicate_code => 'N'
23023 );
23024 --
23025 l_acc_rev_natural_side_code := 'D'; -- 4262811
23026 --
23027 --
23028 -- set accounting line type info
23029 --
23030 xla_ae_lines_pkg.SetAcctLineType
23031 (p_component_type => l_component_type
23032 ,p_event_type_code => l_event_type_code
23033 ,p_line_definition_owner_code => l_line_definition_owner_code
23034 ,p_line_definition_code => l_line_definition_code
23035 ,p_accounting_line_code => l_component_code
23036 ,p_accounting_line_type_code => l_component_type_code
23037 ,p_accounting_line_appl_id => l_component_appl_id
23038 ,p_amb_context_code => l_amb_context_code
23039 ,p_entity_code => l_entity_code
23040 ,p_event_class_code => l_event_class_code);
23041 --
23042 -- set accounting class
23043 --
23044 xla_ae_lines_pkg.SetAcctClass(
23045 p_accounting_class_code => 'ACCOUNTSPAYABLE'
23046 , p_ae_header_id => l_ae_header_id
23047 );
23048
23049 --
23050 -- set rounding class
23051 --
23052 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23053 'ACCOUNTSPAYABLE';
23054
23055 --
23056 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23057 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23058 --
23059 -- bulk performance
23060 --
23061 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23062
23063 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23064 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23065
23066 -- 4955764
23067 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23068 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23069
23070 -- 4458381 Public Sector Enh
23071
23072 --
23073 -- set accounting attributes for the line type
23074 --
23075 l_entered_amt_idx := 24;
23076 l_accted_amt_idx := 29;
23077 l_bflow_applied_to_amt_idx := 7; -- 5132302
23078 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23079 l_rec_acct_attrs.array_char_value(1) := p_source_15;
23080 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23081 l_rec_acct_attrs.array_num_value(2) :=
23082 xla_ae_sources_pkg.GetSystemSourceNum(
23083 p_source_code => 'XLA_EVENT_APPL_ID'
23084 , p_source_type_code => 'Y'
23085 , p_source_application_id => 602
23086 );
23087 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23088 l_rec_acct_attrs.array_char_value(3) := p_source_17;
23089 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23090 l_rec_acct_attrs.array_char_value(4) :=
23091 xla_ae_sources_pkg.GetSystemSourceChar(
23092 p_source_code => 'XLA_ENTITY_CODE'
23093 , p_source_type_code => 'Y'
23094 , p_source_application_id => 602
23095 );
23096 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23097 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
23098 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23099 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
23100 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
23101 l_rec_acct_attrs.array_num_value(7) := p_source_55;
23102 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
23103 l_rec_acct_attrs.array_num_value(8) := p_source_21;
23104 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23105 l_rec_acct_attrs.array_char_value(9) := p_source_22;
23106 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
23107 l_rec_acct_attrs.array_char_value(10) := p_source_23;
23108 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
23109 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
23110 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23111 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
23112 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
23113 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
23114 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
23115 l_rec_acct_attrs.array_char_value(14) := p_source_17;
23116 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
23117 l_rec_acct_attrs.array_num_value(15) := p_source_27;
23118 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
23119 l_rec_acct_attrs.array_num_value(16) := p_source_28;
23120 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
23121 l_rec_acct_attrs.array_char_value(17) := p_source_29;
23122 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
23123 l_rec_acct_attrs.array_num_value(18) := p_source_30;
23124 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
23125 l_rec_acct_attrs.array_num_value(19) := p_source_31;
23126 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
23127 l_rec_acct_attrs.array_num_value(20) := p_source_32;
23128 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
23129 l_rec_acct_attrs.array_char_value(21) := p_source_29;
23130 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
23131 l_rec_acct_attrs.array_num_value(22) := p_source_33;
23132 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
23133 l_rec_acct_attrs.array_char_value(23) := p_source_34;
23134 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
23135 l_rec_acct_attrs.array_num_value(24) := p_source_54;
23136 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
23137 l_rec_acct_attrs.array_char_value(25) := p_source_29;
23138 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
23139 l_rec_acct_attrs.array_date_value(26) := p_source_36;
23140 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
23141 l_rec_acct_attrs.array_num_value(27) := p_source_37;
23142 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
23143 l_rec_acct_attrs.array_char_value(28) := p_source_38;
23144 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
23145 l_rec_acct_attrs.array_num_value(29) := p_source_54;
23146 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
23147 l_rec_acct_attrs.array_date_value(30) := p_source_39;
23148 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
23149 l_rec_acct_attrs.array_char_value(31) := p_source_40;
23150 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
23151 l_rec_acct_attrs.array_date_value(32) := p_source_41;
23152 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
23153 l_rec_acct_attrs.array_char_value(33) := p_source_42;
23154 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
23155 l_rec_acct_attrs.array_num_value(34) := p_source_43;
23156 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
23157 l_rec_acct_attrs.array_num_value(35) := p_source_44;
23158 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
23159 l_rec_acct_attrs.array_char_value(36) := p_source_45;
23160 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
23161 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
23162 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
23163 l_rec_acct_attrs.array_char_value(38) := p_source_17;
23164 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
23165 l_rec_acct_attrs.array_num_value(39) := p_source_47;
23166 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
23167 l_rec_acct_attrs.array_num_value(40) := p_source_48;
23168 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
23169 l_rec_acct_attrs.array_num_value(41) := p_source_49;
23170 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
23171 l_rec_acct_attrs.array_num_value(42) := p_source_50;
23172 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
23173 l_rec_acct_attrs.array_num_value(43) := p_source_51;
23174 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
23175 l_rec_acct_attrs.array_num_value(44) := p_source_52;
23176
23180 ---------------------------------------------------------------------------------------------------------------
23177 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23178 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23179
23181 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23182 ---------------------------------------------------------------------------------------------------------------
23183 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23184
23185 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23186 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23187
23188 IF xla_accounting_cache_pkg.GetValueChar
23189 (p_source_code => 'LEDGER_CATEGORY_CODE'
23190 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23191 AND l_bflow_method_code = 'PRIOR_ENTRY'
23192 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23193 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23194 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23195 )
23196 THEN
23197 xla_ae_lines_pkg.BflowUpgEntry
23198 (p_business_method_code => l_bflow_method_code
23199 ,p_business_class_code => l_bflow_class_code
23200 ,p_balance_type => l_balance_type_code);
23201 ELSE
23202 NULL;
23203 -- No business flow processing for business flow method of NONE.
23204 END IF;
23205
23206 --
23207 -- call analytical criteria
23208 --
23209
23210 --
23211 -- call description
23212 --
23213
23214 xla_ae_lines_pkg.SetLineDescription(
23215 p_ae_header_id => l_ae_header_id
23216 ,p_description => Description_2 (
23217 p_application_id => p_application_id
23218 , p_ae_header_id => l_ae_header_id
23219 , p_source_1 => p_source_1
23220 )
23221 );
23222
23223
23224 --
23225 -- call ADRs
23226 -- Bug 4922099
23227 --
23228 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23229 (NVL(l_actual_upg_option, 'N') = 'O') OR
23230 (NVL(l_enc_upg_option, 'N') = 'O')
23231 )
23232 THEN
23233 NULL;
23234 --
23235 --
23236
23237 l_ccid := AcctDerRule_3(
23238 p_application_id => p_application_id
23239 , p_ae_header_id => l_ae_header_id
23240 , p_source_2 => p_source_2
23241 , x_transaction_coa_id => l_adr_transaction_coa_id
23242 , x_accounting_coa_id => l_adr_accounting_coa_id
23243 , x_value_type_code => l_adr_value_type_code
23244 , p_side => 'NA'
23245 );
23246
23247 xla_ae_lines_pkg.set_ccid(
23248 p_code_combination_id => l_ccid
23249 , p_value_type_code => l_adr_value_type_code
23250 , p_transaction_coa_id => l_adr_transaction_coa_id
23251 , p_accounting_coa_id => l_adr_accounting_coa_id
23252 , p_adr_code => 'AP_INVOICE_DIST'
23253 , p_adr_type_code => 'S'
23254 , p_component_type => l_component_type
23255 , p_component_code => l_component_code
23256 , p_component_type_code => l_component_type_code
23257 , p_component_appl_id => l_component_appl_id
23258 , p_amb_context_code => l_amb_context_code
23259 , p_side => 'NA'
23260 );
23261
23262
23263 l_segment := AcctDerRule_6(
23264 p_application_id => p_application_id
23265 , p_ae_header_id => l_ae_header_id
23266 , p_source_3 => p_source_3
23267 , x_transaction_coa_id => l_adr_transaction_coa_id
23268 , x_accounting_coa_id => l_adr_accounting_coa_id
23269 , x_flexfield_segment_code => l_adr_flexfield_segment_code
23270 , x_flex_value_set_id => l_adr_flex_value_set_id
23271 , x_value_type_code => l_adr_value_type_code
23272 , x_value_combination_id => l_adr_value_combination_id
23273 , x_value_segment_code => l_adr_value_segment_code
23274 , p_side => 'NA'
23275 , p_override_seg_flag => 'Y'
23276 );
23277
23278 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
23279
23280 xla_ae_lines_pkg.set_segment(
23281 p_to_segment_code => 'GL_ACCOUNT'
23282 , p_segment_value => l_segment
23283 , p_from_segment_code => l_adr_value_segment_code
23284 , p_from_combination_id => l_adr_value_combination_id
23285 , p_value_type_code => l_adr_value_type_code
23286 , p_transaction_coa_id => l_adr_transaction_coa_id
23287 , p_accounting_coa_id => l_adr_accounting_coa_id
23288 , p_flexfield_segment_code => l_adr_flexfield_segment_code
23289 , p_flex_value_set_id => l_adr_flex_value_set_id
23290 , p_adr_code => 'FV_445002_DWD_PYA_UNANCPT_ACCT'
23291 , p_adr_type_code => 'S'
23292 , p_component_type => l_component_type
23293 , p_component_code => l_component_code
23294 , p_component_type_code => l_component_type_code
23295 , p_component_appl_id => l_component_appl_id
23296 , p_amb_context_code => l_amb_context_code
23297 , p_entity_code => 'AP_INVOICES'
23298 , p_event_class_code => 'INVOICES'
23299 , p_side => 'NA'
23300 );
23301
23302 END IF;
23303
23304 --
23305 --
23306 END IF;
23307 --
23308 -- Bug 4922099
23309 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23310 (NVL(l_enc_upg_option, 'N') = 'O')
23311 ) AND
23312 (l_bflow_method_code = 'PRIOR_ENTRY')
23313 )
23314 THEN
23315 IF
23316 --
23317 1 = 2
23318 --
23319 THEN
23320 xla_accounting_err_pkg.build_message
23321 (p_appli_s_name => 'XLA'
23322 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23323 ,p_token_1 => 'LINE_NUMBER'
23324 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23325 ,p_token_2 => 'LINE_TYPE_NAME'
23326 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23327 l_component_type
23328 ,l_component_code
23329 ,l_component_type_code
23330 ,l_component_appl_id
23331 ,l_amb_context_code
23332 ,l_entity_code
23333 ,l_event_class_code
23334 )
23335 ,p_token_3 => 'OWNER'
23336 ,p_value_3 => xla_lookups_pkg.get_meaning(
23337 p_lookup_type => 'XLA_OWNER_TYPE'
23338 ,p_lookup_code => l_component_type_code
23339 )
23340 ,p_token_4 => 'PRODUCT_NAME'
23341 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23342 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23343 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23344 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23345 ,p_ae_header_id => NULL
23346 );
23347
23348 IF (C_LEVEL_ERROR>= g_log_level) THEN
23349 trace
23350 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23351 ,p_level => C_LEVEL_ERROR
23352 ,p_module => l_log_module);
23353 END IF;
23354 END IF;
23355 END IF;
23356 --
23357 --
23358 ------------------------------------------------------------------------------------------------
23359 -- 4219869 Business Flow
23360 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23361 -- Prior Entry. Currently, the following code is always generated.
23362 ------------------------------------------------------------------------------------------------
23363 XLA_AE_LINES_PKG.ValidateCurrentLine;
23364
23365 ------------------------------------------------------------------------------------
23366 -- 4219869 Business Flow
23367 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23368 ------------------------------------------------------------------------------------
23369 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23370
23371 ----------------------------------------------------------------------------------
23372 -- 4219869 Business Flow
23373 -- Update journal entry status -- Need to generate this within IF <condition>
23374 ----------------------------------------------------------------------------------
23375 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23376 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23377 ,p_balance_type_code => l_balance_type_code
23378 );
23379
23380 -------------------------------------------------------------------------------------------
23381 -- 4262811 - Generate the Accrual Reversal lines
23382 -------------------------------------------------------------------------------------------
23383 BEGIN
23384 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23385 (g_array_event(p_event_id).array_value_num('header_index'));
23386 IF l_acc_rev_flag IS NULL THEN
23387 l_acc_rev_flag := 'N';
23388 END IF;
23389 EXCEPTION
23390 WHEN OTHERS THEN
23391 l_acc_rev_flag := 'N';
23392 END;
23393 --
23394 IF (l_acc_rev_flag = 'Y') THEN
23395
23396 -- 4645092 ------------------------------------------------------------------------------
23397 -- To allow MPA report to determine if it should generate report process
23398 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23399 ------------------------------------------------------------------------------------------
23400
23401 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23402 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23403 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23404 -- call ADRs
23405 -- Bug 4922099
23406 --
23407 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23408 (NVL(l_actual_upg_option, 'N') = 'O') OR
23409 (NVL(l_enc_upg_option, 'N') = 'O')
23410 )
23411 THEN
23412 NULL;
23413 --
23414 --
23415
23416 l_ccid := AcctDerRule_3(
23417 p_application_id => p_application_id
23418 , p_ae_header_id => l_ae_header_id
23419 , p_source_2 => p_source_2
23420 , x_transaction_coa_id => l_adr_transaction_coa_id
23421 , x_accounting_coa_id => l_adr_accounting_coa_id
23422 , x_value_type_code => l_adr_value_type_code
23423 , p_side => 'NA'
23424 );
23425
23426 xla_ae_lines_pkg.set_ccid(
23427 p_code_combination_id => l_ccid
23428 , p_value_type_code => l_adr_value_type_code
23429 , p_transaction_coa_id => l_adr_transaction_coa_id
23430 , p_accounting_coa_id => l_adr_accounting_coa_id
23431 , p_adr_code => 'AP_INVOICE_DIST'
23432 , p_adr_type_code => 'S'
23433 , p_component_type => l_component_type
23434 , p_component_code => l_component_code
23435 , p_component_type_code => l_component_type_code
23436 , p_component_appl_id => l_component_appl_id
23437 , p_amb_context_code => l_amb_context_code
23438 , p_side => 'NA'
23439 );
23440
23441
23442 l_segment := AcctDerRule_6(
23443 p_application_id => p_application_id
23444 , p_ae_header_id => l_ae_header_id
23445 , p_source_3 => p_source_3
23446 , x_transaction_coa_id => l_adr_transaction_coa_id
23447 , x_accounting_coa_id => l_adr_accounting_coa_id
23448 , x_flexfield_segment_code => l_adr_flexfield_segment_code
23449 , x_flex_value_set_id => l_adr_flex_value_set_id
23450 , x_value_type_code => l_adr_value_type_code
23451 , x_value_combination_id => l_adr_value_combination_id
23452 , x_value_segment_code => l_adr_value_segment_code
23453 , p_side => 'NA'
23454 , p_override_seg_flag => 'Y'
23455 );
23456
23457 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
23458
23459 xla_ae_lines_pkg.set_segment(
23460 p_to_segment_code => 'GL_ACCOUNT'
23461 , p_segment_value => l_segment
23462 , p_from_segment_code => l_adr_value_segment_code
23463 , p_from_combination_id => l_adr_value_combination_id
23464 , p_value_type_code => l_adr_value_type_code
23465 , p_transaction_coa_id => l_adr_transaction_coa_id
23466 , p_accounting_coa_id => l_adr_accounting_coa_id
23467 , p_flexfield_segment_code => l_adr_flexfield_segment_code
23468 , p_flex_value_set_id => l_adr_flex_value_set_id
23469 , p_adr_code => 'FV_445002_DWD_PYA_UNANCPT_ACCT'
23470 , p_adr_type_code => 'S'
23471 , p_component_type => l_component_type
23472 , p_component_code => l_component_code
23473 , p_component_type_code => l_component_type_code
23474 , p_component_appl_id => l_component_appl_id
23475 , p_amb_context_code => l_amb_context_code
23476 , p_entity_code => 'AP_INVOICES'
23477 , p_event_class_code => 'INVOICES'
23478 , p_side => 'NA'
23479 );
23480
23481 END IF;
23482
23483 --
23484 --
23485 END IF;
23486
23487 --
23488 -- Update the line information that should be overwritten
23489 --
23490 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23491 p_header_num => 1);
23492 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23493
23494 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23495
23496 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23497 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23498 END IF;
23499
23500 --
23501 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23502 --
23503 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23504 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23505 ELSE
23506 ---------------------------------------------------------------------------------------------------
23507 -- 4262811a Switch Sign
23508 ---------------------------------------------------------------------------------------------------
23509 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23510 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23511 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23512 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23513 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23514 -- 5132302
23515 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23516 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23517
23518 END IF;
23519
23520 -- 4955764
23521 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23522 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23523
23524
23525 XLA_AE_LINES_PKG.ValidateCurrentLine;
23526 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23527
23528 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23529 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23530 ,p_balance_type_code => l_balance_type_code);
23531
23532 END IF;
23533
23534 -----------------------------------------------------------------------------------------
23535 -- 4262811 Multiperiod Accounting
23536 -----------------------------------------------------------------------------------------
23537 -- No MPA option is assigned.
23538
23539
23540 END IF;
23541 END IF;
23542 --
23543
23544 --
23545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23546 trace
23547 (p_msg => 'END of AcctLineType_43'
23548 ,p_level => C_LEVEL_PROCEDURE
23549 ,p_module => l_log_module);
23550 END IF;
23551 --
23552 EXCEPTION
23553 WHEN xla_exceptions_pkg.application_exception THEN
23554 RAISE;
23555 WHEN OTHERS THEN
23556 xla_exceptions_pkg.raise_message
23557 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_43');
23558 END AcctLineType_43;
23559 --
23560
23561 ---------------------------------------
23562 --
23563 -- PRIVATE FUNCTION
23564 -- AcctLineType_44
23565 --
23566 ---------------------------------------
23567 PROCEDURE AcctLineType_44 (
23568 p_application_id IN NUMBER
23569 ,p_event_id IN NUMBER
23570 ,p_calculate_acctd_flag IN VARCHAR2
23571 ,p_calculate_g_l_flag IN VARCHAR2
23572 ,p_actual_flag IN OUT VARCHAR2
23573 ,p_balance_type_code OUT VARCHAR2
23574 ,p_gain_or_loss_ref OUT VARCHAR2
23575
23576 --Invoice Distribution Description
23577 , p_source_1 IN VARCHAR2
23578 --Invoice Distribution Account
23579 , p_source_2 IN NUMBER
23580 --Invoice Distribution Type
23581 , p_source_8 IN VARCHAR2
23582 , p_source_8_meaning IN VARCHAR2
23583 --Federal Prior Year Flag
23584 , p_source_9 IN VARCHAR2
23585 --Accrue on Receipt Option
23586 , p_source_11 IN VARCHAR2
23587 , p_source_11_meaning IN VARCHAR2
23588 --Purchase Order Distribution Identifier
23589 , p_source_12 IN NUMBER
23590 --Invoice Type
23591 , p_source_13 IN VARCHAR2
23592 , p_source_13_meaning IN VARCHAR2
23593 --Federal Adjustment Type
23594 , p_source_14 IN VARCHAR2
23595 --Accounting Reversal Indicator
23596 , p_source_15 IN VARCHAR2
23597 --Distribution Link Type
23598 , p_source_17 IN VARCHAR2
23599 --Allocation to Main Distribution Identifier
23600 , p_source_19 IN NUMBER
23601 --Invoice Identifier
23602 , p_source_20 IN NUMBER
23603 --Business Flow Accounts Payable Application Identifier
23604 , p_source_21 IN NUMBER
23605 --Business Flow Invoice Distribution Type
23606 , p_source_22 IN VARCHAR2
23607 --Business Flow Invoice Entity Code
23608 , p_source_23 IN VARCHAR2
23609 --Business Flow Invoice Distribution Identifier
23610 , p_source_24 IN NUMBER
23611 --Business Flow Invoice Identifier
23612 , p_source_25 IN NUMBER
23613 --Invoice Distribution Identifier
23614 , p_source_26 IN NUMBER
23615 --Payables Encumbrance Upgrade Credit Account
23616 , p_source_27 IN NUMBER
23617 --Payables Encumbrance Upgrade Credit Amount
23618 , p_source_28 IN NUMBER
23619 --Invoice Currency Code
23620 , p_source_29 IN VARCHAR2
23621 --Payables Encumbrance Upgrade Credit Base Amount
23622 , p_source_30 IN NUMBER
23623 --Payables Encumbrance Upgrade Debit Account
23624 , p_source_31 IN NUMBER
23625 --Payables Encumbrance Upgrade Debit Amount
23626 , p_source_32 IN NUMBER
23627 --Payables Encumbrance Upgrade Debit Base Amount
23628 , p_source_33 IN NUMBER
23629 --Payables Encumbrance Upgrade Option
23630 , p_source_34 IN VARCHAR2
23631 --Invoice Exchange Date
23632 , p_source_36 IN DATE
23633 --Invoice Exchange Rate
23634 , p_source_37 IN NUMBER
23635 --Invoice Exchange Rate Type
23636 , p_source_38 IN VARCHAR2
23637 --Deferred Accounting End Date
23638 , p_source_39 IN DATE
23639 --Deferred Accounting Option
23640 , p_source_40 IN VARCHAR2
23641 --Deferred Accounting Start Date
23642 , p_source_41 IN DATE
23643 --Override Accounted Amount Indicator
23644 , p_source_42 IN VARCHAR2
23645 , p_source_42_meaning IN VARCHAR2
23646 --Invoice Supplier Identifier
23647 , p_source_43 IN NUMBER
23648 --Invoice Supplier Site Identifier
23649 , p_source_44 IN NUMBER
23650 --Third Party Type
23651 , p_source_45 IN VARCHAR2
23652 --Parent Reversal Identifier
23653 , p_source_46 IN NUMBER
23654 --Invoice Distribution Statistical Amount
23655 , p_source_47 IN NUMBER
23656 --Invoice Distribution Tax Line Identifier
23657 , p_source_48 IN NUMBER
23658 --Invoice Distribution Tax Distribution Identifier from Tax
23659 , p_source_49 IN NUMBER
23660 --Invoice Distribution Summary Tax Line Identifier
23661 , p_source_50 IN NUMBER
23662 --Payables Upgrade Credit Encumbrance Type Identifier
23663 , p_source_51 IN NUMBER
23664 --Payables Upgrade Debit Encumbrance Type Identifier
23665 , p_source_52 IN NUMBER
23666 --Invoice Distribution Amount
23667 , p_source_55 IN NUMBER
23668 --Invoice Distribution Ledger Amount
23669 , p_source_56 IN NUMBER
23670 )
23671 IS
23672
23673 l_component_type VARCHAR2(80);
23674 l_component_code VARCHAR2(30);
23675 l_component_type_code VARCHAR2(1);
23676 l_component_appl_id INTEGER;
23677 l_amb_context_code VARCHAR2(30);
23678 l_entity_code VARCHAR2(30);
23679 l_event_class_code VARCHAR2(30);
23680 l_ae_header_id NUMBER;
23681 l_event_type_code VARCHAR2(30);
23682 l_line_definition_code VARCHAR2(30);
23683 l_line_definition_owner_code VARCHAR2(1);
23684 --
23685 -- adr variables
23686 l_segment VARCHAR2(30);
23687 l_ccid NUMBER;
23688 l_adr_transaction_coa_id NUMBER;
23689 l_adr_accounting_coa_id NUMBER;
23690 l_adr_flexfield_segment_code VARCHAR2(30);
23691 l_adr_flex_value_set_id NUMBER;
23692 l_adr_value_type_code VARCHAR2(30);
23693 l_adr_value_combination_id NUMBER;
23694 l_adr_value_segment_code VARCHAR2(30);
23695
23696 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23697 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23698 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23699 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23700
23701 -- 4262811 Variables ------------------------------------------------------------------------------------------
23702 l_entered_amt_idx NUMBER;
23703 l_accted_amt_idx NUMBER;
23704 l_acc_rev_flag VARCHAR2(1);
23705 l_accrual_line_num NUMBER;
23706 l_tmp_amt NUMBER;
23707 l_acc_rev_natural_side_code VARCHAR2(1);
23708
23709 l_num_entries NUMBER;
23710 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23711 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23712 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23713 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23714 l_recog_line_1 NUMBER;
23715 l_recog_line_2 NUMBER;
23716
23717 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23718 l_bflow_applied_to_amt NUMBER; -- 5132302
23719 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23720
23721 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23722
23723 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23724 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23725
23726 ---------------------------------------------------------------------------------------------------------------
23727
23728
23729 --
23730 -- bulk performance
23731 --
23732 l_balance_type_code VARCHAR2(1);
23733 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23734 l_log_module VARCHAR2(240);
23735
23736 --
23737 -- Upgrade strategy
23738 --
23739 l_actual_upg_option VARCHAR2(1);
23740 l_enc_upg_option VARCHAR2(1);
23741
23742 --
23743 BEGIN
23744 --
23745 IF g_log_enabled THEN
23746 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
23747 END IF;
23748 --
23749 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23750
23751 trace
23752 (p_msg => 'BEGIN of AcctLineType_44'
23753 ,p_level => C_LEVEL_PROCEDURE
23754 ,p_module => l_log_module);
23755
23756 END IF;
23757 --
23758 l_component_type := 'AMB_JLT';
23759 l_component_code := 'FV_AP_INV_ UPWARD_PYA_CR';
23760 l_component_type_code := 'S';
23761 l_component_appl_id := 200;
23762 l_amb_context_code := 'DEFAULT';
23763 l_entity_code := 'AP_INVOICES';
23764 l_event_class_code := 'INVOICES';
23765 l_event_type_code := 'INVOICES_ALL';
23766 l_line_definition_owner_code := 'S';
23767 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
23768 --
23769 l_balance_type_code := 'A';
23770 l_segment := NULL;
23771 l_ccid := NULL;
23772 l_adr_transaction_coa_id := NULL;
23773 l_adr_accounting_coa_id := NULL;
23774 l_adr_flexfield_segment_code := NULL;
23775 l_adr_flex_value_set_id := NULL;
23776 l_adr_value_type_code := NULL;
23777 l_adr_value_combination_id := NULL;
23778 l_adr_value_segment_code := NULL;
23779
23780 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23781 l_bflow_class_code := ''; -- 4219869 Business Flow
23782 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23783 l_budgetary_control_flag := 'Y';
23784
23785 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23786 l_bflow_applied_to_amt := NULL; -- 5132302
23787 l_entered_amt_idx := NULL; -- 4262811
23788 l_accted_amt_idx := NULL; -- 4262811
23789 l_acc_rev_flag := NULL; -- 4262811
23790 l_accrual_line_num := NULL; -- 4262811
23791 l_tmp_amt := NULL; -- 4262811
23792 --
23793
23794 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23795 l_balance_type_code <> 'B' THEN
23796 IF ((NVL(p_source_9,'
23797 ') = 'Y' AND
23798 p_source_12 IS NULL AND
23799 (NVL(p_source_13,'
23800 ') = 'MIXED' OR
23801 NVL(p_source_13,'
23802 ') = 'STANDARD' OR
23803 NVL(p_source_13,'
23804 ') = 'INTEREST' OR
23805 NVL(p_source_13,'
23806 ') = 'EXPENSE REPORT') AND
23807 (NVL(p_source_8,'
23808 ') = 'ITEM' OR
23809 NVL(p_source_8,'
23810 ') = 'ACCRUAL' OR
23811 NVL(p_source_8,'
23812 ') = 'FREIGHT' OR
23813 NVL(p_source_8,'
23814 ') = 'MISCELLANEOUS' OR
23815 NVL(p_source_8,'
23816 ') = 'IPV')
23817 ) OR (NVL(p_source_9,'
23818 ') = 'Y' AND
23819 NVL(p_source_8,'
23820 ') = 'IPV' AND
23821 p_source_12 IS NOT NULL )
23822 ) AND NVL(p_source_14,'
23823 ') = 'Upward'
23824 THEN
23825
23826 --
23827 XLA_AE_LINES_PKG.SetNewLine;
23828
23829 p_balance_type_code := l_balance_type_code;
23830 -- set the flag so later we will know whether the gain loss line needs to be created
23831
23832 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23833 p_actual_flag :='A';
23834 END IF;
23835
23836 --
23837 -- bulk performance
23838 --
23839 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23840 p_header_num => 0); -- 4262811
23841 --
23842 -- set accounting line options
23843 --
23844 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23845 p_natural_side_code => 'C'
23846 , p_gain_or_loss_flag => 'N'
23847 , p_gl_transfer_mode_code => 'S'
23848 , p_acct_entry_type_code => 'A'
23849 , p_switch_side_flag => 'N'
23850 , p_merge_duplicate_code => 'N'
23851 );
23852 --
23853 l_acc_rev_natural_side_code := 'D'; -- 4262811
23854 --
23855 --
23856 -- set accounting line type info
23857 --
23858 xla_ae_lines_pkg.SetAcctLineType
23859 (p_component_type => l_component_type
23860 ,p_event_type_code => l_event_type_code
23861 ,p_line_definition_owner_code => l_line_definition_owner_code
23862 ,p_line_definition_code => l_line_definition_code
23863 ,p_accounting_line_code => l_component_code
23864 ,p_accounting_line_type_code => l_component_type_code
23865 ,p_accounting_line_appl_id => l_component_appl_id
23866 ,p_amb_context_code => l_amb_context_code
23867 ,p_entity_code => l_entity_code
23868 ,p_event_class_code => l_event_class_code);
23869 --
23870 -- set accounting class
23871 --
23872 xla_ae_lines_pkg.SetAcctClass(
23873 p_accounting_class_code => 'ACCOUNTSPAYABLE'
23874 , p_ae_header_id => l_ae_header_id
23875 );
23876
23877 --
23878 -- set rounding class
23879 --
23880 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23881 'ACCOUNTSPAYABLE';
23882
23883 --
23884 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23885 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23886 --
23887 -- bulk performance
23888 --
23889 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23890
23891 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23892 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23893
23894 -- 4955764
23895 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23896 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23897
23898 -- 4458381 Public Sector Enh
23899
23900 --
23901 -- set accounting attributes for the line type
23902 --
23903 l_entered_amt_idx := 24;
23904 l_accted_amt_idx := 29;
23905 l_bflow_applied_to_amt_idx := 7; -- 5132302
23906 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23907 l_rec_acct_attrs.array_char_value(1) := p_source_15;
23908 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23909 l_rec_acct_attrs.array_num_value(2) :=
23910 xla_ae_sources_pkg.GetSystemSourceNum(
23911 p_source_code => 'XLA_EVENT_APPL_ID'
23912 , p_source_type_code => 'Y'
23913 , p_source_application_id => 602
23914 );
23915 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23916 l_rec_acct_attrs.array_char_value(3) := p_source_17;
23917 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23918 l_rec_acct_attrs.array_char_value(4) :=
23919 xla_ae_sources_pkg.GetSystemSourceChar(
23920 p_source_code => 'XLA_ENTITY_CODE'
23921 , p_source_type_code => 'Y'
23922 , p_source_application_id => 602
23923 );
23924 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23925 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
23926 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23927 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
23928 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
23929 l_rec_acct_attrs.array_num_value(7) := p_source_55;
23930 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
23931 l_rec_acct_attrs.array_num_value(8) := p_source_21;
23932 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23933 l_rec_acct_attrs.array_char_value(9) := p_source_22;
23934 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
23935 l_rec_acct_attrs.array_char_value(10) := p_source_23;
23936 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
23937 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
23938 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23939 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
23940 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
23941 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
23942 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
23943 l_rec_acct_attrs.array_char_value(14) := p_source_17;
23944 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
23945 l_rec_acct_attrs.array_num_value(15) := p_source_27;
23946 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
23947 l_rec_acct_attrs.array_num_value(16) := p_source_28;
23948 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
23949 l_rec_acct_attrs.array_char_value(17) := p_source_29;
23950 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
23951 l_rec_acct_attrs.array_num_value(18) := p_source_30;
23952 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
23953 l_rec_acct_attrs.array_num_value(19) := p_source_31;
23954 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
23955 l_rec_acct_attrs.array_num_value(20) := p_source_32;
23956 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
23957 l_rec_acct_attrs.array_char_value(21) := p_source_29;
23958 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
23959 l_rec_acct_attrs.array_num_value(22) := p_source_33;
23960 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
23961 l_rec_acct_attrs.array_char_value(23) := p_source_34;
23962 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
23963 l_rec_acct_attrs.array_num_value(24) := p_source_55;
23964 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
23965 l_rec_acct_attrs.array_char_value(25) := p_source_29;
23966 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
23967 l_rec_acct_attrs.array_date_value(26) := p_source_36;
23968 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
23969 l_rec_acct_attrs.array_num_value(27) := p_source_37;
23970 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
23971 l_rec_acct_attrs.array_char_value(28) := p_source_38;
23972 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
23973 l_rec_acct_attrs.array_num_value(29) := p_source_56;
23974 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
23975 l_rec_acct_attrs.array_date_value(30) := p_source_39;
23976 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
23977 l_rec_acct_attrs.array_char_value(31) := p_source_40;
23978 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
23979 l_rec_acct_attrs.array_date_value(32) := p_source_41;
23980 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
23981 l_rec_acct_attrs.array_char_value(33) := p_source_42;
23982 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
23983 l_rec_acct_attrs.array_num_value(34) := p_source_43;
23984 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
23985 l_rec_acct_attrs.array_num_value(35) := p_source_44;
23986 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
23987 l_rec_acct_attrs.array_char_value(36) := p_source_45;
23988 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
23989 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
23990 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
23991 l_rec_acct_attrs.array_char_value(38) := p_source_17;
23992 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
23993 l_rec_acct_attrs.array_num_value(39) := p_source_47;
23994 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
23995 l_rec_acct_attrs.array_num_value(40) := p_source_48;
23996 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
23997 l_rec_acct_attrs.array_num_value(41) := p_source_49;
23998 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
23999 l_rec_acct_attrs.array_num_value(42) := p_source_50;
24000 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
24001 l_rec_acct_attrs.array_num_value(43) := p_source_51;
24002 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
24003 l_rec_acct_attrs.array_num_value(44) := p_source_52;
24004
24005 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24006 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24007
24008 ---------------------------------------------------------------------------------------------------------------
24009 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24010 ---------------------------------------------------------------------------------------------------------------
24011 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24012
24013 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24014 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24015
24016 IF xla_accounting_cache_pkg.GetValueChar
24017 (p_source_code => 'LEDGER_CATEGORY_CODE'
24018 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24019 AND l_bflow_method_code = 'PRIOR_ENTRY'
24020 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24021 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24022 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24023 )
24024 THEN
24025 xla_ae_lines_pkg.BflowUpgEntry
24026 (p_business_method_code => l_bflow_method_code
24027 ,p_business_class_code => l_bflow_class_code
24028 ,p_balance_type => l_balance_type_code);
24029 ELSE
24030 NULL;
24031 -- No business flow processing for business flow method of NONE.
24032 END IF;
24033
24034 --
24035 -- call analytical criteria
24036 --
24037
24038 --
24039 -- call description
24040 --
24041
24042 xla_ae_lines_pkg.SetLineDescription(
24043 p_ae_header_id => l_ae_header_id
24044 ,p_description => Description_2 (
24045 p_application_id => p_application_id
24046 , p_ae_header_id => l_ae_header_id
24047 , p_source_1 => p_source_1
24048 )
24049 );
24050
24051
24052 --
24053 -- call ADRs
24054 -- Bug 4922099
24055 --
24056 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24057 (NVL(l_actual_upg_option, 'N') = 'O') OR
24058 (NVL(l_enc_upg_option, 'N') = 'O')
24059 )
24060 THEN
24061 NULL;
24062 --
24063 --
24064
24065 l_ccid := AcctDerRule_3(
24066 p_application_id => p_application_id
24067 , p_ae_header_id => l_ae_header_id
24068 , p_source_2 => p_source_2
24069 , x_transaction_coa_id => l_adr_transaction_coa_id
24070 , x_accounting_coa_id => l_adr_accounting_coa_id
24071 , x_value_type_code => l_adr_value_type_code
24072 , p_side => 'NA'
24073 );
24074
24075 xla_ae_lines_pkg.set_ccid(
24076 p_code_combination_id => l_ccid
24077 , p_value_type_code => l_adr_value_type_code
24078 , p_transaction_coa_id => l_adr_transaction_coa_id
24079 , p_accounting_coa_id => l_adr_accounting_coa_id
24080 , p_adr_code => 'AP_INVOICE_DIST'
24081 , p_adr_type_code => 'S'
24082 , p_component_type => l_component_type
24083 , p_component_code => l_component_code
24084 , p_component_type_code => l_component_type_code
24085 , p_component_appl_id => l_component_appl_id
24086 , p_amb_context_code => l_amb_context_code
24087 , p_side => 'NA'
24088 );
24089
24090
24091 l_segment := AcctDerRule_14(
24092 p_application_id => p_application_id
24093 , p_ae_header_id => l_ae_header_id
24094 , p_source_11 => p_source_11
24095 , p_source_11_meaning => p_source_11_meaning
24096 , p_source_12 => p_source_12
24097 , x_transaction_coa_id => l_adr_transaction_coa_id
24098 , x_accounting_coa_id => l_adr_accounting_coa_id
24099 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24100 , x_flex_value_set_id => l_adr_flex_value_set_id
24101 , x_value_type_code => l_adr_value_type_code
24102 , x_value_combination_id => l_adr_value_combination_id
24103 , x_value_segment_code => l_adr_value_segment_code
24104 , p_side => 'NA'
24105 , p_override_seg_flag => 'Y'
24106 );
24107
24108 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24109
24110 xla_ae_lines_pkg.set_segment(
24111 p_to_segment_code => 'GL_ACCOUNT'
24112 , p_segment_value => l_segment
24113 , p_from_segment_code => l_adr_value_segment_code
24114 , p_from_combination_id => l_adr_value_combination_id
24115 , p_value_type_code => l_adr_value_type_code
24116 , p_transaction_coa_id => l_adr_transaction_coa_id
24117 , p_accounting_coa_id => l_adr_accounting_coa_id
24118 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24119 , p_flex_value_set_id => l_adr_flex_value_set_id
24120 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
24121 , p_adr_type_code => 'S'
24122 , p_component_type => l_component_type
24123 , p_component_code => l_component_code
24124 , p_component_type_code => l_component_type_code
24125 , p_component_appl_id => l_component_appl_id
24126 , p_amb_context_code => l_amb_context_code
24127 , p_entity_code => 'AP_INVOICES'
24128 , p_event_class_code => 'INVOICES'
24129 , p_side => 'NA'
24130 );
24131
24132 END IF;
24133
24134 --
24135 --
24136 END IF;
24137 --
24138 -- Bug 4922099
24139 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24140 (NVL(l_enc_upg_option, 'N') = 'O')
24141 ) AND
24142 (l_bflow_method_code = 'PRIOR_ENTRY')
24143 )
24144 THEN
24145 IF
24146 --
24147 1 = 2
24148 --
24149 THEN
24150 xla_accounting_err_pkg.build_message
24151 (p_appli_s_name => 'XLA'
24152 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24153 ,p_token_1 => 'LINE_NUMBER'
24154 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24155 ,p_token_2 => 'LINE_TYPE_NAME'
24156 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24157 l_component_type
24158 ,l_component_code
24159 ,l_component_type_code
24160 ,l_component_appl_id
24161 ,l_amb_context_code
24162 ,l_entity_code
24163 ,l_event_class_code
24164 )
24165 ,p_token_3 => 'OWNER'
24166 ,p_value_3 => xla_lookups_pkg.get_meaning(
24167 p_lookup_type => 'XLA_OWNER_TYPE'
24168 ,p_lookup_code => l_component_type_code
24169 )
24170 ,p_token_4 => 'PRODUCT_NAME'
24171 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24172 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24173 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24174 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24175 ,p_ae_header_id => NULL
24176 );
24177
24178 IF (C_LEVEL_ERROR>= g_log_level) THEN
24179 trace
24180 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24181 ,p_level => C_LEVEL_ERROR
24182 ,p_module => l_log_module);
24183 END IF;
24184 END IF;
24185 END IF;
24186 --
24187 --
24188 ------------------------------------------------------------------------------------------------
24189 -- 4219869 Business Flow
24190 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24191 -- Prior Entry. Currently, the following code is always generated.
24192 ------------------------------------------------------------------------------------------------
24193 XLA_AE_LINES_PKG.ValidateCurrentLine;
24194
24195 ------------------------------------------------------------------------------------
24196 -- 4219869 Business Flow
24197 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24198 ------------------------------------------------------------------------------------
24199 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24200
24201 ----------------------------------------------------------------------------------
24202 -- 4219869 Business Flow
24203 -- Update journal entry status -- Need to generate this within IF <condition>
24204 ----------------------------------------------------------------------------------
24205 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24206 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24207 ,p_balance_type_code => l_balance_type_code
24208 );
24209
24210 -------------------------------------------------------------------------------------------
24211 -- 4262811 - Generate the Accrual Reversal lines
24212 -------------------------------------------------------------------------------------------
24213 BEGIN
24214 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24215 (g_array_event(p_event_id).array_value_num('header_index'));
24216 IF l_acc_rev_flag IS NULL THEN
24217 l_acc_rev_flag := 'N';
24218 END IF;
24219 EXCEPTION
24220 WHEN OTHERS THEN
24221 l_acc_rev_flag := 'N';
24222 END;
24223 --
24224 IF (l_acc_rev_flag = 'Y') THEN
24225
24226 -- 4645092 ------------------------------------------------------------------------------
24227 -- To allow MPA report to determine if it should generate report process
24228 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24229 ------------------------------------------------------------------------------------------
24230
24231 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24232 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24233 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24234 -- call ADRs
24235 -- Bug 4922099
24236 --
24237 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24238 (NVL(l_actual_upg_option, 'N') = 'O') OR
24239 (NVL(l_enc_upg_option, 'N') = 'O')
24240 )
24241 THEN
24242 NULL;
24243 --
24244 --
24245
24246 l_ccid := AcctDerRule_3(
24247 p_application_id => p_application_id
24248 , p_ae_header_id => l_ae_header_id
24249 , p_source_2 => p_source_2
24250 , x_transaction_coa_id => l_adr_transaction_coa_id
24251 , x_accounting_coa_id => l_adr_accounting_coa_id
24252 , x_value_type_code => l_adr_value_type_code
24253 , p_side => 'NA'
24254 );
24255
24256 xla_ae_lines_pkg.set_ccid(
24257 p_code_combination_id => l_ccid
24258 , p_value_type_code => l_adr_value_type_code
24259 , p_transaction_coa_id => l_adr_transaction_coa_id
24260 , p_accounting_coa_id => l_adr_accounting_coa_id
24261 , p_adr_code => 'AP_INVOICE_DIST'
24262 , p_adr_type_code => 'S'
24263 , p_component_type => l_component_type
24264 , p_component_code => l_component_code
24265 , p_component_type_code => l_component_type_code
24266 , p_component_appl_id => l_component_appl_id
24267 , p_amb_context_code => l_amb_context_code
24268 , p_side => 'NA'
24269 );
24270
24271
24272 l_segment := AcctDerRule_14(
24273 p_application_id => p_application_id
24274 , p_ae_header_id => l_ae_header_id
24275 , p_source_11 => p_source_11
24276 , p_source_11_meaning => p_source_11_meaning
24277 , p_source_12 => p_source_12
24278 , x_transaction_coa_id => l_adr_transaction_coa_id
24279 , x_accounting_coa_id => l_adr_accounting_coa_id
24280 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24281 , x_flex_value_set_id => l_adr_flex_value_set_id
24282 , x_value_type_code => l_adr_value_type_code
24283 , x_value_combination_id => l_adr_value_combination_id
24284 , x_value_segment_code => l_adr_value_segment_code
24285 , p_side => 'NA'
24286 , p_override_seg_flag => 'Y'
24287 );
24288
24289 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24290
24291 xla_ae_lines_pkg.set_segment(
24292 p_to_segment_code => 'GL_ACCOUNT'
24293 , p_segment_value => l_segment
24294 , p_from_segment_code => l_adr_value_segment_code
24295 , p_from_combination_id => l_adr_value_combination_id
24296 , p_value_type_code => l_adr_value_type_code
24297 , p_transaction_coa_id => l_adr_transaction_coa_id
24298 , p_accounting_coa_id => l_adr_accounting_coa_id
24299 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24300 , p_flex_value_set_id => l_adr_flex_value_set_id
24301 , p_adr_code => 'FV_4X9101_UPWARD_PYA_CR'
24302 , p_adr_type_code => 'S'
24303 , p_component_type => l_component_type
24304 , p_component_code => l_component_code
24305 , p_component_type_code => l_component_type_code
24306 , p_component_appl_id => l_component_appl_id
24307 , p_amb_context_code => l_amb_context_code
24308 , p_entity_code => 'AP_INVOICES'
24309 , p_event_class_code => 'INVOICES'
24310 , p_side => 'NA'
24311 );
24312
24313 END IF;
24314
24315 --
24316 --
24317 END IF;
24318
24319 --
24320 -- Update the line information that should be overwritten
24321 --
24322 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24323 p_header_num => 1);
24324 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24325
24326 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24327
24328 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24329 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24330 END IF;
24331
24332 --
24333 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24334 --
24335 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24336 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24337 ELSE
24338 ---------------------------------------------------------------------------------------------------
24339 -- 4262811a Switch Sign
24340 ---------------------------------------------------------------------------------------------------
24341 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24342 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24343 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24344 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24345 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24346 -- 5132302
24347 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24348 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24349
24350 END IF;
24351
24352 -- 4955764
24353 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24354 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24355
24356
24357 XLA_AE_LINES_PKG.ValidateCurrentLine;
24358 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24359
24360 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24361 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24362 ,p_balance_type_code => l_balance_type_code);
24363
24364 END IF;
24365
24366 -----------------------------------------------------------------------------------------
24367 -- 4262811 Multiperiod Accounting
24368 -----------------------------------------------------------------------------------------
24369 -- No MPA option is assigned.
24370
24371
24372 END IF;
24373 END IF;
24374 --
24375
24376 --
24377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24378 trace
24379 (p_msg => 'END of AcctLineType_44'
24380 ,p_level => C_LEVEL_PROCEDURE
24381 ,p_module => l_log_module);
24382 END IF;
24383 --
24384 EXCEPTION
24385 WHEN xla_exceptions_pkg.application_exception THEN
24386 RAISE;
24387 WHEN OTHERS THEN
24388 xla_exceptions_pkg.raise_message
24389 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_44');
24390 END AcctLineType_44;
24391 --
24392
24393 ---------------------------------------
24394 --
24395 -- PRIVATE FUNCTION
24396 -- AcctLineType_45
24397 --
24398 ---------------------------------------
24399 PROCEDURE AcctLineType_45 (
24400 p_application_id IN NUMBER
24401 ,p_event_id IN NUMBER
24402 ,p_calculate_acctd_flag IN VARCHAR2
24403 ,p_calculate_g_l_flag IN VARCHAR2
24404 ,p_actual_flag IN OUT VARCHAR2
24405 ,p_balance_type_code OUT VARCHAR2
24406 ,p_gain_or_loss_ref OUT VARCHAR2
24407
24408 --Invoice Distribution Description
24409 , p_source_1 IN VARCHAR2
24410 --Invoice Distribution Account
24411 , p_source_2 IN NUMBER
24412 --Federal Fund Category
24413 , p_source_4 IN VARCHAR2
24414 --Federal Fund Expired Status
24415 , p_source_5 IN VARCHAR2
24416 --Federal Fund Category Description
24417 , p_source_6 IN VARCHAR2
24418 --Invoice Distribution Type
24419 , p_source_8 IN VARCHAR2
24420 , p_source_8_meaning IN VARCHAR2
24421 --Federal Prior Year Flag
24422 , p_source_9 IN VARCHAR2
24423 --Purchase Order Distribution Identifier
24424 , p_source_12 IN NUMBER
24425 --Invoice Type
24426 , p_source_13 IN VARCHAR2
24427 , p_source_13_meaning IN VARCHAR2
24428 --Federal Adjustment Type
24429 , p_source_14 IN VARCHAR2
24430 --Accounting Reversal Indicator
24431 , p_source_15 IN VARCHAR2
24432 --Distribution Link Type
24433 , p_source_17 IN VARCHAR2
24434 --Allocation to Main Distribution Identifier
24435 , p_source_19 IN NUMBER
24436 --Invoice Identifier
24437 , p_source_20 IN NUMBER
24438 --Business Flow Accounts Payable Application Identifier
24439 , p_source_21 IN NUMBER
24440 --Business Flow Invoice Distribution Type
24441 , p_source_22 IN VARCHAR2
24442 --Business Flow Invoice Entity Code
24443 , p_source_23 IN VARCHAR2
24444 --Business Flow Invoice Distribution Identifier
24445 , p_source_24 IN NUMBER
24446 --Business Flow Invoice Identifier
24447 , p_source_25 IN NUMBER
24448 --Invoice Distribution Identifier
24449 , p_source_26 IN NUMBER
24450 --Payables Encumbrance Upgrade Credit Account
24451 , p_source_27 IN NUMBER
24452 --Payables Encumbrance Upgrade Credit Amount
24453 , p_source_28 IN NUMBER
24454 --Invoice Currency Code
24455 , p_source_29 IN VARCHAR2
24456 --Payables Encumbrance Upgrade Credit Base Amount
24457 , p_source_30 IN NUMBER
24458 --Payables Encumbrance Upgrade Debit Account
24459 , p_source_31 IN NUMBER
24460 --Payables Encumbrance Upgrade Debit Amount
24461 , p_source_32 IN NUMBER
24462 --Payables Encumbrance Upgrade Debit Base Amount
24463 , p_source_33 IN NUMBER
24464 --Payables Encumbrance Upgrade Option
24465 , p_source_34 IN VARCHAR2
24466 --Invoice Exchange Date
24467 , p_source_36 IN DATE
24468 --Invoice Exchange Rate
24469 , p_source_37 IN NUMBER
24470 --Invoice Exchange Rate Type
24471 , p_source_38 IN VARCHAR2
24472 --Deferred Accounting End Date
24473 , p_source_39 IN DATE
24474 --Deferred Accounting Option
24475 , p_source_40 IN VARCHAR2
24476 --Deferred Accounting Start Date
24477 , p_source_41 IN DATE
24478 --Override Accounted Amount Indicator
24479 , p_source_42 IN VARCHAR2
24480 , p_source_42_meaning IN VARCHAR2
24481 --Invoice Supplier Identifier
24482 , p_source_43 IN NUMBER
24483 --Invoice Supplier Site Identifier
24484 , p_source_44 IN NUMBER
24485 --Third Party Type
24486 , p_source_45 IN VARCHAR2
24487 --Parent Reversal Identifier
24488 , p_source_46 IN NUMBER
24489 --Invoice Distribution Statistical Amount
24490 , p_source_47 IN NUMBER
24491 --Invoice Distribution Tax Line Identifier
24492 , p_source_48 IN NUMBER
24493 --Invoice Distribution Tax Distribution Identifier from Tax
24494 , p_source_49 IN NUMBER
24495 --Invoice Distribution Summary Tax Line Identifier
24496 , p_source_50 IN NUMBER
24497 --Payables Upgrade Credit Encumbrance Type Identifier
24498 , p_source_51 IN NUMBER
24499 --Payables Upgrade Debit Encumbrance Type Identifier
24500 , p_source_52 IN NUMBER
24501 --Invoice Distribution Amount
24502 , p_source_55 IN NUMBER
24503 --Invoice Distribution Ledger Amount
24504 , p_source_56 IN NUMBER
24505 )
24506 IS
24507
24508 l_component_type VARCHAR2(80);
24509 l_component_code VARCHAR2(30);
24510 l_component_type_code VARCHAR2(1);
24511 l_component_appl_id INTEGER;
24512 l_amb_context_code VARCHAR2(30);
24513 l_entity_code VARCHAR2(30);
24514 l_event_class_code VARCHAR2(30);
24515 l_ae_header_id NUMBER;
24516 l_event_type_code VARCHAR2(30);
24517 l_line_definition_code VARCHAR2(30);
24518 l_line_definition_owner_code VARCHAR2(1);
24519 --
24520 -- adr variables
24521 l_segment VARCHAR2(30);
24522 l_ccid NUMBER;
24523 l_adr_transaction_coa_id NUMBER;
24524 l_adr_accounting_coa_id NUMBER;
24525 l_adr_flexfield_segment_code VARCHAR2(30);
24526 l_adr_flex_value_set_id NUMBER;
24527 l_adr_value_type_code VARCHAR2(30);
24528 l_adr_value_combination_id NUMBER;
24529 l_adr_value_segment_code VARCHAR2(30);
24530
24531 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24532 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24533 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24534 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24535
24536 -- 4262811 Variables ------------------------------------------------------------------------------------------
24537 l_entered_amt_idx NUMBER;
24538 l_accted_amt_idx NUMBER;
24539 l_acc_rev_flag VARCHAR2(1);
24540 l_accrual_line_num NUMBER;
24541 l_tmp_amt NUMBER;
24542 l_acc_rev_natural_side_code VARCHAR2(1);
24543
24544 l_num_entries NUMBER;
24545 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24546 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24547 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24548 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24549 l_recog_line_1 NUMBER;
24550 l_recog_line_2 NUMBER;
24551
24552 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24553 l_bflow_applied_to_amt NUMBER; -- 5132302
24554 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24555
24556 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24557
24558 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24559 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24560
24561 ---------------------------------------------------------------------------------------------------------------
24562
24563
24564 --
24565 -- bulk performance
24566 --
24567 l_balance_type_code VARCHAR2(1);
24568 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24569 l_log_module VARCHAR2(240);
24570
24571 --
24572 -- Upgrade strategy
24573 --
24574 l_actual_upg_option VARCHAR2(1);
24575 l_enc_upg_option VARCHAR2(1);
24576
24577 --
24578 BEGIN
24579 --
24580 IF g_log_enabled THEN
24581 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
24582 END IF;
24583 --
24584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24585
24586 trace
24587 (p_msg => 'BEGIN of AcctLineType_45'
24588 ,p_level => C_LEVEL_PROCEDURE
24589 ,p_module => l_log_module);
24590
24591 END IF;
24592 --
24593 l_component_type := 'AMB_JLT';
24594 l_component_code := 'FV_AP_INV_ UPWARD_PYA_DR';
24595 l_component_type_code := 'S';
24596 l_component_appl_id := 200;
24597 l_amb_context_code := 'DEFAULT';
24598 l_entity_code := 'AP_INVOICES';
24599 l_event_class_code := 'INVOICES';
24600 l_event_type_code := 'INVOICES_ALL';
24601 l_line_definition_owner_code := 'S';
24602 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
24603 --
24604 l_balance_type_code := 'A';
24605 l_segment := NULL;
24606 l_ccid := NULL;
24607 l_adr_transaction_coa_id := NULL;
24608 l_adr_accounting_coa_id := NULL;
24609 l_adr_flexfield_segment_code := NULL;
24610 l_adr_flex_value_set_id := NULL;
24611 l_adr_value_type_code := NULL;
24612 l_adr_value_combination_id := NULL;
24613 l_adr_value_segment_code := NULL;
24614
24615 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24616 l_bflow_class_code := ''; -- 4219869 Business Flow
24617 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24618 l_budgetary_control_flag := 'Y';
24619
24620 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24621 l_bflow_applied_to_amt := NULL; -- 5132302
24622 l_entered_amt_idx := NULL; -- 4262811
24623 l_accted_amt_idx := NULL; -- 4262811
24624 l_acc_rev_flag := NULL; -- 4262811
24625 l_accrual_line_num := NULL; -- 4262811
24626 l_tmp_amt := NULL; -- 4262811
24627 --
24628
24629 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24630 l_balance_type_code <> 'B' THEN
24631 IF ((NVL(p_source_9,'
24632 ') = 'Y' AND
24633 p_source_12 IS NULL AND
24634 (NVL(p_source_13,'
24635 ') = 'STANDARD' OR
24636 NVL(p_source_13,'
24637 ') = 'MIXED' OR
24638 NVL(p_source_13,'
24639 ') = 'INTEREST' OR
24640 NVL(p_source_13,'
24641 ') = 'EXPENSE REPORT') AND
24642 (NVL(p_source_8,'
24643 ') = 'ITEM' OR
24644 NVL(p_source_8,'
24645 ') = 'FREIGHT' OR
24646 NVL(p_source_8,'
24647 ') = 'MISCELLANEOUS' OR
24648 NVL(p_source_8,'
24649 ') = 'ACCRUAL' OR
24650 NVL(p_source_8,'
24651 ') = 'IPV')
24652 ) OR (NVL(p_source_9,'
24653 ') = 'Y' AND
24654 NVL(p_source_8,'
24655 ') = 'IPV' AND
24656 p_source_12 IS NOT NULL )
24657 ) AND NVL(p_source_14,'
24658 ') = 'Upward'
24659 THEN
24660
24661 --
24662 XLA_AE_LINES_PKG.SetNewLine;
24663
24664 p_balance_type_code := l_balance_type_code;
24665 -- set the flag so later we will know whether the gain loss line needs to be created
24666
24667 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24668 p_actual_flag :='A';
24669 END IF;
24670
24671 --
24672 -- bulk performance
24673 --
24674 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24675 p_header_num => 0); -- 4262811
24676 --
24677 -- set accounting line options
24678 --
24679 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24680 p_natural_side_code => 'D'
24681 , p_gain_or_loss_flag => 'N'
24682 , p_gl_transfer_mode_code => 'S'
24683 , p_acct_entry_type_code => 'A'
24684 , p_switch_side_flag => 'N'
24685 , p_merge_duplicate_code => 'N'
24686 );
24687 --
24688 l_acc_rev_natural_side_code := 'C'; -- 4262811
24689 --
24690 --
24691 -- set accounting line type info
24692 --
24693 xla_ae_lines_pkg.SetAcctLineType
24694 (p_component_type => l_component_type
24695 ,p_event_type_code => l_event_type_code
24696 ,p_line_definition_owner_code => l_line_definition_owner_code
24697 ,p_line_definition_code => l_line_definition_code
24698 ,p_accounting_line_code => l_component_code
24699 ,p_accounting_line_type_code => l_component_type_code
24700 ,p_accounting_line_appl_id => l_component_appl_id
24701 ,p_amb_context_code => l_amb_context_code
24702 ,p_entity_code => l_entity_code
24703 ,p_event_class_code => l_event_class_code);
24704 --
24705 -- set accounting class
24706 --
24707 xla_ae_lines_pkg.SetAcctClass(
24708 p_accounting_class_code => 'ACCOUNTSPAYABLE'
24709 , p_ae_header_id => l_ae_header_id
24710 );
24711
24712 --
24713 -- set rounding class
24714 --
24715 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24716 'ACCOUNTSPAYABLE';
24717
24718 --
24719 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24720 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24721 --
24722 -- bulk performance
24723 --
24724 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24725
24726 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24727 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24728
24729 -- 4955764
24730 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24731 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24732
24733 -- 4458381 Public Sector Enh
24734
24735 --
24736 -- set accounting attributes for the line type
24737 --
24738 l_entered_amt_idx := 24;
24739 l_accted_amt_idx := 29;
24740 l_bflow_applied_to_amt_idx := 7; -- 5132302
24741 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24742 l_rec_acct_attrs.array_char_value(1) := p_source_15;
24743 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24744 l_rec_acct_attrs.array_num_value(2) :=
24745 xla_ae_sources_pkg.GetSystemSourceNum(
24746 p_source_code => 'XLA_EVENT_APPL_ID'
24747 , p_source_type_code => 'Y'
24748 , p_source_application_id => 602
24749 );
24750 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24751 l_rec_acct_attrs.array_char_value(3) := p_source_17;
24752 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24753 l_rec_acct_attrs.array_char_value(4) :=
24754 xla_ae_sources_pkg.GetSystemSourceChar(
24755 p_source_code => 'XLA_ENTITY_CODE'
24756 , p_source_type_code => 'Y'
24757 , p_source_application_id => 602
24758 );
24759 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24760 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
24761 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24762 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
24763 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
24764 l_rec_acct_attrs.array_num_value(7) := p_source_55;
24765 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
24766 l_rec_acct_attrs.array_num_value(8) := p_source_21;
24767 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24768 l_rec_acct_attrs.array_char_value(9) := p_source_22;
24769 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
24770 l_rec_acct_attrs.array_char_value(10) := p_source_23;
24771 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
24772 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
24773 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24774 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
24775 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
24776 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
24777 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
24778 l_rec_acct_attrs.array_char_value(14) := p_source_17;
24779 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
24780 l_rec_acct_attrs.array_num_value(15) := p_source_27;
24781 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
24782 l_rec_acct_attrs.array_num_value(16) := p_source_28;
24783 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
24784 l_rec_acct_attrs.array_char_value(17) := p_source_29;
24785 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
24786 l_rec_acct_attrs.array_num_value(18) := p_source_30;
24787 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
24788 l_rec_acct_attrs.array_num_value(19) := p_source_31;
24789 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
24790 l_rec_acct_attrs.array_num_value(20) := p_source_32;
24791 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
24792 l_rec_acct_attrs.array_char_value(21) := p_source_29;
24793 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
24794 l_rec_acct_attrs.array_num_value(22) := p_source_33;
24795 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
24796 l_rec_acct_attrs.array_char_value(23) := p_source_34;
24797 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
24798 l_rec_acct_attrs.array_num_value(24) := p_source_55;
24799 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
24800 l_rec_acct_attrs.array_char_value(25) := p_source_29;
24801 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
24802 l_rec_acct_attrs.array_date_value(26) := p_source_36;
24803 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
24804 l_rec_acct_attrs.array_num_value(27) := p_source_37;
24805 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
24806 l_rec_acct_attrs.array_char_value(28) := p_source_38;
24807 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
24808 l_rec_acct_attrs.array_num_value(29) := p_source_56;
24809 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
24810 l_rec_acct_attrs.array_date_value(30) := p_source_39;
24811 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
24812 l_rec_acct_attrs.array_char_value(31) := p_source_40;
24813 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
24814 l_rec_acct_attrs.array_date_value(32) := p_source_41;
24815 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
24816 l_rec_acct_attrs.array_char_value(33) := p_source_42;
24817 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
24818 l_rec_acct_attrs.array_num_value(34) := p_source_43;
24819 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
24820 l_rec_acct_attrs.array_num_value(35) := p_source_44;
24821 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
24822 l_rec_acct_attrs.array_char_value(36) := p_source_45;
24823 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
24824 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
24825 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
24826 l_rec_acct_attrs.array_char_value(38) := p_source_17;
24827 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
24828 l_rec_acct_attrs.array_num_value(39) := p_source_47;
24829 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
24830 l_rec_acct_attrs.array_num_value(40) := p_source_48;
24831 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
24832 l_rec_acct_attrs.array_num_value(41) := p_source_49;
24833 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
24834 l_rec_acct_attrs.array_num_value(42) := p_source_50;
24835 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
24836 l_rec_acct_attrs.array_num_value(43) := p_source_51;
24837 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
24838 l_rec_acct_attrs.array_num_value(44) := p_source_52;
24839
24840 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24841 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24842
24843 ---------------------------------------------------------------------------------------------------------------
24844 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24845 ---------------------------------------------------------------------------------------------------------------
24846 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24847
24848 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24849 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24850
24851 IF xla_accounting_cache_pkg.GetValueChar
24852 (p_source_code => 'LEDGER_CATEGORY_CODE'
24853 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24854 AND l_bflow_method_code = 'PRIOR_ENTRY'
24855 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24856 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24857 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24858 )
24859 THEN
24860 xla_ae_lines_pkg.BflowUpgEntry
24861 (p_business_method_code => l_bflow_method_code
24862 ,p_business_class_code => l_bflow_class_code
24863 ,p_balance_type => l_balance_type_code);
24864 ELSE
24865 NULL;
24866 -- No business flow processing for business flow method of NONE.
24867 END IF;
24868
24869 --
24870 -- call analytical criteria
24871 --
24872
24873 --
24874 -- call description
24875 --
24876
24877 xla_ae_lines_pkg.SetLineDescription(
24878 p_ae_header_id => l_ae_header_id
24879 ,p_description => Description_2 (
24880 p_application_id => p_application_id
24881 , p_ae_header_id => l_ae_header_id
24882 , p_source_1 => p_source_1
24883 )
24884 );
24885
24886
24887 --
24888 -- call ADRs
24889 -- Bug 4922099
24890 --
24891 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24892 (NVL(l_actual_upg_option, 'N') = 'O') OR
24893 (NVL(l_enc_upg_option, 'N') = 'O')
24894 )
24895 THEN
24896 NULL;
24897 --
24898 --
24899
24900 l_ccid := AcctDerRule_3(
24901 p_application_id => p_application_id
24902 , p_ae_header_id => l_ae_header_id
24903 , p_source_2 => p_source_2
24904 , x_transaction_coa_id => l_adr_transaction_coa_id
24905 , x_accounting_coa_id => l_adr_accounting_coa_id
24906 , x_value_type_code => l_adr_value_type_code
24907 , p_side => 'NA'
24908 );
24909
24910 xla_ae_lines_pkg.set_ccid(
24911 p_code_combination_id => l_ccid
24912 , p_value_type_code => l_adr_value_type_code
24913 , p_transaction_coa_id => l_adr_transaction_coa_id
24914 , p_accounting_coa_id => l_adr_accounting_coa_id
24915 , p_adr_code => 'AP_INVOICE_DIST'
24916 , p_adr_type_code => 'S'
24917 , p_component_type => l_component_type
24918 , p_component_code => l_component_code
24919 , p_component_type_code => l_component_type_code
24920 , p_component_appl_id => l_component_appl_id
24921 , p_amb_context_code => l_amb_context_code
24922 , p_side => 'NA'
24923 );
24924
24925
24926 l_segment := AcctDerRule_8(
24927 p_application_id => p_application_id
24928 , p_ae_header_id => l_ae_header_id
24929 , p_source_4 => p_source_4
24930 , p_source_5 => p_source_5
24931 , p_source_6 => p_source_6
24932 , x_transaction_coa_id => l_adr_transaction_coa_id
24933 , x_accounting_coa_id => l_adr_accounting_coa_id
24934 , x_flexfield_segment_code => l_adr_flexfield_segment_code
24935 , x_flex_value_set_id => l_adr_flex_value_set_id
24936 , x_value_type_code => l_adr_value_type_code
24937 , x_value_combination_id => l_adr_value_combination_id
24938 , x_value_segment_code => l_adr_value_segment_code
24939 , p_side => 'NA'
24940 , p_override_seg_flag => 'Y'
24941 );
24942
24943 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
24944
24945 xla_ae_lines_pkg.set_segment(
24946 p_to_segment_code => 'GL_ACCOUNT'
24947 , p_segment_value => l_segment
24948 , p_from_segment_code => l_adr_value_segment_code
24949 , p_from_combination_id => l_adr_value_combination_id
24950 , p_value_type_code => l_adr_value_type_code
24951 , p_transaction_coa_id => l_adr_transaction_coa_id
24952 , p_accounting_coa_id => l_adr_accounting_coa_id
24953 , p_flexfield_segment_code => l_adr_flexfield_segment_code
24954 , p_flex_value_set_id => l_adr_flex_value_set_id
24955 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
24956 , p_adr_type_code => 'S'
24957 , p_component_type => l_component_type
24958 , p_component_code => l_component_code
24959 , p_component_type_code => l_component_type_code
24960 , p_component_appl_id => l_component_appl_id
24961 , p_amb_context_code => l_amb_context_code
24962 , p_entity_code => 'AP_INVOICES'
24963 , p_event_class_code => 'INVOICES'
24964 , p_side => 'NA'
24965 );
24966
24967 END IF;
24968
24969 --
24970 --
24971 END IF;
24972 --
24973 -- Bug 4922099
24974 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24975 (NVL(l_enc_upg_option, 'N') = 'O')
24976 ) AND
24977 (l_bflow_method_code = 'PRIOR_ENTRY')
24978 )
24979 THEN
24980 IF
24981 --
24982 1 = 2
24983 --
24984 THEN
24985 xla_accounting_err_pkg.build_message
24986 (p_appli_s_name => 'XLA'
24987 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24988 ,p_token_1 => 'LINE_NUMBER'
24989 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24990 ,p_token_2 => 'LINE_TYPE_NAME'
24991 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24992 l_component_type
24993 ,l_component_code
24994 ,l_component_type_code
24995 ,l_component_appl_id
24996 ,l_amb_context_code
24997 ,l_entity_code
24998 ,l_event_class_code
24999 )
25000 ,p_token_3 => 'OWNER'
25001 ,p_value_3 => xla_lookups_pkg.get_meaning(
25002 p_lookup_type => 'XLA_OWNER_TYPE'
25003 ,p_lookup_code => l_component_type_code
25004 )
25005 ,p_token_4 => 'PRODUCT_NAME'
25006 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25007 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25008 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25009 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25010 ,p_ae_header_id => NULL
25011 );
25012
25013 IF (C_LEVEL_ERROR>= g_log_level) THEN
25014 trace
25015 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25016 ,p_level => C_LEVEL_ERROR
25017 ,p_module => l_log_module);
25018 END IF;
25019 END IF;
25020 END IF;
25021 --
25022 --
25023 ------------------------------------------------------------------------------------------------
25024 -- 4219869 Business Flow
25025 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25026 -- Prior Entry. Currently, the following code is always generated.
25027 ------------------------------------------------------------------------------------------------
25028 XLA_AE_LINES_PKG.ValidateCurrentLine;
25029
25030 ------------------------------------------------------------------------------------
25031 -- 4219869 Business Flow
25032 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25033 ------------------------------------------------------------------------------------
25034 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25035
25036 ----------------------------------------------------------------------------------
25037 -- 4219869 Business Flow
25038 -- Update journal entry status -- Need to generate this within IF <condition>
25039 ----------------------------------------------------------------------------------
25040 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25041 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25042 ,p_balance_type_code => l_balance_type_code
25043 );
25044
25045 -------------------------------------------------------------------------------------------
25046 -- 4262811 - Generate the Accrual Reversal lines
25047 -------------------------------------------------------------------------------------------
25048 BEGIN
25049 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25050 (g_array_event(p_event_id).array_value_num('header_index'));
25051 IF l_acc_rev_flag IS NULL THEN
25052 l_acc_rev_flag := 'N';
25053 END IF;
25054 EXCEPTION
25055 WHEN OTHERS THEN
25056 l_acc_rev_flag := 'N';
25057 END;
25058 --
25059 IF (l_acc_rev_flag = 'Y') THEN
25060
25061 -- 4645092 ------------------------------------------------------------------------------
25062 -- To allow MPA report to determine if it should generate report process
25063 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25064 ------------------------------------------------------------------------------------------
25065
25066 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25067 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25068 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25069 -- call ADRs
25070 -- Bug 4922099
25071 --
25072 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25073 (NVL(l_actual_upg_option, 'N') = 'O') OR
25074 (NVL(l_enc_upg_option, 'N') = 'O')
25075 )
25076 THEN
25077 NULL;
25078 --
25079 --
25080
25081 l_ccid := AcctDerRule_3(
25082 p_application_id => p_application_id
25083 , p_ae_header_id => l_ae_header_id
25084 , p_source_2 => p_source_2
25085 , x_transaction_coa_id => l_adr_transaction_coa_id
25086 , x_accounting_coa_id => l_adr_accounting_coa_id
25087 , x_value_type_code => l_adr_value_type_code
25088 , p_side => 'NA'
25089 );
25090
25091 xla_ae_lines_pkg.set_ccid(
25092 p_code_combination_id => l_ccid
25093 , p_value_type_code => l_adr_value_type_code
25094 , p_transaction_coa_id => l_adr_transaction_coa_id
25095 , p_accounting_coa_id => l_adr_accounting_coa_id
25096 , p_adr_code => 'AP_INVOICE_DIST'
25097 , p_adr_type_code => 'S'
25098 , p_component_type => l_component_type
25099 , p_component_code => l_component_code
25100 , p_component_type_code => l_component_type_code
25101 , p_component_appl_id => l_component_appl_id
25102 , p_amb_context_code => l_amb_context_code
25103 , p_side => 'NA'
25104 );
25105
25106
25107 l_segment := AcctDerRule_8(
25108 p_application_id => p_application_id
25109 , p_ae_header_id => l_ae_header_id
25110 , p_source_4 => p_source_4
25111 , p_source_5 => p_source_5
25112 , p_source_6 => p_source_6
25113 , x_transaction_coa_id => l_adr_transaction_coa_id
25114 , x_accounting_coa_id => l_adr_accounting_coa_id
25115 , x_flexfield_segment_code => l_adr_flexfield_segment_code
25116 , x_flex_value_set_id => l_adr_flex_value_set_id
25117 , x_value_type_code => l_adr_value_type_code
25118 , x_value_combination_id => l_adr_value_combination_id
25119 , x_value_segment_code => l_adr_value_segment_code
25120 , p_side => 'NA'
25121 , p_override_seg_flag => 'Y'
25122 );
25123
25124 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
25125
25126 xla_ae_lines_pkg.set_segment(
25127 p_to_segment_code => 'GL_ACCOUNT'
25128 , p_segment_value => l_segment
25129 , p_from_segment_code => l_adr_value_segment_code
25130 , p_from_combination_id => l_adr_value_combination_id
25131 , p_value_type_code => l_adr_value_type_code
25132 , p_transaction_coa_id => l_adr_transaction_coa_id
25133 , p_accounting_coa_id => l_adr_accounting_coa_id
25134 , p_flexfield_segment_code => l_adr_flexfield_segment_code
25135 , p_flex_value_set_id => l_adr_flex_value_set_id
25136 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
25137 , p_adr_type_code => 'S'
25138 , p_component_type => l_component_type
25139 , p_component_code => l_component_code
25140 , p_component_type_code => l_component_type_code
25141 , p_component_appl_id => l_component_appl_id
25142 , p_amb_context_code => l_amb_context_code
25143 , p_entity_code => 'AP_INVOICES'
25144 , p_event_class_code => 'INVOICES'
25145 , p_side => 'NA'
25146 );
25147
25148 END IF;
25149
25150 --
25151 --
25152 END IF;
25153
25154 --
25155 -- Update the line information that should be overwritten
25156 --
25157 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25158 p_header_num => 1);
25159 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25160
25161 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25162
25163 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25164 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25165 END IF;
25166
25167 --
25168 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25169 --
25170 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25171 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25172 ELSE
25173 ---------------------------------------------------------------------------------------------------
25174 -- 4262811a Switch Sign
25175 ---------------------------------------------------------------------------------------------------
25176 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25178 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25179 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25180 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25181 -- 5132302
25182 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25183 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25184
25185 END IF;
25186
25187 -- 4955764
25188 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25189 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25190
25191
25192 XLA_AE_LINES_PKG.ValidateCurrentLine;
25193 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25194
25195 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25196 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25197 ,p_balance_type_code => l_balance_type_code);
25198
25199 END IF;
25200
25201 -----------------------------------------------------------------------------------------
25202 -- 4262811 Multiperiod Accounting
25203 -----------------------------------------------------------------------------------------
25204 -- No MPA option is assigned.
25205
25206
25207 END IF;
25208 END IF;
25209 --
25210
25211 --
25212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25213 trace
25214 (p_msg => 'END of AcctLineType_45'
25215 ,p_level => C_LEVEL_PROCEDURE
25216 ,p_module => l_log_module);
25217 END IF;
25218 --
25219 EXCEPTION
25220 WHEN xla_exceptions_pkg.application_exception THEN
25221 RAISE;
25222 WHEN OTHERS THEN
25223 xla_exceptions_pkg.raise_message
25224 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_45');
25225 END AcctLineType_45;
25226 --
25227
25228 ---------------------------------------
25229 --
25230 -- PRIVATE FUNCTION
25231 -- AcctLineType_46
25232 --
25233 ---------------------------------------
25234 PROCEDURE AcctLineType_46 (
25235 p_application_id IN NUMBER
25236 ,p_event_id IN NUMBER
25237 ,p_calculate_acctd_flag IN VARCHAR2
25238 ,p_calculate_g_l_flag IN VARCHAR2
25239 ,p_actual_flag IN OUT VARCHAR2
25240 ,p_balance_type_code OUT VARCHAR2
25241 ,p_gain_or_loss_ref OUT VARCHAR2
25242
25243 --Invoice Distribution Description
25244 , p_source_1 IN VARCHAR2
25245 --Invoice Distribution Account
25246 , p_source_2 IN NUMBER
25247 --Federal Fund Category
25248 , p_source_4 IN VARCHAR2
25249 --Federal Fund Expired Status
25250 , p_source_5 IN VARCHAR2
25251 --Federal Fund Category Description
25252 , p_source_6 IN VARCHAR2
25253 --Invoice Distribution Type
25254 , p_source_8 IN VARCHAR2
25255 , p_source_8_meaning IN VARCHAR2
25256 --Accounting Reversal Indicator
25257 , p_source_15 IN VARCHAR2
25258 --Distribution Link Type
25259 , p_source_17 IN VARCHAR2
25260 --Allocation to Main Distribution Identifier
25261 , p_source_19 IN NUMBER
25262 --Invoice Identifier
25263 , p_source_20 IN NUMBER
25264 --Business Flow Accounts Payable Application Identifier
25265 , p_source_21 IN NUMBER
25266 --Business Flow Invoice Distribution Type
25267 , p_source_22 IN VARCHAR2
25268 --Business Flow Invoice Entity Code
25269 , p_source_23 IN VARCHAR2
25270 --Business Flow Invoice Distribution Identifier
25271 , p_source_24 IN NUMBER
25272 --Business Flow Invoice Identifier
25273 , p_source_25 IN NUMBER
25274 --Invoice Distribution Identifier
25275 , p_source_26 IN NUMBER
25276 --Payables Encumbrance Upgrade Credit Account
25277 , p_source_27 IN NUMBER
25278 --Payables Encumbrance Upgrade Credit Amount
25279 , p_source_28 IN NUMBER
25280 --Invoice Currency Code
25281 , p_source_29 IN VARCHAR2
25282 --Payables Encumbrance Upgrade Credit Base Amount
25283 , p_source_30 IN NUMBER
25284 --Payables Encumbrance Upgrade Debit Account
25285 , p_source_31 IN NUMBER
25286 --Payables Encumbrance Upgrade Debit Amount
25287 , p_source_32 IN NUMBER
25288 --Payables Encumbrance Upgrade Debit Base Amount
25289 , p_source_33 IN NUMBER
25290 --Payables Encumbrance Upgrade Option
25291 , p_source_34 IN VARCHAR2
25292 --Invoice Exchange Date
25293 , p_source_36 IN DATE
25294 --Invoice Exchange Rate
25295 , p_source_37 IN NUMBER
25296 --Invoice Exchange Rate Type
25297 , p_source_38 IN VARCHAR2
25298 --Deferred Accounting End Date
25299 , p_source_39 IN DATE
25300 --Deferred Accounting Option
25301 , p_source_40 IN VARCHAR2
25302 --Deferred Accounting Start Date
25303 , p_source_41 IN DATE
25304 --Override Accounted Amount Indicator
25305 , p_source_42 IN VARCHAR2
25306 , p_source_42_meaning IN VARCHAR2
25307 --Invoice Supplier Identifier
25308 , p_source_43 IN NUMBER
25309 --Invoice Supplier Site Identifier
25310 , p_source_44 IN NUMBER
25311 --Third Party Type
25312 , p_source_45 IN VARCHAR2
25313 --Parent Reversal Identifier
25314 , p_source_46 IN NUMBER
25315 --Invoice Distribution Statistical Amount
25316 , p_source_47 IN NUMBER
25317 --Invoice Distribution Tax Line Identifier
25318 , p_source_48 IN NUMBER
25319 --Invoice Distribution Tax Distribution Identifier from Tax
25320 , p_source_49 IN NUMBER
25321 --Invoice Distribution Summary Tax Line Identifier
25322 , p_source_50 IN NUMBER
25323 --Payables Upgrade Credit Encumbrance Type Identifier
25324 , p_source_51 IN NUMBER
25325 --Payables Upgrade Debit Encumbrance Type Identifier
25326 , p_source_52 IN NUMBER
25327 --Invoice Distribution Amount
25328 , p_source_55 IN NUMBER
25329 --Amount for Variance Amount
25330 , p_source_59 IN NUMBER
25331 --Purchasing Encumbrance Option
25332 , p_source_60 IN VARCHAR2
25333 , p_source_60_meaning IN VARCHAR2
25334 --Variance Amount in Ledger Currency
25335 , p_source_61 IN NUMBER
25336 )
25337 IS
25338
25339 l_component_type VARCHAR2(80);
25340 l_component_code VARCHAR2(30);
25341 l_component_type_code VARCHAR2(1);
25342 l_component_appl_id INTEGER;
25343 l_amb_context_code VARCHAR2(30);
25344 l_entity_code VARCHAR2(30);
25345 l_event_class_code VARCHAR2(30);
25346 l_ae_header_id NUMBER;
25347 l_event_type_code VARCHAR2(30);
25348 l_line_definition_code VARCHAR2(30);
25349 l_line_definition_owner_code VARCHAR2(1);
25350 --
25351 -- adr variables
25352 l_segment VARCHAR2(30);
25353 l_ccid NUMBER;
25354 l_adr_transaction_coa_id NUMBER;
25355 l_adr_accounting_coa_id NUMBER;
25356 l_adr_flexfield_segment_code VARCHAR2(30);
25357 l_adr_flex_value_set_id NUMBER;
25358 l_adr_value_type_code VARCHAR2(30);
25359 l_adr_value_combination_id NUMBER;
25360 l_adr_value_segment_code VARCHAR2(30);
25361
25362 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25363 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25364 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25365 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25366
25367 -- 4262811 Variables ------------------------------------------------------------------------------------------
25368 l_entered_amt_idx NUMBER;
25369 l_accted_amt_idx NUMBER;
25370 l_acc_rev_flag VARCHAR2(1);
25371 l_accrual_line_num NUMBER;
25372 l_tmp_amt NUMBER;
25373 l_acc_rev_natural_side_code VARCHAR2(1);
25374
25375 l_num_entries NUMBER;
25376 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25377 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25378 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25379 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25380 l_recog_line_1 NUMBER;
25381 l_recog_line_2 NUMBER;
25382
25383 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25384 l_bflow_applied_to_amt NUMBER; -- 5132302
25385 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25386
25387 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25388
25389 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25390 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25391
25392 ---------------------------------------------------------------------------------------------------------------
25393
25394
25395 --
25396 -- bulk performance
25397 --
25398 l_balance_type_code VARCHAR2(1);
25399 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25400 l_log_module VARCHAR2(240);
25401
25402 --
25403 -- Upgrade strategy
25404 --
25405 l_actual_upg_option VARCHAR2(1);
25406 l_enc_upg_option VARCHAR2(1);
25407
25408 --
25409 BEGIN
25410 --
25411 IF g_log_enabled THEN
25412 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
25413 END IF;
25414 --
25415 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25416
25417 trace
25418 (p_msg => 'BEGIN of AcctLineType_46'
25419 ,p_level => C_LEVEL_PROCEDURE
25420 ,p_module => l_log_module);
25421
25422 END IF;
25423 --
25424 l_component_type := 'AMB_JLT';
25425 l_component_code := 'FV_AP_INV_AMT_VAR_CR';
25426 l_component_type_code := 'S';
25427 l_component_appl_id := 200;
25428 l_amb_context_code := 'DEFAULT';
25429 l_entity_code := 'AP_INVOICES';
25430 l_event_class_code := 'INVOICES';
25431 l_event_type_code := 'INVOICES_ALL';
25432 l_line_definition_owner_code := 'S';
25433 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
25434 --
25435 l_balance_type_code := 'A';
25436 l_segment := NULL;
25437 l_ccid := NULL;
25438 l_adr_transaction_coa_id := NULL;
25439 l_adr_accounting_coa_id := NULL;
25440 l_adr_flexfield_segment_code := NULL;
25441 l_adr_flex_value_set_id := NULL;
25442 l_adr_value_type_code := NULL;
25443 l_adr_value_combination_id := NULL;
25444 l_adr_value_segment_code := NULL;
25445
25446 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25447 l_bflow_class_code := ''; -- 4219869 Business Flow
25448 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25449 l_budgetary_control_flag := 'Y';
25450
25451 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25452 l_bflow_applied_to_amt := NULL; -- 5132302
25453 l_entered_amt_idx := NULL; -- 4262811
25454 l_accted_amt_idx := NULL; -- 4262811
25455 l_acc_rev_flag := NULL; -- 4262811
25456 l_accrual_line_num := NULL; -- 4262811
25457 l_tmp_amt := NULL; -- 4262811
25458 --
25459
25460 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25461 l_balance_type_code <> 'B' THEN
25462 IF NVL(p_source_8,'
25463 ') <> 'ACCRUAL' AND
25464 p_source_59 IS NOT NULL AND
25465 NVL(p_source_60,'
25466 ') = 'Y'
25467 THEN
25468
25469 --
25470 XLA_AE_LINES_PKG.SetNewLine;
25471
25472 p_balance_type_code := l_balance_type_code;
25473 -- set the flag so later we will know whether the gain loss line needs to be created
25474
25475 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25476 p_actual_flag :='A';
25477 END IF;
25478
25479 --
25480 -- bulk performance
25481 --
25482 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25483 p_header_num => 0); -- 4262811
25484 --
25485 -- set accounting line options
25486 --
25487 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25488 p_natural_side_code => 'C'
25489 , p_gain_or_loss_flag => 'N'
25490 , p_gl_transfer_mode_code => 'S'
25491 , p_acct_entry_type_code => 'A'
25492 , p_switch_side_flag => 'N'
25493 , p_merge_duplicate_code => 'N'
25494 );
25495 --
25496 l_acc_rev_natural_side_code := 'D'; -- 4262811
25497 --
25498 --
25499 -- set accounting line type info
25500 --
25501 xla_ae_lines_pkg.SetAcctLineType
25502 (p_component_type => l_component_type
25503 ,p_event_type_code => l_event_type_code
25504 ,p_line_definition_owner_code => l_line_definition_owner_code
25505 ,p_line_definition_code => l_line_definition_code
25506 ,p_accounting_line_code => l_component_code
25507 ,p_accounting_line_type_code => l_component_type_code
25508 ,p_accounting_line_appl_id => l_component_appl_id
25509 ,p_amb_context_code => l_amb_context_code
25510 ,p_entity_code => l_entity_code
25511 ,p_event_class_code => l_event_class_code);
25512 --
25513 -- set accounting class
25514 --
25515 xla_ae_lines_pkg.SetAcctClass(
25516 p_accounting_class_code => 'ACCOUNTSPAYABLE'
25517 , p_ae_header_id => l_ae_header_id
25518 );
25519
25520 --
25521 -- set rounding class
25522 --
25523 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25524 'ACCOUNTSPAYABLE';
25525
25526 --
25527 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25528 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25529 --
25530 -- bulk performance
25531 --
25532 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25533
25534 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25535 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25536
25537 -- 4955764
25538 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25539 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25540
25541 -- 4458381 Public Sector Enh
25542
25543 --
25544 -- set accounting attributes for the line type
25545 --
25546 l_entered_amt_idx := 24;
25547 l_accted_amt_idx := 29;
25548 l_bflow_applied_to_amt_idx := 7; -- 5132302
25549 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25550 l_rec_acct_attrs.array_char_value(1) := p_source_15;
25551 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
25552 l_rec_acct_attrs.array_num_value(2) :=
25553 xla_ae_sources_pkg.GetSystemSourceNum(
25554 p_source_code => 'XLA_EVENT_APPL_ID'
25555 , p_source_type_code => 'Y'
25556 , p_source_application_id => 602
25557 );
25558 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
25559 l_rec_acct_attrs.array_char_value(3) := p_source_17;
25560 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
25561 l_rec_acct_attrs.array_char_value(4) :=
25562 xla_ae_sources_pkg.GetSystemSourceChar(
25563 p_source_code => 'XLA_ENTITY_CODE'
25564 , p_source_type_code => 'Y'
25565 , p_source_application_id => 602
25566 );
25567 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
25568 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
25569 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
25570 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
25571 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
25572 l_rec_acct_attrs.array_num_value(7) := p_source_55;
25573 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
25574 l_rec_acct_attrs.array_num_value(8) := p_source_21;
25575 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25576 l_rec_acct_attrs.array_char_value(9) := p_source_22;
25577 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
25578 l_rec_acct_attrs.array_char_value(10) := p_source_23;
25579 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
25580 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
25581 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25582 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
25583 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
25584 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
25585 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
25586 l_rec_acct_attrs.array_char_value(14) := p_source_17;
25587 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
25588 l_rec_acct_attrs.array_num_value(15) := p_source_27;
25589 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
25590 l_rec_acct_attrs.array_num_value(16) := p_source_28;
25591 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
25592 l_rec_acct_attrs.array_char_value(17) := p_source_29;
25593 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
25594 l_rec_acct_attrs.array_num_value(18) := p_source_30;
25595 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
25596 l_rec_acct_attrs.array_num_value(19) := p_source_31;
25597 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
25598 l_rec_acct_attrs.array_num_value(20) := p_source_32;
25599 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
25600 l_rec_acct_attrs.array_char_value(21) := p_source_29;
25601 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
25602 l_rec_acct_attrs.array_num_value(22) := p_source_33;
25603 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
25604 l_rec_acct_attrs.array_char_value(23) := p_source_34;
25605 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
25606 l_rec_acct_attrs.array_num_value(24) := p_source_59;
25607 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
25608 l_rec_acct_attrs.array_char_value(25) := p_source_29;
25609 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
25610 l_rec_acct_attrs.array_date_value(26) := p_source_36;
25611 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
25612 l_rec_acct_attrs.array_num_value(27) := p_source_37;
25613 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
25614 l_rec_acct_attrs.array_char_value(28) := p_source_38;
25615 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
25616 l_rec_acct_attrs.array_num_value(29) := p_source_61;
25617 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
25618 l_rec_acct_attrs.array_date_value(30) := p_source_39;
25619 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
25620 l_rec_acct_attrs.array_char_value(31) := p_source_40;
25621 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
25622 l_rec_acct_attrs.array_date_value(32) := p_source_41;
25623 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
25624 l_rec_acct_attrs.array_char_value(33) := p_source_42;
25625 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
25626 l_rec_acct_attrs.array_num_value(34) := p_source_43;
25627 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
25628 l_rec_acct_attrs.array_num_value(35) := p_source_44;
25629 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
25630 l_rec_acct_attrs.array_char_value(36) := p_source_45;
25631 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
25632 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
25633 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
25634 l_rec_acct_attrs.array_char_value(38) := p_source_17;
25635 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
25636 l_rec_acct_attrs.array_num_value(39) := p_source_47;
25637 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
25638 l_rec_acct_attrs.array_num_value(40) := p_source_48;
25639 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
25640 l_rec_acct_attrs.array_num_value(41) := p_source_49;
25641 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
25642 l_rec_acct_attrs.array_num_value(42) := p_source_50;
25643 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
25644 l_rec_acct_attrs.array_num_value(43) := p_source_51;
25645 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
25646 l_rec_acct_attrs.array_num_value(44) := p_source_52;
25647
25648 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25649 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25650
25651 ---------------------------------------------------------------------------------------------------------------
25652 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25653 ---------------------------------------------------------------------------------------------------------------
25654 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25655
25656 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25657 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25658
25659 IF xla_accounting_cache_pkg.GetValueChar
25660 (p_source_code => 'LEDGER_CATEGORY_CODE'
25661 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25662 AND l_bflow_method_code = 'PRIOR_ENTRY'
25663 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25664 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25665 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25666 )
25667 THEN
25668 xla_ae_lines_pkg.BflowUpgEntry
25669 (p_business_method_code => l_bflow_method_code
25670 ,p_business_class_code => l_bflow_class_code
25671 ,p_balance_type => l_balance_type_code);
25672 ELSE
25673 NULL;
25674 -- No business flow processing for business flow method of NONE.
25675 END IF;
25676
25677 --
25678 -- call analytical criteria
25679 --
25680
25681 --
25682 -- call description
25683 --
25684
25685 xla_ae_lines_pkg.SetLineDescription(
25686 p_ae_header_id => l_ae_header_id
25687 ,p_description => Description_2 (
25688 p_application_id => p_application_id
25689 , p_ae_header_id => l_ae_header_id
25690 , p_source_1 => p_source_1
25691 )
25692 );
25693
25694
25695 --
25696 -- call ADRs
25697 -- Bug 4922099
25698 --
25699 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25700 (NVL(l_actual_upg_option, 'N') = 'O') OR
25701 (NVL(l_enc_upg_option, 'N') = 'O')
25702 )
25703 THEN
25704 NULL;
25705 --
25706 --
25707
25708 l_ccid := AcctDerRule_3(
25709 p_application_id => p_application_id
25710 , p_ae_header_id => l_ae_header_id
25711 , p_source_2 => p_source_2
25712 , x_transaction_coa_id => l_adr_transaction_coa_id
25713 , x_accounting_coa_id => l_adr_accounting_coa_id
25714 , x_value_type_code => l_adr_value_type_code
25715 , p_side => 'NA'
25716 );
25717
25718 xla_ae_lines_pkg.set_ccid(
25719 p_code_combination_id => l_ccid
25720 , p_value_type_code => l_adr_value_type_code
25721 , p_transaction_coa_id => l_adr_transaction_coa_id
25722 , p_accounting_coa_id => l_adr_accounting_coa_id
25723 , p_adr_code => 'AP_INVOICE_DIST'
25724 , p_adr_type_code => 'S'
25725 , p_component_type => l_component_type
25726 , p_component_code => l_component_code
25727 , p_component_type_code => l_component_type_code
25728 , p_component_appl_id => l_component_appl_id
25729 , p_amb_context_code => l_amb_context_code
25730 , p_side => 'NA'
25731 );
25732
25733
25734 l_segment := AcctDerRule_8(
25735 p_application_id => p_application_id
25736 , p_ae_header_id => l_ae_header_id
25737 , p_source_4 => p_source_4
25738 , p_source_5 => p_source_5
25739 , p_source_6 => p_source_6
25740 , x_transaction_coa_id => l_adr_transaction_coa_id
25741 , x_accounting_coa_id => l_adr_accounting_coa_id
25742 , x_flexfield_segment_code => l_adr_flexfield_segment_code
25743 , x_flex_value_set_id => l_adr_flex_value_set_id
25744 , x_value_type_code => l_adr_value_type_code
25745 , x_value_combination_id => l_adr_value_combination_id
25746 , x_value_segment_code => l_adr_value_segment_code
25747 , p_side => 'NA'
25748 , p_override_seg_flag => 'Y'
25749 );
25750
25751 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
25752
25753 xla_ae_lines_pkg.set_segment(
25754 p_to_segment_code => 'GL_ACCOUNT'
25755 , p_segment_value => l_segment
25756 , p_from_segment_code => l_adr_value_segment_code
25757 , p_from_combination_id => l_adr_value_combination_id
25758 , p_value_type_code => l_adr_value_type_code
25759 , p_transaction_coa_id => l_adr_transaction_coa_id
25760 , p_accounting_coa_id => l_adr_accounting_coa_id
25761 , p_flexfield_segment_code => l_adr_flexfield_segment_code
25762 , p_flex_value_set_id => l_adr_flex_value_set_id
25763 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
25764 , p_adr_type_code => 'S'
25765 , p_component_type => l_component_type
25766 , p_component_code => l_component_code
25767 , p_component_type_code => l_component_type_code
25768 , p_component_appl_id => l_component_appl_id
25769 , p_amb_context_code => l_amb_context_code
25770 , p_entity_code => 'AP_INVOICES'
25771 , p_event_class_code => 'INVOICES'
25772 , p_side => 'NA'
25773 );
25774
25775 END IF;
25776
25777 --
25778 --
25779 END IF;
25780 --
25781 -- Bug 4922099
25782 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25783 (NVL(l_enc_upg_option, 'N') = 'O')
25784 ) AND
25785 (l_bflow_method_code = 'PRIOR_ENTRY')
25786 )
25787 THEN
25788 IF
25789 --
25790 1 = 2
25791 --
25792 THEN
25793 xla_accounting_err_pkg.build_message
25794 (p_appli_s_name => 'XLA'
25795 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25796 ,p_token_1 => 'LINE_NUMBER'
25797 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25798 ,p_token_2 => 'LINE_TYPE_NAME'
25799 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25800 l_component_type
25801 ,l_component_code
25802 ,l_component_type_code
25803 ,l_component_appl_id
25804 ,l_amb_context_code
25805 ,l_entity_code
25806 ,l_event_class_code
25807 )
25808 ,p_token_3 => 'OWNER'
25809 ,p_value_3 => xla_lookups_pkg.get_meaning(
25810 p_lookup_type => 'XLA_OWNER_TYPE'
25811 ,p_lookup_code => l_component_type_code
25812 )
25813 ,p_token_4 => 'PRODUCT_NAME'
25814 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25815 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25816 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25817 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25818 ,p_ae_header_id => NULL
25819 );
25820
25821 IF (C_LEVEL_ERROR>= g_log_level) THEN
25822 trace
25823 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25824 ,p_level => C_LEVEL_ERROR
25825 ,p_module => l_log_module);
25826 END IF;
25827 END IF;
25828 END IF;
25829 --
25830 --
25831 ------------------------------------------------------------------------------------------------
25832 -- 4219869 Business Flow
25833 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25834 -- Prior Entry. Currently, the following code is always generated.
25835 ------------------------------------------------------------------------------------------------
25836 XLA_AE_LINES_PKG.ValidateCurrentLine;
25837
25838 ------------------------------------------------------------------------------------
25839 -- 4219869 Business Flow
25840 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25841 ------------------------------------------------------------------------------------
25842 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25843
25844 ----------------------------------------------------------------------------------
25845 -- 4219869 Business Flow
25846 -- Update journal entry status -- Need to generate this within IF <condition>
25847 ----------------------------------------------------------------------------------
25848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25850 ,p_balance_type_code => l_balance_type_code
25851 );
25852
25853 -------------------------------------------------------------------------------------------
25854 -- 4262811 - Generate the Accrual Reversal lines
25855 -------------------------------------------------------------------------------------------
25856 BEGIN
25857 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25858 (g_array_event(p_event_id).array_value_num('header_index'));
25859 IF l_acc_rev_flag IS NULL THEN
25860 l_acc_rev_flag := 'N';
25861 END IF;
25862 EXCEPTION
25863 WHEN OTHERS THEN
25864 l_acc_rev_flag := 'N';
25865 END;
25866 --
25867 IF (l_acc_rev_flag = 'Y') THEN
25868
25869 -- 4645092 ------------------------------------------------------------------------------
25870 -- To allow MPA report to determine if it should generate report process
25871 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25872 ------------------------------------------------------------------------------------------
25873
25874 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25875 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25876 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25877 -- call ADRs
25878 -- Bug 4922099
25879 --
25880 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25881 (NVL(l_actual_upg_option, 'N') = 'O') OR
25882 (NVL(l_enc_upg_option, 'N') = 'O')
25883 )
25884 THEN
25885 NULL;
25886 --
25887 --
25888
25889 l_ccid := AcctDerRule_3(
25890 p_application_id => p_application_id
25891 , p_ae_header_id => l_ae_header_id
25892 , p_source_2 => p_source_2
25893 , x_transaction_coa_id => l_adr_transaction_coa_id
25894 , x_accounting_coa_id => l_adr_accounting_coa_id
25895 , x_value_type_code => l_adr_value_type_code
25896 , p_side => 'NA'
25897 );
25898
25899 xla_ae_lines_pkg.set_ccid(
25900 p_code_combination_id => l_ccid
25901 , p_value_type_code => l_adr_value_type_code
25902 , p_transaction_coa_id => l_adr_transaction_coa_id
25903 , p_accounting_coa_id => l_adr_accounting_coa_id
25904 , p_adr_code => 'AP_INVOICE_DIST'
25905 , p_adr_type_code => 'S'
25906 , p_component_type => l_component_type
25907 , p_component_code => l_component_code
25908 , p_component_type_code => l_component_type_code
25909 , p_component_appl_id => l_component_appl_id
25910 , p_amb_context_code => l_amb_context_code
25911 , p_side => 'NA'
25912 );
25913
25914
25915 l_segment := AcctDerRule_8(
25916 p_application_id => p_application_id
25917 , p_ae_header_id => l_ae_header_id
25918 , p_source_4 => p_source_4
25919 , p_source_5 => p_source_5
25920 , p_source_6 => p_source_6
25921 , x_transaction_coa_id => l_adr_transaction_coa_id
25922 , x_accounting_coa_id => l_adr_accounting_coa_id
25923 , x_flexfield_segment_code => l_adr_flexfield_segment_code
25924 , x_flex_value_set_id => l_adr_flex_value_set_id
25925 , x_value_type_code => l_adr_value_type_code
25926 , x_value_combination_id => l_adr_value_combination_id
25927 , x_value_segment_code => l_adr_value_segment_code
25928 , p_side => 'NA'
25929 , p_override_seg_flag => 'Y'
25930 );
25931
25932 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
25933
25934 xla_ae_lines_pkg.set_segment(
25935 p_to_segment_code => 'GL_ACCOUNT'
25936 , p_segment_value => l_segment
25937 , p_from_segment_code => l_adr_value_segment_code
25938 , p_from_combination_id => l_adr_value_combination_id
25939 , p_value_type_code => l_adr_value_type_code
25940 , p_transaction_coa_id => l_adr_transaction_coa_id
25941 , p_accounting_coa_id => l_adr_accounting_coa_id
25942 , p_flexfield_segment_code => l_adr_flexfield_segment_code
25943 , p_flex_value_set_id => l_adr_flex_value_set_id
25944 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
25945 , p_adr_type_code => 'S'
25946 , p_component_type => l_component_type
25947 , p_component_code => l_component_code
25948 , p_component_type_code => l_component_type_code
25949 , p_component_appl_id => l_component_appl_id
25950 , p_amb_context_code => l_amb_context_code
25951 , p_entity_code => 'AP_INVOICES'
25952 , p_event_class_code => 'INVOICES'
25953 , p_side => 'NA'
25954 );
25955
25956 END IF;
25957
25958 --
25959 --
25960 END IF;
25961
25962 --
25963 -- Update the line information that should be overwritten
25964 --
25965 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25966 p_header_num => 1);
25967 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25968
25969 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25970
25971 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25972 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25973 END IF;
25974
25975 --
25976 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25977 --
25978 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25979 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25980 ELSE
25981 ---------------------------------------------------------------------------------------------------
25982 -- 4262811a Switch Sign
25983 ---------------------------------------------------------------------------------------------------
25984 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25985 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25986 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25987 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25988 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25989 -- 5132302
25990 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25991 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25992
25993 END IF;
25994
25995 -- 4955764
25996 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25997 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25998
25999
26000 XLA_AE_LINES_PKG.ValidateCurrentLine;
26001 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26002
26003 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26004 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26005 ,p_balance_type_code => l_balance_type_code);
26006
26007 END IF;
26008
26009 -----------------------------------------------------------------------------------------
26010 -- 4262811 Multiperiod Accounting
26011 -----------------------------------------------------------------------------------------
26012 -- No MPA option is assigned.
26013
26014
26015 END IF;
26016 END IF;
26017 --
26018
26019 --
26020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26021 trace
26022 (p_msg => 'END of AcctLineType_46'
26023 ,p_level => C_LEVEL_PROCEDURE
26024 ,p_module => l_log_module);
26025 END IF;
26026 --
26027 EXCEPTION
26028 WHEN xla_exceptions_pkg.application_exception THEN
26029 RAISE;
26030 WHEN OTHERS THEN
26031 xla_exceptions_pkg.raise_message
26032 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_46');
26033 END AcctLineType_46;
26034 --
26035
26036 ---------------------------------------
26037 --
26038 -- PRIVATE FUNCTION
26039 -- AcctLineType_47
26040 --
26041 ---------------------------------------
26042 PROCEDURE AcctLineType_47 (
26043 p_application_id IN NUMBER
26044 ,p_event_id IN NUMBER
26045 ,p_calculate_acctd_flag IN VARCHAR2
26046 ,p_calculate_g_l_flag IN VARCHAR2
26047 ,p_actual_flag IN OUT VARCHAR2
26048 ,p_balance_type_code OUT VARCHAR2
26049 ,p_gain_or_loss_ref OUT VARCHAR2
26050
26051 --Invoice Distribution Description
26052 , p_source_1 IN VARCHAR2
26053 --Invoice Distribution Account
26054 , p_source_2 IN NUMBER
26055 --Invoice Distribution Type
26056 , p_source_8 IN VARCHAR2
26057 , p_source_8_meaning IN VARCHAR2
26058 --Accounting Reversal Indicator
26059 , p_source_15 IN VARCHAR2
26060 --Distribution Link Type
26061 , p_source_17 IN VARCHAR2
26062 --Allocation to Main Distribution Identifier
26063 , p_source_19 IN NUMBER
26064 --Invoice Identifier
26065 , p_source_20 IN NUMBER
26066 --Business Flow Accounts Payable Application Identifier
26067 , p_source_21 IN NUMBER
26068 --Business Flow Invoice Distribution Type
26069 , p_source_22 IN VARCHAR2
26070 --Business Flow Invoice Entity Code
26071 , p_source_23 IN VARCHAR2
26072 --Business Flow Invoice Distribution Identifier
26073 , p_source_24 IN NUMBER
26074 --Business Flow Invoice Identifier
26075 , p_source_25 IN NUMBER
26076 --Invoice Distribution Identifier
26077 , p_source_26 IN NUMBER
26078 --Payables Encumbrance Upgrade Credit Account
26079 , p_source_27 IN NUMBER
26080 --Payables Encumbrance Upgrade Credit Amount
26081 , p_source_28 IN NUMBER
26082 --Invoice Currency Code
26083 , p_source_29 IN VARCHAR2
26084 --Payables Encumbrance Upgrade Credit Base Amount
26085 , p_source_30 IN NUMBER
26086 --Payables Encumbrance Upgrade Debit Account
26087 , p_source_31 IN NUMBER
26088 --Payables Encumbrance Upgrade Debit Amount
26089 , p_source_32 IN NUMBER
26090 --Payables Encumbrance Upgrade Debit Base Amount
26091 , p_source_33 IN NUMBER
26092 --Payables Encumbrance Upgrade Option
26093 , p_source_34 IN VARCHAR2
26094 --Invoice Exchange Date
26095 , p_source_36 IN DATE
26096 --Invoice Exchange Rate
26097 , p_source_37 IN NUMBER
26098 --Invoice Exchange Rate Type
26099 , p_source_38 IN VARCHAR2
26100 --Deferred Accounting End Date
26101 , p_source_39 IN DATE
26102 --Deferred Accounting Option
26103 , p_source_40 IN VARCHAR2
26104 --Deferred Accounting Start Date
26105 , p_source_41 IN DATE
26106 --Override Accounted Amount Indicator
26107 , p_source_42 IN VARCHAR2
26108 , p_source_42_meaning IN VARCHAR2
26109 --Invoice Supplier Identifier
26110 , p_source_43 IN NUMBER
26111 --Invoice Supplier Site Identifier
26112 , p_source_44 IN NUMBER
26113 --Third Party Type
26114 , p_source_45 IN VARCHAR2
26115 --Parent Reversal Identifier
26116 , p_source_46 IN NUMBER
26117 --Invoice Distribution Statistical Amount
26118 , p_source_47 IN NUMBER
26119 --Invoice Distribution Tax Line Identifier
26120 , p_source_48 IN NUMBER
26121 --Invoice Distribution Tax Distribution Identifier from Tax
26122 , p_source_49 IN NUMBER
26123 --Invoice Distribution Summary Tax Line Identifier
26124 , p_source_50 IN NUMBER
26125 --Payables Upgrade Credit Encumbrance Type Identifier
26126 , p_source_51 IN NUMBER
26127 --Payables Upgrade Debit Encumbrance Type Identifier
26128 , p_source_52 IN NUMBER
26129 --Invoice Distribution Amount
26130 , p_source_55 IN NUMBER
26131 --Amount for Variance Amount
26132 , p_source_59 IN NUMBER
26133 --Purchasing Encumbrance Option
26134 , p_source_60 IN VARCHAR2
26135 , p_source_60_meaning IN VARCHAR2
26136 --Variance Amount in Ledger Currency
26137 , p_source_61 IN NUMBER
26138 )
26139 IS
26140
26141 l_component_type VARCHAR2(80);
26142 l_component_code VARCHAR2(30);
26143 l_component_type_code VARCHAR2(1);
26144 l_component_appl_id INTEGER;
26145 l_amb_context_code VARCHAR2(30);
26146 l_entity_code VARCHAR2(30);
26147 l_event_class_code VARCHAR2(30);
26148 l_ae_header_id NUMBER;
26149 l_event_type_code VARCHAR2(30);
26150 l_line_definition_code VARCHAR2(30);
26151 l_line_definition_owner_code VARCHAR2(1);
26152 --
26153 -- adr variables
26154 l_segment VARCHAR2(30);
26155 l_ccid NUMBER;
26156 l_adr_transaction_coa_id NUMBER;
26157 l_adr_accounting_coa_id NUMBER;
26158 l_adr_flexfield_segment_code VARCHAR2(30);
26159 l_adr_flex_value_set_id NUMBER;
26160 l_adr_value_type_code VARCHAR2(30);
26161 l_adr_value_combination_id NUMBER;
26162 l_adr_value_segment_code VARCHAR2(30);
26163
26164 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26165 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26166 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26167 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26168
26169 -- 4262811 Variables ------------------------------------------------------------------------------------------
26170 l_entered_amt_idx NUMBER;
26171 l_accted_amt_idx NUMBER;
26172 l_acc_rev_flag VARCHAR2(1);
26173 l_accrual_line_num NUMBER;
26174 l_tmp_amt NUMBER;
26175 l_acc_rev_natural_side_code VARCHAR2(1);
26176
26177 l_num_entries NUMBER;
26178 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26179 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26180 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26181 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26182 l_recog_line_1 NUMBER;
26183 l_recog_line_2 NUMBER;
26184
26185 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26186 l_bflow_applied_to_amt NUMBER; -- 5132302
26187 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26188
26189 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26190
26191 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26192 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26193
26194 ---------------------------------------------------------------------------------------------------------------
26195
26196
26197 --
26198 -- bulk performance
26199 --
26200 l_balance_type_code VARCHAR2(1);
26201 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26202 l_log_module VARCHAR2(240);
26203
26204 --
26205 -- Upgrade strategy
26206 --
26207 l_actual_upg_option VARCHAR2(1);
26208 l_enc_upg_option VARCHAR2(1);
26209
26210 --
26211 BEGIN
26212 --
26213 IF g_log_enabled THEN
26214 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
26215 END IF;
26216 --
26217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26218
26219 trace
26220 (p_msg => 'BEGIN of AcctLineType_47'
26221 ,p_level => C_LEVEL_PROCEDURE
26222 ,p_module => l_log_module);
26223
26224 END IF;
26225 --
26226 l_component_type := 'AMB_JLT';
26227 l_component_code := 'FV_AP_INV_AMT_VAR_DR';
26228 l_component_type_code := 'S';
26229 l_component_appl_id := 200;
26230 l_amb_context_code := 'DEFAULT';
26231 l_entity_code := 'AP_INVOICES';
26232 l_event_class_code := 'INVOICES';
26233 l_event_type_code := 'INVOICES_ALL';
26234 l_line_definition_owner_code := 'S';
26235 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
26236 --
26237 l_balance_type_code := 'A';
26238 l_segment := NULL;
26239 l_ccid := NULL;
26240 l_adr_transaction_coa_id := NULL;
26241 l_adr_accounting_coa_id := NULL;
26242 l_adr_flexfield_segment_code := NULL;
26243 l_adr_flex_value_set_id := NULL;
26244 l_adr_value_type_code := NULL;
26245 l_adr_value_combination_id := NULL;
26246 l_adr_value_segment_code := NULL;
26247
26248 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26249 l_bflow_class_code := ''; -- 4219869 Business Flow
26250 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26251 l_budgetary_control_flag := 'Y';
26252
26253 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26254 l_bflow_applied_to_amt := NULL; -- 5132302
26255 l_entered_amt_idx := NULL; -- 4262811
26256 l_accted_amt_idx := NULL; -- 4262811
26257 l_acc_rev_flag := NULL; -- 4262811
26258 l_accrual_line_num := NULL; -- 4262811
26259 l_tmp_amt := NULL; -- 4262811
26260 --
26261
26262 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26263 l_balance_type_code <> 'B' THEN
26264 IF NVL(p_source_8,'
26265 ') <> 'ACCRUAL' AND
26266 p_source_59 IS NOT NULL AND
26267 NVL(p_source_60,'
26268 ') = 'Y'
26269 THEN
26270
26271 --
26272 XLA_AE_LINES_PKG.SetNewLine;
26273
26274 p_balance_type_code := l_balance_type_code;
26275 -- set the flag so later we will know whether the gain loss line needs to be created
26276
26277 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26278 p_actual_flag :='A';
26279 END IF;
26280
26281 --
26282 -- bulk performance
26283 --
26284 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26285 p_header_num => 0); -- 4262811
26286 --
26287 -- set accounting line options
26288 --
26289 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26290 p_natural_side_code => 'D'
26291 , p_gain_or_loss_flag => 'N'
26292 , p_gl_transfer_mode_code => 'S'
26293 , p_acct_entry_type_code => 'A'
26294 , p_switch_side_flag => 'N'
26295 , p_merge_duplicate_code => 'N'
26296 );
26297 --
26298 l_acc_rev_natural_side_code := 'C'; -- 4262811
26299 --
26300 --
26301 -- set accounting line type info
26302 --
26303 xla_ae_lines_pkg.SetAcctLineType
26304 (p_component_type => l_component_type
26305 ,p_event_type_code => l_event_type_code
26306 ,p_line_definition_owner_code => l_line_definition_owner_code
26307 ,p_line_definition_code => l_line_definition_code
26308 ,p_accounting_line_code => l_component_code
26309 ,p_accounting_line_type_code => l_component_type_code
26310 ,p_accounting_line_appl_id => l_component_appl_id
26311 ,p_amb_context_code => l_amb_context_code
26312 ,p_entity_code => l_entity_code
26313 ,p_event_class_code => l_event_class_code);
26314 --
26315 -- set accounting class
26316 --
26317 xla_ae_lines_pkg.SetAcctClass(
26318 p_accounting_class_code => 'ACCOUNTSPAYABLE'
26319 , p_ae_header_id => l_ae_header_id
26320 );
26321
26322 --
26323 -- set rounding class
26324 --
26325 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26326 'ACCOUNTSPAYABLE';
26327
26328 --
26329 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26330 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26331 --
26332 -- bulk performance
26333 --
26334 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26335
26336 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26337 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26338
26339 -- 4955764
26340 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26341 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26342
26343 -- 4458381 Public Sector Enh
26344
26345 --
26346 -- set accounting attributes for the line type
26347 --
26348 l_entered_amt_idx := 24;
26349 l_accted_amt_idx := 29;
26350 l_bflow_applied_to_amt_idx := 7; -- 5132302
26351 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26352 l_rec_acct_attrs.array_char_value(1) := p_source_15;
26353 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26354 l_rec_acct_attrs.array_num_value(2) :=
26355 xla_ae_sources_pkg.GetSystemSourceNum(
26356 p_source_code => 'XLA_EVENT_APPL_ID'
26357 , p_source_type_code => 'Y'
26358 , p_source_application_id => 602
26359 );
26360 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26361 l_rec_acct_attrs.array_char_value(3) := p_source_17;
26362 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26363 l_rec_acct_attrs.array_char_value(4) :=
26364 xla_ae_sources_pkg.GetSystemSourceChar(
26365 p_source_code => 'XLA_ENTITY_CODE'
26366 , p_source_type_code => 'Y'
26367 , p_source_application_id => 602
26368 );
26369 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26370 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
26371 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26372 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
26373 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
26374 l_rec_acct_attrs.array_num_value(7) := p_source_55;
26375 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
26376 l_rec_acct_attrs.array_num_value(8) := p_source_21;
26377 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26378 l_rec_acct_attrs.array_char_value(9) := p_source_22;
26379 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
26380 l_rec_acct_attrs.array_char_value(10) := p_source_23;
26381 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
26382 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
26383 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26384 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
26385 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
26386 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
26387 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
26388 l_rec_acct_attrs.array_char_value(14) := p_source_17;
26389 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
26390 l_rec_acct_attrs.array_num_value(15) := p_source_27;
26391 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
26392 l_rec_acct_attrs.array_num_value(16) := p_source_28;
26393 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
26394 l_rec_acct_attrs.array_char_value(17) := p_source_29;
26395 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
26396 l_rec_acct_attrs.array_num_value(18) := p_source_30;
26397 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
26398 l_rec_acct_attrs.array_num_value(19) := p_source_31;
26399 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
26400 l_rec_acct_attrs.array_num_value(20) := p_source_32;
26401 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
26402 l_rec_acct_attrs.array_char_value(21) := p_source_29;
26403 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
26404 l_rec_acct_attrs.array_num_value(22) := p_source_33;
26405 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
26406 l_rec_acct_attrs.array_char_value(23) := p_source_34;
26407 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
26408 l_rec_acct_attrs.array_num_value(24) := p_source_59;
26409 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
26410 l_rec_acct_attrs.array_char_value(25) := p_source_29;
26411 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
26412 l_rec_acct_attrs.array_date_value(26) := p_source_36;
26413 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
26414 l_rec_acct_attrs.array_num_value(27) := p_source_37;
26415 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
26416 l_rec_acct_attrs.array_char_value(28) := p_source_38;
26417 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
26418 l_rec_acct_attrs.array_num_value(29) := p_source_61;
26419 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
26420 l_rec_acct_attrs.array_date_value(30) := p_source_39;
26421 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
26422 l_rec_acct_attrs.array_char_value(31) := p_source_40;
26423 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
26424 l_rec_acct_attrs.array_date_value(32) := p_source_41;
26425 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
26426 l_rec_acct_attrs.array_char_value(33) := p_source_42;
26427 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
26428 l_rec_acct_attrs.array_num_value(34) := p_source_43;
26429 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
26430 l_rec_acct_attrs.array_num_value(35) := p_source_44;
26431 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
26432 l_rec_acct_attrs.array_char_value(36) := p_source_45;
26433 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
26434 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
26435 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
26436 l_rec_acct_attrs.array_char_value(38) := p_source_17;
26437 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
26438 l_rec_acct_attrs.array_num_value(39) := p_source_47;
26439 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
26440 l_rec_acct_attrs.array_num_value(40) := p_source_48;
26441 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
26442 l_rec_acct_attrs.array_num_value(41) := p_source_49;
26443 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
26444 l_rec_acct_attrs.array_num_value(42) := p_source_50;
26445 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
26446 l_rec_acct_attrs.array_num_value(43) := p_source_51;
26447 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
26448 l_rec_acct_attrs.array_num_value(44) := p_source_52;
26449
26450 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26451 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26452
26453 ---------------------------------------------------------------------------------------------------------------
26454 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26455 ---------------------------------------------------------------------------------------------------------------
26456 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26457
26458 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26459 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26460
26461 IF xla_accounting_cache_pkg.GetValueChar
26462 (p_source_code => 'LEDGER_CATEGORY_CODE'
26463 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26464 AND l_bflow_method_code = 'PRIOR_ENTRY'
26465 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26466 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26467 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26468 )
26469 THEN
26470 xla_ae_lines_pkg.BflowUpgEntry
26471 (p_business_method_code => l_bflow_method_code
26472 ,p_business_class_code => l_bflow_class_code
26473 ,p_balance_type => l_balance_type_code);
26474 ELSE
26475 NULL;
26476 -- No business flow processing for business flow method of NONE.
26477 END IF;
26478
26479 --
26480 -- call analytical criteria
26481 --
26482
26483 --
26484 -- call description
26485 --
26486
26487 xla_ae_lines_pkg.SetLineDescription(
26488 p_ae_header_id => l_ae_header_id
26489 ,p_description => Description_2 (
26490 p_application_id => p_application_id
26491 , p_ae_header_id => l_ae_header_id
26492 , p_source_1 => p_source_1
26493 )
26494 );
26495
26496
26497 --
26498 -- call ADRs
26499 -- Bug 4922099
26500 --
26501 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26502 (NVL(l_actual_upg_option, 'N') = 'O') OR
26503 (NVL(l_enc_upg_option, 'N') = 'O')
26504 )
26505 THEN
26506 NULL;
26507 --
26508 --
26509
26510 l_ccid := AcctDerRule_3(
26511 p_application_id => p_application_id
26512 , p_ae_header_id => l_ae_header_id
26513 , p_source_2 => p_source_2
26514 , x_transaction_coa_id => l_adr_transaction_coa_id
26515 , x_accounting_coa_id => l_adr_accounting_coa_id
26516 , x_value_type_code => l_adr_value_type_code
26517 , p_side => 'NA'
26518 );
26519
26520 xla_ae_lines_pkg.set_ccid(
26521 p_code_combination_id => l_ccid
26522 , p_value_type_code => l_adr_value_type_code
26523 , p_transaction_coa_id => l_adr_transaction_coa_id
26524 , p_accounting_coa_id => l_adr_accounting_coa_id
26525 , p_adr_code => 'AP_INVOICE_DIST'
26526 , p_adr_type_code => 'S'
26527 , p_component_type => l_component_type
26528 , p_component_code => l_component_code
26529 , p_component_type_code => l_component_type_code
26530 , p_component_appl_id => l_component_appl_id
26531 , p_amb_context_code => l_amb_context_code
26532 , p_side => 'NA'
26533 );
26534
26535
26536 l_segment := AcctDerRule_11(
26537 p_application_id => p_application_id
26538 , p_ae_header_id => l_ae_header_id
26539 , x_transaction_coa_id => l_adr_transaction_coa_id
26540 , x_accounting_coa_id => l_adr_accounting_coa_id
26541 , x_flexfield_segment_code => l_adr_flexfield_segment_code
26542 , x_flex_value_set_id => l_adr_flex_value_set_id
26543 , x_value_type_code => l_adr_value_type_code
26544 , x_value_combination_id => l_adr_value_combination_id
26545 , x_value_segment_code => l_adr_value_segment_code
26546 , p_side => 'NA'
26547 , p_override_seg_flag => 'Y'
26548 );
26549
26550 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
26551
26552 xla_ae_lines_pkg.set_segment(
26553 p_to_segment_code => 'GL_ACCOUNT'
26554 , p_segment_value => l_segment
26555 , p_from_segment_code => l_adr_value_segment_code
26556 , p_from_combination_id => l_adr_value_combination_id
26557 , p_value_type_code => l_adr_value_type_code
26558 , p_transaction_coa_id => l_adr_transaction_coa_id
26559 , p_accounting_coa_id => l_adr_accounting_coa_id
26560 , p_flexfield_segment_code => l_adr_flexfield_segment_code
26561 , p_flex_value_set_id => l_adr_flex_value_set_id
26562 , p_adr_code => 'FV_48X101_PAYABLES'
26563 , p_adr_type_code => 'S'
26564 , p_component_type => l_component_type
26565 , p_component_code => l_component_code
26566 , p_component_type_code => l_component_type_code
26567 , p_component_appl_id => l_component_appl_id
26568 , p_amb_context_code => l_amb_context_code
26569 , p_entity_code => 'AP_INVOICES'
26570 , p_event_class_code => 'INVOICES'
26571 , p_side => 'NA'
26572 );
26573
26574 END IF;
26575
26576 --
26577 --
26578 END IF;
26579 --
26580 -- Bug 4922099
26581 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26582 (NVL(l_enc_upg_option, 'N') = 'O')
26583 ) AND
26584 (l_bflow_method_code = 'PRIOR_ENTRY')
26585 )
26586 THEN
26587 IF
26588 --
26589 1 = 2
26590 --
26591 THEN
26592 xla_accounting_err_pkg.build_message
26593 (p_appli_s_name => 'XLA'
26594 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26595 ,p_token_1 => 'LINE_NUMBER'
26596 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26597 ,p_token_2 => 'LINE_TYPE_NAME'
26598 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26599 l_component_type
26600 ,l_component_code
26601 ,l_component_type_code
26602 ,l_component_appl_id
26603 ,l_amb_context_code
26604 ,l_entity_code
26605 ,l_event_class_code
26606 )
26607 ,p_token_3 => 'OWNER'
26608 ,p_value_3 => xla_lookups_pkg.get_meaning(
26609 p_lookup_type => 'XLA_OWNER_TYPE'
26610 ,p_lookup_code => l_component_type_code
26611 )
26612 ,p_token_4 => 'PRODUCT_NAME'
26613 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26614 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26615 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26616 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26617 ,p_ae_header_id => NULL
26618 );
26619
26620 IF (C_LEVEL_ERROR>= g_log_level) THEN
26621 trace
26622 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26623 ,p_level => C_LEVEL_ERROR
26624 ,p_module => l_log_module);
26625 END IF;
26626 END IF;
26627 END IF;
26628 --
26629 --
26630 ------------------------------------------------------------------------------------------------
26631 -- 4219869 Business Flow
26632 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26633 -- Prior Entry. Currently, the following code is always generated.
26634 ------------------------------------------------------------------------------------------------
26635 XLA_AE_LINES_PKG.ValidateCurrentLine;
26636
26637 ------------------------------------------------------------------------------------
26638 -- 4219869 Business Flow
26639 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26640 ------------------------------------------------------------------------------------
26641 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26642
26643 ----------------------------------------------------------------------------------
26644 -- 4219869 Business Flow
26645 -- Update journal entry status -- Need to generate this within IF <condition>
26646 ----------------------------------------------------------------------------------
26647 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26648 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26649 ,p_balance_type_code => l_balance_type_code
26650 );
26651
26652 -------------------------------------------------------------------------------------------
26653 -- 4262811 - Generate the Accrual Reversal lines
26654 -------------------------------------------------------------------------------------------
26655 BEGIN
26656 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26657 (g_array_event(p_event_id).array_value_num('header_index'));
26658 IF l_acc_rev_flag IS NULL THEN
26659 l_acc_rev_flag := 'N';
26660 END IF;
26661 EXCEPTION
26662 WHEN OTHERS THEN
26663 l_acc_rev_flag := 'N';
26664 END;
26665 --
26666 IF (l_acc_rev_flag = 'Y') THEN
26667
26668 -- 4645092 ------------------------------------------------------------------------------
26669 -- To allow MPA report to determine if it should generate report process
26670 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26671 ------------------------------------------------------------------------------------------
26672
26673 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26674 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26675 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26676 -- call ADRs
26677 -- Bug 4922099
26678 --
26679 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26680 (NVL(l_actual_upg_option, 'N') = 'O') OR
26681 (NVL(l_enc_upg_option, 'N') = 'O')
26682 )
26683 THEN
26684 NULL;
26685 --
26686 --
26687
26688 l_ccid := AcctDerRule_3(
26689 p_application_id => p_application_id
26690 , p_ae_header_id => l_ae_header_id
26691 , p_source_2 => p_source_2
26692 , x_transaction_coa_id => l_adr_transaction_coa_id
26693 , x_accounting_coa_id => l_adr_accounting_coa_id
26694 , x_value_type_code => l_adr_value_type_code
26695 , p_side => 'NA'
26696 );
26697
26698 xla_ae_lines_pkg.set_ccid(
26699 p_code_combination_id => l_ccid
26700 , p_value_type_code => l_adr_value_type_code
26701 , p_transaction_coa_id => l_adr_transaction_coa_id
26702 , p_accounting_coa_id => l_adr_accounting_coa_id
26703 , p_adr_code => 'AP_INVOICE_DIST'
26704 , p_adr_type_code => 'S'
26705 , p_component_type => l_component_type
26706 , p_component_code => l_component_code
26707 , p_component_type_code => l_component_type_code
26708 , p_component_appl_id => l_component_appl_id
26709 , p_amb_context_code => l_amb_context_code
26710 , p_side => 'NA'
26711 );
26712
26713
26714 l_segment := AcctDerRule_11(
26715 p_application_id => p_application_id
26716 , p_ae_header_id => l_ae_header_id
26717 , x_transaction_coa_id => l_adr_transaction_coa_id
26718 , x_accounting_coa_id => l_adr_accounting_coa_id
26719 , x_flexfield_segment_code => l_adr_flexfield_segment_code
26720 , x_flex_value_set_id => l_adr_flex_value_set_id
26721 , x_value_type_code => l_adr_value_type_code
26722 , x_value_combination_id => l_adr_value_combination_id
26723 , x_value_segment_code => l_adr_value_segment_code
26724 , p_side => 'NA'
26725 , p_override_seg_flag => 'Y'
26726 );
26727
26728 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
26729
26730 xla_ae_lines_pkg.set_segment(
26731 p_to_segment_code => 'GL_ACCOUNT'
26732 , p_segment_value => l_segment
26733 , p_from_segment_code => l_adr_value_segment_code
26734 , p_from_combination_id => l_adr_value_combination_id
26735 , p_value_type_code => l_adr_value_type_code
26736 , p_transaction_coa_id => l_adr_transaction_coa_id
26737 , p_accounting_coa_id => l_adr_accounting_coa_id
26738 , p_flexfield_segment_code => l_adr_flexfield_segment_code
26739 , p_flex_value_set_id => l_adr_flex_value_set_id
26740 , p_adr_code => 'FV_48X101_PAYABLES'
26741 , p_adr_type_code => 'S'
26742 , p_component_type => l_component_type
26743 , p_component_code => l_component_code
26744 , p_component_type_code => l_component_type_code
26745 , p_component_appl_id => l_component_appl_id
26746 , p_amb_context_code => l_amb_context_code
26747 , p_entity_code => 'AP_INVOICES'
26748 , p_event_class_code => 'INVOICES'
26749 , p_side => 'NA'
26750 );
26751
26752 END IF;
26753
26754 --
26755 --
26756 END IF;
26757
26758 --
26759 -- Update the line information that should be overwritten
26760 --
26761 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26762 p_header_num => 1);
26763 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26764
26765 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26766
26767 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26768 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26769 END IF;
26770
26771 --
26772 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26773 --
26774 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26775 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26776 ELSE
26777 ---------------------------------------------------------------------------------------------------
26778 -- 4262811a Switch Sign
26779 ---------------------------------------------------------------------------------------------------
26780 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26781 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26782 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26783 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26784 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26785 -- 5132302
26786 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26787 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26788
26789 END IF;
26790
26791 -- 4955764
26792 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26793 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26794
26795
26796 XLA_AE_LINES_PKG.ValidateCurrentLine;
26797 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26798
26799 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26800 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26801 ,p_balance_type_code => l_balance_type_code);
26802
26803 END IF;
26804
26805 -----------------------------------------------------------------------------------------
26806 -- 4262811 Multiperiod Accounting
26807 -----------------------------------------------------------------------------------------
26808 -- No MPA option is assigned.
26809
26810
26811 END IF;
26812 END IF;
26813 --
26814
26815 --
26816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26817 trace
26818 (p_msg => 'END of AcctLineType_47'
26819 ,p_level => C_LEVEL_PROCEDURE
26820 ,p_module => l_log_module);
26821 END IF;
26822 --
26823 EXCEPTION
26824 WHEN xla_exceptions_pkg.application_exception THEN
26825 RAISE;
26826 WHEN OTHERS THEN
26827 xla_exceptions_pkg.raise_message
26828 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_47');
26829 END AcctLineType_47;
26830 --
26831
26832 ---------------------------------------
26833 --
26834 -- PRIVATE FUNCTION
26835 -- AcctLineType_48
26836 --
26837 ---------------------------------------
26838 PROCEDURE AcctLineType_48 (
26839 p_application_id IN NUMBER
26840 ,p_event_id IN NUMBER
26841 ,p_calculate_acctd_flag IN VARCHAR2
26842 ,p_calculate_g_l_flag IN VARCHAR2
26843 ,p_actual_flag IN OUT VARCHAR2
26844 ,p_balance_type_code OUT VARCHAR2
26845 ,p_gain_or_loss_ref OUT VARCHAR2
26846
26847 --Invoice Distribution Description
26848 , p_source_1 IN VARCHAR2
26849 --Invoice Distribution Account
26850 , p_source_2 IN NUMBER
26851 --Federal Fund Category Description
26852 , p_source_6 IN VARCHAR2
26853 --Accounting Reversal Indicator
26854 , p_source_15 IN VARCHAR2
26855 --Distribution Link Type
26856 , p_source_17 IN VARCHAR2
26857 --Allocation to Main Distribution Identifier
26858 , p_source_19 IN NUMBER
26859 --Invoice Identifier
26860 , p_source_20 IN NUMBER
26861 --Business Flow Accounts Payable Application Identifier
26862 , p_source_21 IN NUMBER
26863 --Business Flow Invoice Distribution Type
26864 , p_source_22 IN VARCHAR2
26865 --Business Flow Invoice Entity Code
26866 , p_source_23 IN VARCHAR2
26867 --Business Flow Invoice Distribution Identifier
26868 , p_source_24 IN NUMBER
26869 --Business Flow Invoice Identifier
26870 , p_source_25 IN NUMBER
26871 --Invoice Distribution Identifier
26872 , p_source_26 IN NUMBER
26873 --Payables Encumbrance Upgrade Credit Account
26874 , p_source_27 IN NUMBER
26875 --Payables Encumbrance Upgrade Credit Amount
26876 , p_source_28 IN NUMBER
26877 --Invoice Currency Code
26878 , p_source_29 IN VARCHAR2
26879 --Payables Encumbrance Upgrade Credit Base Amount
26880 , p_source_30 IN NUMBER
26881 --Payables Encumbrance Upgrade Debit Account
26882 , p_source_31 IN NUMBER
26883 --Payables Encumbrance Upgrade Debit Amount
26884 , p_source_32 IN NUMBER
26885 --Payables Encumbrance Upgrade Debit Base Amount
26886 , p_source_33 IN NUMBER
26887 --Payables Encumbrance Upgrade Option
26888 , p_source_34 IN VARCHAR2
26889 --Invoice Exchange Date
26890 , p_source_36 IN DATE
26891 --Invoice Exchange Rate
26892 , p_source_37 IN NUMBER
26893 --Invoice Exchange Rate Type
26894 , p_source_38 IN VARCHAR2
26895 --Deferred Accounting End Date
26896 , p_source_39 IN DATE
26897 --Deferred Accounting Option
26898 , p_source_40 IN VARCHAR2
26899 --Deferred Accounting Start Date
26900 , p_source_41 IN DATE
26901 --Override Accounted Amount Indicator
26902 , p_source_42 IN VARCHAR2
26903 , p_source_42_meaning IN VARCHAR2
26904 --Invoice Supplier Identifier
26905 , p_source_43 IN NUMBER
26906 --Invoice Supplier Site Identifier
26907 , p_source_44 IN NUMBER
26908 --Third Party Type
26909 , p_source_45 IN VARCHAR2
26910 --Parent Reversal Identifier
26911 , p_source_46 IN NUMBER
26912 --Invoice Distribution Statistical Amount
26913 , p_source_47 IN NUMBER
26914 --Invoice Distribution Tax Line Identifier
26915 , p_source_48 IN NUMBER
26916 --Invoice Distribution Tax Distribution Identifier from Tax
26917 , p_source_49 IN NUMBER
26918 --Invoice Distribution Summary Tax Line Identifier
26919 , p_source_50 IN NUMBER
26920 --Payables Upgrade Credit Encumbrance Type Identifier
26921 , p_source_51 IN NUMBER
26922 --Payables Upgrade Debit Encumbrance Type Identifier
26923 , p_source_52 IN NUMBER
26924 --Invoice Distribution Amount
26925 , p_source_55 IN NUMBER
26926 --Invoice Distribution Ledger Amount Before Rounding
26927 , p_source_58 IN NUMBER
26928 )
26929 IS
26930
26931 l_component_type VARCHAR2(80);
26932 l_component_code VARCHAR2(30);
26933 l_component_type_code VARCHAR2(1);
26934 l_component_appl_id INTEGER;
26935 l_amb_context_code VARCHAR2(30);
26936 l_entity_code VARCHAR2(30);
26937 l_event_class_code VARCHAR2(30);
26938 l_ae_header_id NUMBER;
26939 l_event_type_code VARCHAR2(30);
26940 l_line_definition_code VARCHAR2(30);
26941 l_line_definition_owner_code VARCHAR2(1);
26942 --
26943 -- adr variables
26944 l_segment VARCHAR2(30);
26945 l_ccid NUMBER;
26946 l_adr_transaction_coa_id NUMBER;
26947 l_adr_accounting_coa_id NUMBER;
26948 l_adr_flexfield_segment_code VARCHAR2(30);
26949 l_adr_flex_value_set_id NUMBER;
26950 l_adr_value_type_code VARCHAR2(30);
26951 l_adr_value_combination_id NUMBER;
26952 l_adr_value_segment_code VARCHAR2(30);
26953
26954 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26955 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26956 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26957 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26958
26959 -- 4262811 Variables ------------------------------------------------------------------------------------------
26960 l_entered_amt_idx NUMBER;
26961 l_accted_amt_idx NUMBER;
26962 l_acc_rev_flag VARCHAR2(1);
26963 l_accrual_line_num NUMBER;
26964 l_tmp_amt NUMBER;
26965 l_acc_rev_natural_side_code VARCHAR2(1);
26966
26967 l_num_entries NUMBER;
26968 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26969 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26970 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26971 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26972 l_recog_line_1 NUMBER;
26973 l_recog_line_2 NUMBER;
26974
26975 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26976 l_bflow_applied_to_amt NUMBER; -- 5132302
26977 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26978
26979 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26980
26981 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26982 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26983
26984 ---------------------------------------------------------------------------------------------------------------
26985
26986
26987 --
26988 -- bulk performance
26989 --
26990 l_balance_type_code VARCHAR2(1);
26991 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26992 l_log_module VARCHAR2(240);
26993
26994 --
26995 -- Upgrade strategy
26996 --
26997 l_actual_upg_option VARCHAR2(1);
26998 l_enc_upg_option VARCHAR2(1);
26999
27000 --
27001 BEGIN
27002 --
27003 IF g_log_enabled THEN
27004 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
27005 END IF;
27006 --
27007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27008
27009 trace
27010 (p_msg => 'BEGIN of AcctLineType_48'
27011 ,p_level => C_LEVEL_PROCEDURE
27012 ,p_module => l_log_module);
27013
27014 END IF;
27015 --
27016 l_component_type := 'AMB_JLT';
27017 l_component_code := 'FV_AP_INV_DIRECT_FUND_CR';
27018 l_component_type_code := 'S';
27019 l_component_appl_id := 200;
27020 l_amb_context_code := 'DEFAULT';
27021 l_entity_code := 'AP_INVOICES';
27022 l_event_class_code := 'INVOICES';
27023 l_event_type_code := 'INVOICES_ALL';
27024 l_line_definition_owner_code := 'S';
27025 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
27026 --
27027 l_balance_type_code := 'A';
27028 l_segment := NULL;
27029 l_ccid := NULL;
27030 l_adr_transaction_coa_id := NULL;
27031 l_adr_accounting_coa_id := NULL;
27032 l_adr_flexfield_segment_code := NULL;
27033 l_adr_flex_value_set_id := NULL;
27034 l_adr_value_type_code := NULL;
27035 l_adr_value_combination_id := NULL;
27036 l_adr_value_segment_code := NULL;
27037
27038 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27039 l_bflow_class_code := 'FV_DIRECT_FUND_CR'; -- 4219869 Business Flow
27040 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27041 l_budgetary_control_flag := 'Y';
27042
27043 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27044 l_bflow_applied_to_amt := NULL; -- 5132302
27045 l_entered_amt_idx := NULL; -- 4262811
27046 l_accted_amt_idx := NULL; -- 4262811
27047 l_acc_rev_flag := NULL; -- 4262811
27048 l_accrual_line_num := NULL; -- 4262811
27049 l_tmp_amt := NULL; -- 4262811
27050 --
27051
27052 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27053 l_balance_type_code <> 'B' THEN
27054 IF NVL(p_source_6,'
27055 ') = 'Direct'
27056 THEN
27057
27058 --
27059 XLA_AE_LINES_PKG.SetNewLine;
27060
27061 p_balance_type_code := l_balance_type_code;
27062 -- set the flag so later we will know whether the gain loss line needs to be created
27063
27064 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27065 p_actual_flag :='A';
27066 END IF;
27067
27068 --
27069 -- bulk performance
27070 --
27071 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27072 p_header_num => 0); -- 4262811
27073 --
27074 -- set accounting line options
27075 --
27076 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27077 p_natural_side_code => 'C'
27078 , p_gain_or_loss_flag => 'N'
27079 , p_gl_transfer_mode_code => 'S'
27080 , p_acct_entry_type_code => 'A'
27081 , p_switch_side_flag => 'N'
27082 , p_merge_duplicate_code => 'N'
27083 );
27084 --
27085 l_acc_rev_natural_side_code := 'D'; -- 4262811
27086 --
27087 --
27088 -- set accounting line type info
27089 --
27090 xla_ae_lines_pkg.SetAcctLineType
27091 (p_component_type => l_component_type
27092 ,p_event_type_code => l_event_type_code
27093 ,p_line_definition_owner_code => l_line_definition_owner_code
27094 ,p_line_definition_code => l_line_definition_code
27095 ,p_accounting_line_code => l_component_code
27096 ,p_accounting_line_type_code => l_component_type_code
27097 ,p_accounting_line_appl_id => l_component_appl_id
27098 ,p_amb_context_code => l_amb_context_code
27099 ,p_entity_code => l_entity_code
27100 ,p_event_class_code => l_event_class_code);
27101 --
27102 -- set accounting class
27103 --
27104 xla_ae_lines_pkg.SetAcctClass(
27105 p_accounting_class_code => 'ACCOUNTSPAYABLE'
27106 , p_ae_header_id => l_ae_header_id
27107 );
27108
27109 --
27110 -- set rounding class
27111 --
27112 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27113 'ACCOUNTSPAYABLE';
27114
27115 --
27116 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27117 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27118 --
27119 -- bulk performance
27120 --
27121 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27122
27123 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27124 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27125
27126 -- 4955764
27127 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27128 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27129
27130 -- 4458381 Public Sector Enh
27131
27132 --
27133 -- set accounting attributes for the line type
27134 --
27135 l_entered_amt_idx := 24;
27136 l_accted_amt_idx := 29;
27137 l_bflow_applied_to_amt_idx := 7; -- 5132302
27138 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27139 l_rec_acct_attrs.array_char_value(1) := p_source_15;
27140 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
27141 l_rec_acct_attrs.array_num_value(2) :=
27142 xla_ae_sources_pkg.GetSystemSourceNum(
27143 p_source_code => 'XLA_EVENT_APPL_ID'
27144 , p_source_type_code => 'Y'
27145 , p_source_application_id => 602
27146 );
27147 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
27148 l_rec_acct_attrs.array_char_value(3) := p_source_17;
27149 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
27150 l_rec_acct_attrs.array_char_value(4) :=
27151 xla_ae_sources_pkg.GetSystemSourceChar(
27152 p_source_code => 'XLA_ENTITY_CODE'
27153 , p_source_type_code => 'Y'
27154 , p_source_application_id => 602
27155 );
27156 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
27157 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
27158 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
27159 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
27160 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
27161 l_rec_acct_attrs.array_num_value(7) := p_source_55;
27162 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
27163 l_rec_acct_attrs.array_num_value(8) := p_source_21;
27164 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27165 l_rec_acct_attrs.array_char_value(9) := p_source_22;
27166 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
27167 l_rec_acct_attrs.array_char_value(10) := p_source_23;
27168 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
27169 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
27170 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27171 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
27172 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
27173 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
27174 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
27175 l_rec_acct_attrs.array_char_value(14) := p_source_17;
27176 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
27177 l_rec_acct_attrs.array_num_value(15) := p_source_27;
27178 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
27179 l_rec_acct_attrs.array_num_value(16) := p_source_28;
27180 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
27181 l_rec_acct_attrs.array_char_value(17) := p_source_29;
27182 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
27183 l_rec_acct_attrs.array_num_value(18) := p_source_30;
27184 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
27185 l_rec_acct_attrs.array_num_value(19) := p_source_31;
27186 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
27187 l_rec_acct_attrs.array_num_value(20) := p_source_32;
27188 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
27189 l_rec_acct_attrs.array_char_value(21) := p_source_29;
27190 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
27191 l_rec_acct_attrs.array_num_value(22) := p_source_33;
27192 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
27193 l_rec_acct_attrs.array_char_value(23) := p_source_34;
27194 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
27195 l_rec_acct_attrs.array_num_value(24) := p_source_55;
27196 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
27197 l_rec_acct_attrs.array_char_value(25) := p_source_29;
27198 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
27199 l_rec_acct_attrs.array_date_value(26) := p_source_36;
27200 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
27201 l_rec_acct_attrs.array_num_value(27) := p_source_37;
27202 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
27203 l_rec_acct_attrs.array_char_value(28) := p_source_38;
27204 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
27205 l_rec_acct_attrs.array_num_value(29) := p_source_58;
27206 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
27207 l_rec_acct_attrs.array_date_value(30) := p_source_39;
27208 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
27209 l_rec_acct_attrs.array_char_value(31) := p_source_40;
27210 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
27211 l_rec_acct_attrs.array_date_value(32) := p_source_41;
27212 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
27213 l_rec_acct_attrs.array_char_value(33) := p_source_42;
27214 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
27215 l_rec_acct_attrs.array_num_value(34) := p_source_43;
27216 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
27217 l_rec_acct_attrs.array_num_value(35) := p_source_44;
27218 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
27219 l_rec_acct_attrs.array_char_value(36) := p_source_45;
27220 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
27221 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
27222 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
27223 l_rec_acct_attrs.array_char_value(38) := p_source_17;
27224 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
27225 l_rec_acct_attrs.array_num_value(39) := p_source_47;
27226 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
27227 l_rec_acct_attrs.array_num_value(40) := p_source_48;
27228 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
27229 l_rec_acct_attrs.array_num_value(41) := p_source_49;
27230 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
27231 l_rec_acct_attrs.array_num_value(42) := p_source_50;
27232 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
27233 l_rec_acct_attrs.array_num_value(43) := p_source_51;
27234 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
27235 l_rec_acct_attrs.array_num_value(44) := p_source_52;
27236
27237 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27238 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27239
27240 ---------------------------------------------------------------------------------------------------------------
27241 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27242 ---------------------------------------------------------------------------------------------------------------
27243 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27244
27245 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27246 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27247
27248 IF xla_accounting_cache_pkg.GetValueChar
27249 (p_source_code => 'LEDGER_CATEGORY_CODE'
27250 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27251 AND l_bflow_method_code = 'PRIOR_ENTRY'
27252 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27253 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27254 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27255 )
27256 THEN
27257 xla_ae_lines_pkg.BflowUpgEntry
27258 (p_business_method_code => l_bflow_method_code
27259 ,p_business_class_code => l_bflow_class_code
27260 ,p_balance_type => l_balance_type_code);
27261 ELSE
27262 NULL;
27263 -- No business flow processing for business flow method of NONE.
27264 END IF;
27265
27266 --
27267 -- call analytical criteria
27268 --
27269
27270 --
27271 -- call description
27272 --
27273
27274 xla_ae_lines_pkg.SetLineDescription(
27275 p_ae_header_id => l_ae_header_id
27276 ,p_description => Description_2 (
27277 p_application_id => p_application_id
27278 , p_ae_header_id => l_ae_header_id
27279 , p_source_1 => p_source_1
27280 )
27281 );
27282
27283
27284 --
27285 -- call ADRs
27286 -- Bug 4922099
27287 --
27288 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27289 (NVL(l_actual_upg_option, 'N') = 'O') OR
27290 (NVL(l_enc_upg_option, 'N') = 'O')
27291 )
27292 THEN
27293 NULL;
27294 --
27295 --
27296
27297 l_ccid := AcctDerRule_3(
27298 p_application_id => p_application_id
27299 , p_ae_header_id => l_ae_header_id
27300 , p_source_2 => p_source_2
27301 , x_transaction_coa_id => l_adr_transaction_coa_id
27302 , x_accounting_coa_id => l_adr_accounting_coa_id
27303 , x_value_type_code => l_adr_value_type_code
27304 , p_side => 'NA'
27305 );
27306
27307 xla_ae_lines_pkg.set_ccid(
27308 p_code_combination_id => l_ccid
27309 , p_value_type_code => l_adr_value_type_code
27310 , p_transaction_coa_id => l_adr_transaction_coa_id
27311 , p_accounting_coa_id => l_adr_accounting_coa_id
27312 , p_adr_code => 'AP_INVOICE_DIST'
27313 , p_adr_type_code => 'S'
27314 , p_component_type => l_component_type
27315 , p_component_code => l_component_code
27316 , p_component_type_code => l_component_type_code
27317 , p_component_appl_id => l_component_appl_id
27318 , p_amb_context_code => l_amb_context_code
27319 , p_side => 'NA'
27320 );
27321
27322
27323 l_segment := AcctDerRule_15(
27324 p_application_id => p_application_id
27325 , p_ae_header_id => l_ae_header_id
27326 , x_transaction_coa_id => l_adr_transaction_coa_id
27327 , x_accounting_coa_id => l_adr_accounting_coa_id
27328 , x_flexfield_segment_code => l_adr_flexfield_segment_code
27329 , x_flex_value_set_id => l_adr_flex_value_set_id
27330 , x_value_type_code => l_adr_value_type_code
27331 , x_value_combination_id => l_adr_value_combination_id
27332 , x_value_segment_code => l_adr_value_segment_code
27333 , p_side => 'NA'
27334 , p_override_seg_flag => 'Y'
27335 );
27336
27337 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27338
27339 xla_ae_lines_pkg.set_segment(
27340 p_to_segment_code => 'GL_ACCOUNT'
27341 , p_segment_value => l_segment
27342 , p_from_segment_code => l_adr_value_segment_code
27343 , p_from_combination_id => l_adr_value_combination_id
27344 , p_value_type_code => l_adr_value_type_code
27345 , p_transaction_coa_id => l_adr_transaction_coa_id
27346 , p_accounting_coa_id => l_adr_accounting_coa_id
27347 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27348 , p_flex_value_set_id => l_adr_flex_value_set_id
27349 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
27350 , p_adr_type_code => 'S'
27351 , p_component_type => l_component_type
27352 , p_component_code => l_component_code
27353 , p_component_type_code => l_component_type_code
27354 , p_component_appl_id => l_component_appl_id
27355 , p_amb_context_code => l_amb_context_code
27356 , p_entity_code => 'AP_INVOICES'
27357 , p_event_class_code => 'INVOICES'
27358 , p_side => 'NA'
27359 );
27360
27361 END IF;
27362
27363 --
27364 --
27365 END IF;
27366 --
27367 -- Bug 4922099
27368 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27369 (NVL(l_enc_upg_option, 'N') = 'O')
27370 ) AND
27371 (l_bflow_method_code = 'PRIOR_ENTRY')
27372 )
27373 THEN
27374 IF
27375 --
27376 1 = 2
27377 --
27378 THEN
27379 xla_accounting_err_pkg.build_message
27380 (p_appli_s_name => 'XLA'
27381 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27382 ,p_token_1 => 'LINE_NUMBER'
27383 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27384 ,p_token_2 => 'LINE_TYPE_NAME'
27385 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27386 l_component_type
27387 ,l_component_code
27388 ,l_component_type_code
27389 ,l_component_appl_id
27390 ,l_amb_context_code
27391 ,l_entity_code
27392 ,l_event_class_code
27393 )
27394 ,p_token_3 => 'OWNER'
27395 ,p_value_3 => xla_lookups_pkg.get_meaning(
27396 p_lookup_type => 'XLA_OWNER_TYPE'
27397 ,p_lookup_code => l_component_type_code
27398 )
27399 ,p_token_4 => 'PRODUCT_NAME'
27400 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27401 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27402 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27403 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27404 ,p_ae_header_id => NULL
27405 );
27406
27407 IF (C_LEVEL_ERROR>= g_log_level) THEN
27408 trace
27409 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27410 ,p_level => C_LEVEL_ERROR
27411 ,p_module => l_log_module);
27412 END IF;
27413 END IF;
27414 END IF;
27415 --
27416 --
27417 ------------------------------------------------------------------------------------------------
27418 -- 4219869 Business Flow
27419 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27420 -- Prior Entry. Currently, the following code is always generated.
27421 ------------------------------------------------------------------------------------------------
27422 XLA_AE_LINES_PKG.ValidateCurrentLine;
27423
27424 ------------------------------------------------------------------------------------
27425 -- 4219869 Business Flow
27426 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27427 ------------------------------------------------------------------------------------
27428 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27429
27430 ----------------------------------------------------------------------------------
27431 -- 4219869 Business Flow
27432 -- Update journal entry status -- Need to generate this within IF <condition>
27433 ----------------------------------------------------------------------------------
27434 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27435 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27436 ,p_balance_type_code => l_balance_type_code
27437 );
27438
27439 -------------------------------------------------------------------------------------------
27440 -- 4262811 - Generate the Accrual Reversal lines
27441 -------------------------------------------------------------------------------------------
27442 BEGIN
27443 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27444 (g_array_event(p_event_id).array_value_num('header_index'));
27445 IF l_acc_rev_flag IS NULL THEN
27446 l_acc_rev_flag := 'N';
27447 END IF;
27448 EXCEPTION
27449 WHEN OTHERS THEN
27450 l_acc_rev_flag := 'N';
27451 END;
27452 --
27453 IF (l_acc_rev_flag = 'Y') THEN
27454
27455 -- 4645092 ------------------------------------------------------------------------------
27456 -- To allow MPA report to determine if it should generate report process
27457 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27458 ------------------------------------------------------------------------------------------
27459
27460 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27461 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27462 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27463 -- call ADRs
27464 -- Bug 4922099
27465 --
27466 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27467 (NVL(l_actual_upg_option, 'N') = 'O') OR
27468 (NVL(l_enc_upg_option, 'N') = 'O')
27469 )
27470 THEN
27471 NULL;
27472 --
27473 --
27474
27475 l_ccid := AcctDerRule_3(
27476 p_application_id => p_application_id
27477 , p_ae_header_id => l_ae_header_id
27478 , p_source_2 => p_source_2
27479 , x_transaction_coa_id => l_adr_transaction_coa_id
27480 , x_accounting_coa_id => l_adr_accounting_coa_id
27481 , x_value_type_code => l_adr_value_type_code
27482 , p_side => 'NA'
27483 );
27484
27485 xla_ae_lines_pkg.set_ccid(
27486 p_code_combination_id => l_ccid
27487 , p_value_type_code => l_adr_value_type_code
27488 , p_transaction_coa_id => l_adr_transaction_coa_id
27489 , p_accounting_coa_id => l_adr_accounting_coa_id
27490 , p_adr_code => 'AP_INVOICE_DIST'
27491 , p_adr_type_code => 'S'
27492 , p_component_type => l_component_type
27493 , p_component_code => l_component_code
27494 , p_component_type_code => l_component_type_code
27495 , p_component_appl_id => l_component_appl_id
27496 , p_amb_context_code => l_amb_context_code
27497 , p_side => 'NA'
27498 );
27499
27500
27501 l_segment := AcctDerRule_15(
27502 p_application_id => p_application_id
27503 , p_ae_header_id => l_ae_header_id
27504 , x_transaction_coa_id => l_adr_transaction_coa_id
27505 , x_accounting_coa_id => l_adr_accounting_coa_id
27506 , x_flexfield_segment_code => l_adr_flexfield_segment_code
27507 , x_flex_value_set_id => l_adr_flex_value_set_id
27508 , x_value_type_code => l_adr_value_type_code
27509 , x_value_combination_id => l_adr_value_combination_id
27510 , x_value_segment_code => l_adr_value_segment_code
27511 , p_side => 'NA'
27512 , p_override_seg_flag => 'Y'
27513 );
27514
27515 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
27516
27517 xla_ae_lines_pkg.set_segment(
27518 p_to_segment_code => 'GL_ACCOUNT'
27519 , p_segment_value => l_segment
27520 , p_from_segment_code => l_adr_value_segment_code
27521 , p_from_combination_id => l_adr_value_combination_id
27522 , p_value_type_code => l_adr_value_type_code
27523 , p_transaction_coa_id => l_adr_transaction_coa_id
27524 , p_accounting_coa_id => l_adr_accounting_coa_id
27525 , p_flexfield_segment_code => l_adr_flexfield_segment_code
27526 , p_flex_value_set_id => l_adr_flex_value_set_id
27527 , p_adr_code => 'FV_570001_UNEXP_APPR_ACCT'
27528 , p_adr_type_code => 'S'
27529 , p_component_type => l_component_type
27530 , p_component_code => l_component_code
27531 , p_component_type_code => l_component_type_code
27532 , p_component_appl_id => l_component_appl_id
27533 , p_amb_context_code => l_amb_context_code
27534 , p_entity_code => 'AP_INVOICES'
27535 , p_event_class_code => 'INVOICES'
27536 , p_side => 'NA'
27537 );
27538
27539 END IF;
27540
27541 --
27542 --
27543 END IF;
27544
27545 --
27546 -- Update the line information that should be overwritten
27547 --
27548 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27549 p_header_num => 1);
27550 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27551
27552 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27553
27554 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27555 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27556 END IF;
27557
27558 --
27559 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27560 --
27561 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27562 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27563 ELSE
27564 ---------------------------------------------------------------------------------------------------
27565 -- 4262811a Switch Sign
27566 ---------------------------------------------------------------------------------------------------
27567 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27568 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27569 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27570 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27571 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27572 -- 5132302
27573 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27574 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27575
27576 END IF;
27577
27578 -- 4955764
27579 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27580 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27581
27582
27583 XLA_AE_LINES_PKG.ValidateCurrentLine;
27584 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27585
27586 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27587 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27588 ,p_balance_type_code => l_balance_type_code);
27589
27590 END IF;
27591
27592 -----------------------------------------------------------------------------------------
27593 -- 4262811 Multiperiod Accounting
27594 -----------------------------------------------------------------------------------------
27595 -- No MPA option is assigned.
27596
27597
27598 END IF;
27599 END IF;
27600 --
27601
27602 --
27603 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27604 trace
27605 (p_msg => 'END of AcctLineType_48'
27606 ,p_level => C_LEVEL_PROCEDURE
27607 ,p_module => l_log_module);
27608 END IF;
27609 --
27610 EXCEPTION
27611 WHEN xla_exceptions_pkg.application_exception THEN
27612 RAISE;
27613 WHEN OTHERS THEN
27614 xla_exceptions_pkg.raise_message
27615 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_48');
27616 END AcctLineType_48;
27617 --
27618
27619 ---------------------------------------
27620 --
27621 -- PRIVATE FUNCTION
27622 -- AcctLineType_49
27623 --
27624 ---------------------------------------
27625 PROCEDURE AcctLineType_49 (
27626 p_application_id IN NUMBER
27627 ,p_event_id IN NUMBER
27628 ,p_calculate_acctd_flag IN VARCHAR2
27629 ,p_calculate_g_l_flag IN VARCHAR2
27630 ,p_actual_flag IN OUT VARCHAR2
27631 ,p_balance_type_code OUT VARCHAR2
27632 ,p_gain_or_loss_ref OUT VARCHAR2
27633
27634 --Invoice Distribution Description
27635 , p_source_1 IN VARCHAR2
27636 --Invoice Distribution Account
27637 , p_source_2 IN NUMBER
27638 --Federal Fund Category Description
27639 , p_source_6 IN VARCHAR2
27640 --Accounting Reversal Indicator
27641 , p_source_15 IN VARCHAR2
27642 --Distribution Link Type
27643 , p_source_17 IN VARCHAR2
27644 --Allocation to Main Distribution Identifier
27645 , p_source_19 IN NUMBER
27646 --Invoice Identifier
27647 , p_source_20 IN NUMBER
27648 --Business Flow Accounts Payable Application Identifier
27649 , p_source_21 IN NUMBER
27650 --Business Flow Invoice Distribution Type
27651 , p_source_22 IN VARCHAR2
27652 --Business Flow Invoice Entity Code
27653 , p_source_23 IN VARCHAR2
27654 --Business Flow Invoice Distribution Identifier
27655 , p_source_24 IN NUMBER
27656 --Business Flow Invoice Identifier
27657 , p_source_25 IN NUMBER
27658 --Invoice Distribution Identifier
27659 , p_source_26 IN NUMBER
27660 --Payables Encumbrance Upgrade Credit Account
27661 , p_source_27 IN NUMBER
27662 --Payables Encumbrance Upgrade Credit Amount
27663 , p_source_28 IN NUMBER
27664 --Invoice Currency Code
27665 , p_source_29 IN VARCHAR2
27666 --Payables Encumbrance Upgrade Credit Base Amount
27667 , p_source_30 IN NUMBER
27668 --Payables Encumbrance Upgrade Debit Account
27669 , p_source_31 IN NUMBER
27670 --Payables Encumbrance Upgrade Debit Amount
27671 , p_source_32 IN NUMBER
27672 --Payables Encumbrance Upgrade Debit Base Amount
27673 , p_source_33 IN NUMBER
27674 --Payables Encumbrance Upgrade Option
27675 , p_source_34 IN VARCHAR2
27676 --Invoice Exchange Date
27677 , p_source_36 IN DATE
27678 --Invoice Exchange Rate
27679 , p_source_37 IN NUMBER
27680 --Invoice Exchange Rate Type
27681 , p_source_38 IN VARCHAR2
27682 --Deferred Accounting End Date
27683 , p_source_39 IN DATE
27684 --Deferred Accounting Option
27685 , p_source_40 IN VARCHAR2
27686 --Deferred Accounting Start Date
27687 , p_source_41 IN DATE
27688 --Override Accounted Amount Indicator
27689 , p_source_42 IN VARCHAR2
27690 , p_source_42_meaning IN VARCHAR2
27691 --Invoice Supplier Identifier
27692 , p_source_43 IN NUMBER
27693 --Invoice Supplier Site Identifier
27694 , p_source_44 IN NUMBER
27695 --Third Party Type
27696 , p_source_45 IN VARCHAR2
27697 --Parent Reversal Identifier
27698 , p_source_46 IN NUMBER
27699 --Invoice Distribution Statistical Amount
27700 , p_source_47 IN NUMBER
27701 --Invoice Distribution Tax Line Identifier
27702 , p_source_48 IN NUMBER
27703 --Invoice Distribution Tax Distribution Identifier from Tax
27704 , p_source_49 IN NUMBER
27705 --Invoice Distribution Summary Tax Line Identifier
27706 , p_source_50 IN NUMBER
27707 --Payables Upgrade Credit Encumbrance Type Identifier
27708 , p_source_51 IN NUMBER
27709 --Payables Upgrade Debit Encumbrance Type Identifier
27710 , p_source_52 IN NUMBER
27711 --Invoice Distribution Amount
27712 , p_source_55 IN NUMBER
27713 --Invoice Distribution Ledger Amount Before Rounding
27714 , p_source_58 IN NUMBER
27715 )
27716 IS
27717
27718 l_component_type VARCHAR2(80);
27719 l_component_code VARCHAR2(30);
27720 l_component_type_code VARCHAR2(1);
27721 l_component_appl_id INTEGER;
27722 l_amb_context_code VARCHAR2(30);
27723 l_entity_code VARCHAR2(30);
27724 l_event_class_code VARCHAR2(30);
27725 l_ae_header_id NUMBER;
27726 l_event_type_code VARCHAR2(30);
27727 l_line_definition_code VARCHAR2(30);
27728 l_line_definition_owner_code VARCHAR2(1);
27729 --
27730 -- adr variables
27731 l_segment VARCHAR2(30);
27732 l_ccid NUMBER;
27733 l_adr_transaction_coa_id NUMBER;
27734 l_adr_accounting_coa_id NUMBER;
27735 l_adr_flexfield_segment_code VARCHAR2(30);
27736 l_adr_flex_value_set_id NUMBER;
27737 l_adr_value_type_code VARCHAR2(30);
27738 l_adr_value_combination_id NUMBER;
27739 l_adr_value_segment_code VARCHAR2(30);
27740
27741 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27742 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27743 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27744 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27745
27746 -- 4262811 Variables ------------------------------------------------------------------------------------------
27747 l_entered_amt_idx NUMBER;
27748 l_accted_amt_idx NUMBER;
27749 l_acc_rev_flag VARCHAR2(1);
27750 l_accrual_line_num NUMBER;
27751 l_tmp_amt NUMBER;
27752 l_acc_rev_natural_side_code VARCHAR2(1);
27753
27754 l_num_entries NUMBER;
27755 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27756 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27757 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27758 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27759 l_recog_line_1 NUMBER;
27760 l_recog_line_2 NUMBER;
27761
27762 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27763 l_bflow_applied_to_amt NUMBER; -- 5132302
27764 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27765
27766 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27767
27768 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27769 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27770
27771 ---------------------------------------------------------------------------------------------------------------
27772
27773
27774 --
27775 -- bulk performance
27776 --
27777 l_balance_type_code VARCHAR2(1);
27778 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27779 l_log_module VARCHAR2(240);
27780
27781 --
27782 -- Upgrade strategy
27783 --
27784 l_actual_upg_option VARCHAR2(1);
27785 l_enc_upg_option VARCHAR2(1);
27786
27787 --
27788 BEGIN
27789 --
27790 IF g_log_enabled THEN
27791 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
27792 END IF;
27793 --
27794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27795
27796 trace
27797 (p_msg => 'BEGIN of AcctLineType_49'
27798 ,p_level => C_LEVEL_PROCEDURE
27799 ,p_module => l_log_module);
27800
27801 END IF;
27802 --
27803 l_component_type := 'AMB_JLT';
27804 l_component_code := 'FV_AP_INV_DIRECT_FUND_DR';
27805 l_component_type_code := 'S';
27806 l_component_appl_id := 200;
27807 l_amb_context_code := 'DEFAULT';
27808 l_entity_code := 'AP_INVOICES';
27809 l_event_class_code := 'INVOICES';
27810 l_event_type_code := 'INVOICES_ALL';
27811 l_line_definition_owner_code := 'S';
27812 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
27813 --
27814 l_balance_type_code := 'A';
27815 l_segment := NULL;
27816 l_ccid := NULL;
27817 l_adr_transaction_coa_id := NULL;
27818 l_adr_accounting_coa_id := NULL;
27819 l_adr_flexfield_segment_code := NULL;
27820 l_adr_flex_value_set_id := NULL;
27821 l_adr_value_type_code := NULL;
27822 l_adr_value_combination_id := NULL;
27823 l_adr_value_segment_code := NULL;
27824
27825 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27826 l_bflow_class_code := 'FV_DIRECT_FUND_DR'; -- 4219869 Business Flow
27827 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27828 l_budgetary_control_flag := 'Y';
27829
27830 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27831 l_bflow_applied_to_amt := NULL; -- 5132302
27832 l_entered_amt_idx := NULL; -- 4262811
27833 l_accted_amt_idx := NULL; -- 4262811
27834 l_acc_rev_flag := NULL; -- 4262811
27835 l_accrual_line_num := NULL; -- 4262811
27836 l_tmp_amt := NULL; -- 4262811
27837 --
27838
27839 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27840 l_balance_type_code <> 'B' THEN
27841 IF NVL(p_source_6,'
27842 ') = 'Direct'
27843 THEN
27844
27845 --
27846 XLA_AE_LINES_PKG.SetNewLine;
27847
27848 p_balance_type_code := l_balance_type_code;
27849 -- set the flag so later we will know whether the gain loss line needs to be created
27850
27851 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27852 p_actual_flag :='A';
27853 END IF;
27854
27855 --
27856 -- bulk performance
27857 --
27858 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27859 p_header_num => 0); -- 4262811
27860 --
27861 -- set accounting line options
27862 --
27863 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27864 p_natural_side_code => 'D'
27865 , p_gain_or_loss_flag => 'N'
27866 , p_gl_transfer_mode_code => 'S'
27867 , p_acct_entry_type_code => 'A'
27868 , p_switch_side_flag => 'N'
27869 , p_merge_duplicate_code => 'N'
27870 );
27871 --
27872 l_acc_rev_natural_side_code := 'C'; -- 4262811
27873 --
27874 --
27875 -- set accounting line type info
27876 --
27877 xla_ae_lines_pkg.SetAcctLineType
27878 (p_component_type => l_component_type
27879 ,p_event_type_code => l_event_type_code
27880 ,p_line_definition_owner_code => l_line_definition_owner_code
27881 ,p_line_definition_code => l_line_definition_code
27882 ,p_accounting_line_code => l_component_code
27883 ,p_accounting_line_type_code => l_component_type_code
27884 ,p_accounting_line_appl_id => l_component_appl_id
27885 ,p_amb_context_code => l_amb_context_code
27886 ,p_entity_code => l_entity_code
27887 ,p_event_class_code => l_event_class_code);
27888 --
27889 -- set accounting class
27890 --
27891 xla_ae_lines_pkg.SetAcctClass(
27892 p_accounting_class_code => 'ACCOUNTSPAYABLE'
27893 , p_ae_header_id => l_ae_header_id
27894 );
27895
27896 --
27897 -- set rounding class
27898 --
27899 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27900 'ACCOUNTSPAYABLE';
27901
27902 --
27903 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27904 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27905 --
27906 -- bulk performance
27907 --
27908 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27909
27910 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27911 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27912
27913 -- 4955764
27914 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27915 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27916
27917 -- 4458381 Public Sector Enh
27918
27919 --
27920 -- set accounting attributes for the line type
27921 --
27922 l_entered_amt_idx := 24;
27923 l_accted_amt_idx := 29;
27924 l_bflow_applied_to_amt_idx := 7; -- 5132302
27925 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27926 l_rec_acct_attrs.array_char_value(1) := p_source_15;
27927 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
27928 l_rec_acct_attrs.array_num_value(2) :=
27929 xla_ae_sources_pkg.GetSystemSourceNum(
27930 p_source_code => 'XLA_EVENT_APPL_ID'
27931 , p_source_type_code => 'Y'
27932 , p_source_application_id => 602
27933 );
27934 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
27935 l_rec_acct_attrs.array_char_value(3) := p_source_17;
27936 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
27937 l_rec_acct_attrs.array_char_value(4) :=
27938 xla_ae_sources_pkg.GetSystemSourceChar(
27939 p_source_code => 'XLA_ENTITY_CODE'
27940 , p_source_type_code => 'Y'
27941 , p_source_application_id => 602
27942 );
27943 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
27944 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
27945 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
27946 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
27947 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
27948 l_rec_acct_attrs.array_num_value(7) := p_source_55;
27949 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
27950 l_rec_acct_attrs.array_num_value(8) := p_source_21;
27951 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27952 l_rec_acct_attrs.array_char_value(9) := p_source_22;
27953 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
27954 l_rec_acct_attrs.array_char_value(10) := p_source_23;
27955 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
27956 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
27957 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27958 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
27959 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
27960 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
27961 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
27962 l_rec_acct_attrs.array_char_value(14) := p_source_17;
27963 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
27964 l_rec_acct_attrs.array_num_value(15) := p_source_27;
27965 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
27966 l_rec_acct_attrs.array_num_value(16) := p_source_28;
27967 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
27968 l_rec_acct_attrs.array_char_value(17) := p_source_29;
27969 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
27970 l_rec_acct_attrs.array_num_value(18) := p_source_30;
27971 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
27972 l_rec_acct_attrs.array_num_value(19) := p_source_31;
27973 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
27974 l_rec_acct_attrs.array_num_value(20) := p_source_32;
27975 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
27976 l_rec_acct_attrs.array_char_value(21) := p_source_29;
27977 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
27978 l_rec_acct_attrs.array_num_value(22) := p_source_33;
27979 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
27980 l_rec_acct_attrs.array_char_value(23) := p_source_34;
27981 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
27982 l_rec_acct_attrs.array_num_value(24) := p_source_55;
27983 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
27984 l_rec_acct_attrs.array_char_value(25) := p_source_29;
27985 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
27986 l_rec_acct_attrs.array_date_value(26) := p_source_36;
27987 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
27988 l_rec_acct_attrs.array_num_value(27) := p_source_37;
27989 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
27990 l_rec_acct_attrs.array_char_value(28) := p_source_38;
27991 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
27992 l_rec_acct_attrs.array_num_value(29) := p_source_58;
27993 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
27994 l_rec_acct_attrs.array_date_value(30) := p_source_39;
27995 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
27996 l_rec_acct_attrs.array_char_value(31) := p_source_40;
27997 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
27998 l_rec_acct_attrs.array_date_value(32) := p_source_41;
27999 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
28000 l_rec_acct_attrs.array_char_value(33) := p_source_42;
28001 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
28002 l_rec_acct_attrs.array_num_value(34) := p_source_43;
28003 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
28004 l_rec_acct_attrs.array_num_value(35) := p_source_44;
28005 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
28006 l_rec_acct_attrs.array_char_value(36) := p_source_45;
28007 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
28008 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
28009 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
28010 l_rec_acct_attrs.array_char_value(38) := p_source_17;
28011 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
28012 l_rec_acct_attrs.array_num_value(39) := p_source_47;
28013 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
28014 l_rec_acct_attrs.array_num_value(40) := p_source_48;
28015 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
28016 l_rec_acct_attrs.array_num_value(41) := p_source_49;
28017 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
28018 l_rec_acct_attrs.array_num_value(42) := p_source_50;
28019 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
28020 l_rec_acct_attrs.array_num_value(43) := p_source_51;
28021 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
28022 l_rec_acct_attrs.array_num_value(44) := p_source_52;
28023
28024 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28025 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28026
28027 ---------------------------------------------------------------------------------------------------------------
28028 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28029 ---------------------------------------------------------------------------------------------------------------
28030 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28031
28032 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28033 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28034
28035 IF xla_accounting_cache_pkg.GetValueChar
28036 (p_source_code => 'LEDGER_CATEGORY_CODE'
28037 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28038 AND l_bflow_method_code = 'PRIOR_ENTRY'
28039 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28040 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28041 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28042 )
28043 THEN
28044 xla_ae_lines_pkg.BflowUpgEntry
28045 (p_business_method_code => l_bflow_method_code
28046 ,p_business_class_code => l_bflow_class_code
28047 ,p_balance_type => l_balance_type_code);
28048 ELSE
28049 NULL;
28050 -- No business flow processing for business flow method of NONE.
28051 END IF;
28052
28053 --
28054 -- call analytical criteria
28055 --
28056
28057 --
28058 -- call description
28059 --
28060
28061 xla_ae_lines_pkg.SetLineDescription(
28062 p_ae_header_id => l_ae_header_id
28063 ,p_description => Description_2 (
28064 p_application_id => p_application_id
28065 , p_ae_header_id => l_ae_header_id
28066 , p_source_1 => p_source_1
28067 )
28068 );
28069
28070
28071 --
28072 -- call ADRs
28073 -- Bug 4922099
28074 --
28075 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28076 (NVL(l_actual_upg_option, 'N') = 'O') OR
28077 (NVL(l_enc_upg_option, 'N') = 'O')
28078 )
28079 THEN
28080 NULL;
28081 --
28082 --
28083
28084 l_ccid := AcctDerRule_3(
28085 p_application_id => p_application_id
28086 , p_ae_header_id => l_ae_header_id
28087 , p_source_2 => p_source_2
28088 , x_transaction_coa_id => l_adr_transaction_coa_id
28089 , x_accounting_coa_id => l_adr_accounting_coa_id
28090 , x_value_type_code => l_adr_value_type_code
28091 , p_side => 'NA'
28092 );
28093
28094 xla_ae_lines_pkg.set_ccid(
28095 p_code_combination_id => l_ccid
28096 , p_value_type_code => l_adr_value_type_code
28097 , p_transaction_coa_id => l_adr_transaction_coa_id
28098 , p_accounting_coa_id => l_adr_accounting_coa_id
28099 , p_adr_code => 'AP_INVOICE_DIST'
28100 , p_adr_type_code => 'S'
28101 , p_component_type => l_component_type
28102 , p_component_code => l_component_code
28103 , p_component_type_code => l_component_type_code
28104 , p_component_appl_id => l_component_appl_id
28105 , p_amb_context_code => l_amb_context_code
28106 , p_side => 'NA'
28107 );
28108
28109
28110 l_segment := AcctDerRule_4(
28111 p_application_id => p_application_id
28112 , p_ae_header_id => l_ae_header_id
28113 , x_transaction_coa_id => l_adr_transaction_coa_id
28114 , x_accounting_coa_id => l_adr_accounting_coa_id
28115 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28116 , x_flex_value_set_id => l_adr_flex_value_set_id
28117 , x_value_type_code => l_adr_value_type_code
28118 , x_value_combination_id => l_adr_value_combination_id
28119 , x_value_segment_code => l_adr_value_segment_code
28120 , p_side => 'NA'
28121 , p_override_seg_flag => 'Y'
28122 );
28123
28124 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28125
28126 xla_ae_lines_pkg.set_segment(
28127 p_to_segment_code => 'GL_ACCOUNT'
28128 , p_segment_value => l_segment
28129 , p_from_segment_code => l_adr_value_segment_code
28130 , p_from_combination_id => l_adr_value_combination_id
28131 , p_value_type_code => l_adr_value_type_code
28132 , p_transaction_coa_id => l_adr_transaction_coa_id
28133 , p_accounting_coa_id => l_adr_accounting_coa_id
28134 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28135 , p_flex_value_set_id => l_adr_flex_value_set_id
28136 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
28137 , p_adr_type_code => 'S'
28138 , p_component_type => l_component_type
28139 , p_component_code => l_component_code
28140 , p_component_type_code => l_component_type_code
28141 , p_component_appl_id => l_component_appl_id
28142 , p_amb_context_code => l_amb_context_code
28143 , p_entity_code => 'AP_INVOICES'
28144 , p_event_class_code => 'INVOICES'
28145 , p_side => 'NA'
28146 );
28147
28148 END IF;
28149
28150 --
28151 --
28152 END IF;
28153 --
28154 -- Bug 4922099
28155 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28156 (NVL(l_enc_upg_option, 'N') = 'O')
28157 ) AND
28158 (l_bflow_method_code = 'PRIOR_ENTRY')
28159 )
28160 THEN
28161 IF
28162 --
28163 1 = 2
28164 --
28165 THEN
28166 xla_accounting_err_pkg.build_message
28167 (p_appli_s_name => 'XLA'
28168 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28169 ,p_token_1 => 'LINE_NUMBER'
28170 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28171 ,p_token_2 => 'LINE_TYPE_NAME'
28172 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28173 l_component_type
28174 ,l_component_code
28175 ,l_component_type_code
28176 ,l_component_appl_id
28177 ,l_amb_context_code
28178 ,l_entity_code
28179 ,l_event_class_code
28180 )
28181 ,p_token_3 => 'OWNER'
28182 ,p_value_3 => xla_lookups_pkg.get_meaning(
28183 p_lookup_type => 'XLA_OWNER_TYPE'
28184 ,p_lookup_code => l_component_type_code
28185 )
28186 ,p_token_4 => 'PRODUCT_NAME'
28187 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28188 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28189 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28190 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28191 ,p_ae_header_id => NULL
28192 );
28193
28194 IF (C_LEVEL_ERROR>= g_log_level) THEN
28195 trace
28196 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28197 ,p_level => C_LEVEL_ERROR
28198 ,p_module => l_log_module);
28199 END IF;
28200 END IF;
28201 END IF;
28202 --
28203 --
28204 ------------------------------------------------------------------------------------------------
28205 -- 4219869 Business Flow
28206 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28207 -- Prior Entry. Currently, the following code is always generated.
28208 ------------------------------------------------------------------------------------------------
28209 XLA_AE_LINES_PKG.ValidateCurrentLine;
28210
28211 ------------------------------------------------------------------------------------
28212 -- 4219869 Business Flow
28213 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28214 ------------------------------------------------------------------------------------
28215 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28216
28217 ----------------------------------------------------------------------------------
28218 -- 4219869 Business Flow
28219 -- Update journal entry status -- Need to generate this within IF <condition>
28220 ----------------------------------------------------------------------------------
28221 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28222 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28223 ,p_balance_type_code => l_balance_type_code
28224 );
28225
28226 -------------------------------------------------------------------------------------------
28227 -- 4262811 - Generate the Accrual Reversal lines
28228 -------------------------------------------------------------------------------------------
28229 BEGIN
28230 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28231 (g_array_event(p_event_id).array_value_num('header_index'));
28232 IF l_acc_rev_flag IS NULL THEN
28233 l_acc_rev_flag := 'N';
28234 END IF;
28235 EXCEPTION
28236 WHEN OTHERS THEN
28237 l_acc_rev_flag := 'N';
28238 END;
28239 --
28240 IF (l_acc_rev_flag = 'Y') THEN
28241
28242 -- 4645092 ------------------------------------------------------------------------------
28243 -- To allow MPA report to determine if it should generate report process
28244 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28245 ------------------------------------------------------------------------------------------
28246
28247 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28248 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28249 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28250 -- call ADRs
28251 -- Bug 4922099
28252 --
28253 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28254 (NVL(l_actual_upg_option, 'N') = 'O') OR
28255 (NVL(l_enc_upg_option, 'N') = 'O')
28256 )
28257 THEN
28258 NULL;
28259 --
28260 --
28261
28262 l_ccid := AcctDerRule_3(
28263 p_application_id => p_application_id
28264 , p_ae_header_id => l_ae_header_id
28265 , p_source_2 => p_source_2
28266 , x_transaction_coa_id => l_adr_transaction_coa_id
28267 , x_accounting_coa_id => l_adr_accounting_coa_id
28268 , x_value_type_code => l_adr_value_type_code
28269 , p_side => 'NA'
28270 );
28271
28272 xla_ae_lines_pkg.set_ccid(
28273 p_code_combination_id => l_ccid
28274 , p_value_type_code => l_adr_value_type_code
28275 , p_transaction_coa_id => l_adr_transaction_coa_id
28276 , p_accounting_coa_id => l_adr_accounting_coa_id
28277 , p_adr_code => 'AP_INVOICE_DIST'
28278 , p_adr_type_code => 'S'
28279 , p_component_type => l_component_type
28280 , p_component_code => l_component_code
28281 , p_component_type_code => l_component_type_code
28282 , p_component_appl_id => l_component_appl_id
28283 , p_amb_context_code => l_amb_context_code
28284 , p_side => 'NA'
28285 );
28286
28287
28288 l_segment := AcctDerRule_4(
28289 p_application_id => p_application_id
28290 , p_ae_header_id => l_ae_header_id
28291 , x_transaction_coa_id => l_adr_transaction_coa_id
28292 , x_accounting_coa_id => l_adr_accounting_coa_id
28293 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28294 , x_flex_value_set_id => l_adr_flex_value_set_id
28295 , x_value_type_code => l_adr_value_type_code
28296 , x_value_combination_id => l_adr_value_combination_id
28297 , x_value_segment_code => l_adr_value_segment_code
28298 , p_side => 'NA'
28299 , p_override_seg_flag => 'Y'
28300 );
28301
28302 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28303
28304 xla_ae_lines_pkg.set_segment(
28305 p_to_segment_code => 'GL_ACCOUNT'
28306 , p_segment_value => l_segment
28307 , p_from_segment_code => l_adr_value_segment_code
28308 , p_from_combination_id => l_adr_value_combination_id
28309 , p_value_type_code => l_adr_value_type_code
28310 , p_transaction_coa_id => l_adr_transaction_coa_id
28311 , p_accounting_coa_id => l_adr_accounting_coa_id
28312 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28313 , p_flex_value_set_id => l_adr_flex_value_set_id
28314 , p_adr_code => 'FV_310701_UNEXP_APPR_ACCT'
28315 , p_adr_type_code => 'S'
28316 , p_component_type => l_component_type
28317 , p_component_code => l_component_code
28318 , p_component_type_code => l_component_type_code
28319 , p_component_appl_id => l_component_appl_id
28320 , p_amb_context_code => l_amb_context_code
28321 , p_entity_code => 'AP_INVOICES'
28322 , p_event_class_code => 'INVOICES'
28323 , p_side => 'NA'
28324 );
28325
28326 END IF;
28327
28328 --
28329 --
28330 END IF;
28331
28332 --
28333 -- Update the line information that should be overwritten
28334 --
28335 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28336 p_header_num => 1);
28337 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28338
28339 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28340
28341 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28342 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28343 END IF;
28344
28345 --
28346 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28347 --
28348 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28349 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28350 ELSE
28351 ---------------------------------------------------------------------------------------------------
28352 -- 4262811a Switch Sign
28353 ---------------------------------------------------------------------------------------------------
28354 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28355 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28357 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28358 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28359 -- 5132302
28360 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28361 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28362
28363 END IF;
28364
28365 -- 4955764
28366 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28367 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28368
28369
28370 XLA_AE_LINES_PKG.ValidateCurrentLine;
28371 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28372
28373 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28374 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28375 ,p_balance_type_code => l_balance_type_code);
28376
28377 END IF;
28378
28379 -----------------------------------------------------------------------------------------
28380 -- 4262811 Multiperiod Accounting
28381 -----------------------------------------------------------------------------------------
28382 -- No MPA option is assigned.
28383
28384
28385 END IF;
28386 END IF;
28387 --
28388
28389 --
28390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28391 trace
28392 (p_msg => 'END of AcctLineType_49'
28393 ,p_level => C_LEVEL_PROCEDURE
28394 ,p_module => l_log_module);
28395 END IF;
28396 --
28397 EXCEPTION
28398 WHEN xla_exceptions_pkg.application_exception THEN
28399 RAISE;
28400 WHEN OTHERS THEN
28401 xla_exceptions_pkg.raise_message
28402 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_49');
28403 END AcctLineType_49;
28404 --
28405
28406 ---------------------------------------
28407 --
28408 -- PRIVATE FUNCTION
28409 -- AcctLineType_50
28410 --
28411 ---------------------------------------
28412 PROCEDURE AcctLineType_50 (
28413 p_application_id IN NUMBER
28414 ,p_event_id IN NUMBER
28415 ,p_calculate_acctd_flag IN VARCHAR2
28416 ,p_calculate_g_l_flag IN VARCHAR2
28417 ,p_actual_flag IN OUT VARCHAR2
28418 ,p_balance_type_code OUT VARCHAR2
28419 ,p_gain_or_loss_ref OUT VARCHAR2
28420
28421 --Invoice Distribution Description
28422 , p_source_1 IN VARCHAR2
28423 --Invoice Distribution Account
28424 , p_source_2 IN NUMBER
28425 --Federal Fund Category
28426 , p_source_4 IN VARCHAR2
28427 --Federal Fund Expired Status
28428 , p_source_5 IN VARCHAR2
28429 --Federal Fund Category Description
28430 , p_source_6 IN VARCHAR2
28431 --Invoice Distribution Type
28432 , p_source_8 IN VARCHAR2
28433 , p_source_8_meaning IN VARCHAR2
28434 --Federal Prior Year Flag
28435 , p_source_9 IN VARCHAR2
28436 --Invoice Distribution Encumbrance Amount
28437 , p_source_10 IN NUMBER
28438 --Accounting Reversal Indicator
28439 , p_source_15 IN VARCHAR2
28440 --Distribution Link Type
28441 , p_source_17 IN VARCHAR2
28442 --Allocation to Main Distribution Identifier
28443 , p_source_19 IN NUMBER
28444 --Invoice Identifier
28445 , p_source_20 IN NUMBER
28446 --Business Flow Accounts Payable Application Identifier
28447 , p_source_21 IN NUMBER
28448 --Business Flow Invoice Distribution Type
28449 , p_source_22 IN VARCHAR2
28450 --Business Flow Invoice Entity Code
28451 , p_source_23 IN VARCHAR2
28452 --Business Flow Invoice Distribution Identifier
28453 , p_source_24 IN NUMBER
28454 --Business Flow Invoice Identifier
28455 , p_source_25 IN NUMBER
28456 --Invoice Distribution Identifier
28457 , p_source_26 IN NUMBER
28458 --Payables Encumbrance Upgrade Credit Account
28459 , p_source_27 IN NUMBER
28460 --Payables Encumbrance Upgrade Credit Amount
28461 , p_source_28 IN NUMBER
28462 --Invoice Currency Code
28463 , p_source_29 IN VARCHAR2
28464 --Payables Encumbrance Upgrade Credit Base Amount
28465 , p_source_30 IN NUMBER
28466 --Payables Encumbrance Upgrade Debit Account
28467 , p_source_31 IN NUMBER
28468 --Payables Encumbrance Upgrade Debit Amount
28469 , p_source_32 IN NUMBER
28470 --Payables Encumbrance Upgrade Debit Base Amount
28471 , p_source_33 IN NUMBER
28472 --Payables Encumbrance Upgrade Option
28473 , p_source_34 IN VARCHAR2
28474 --Invoice Exchange Date
28475 , p_source_36 IN DATE
28476 --Invoice Exchange Rate
28477 , p_source_37 IN NUMBER
28478 --Invoice Exchange Rate Type
28479 , p_source_38 IN VARCHAR2
28480 --Deferred Accounting End Date
28481 , p_source_39 IN DATE
28482 --Deferred Accounting Option
28483 , p_source_40 IN VARCHAR2
28484 --Deferred Accounting Start Date
28485 , p_source_41 IN DATE
28486 --Override Accounted Amount Indicator
28487 , p_source_42 IN VARCHAR2
28488 , p_source_42_meaning IN VARCHAR2
28489 --Invoice Supplier Identifier
28490 , p_source_43 IN NUMBER
28491 --Invoice Supplier Site Identifier
28492 , p_source_44 IN NUMBER
28493 --Third Party Type
28494 , p_source_45 IN VARCHAR2
28495 --Parent Reversal Identifier
28496 , p_source_46 IN NUMBER
28497 --Invoice Distribution Statistical Amount
28498 , p_source_47 IN NUMBER
28499 --Invoice Distribution Tax Line Identifier
28500 , p_source_48 IN NUMBER
28501 --Invoice Distribution Tax Distribution Identifier from Tax
28502 , p_source_49 IN NUMBER
28503 --Invoice Distribution Summary Tax Line Identifier
28504 , p_source_50 IN NUMBER
28505 --Payables Upgrade Credit Encumbrance Type Identifier
28506 , p_source_51 IN NUMBER
28507 --Payables Upgrade Debit Encumbrance Type Identifier
28508 , p_source_52 IN NUMBER
28509 --Invoice Distribution Encumbrance Ledger Amount
28510 , p_source_53 IN NUMBER
28511 --Invoice Distribution Amount
28512 , p_source_55 IN NUMBER
28513 --Purchasing Encumbrance Option
28514 , p_source_60 IN VARCHAR2
28515 , p_source_60_meaning IN VARCHAR2
28516 )
28517 IS
28518
28519 l_component_type VARCHAR2(80);
28520 l_component_code VARCHAR2(30);
28521 l_component_type_code VARCHAR2(1);
28522 l_component_appl_id INTEGER;
28523 l_amb_context_code VARCHAR2(30);
28524 l_entity_code VARCHAR2(30);
28525 l_event_class_code VARCHAR2(30);
28526 l_ae_header_id NUMBER;
28527 l_event_type_code VARCHAR2(30);
28528 l_line_definition_code VARCHAR2(30);
28529 l_line_definition_owner_code VARCHAR2(1);
28530 --
28531 -- adr variables
28532 l_segment VARCHAR2(30);
28533 l_ccid NUMBER;
28534 l_adr_transaction_coa_id NUMBER;
28535 l_adr_accounting_coa_id NUMBER;
28536 l_adr_flexfield_segment_code VARCHAR2(30);
28537 l_adr_flex_value_set_id NUMBER;
28538 l_adr_value_type_code VARCHAR2(30);
28539 l_adr_value_combination_id NUMBER;
28540 l_adr_value_segment_code VARCHAR2(30);
28541
28542 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28543 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28544 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28545 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28546
28547 -- 4262811 Variables ------------------------------------------------------------------------------------------
28548 l_entered_amt_idx NUMBER;
28549 l_accted_amt_idx NUMBER;
28550 l_acc_rev_flag VARCHAR2(1);
28551 l_accrual_line_num NUMBER;
28552 l_tmp_amt NUMBER;
28553 l_acc_rev_natural_side_code VARCHAR2(1);
28554
28555 l_num_entries NUMBER;
28556 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28557 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28558 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28559 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28560 l_recog_line_1 NUMBER;
28561 l_recog_line_2 NUMBER;
28562
28563 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28564 l_bflow_applied_to_amt NUMBER; -- 5132302
28565 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28566
28567 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28568
28569 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28570 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28571
28572 ---------------------------------------------------------------------------------------------------------------
28573
28574
28575 --
28576 -- bulk performance
28577 --
28578 l_balance_type_code VARCHAR2(1);
28579 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28580 l_log_module VARCHAR2(240);
28581
28582 --
28583 -- Upgrade strategy
28584 --
28585 l_actual_upg_option VARCHAR2(1);
28586 l_enc_upg_option VARCHAR2(1);
28587
28588 --
28589 BEGIN
28590 --
28591 IF g_log_enabled THEN
28592 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
28593 END IF;
28594 --
28595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28596
28597 trace
28598 (p_msg => 'BEGIN of AcctLineType_50'
28599 ,p_level => C_LEVEL_PROCEDURE
28600 ,p_module => l_log_module);
28601
28602 END IF;
28603 --
28604 l_component_type := 'AMB_JLT';
28605 l_component_code := 'FV_AP_INV_PRICE_VAR_CR';
28606 l_component_type_code := 'S';
28607 l_component_appl_id := 200;
28608 l_amb_context_code := 'DEFAULT';
28609 l_entity_code := 'AP_INVOICES';
28610 l_event_class_code := 'INVOICES';
28611 l_event_type_code := 'INVOICES_ALL';
28612 l_line_definition_owner_code := 'S';
28613 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
28614 --
28615 l_balance_type_code := 'A';
28616 l_segment := NULL;
28617 l_ccid := NULL;
28618 l_adr_transaction_coa_id := NULL;
28619 l_adr_accounting_coa_id := NULL;
28620 l_adr_flexfield_segment_code := NULL;
28621 l_adr_flex_value_set_id := NULL;
28622 l_adr_value_type_code := NULL;
28623 l_adr_value_combination_id := NULL;
28624 l_adr_value_segment_code := NULL;
28625
28626 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28627 l_bflow_class_code := ''; -- 4219869 Business Flow
28628 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28629 l_budgetary_control_flag := 'Y';
28630
28631 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28632 l_bflow_applied_to_amt := NULL; -- 5132302
28633 l_entered_amt_idx := NULL; -- 4262811
28634 l_accted_amt_idx := NULL; -- 4262811
28635 l_acc_rev_flag := NULL; -- 4262811
28636 l_accrual_line_num := NULL; -- 4262811
28637 l_tmp_amt := NULL; -- 4262811
28638 --
28639
28640 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28641 l_balance_type_code <> 'B' THEN
28642 IF NVL(p_source_8,'
28643 ') = 'IPV' AND
28644 NVL(p_source_60,'
28645 ') = 'Y' AND
28646 ((p_source_53 < 0 AND
28647 NVL(p_source_9,'
28648 ') = 'Y') OR
28649 NVL(p_source_9,'
28650 ') = 'N')
28651 THEN
28652
28653 --
28654 XLA_AE_LINES_PKG.SetNewLine;
28655
28656 p_balance_type_code := l_balance_type_code;
28657 -- set the flag so later we will know whether the gain loss line needs to be created
28658
28659 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28660 p_actual_flag :='A';
28661 END IF;
28662
28663 --
28664 -- bulk performance
28665 --
28666 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28667 p_header_num => 0); -- 4262811
28668 --
28669 -- set accounting line options
28670 --
28671 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28672 p_natural_side_code => 'D'
28673 , p_gain_or_loss_flag => 'N'
28674 , p_gl_transfer_mode_code => 'S'
28675 , p_acct_entry_type_code => 'A'
28676 , p_switch_side_flag => 'N'
28677 , p_merge_duplicate_code => 'N'
28678 );
28679 --
28680 l_acc_rev_natural_side_code := 'C'; -- 4262811
28681 --
28682 --
28683 -- set accounting line type info
28684 --
28685 xla_ae_lines_pkg.SetAcctLineType
28686 (p_component_type => l_component_type
28687 ,p_event_type_code => l_event_type_code
28688 ,p_line_definition_owner_code => l_line_definition_owner_code
28689 ,p_line_definition_code => l_line_definition_code
28690 ,p_accounting_line_code => l_component_code
28691 ,p_accounting_line_type_code => l_component_type_code
28692 ,p_accounting_line_appl_id => l_component_appl_id
28693 ,p_amb_context_code => l_amb_context_code
28694 ,p_entity_code => l_entity_code
28695 ,p_event_class_code => l_event_class_code);
28696 --
28697 -- set accounting class
28698 --
28699 xla_ae_lines_pkg.SetAcctClass(
28700 p_accounting_class_code => 'ACCOUNTSPAYABLE'
28701 , p_ae_header_id => l_ae_header_id
28702 );
28703
28704 --
28705 -- set rounding class
28706 --
28707 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28708 'ACCOUNTSPAYABLE';
28709
28710 --
28711 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28712 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28713 --
28714 -- bulk performance
28715 --
28716 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28717
28718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28719 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28720
28721 -- 4955764
28722 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28723 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28724
28725 -- 4458381 Public Sector Enh
28726
28727 --
28728 -- set accounting attributes for the line type
28729 --
28730 l_entered_amt_idx := 24;
28731 l_accted_amt_idx := 29;
28732 l_bflow_applied_to_amt_idx := 7; -- 5132302
28733 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28734 l_rec_acct_attrs.array_char_value(1) := p_source_15;
28735 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28736 l_rec_acct_attrs.array_num_value(2) :=
28737 xla_ae_sources_pkg.GetSystemSourceNum(
28738 p_source_code => 'XLA_EVENT_APPL_ID'
28739 , p_source_type_code => 'Y'
28740 , p_source_application_id => 602
28741 );
28742 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28743 l_rec_acct_attrs.array_char_value(3) := p_source_17;
28744 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28745 l_rec_acct_attrs.array_char_value(4) :=
28746 xla_ae_sources_pkg.GetSystemSourceChar(
28747 p_source_code => 'XLA_ENTITY_CODE'
28748 , p_source_type_code => 'Y'
28749 , p_source_application_id => 602
28750 );
28751 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28752 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
28753 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28754 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
28755 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
28756 l_rec_acct_attrs.array_num_value(7) := p_source_55;
28757 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
28758 l_rec_acct_attrs.array_num_value(8) := p_source_21;
28759 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28760 l_rec_acct_attrs.array_char_value(9) := p_source_22;
28761 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
28762 l_rec_acct_attrs.array_char_value(10) := p_source_23;
28763 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
28764 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
28765 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28766 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
28767 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
28768 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
28769 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
28770 l_rec_acct_attrs.array_char_value(14) := p_source_17;
28771 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
28772 l_rec_acct_attrs.array_num_value(15) := p_source_27;
28773 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
28774 l_rec_acct_attrs.array_num_value(16) := p_source_28;
28775 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
28776 l_rec_acct_attrs.array_char_value(17) := p_source_29;
28777 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
28778 l_rec_acct_attrs.array_num_value(18) := p_source_30;
28779 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
28780 l_rec_acct_attrs.array_num_value(19) := p_source_31;
28781 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
28782 l_rec_acct_attrs.array_num_value(20) := p_source_32;
28783 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
28784 l_rec_acct_attrs.array_char_value(21) := p_source_29;
28785 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
28786 l_rec_acct_attrs.array_num_value(22) := p_source_33;
28787 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
28788 l_rec_acct_attrs.array_char_value(23) := p_source_34;
28789 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
28790 l_rec_acct_attrs.array_num_value(24) := p_source_10;
28791 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
28792 l_rec_acct_attrs.array_char_value(25) := p_source_29;
28793 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
28794 l_rec_acct_attrs.array_date_value(26) := p_source_36;
28795 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
28796 l_rec_acct_attrs.array_num_value(27) := p_source_37;
28797 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
28798 l_rec_acct_attrs.array_char_value(28) := p_source_38;
28799 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
28800 l_rec_acct_attrs.array_num_value(29) := p_source_53;
28801 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
28802 l_rec_acct_attrs.array_date_value(30) := p_source_39;
28803 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
28804 l_rec_acct_attrs.array_char_value(31) := p_source_40;
28805 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
28806 l_rec_acct_attrs.array_date_value(32) := p_source_41;
28807 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
28808 l_rec_acct_attrs.array_char_value(33) := p_source_42;
28809 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
28810 l_rec_acct_attrs.array_num_value(34) := p_source_43;
28811 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
28812 l_rec_acct_attrs.array_num_value(35) := p_source_44;
28813 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
28814 l_rec_acct_attrs.array_char_value(36) := p_source_45;
28815 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
28816 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
28817 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
28818 l_rec_acct_attrs.array_char_value(38) := p_source_17;
28819 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
28820 l_rec_acct_attrs.array_num_value(39) := p_source_47;
28821 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
28822 l_rec_acct_attrs.array_num_value(40) := p_source_48;
28823 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
28824 l_rec_acct_attrs.array_num_value(41) := p_source_49;
28825 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
28826 l_rec_acct_attrs.array_num_value(42) := p_source_50;
28827 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
28828 l_rec_acct_attrs.array_num_value(43) := p_source_51;
28829 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
28830 l_rec_acct_attrs.array_num_value(44) := p_source_52;
28831
28832 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28833 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28834
28835 ---------------------------------------------------------------------------------------------------------------
28836 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28837 ---------------------------------------------------------------------------------------------------------------
28838 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28839
28840 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28841 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28842
28843 IF xla_accounting_cache_pkg.GetValueChar
28844 (p_source_code => 'LEDGER_CATEGORY_CODE'
28845 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28846 AND l_bflow_method_code = 'PRIOR_ENTRY'
28847 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28848 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28849 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28850 )
28851 THEN
28852 xla_ae_lines_pkg.BflowUpgEntry
28853 (p_business_method_code => l_bflow_method_code
28854 ,p_business_class_code => l_bflow_class_code
28855 ,p_balance_type => l_balance_type_code);
28856 ELSE
28857 NULL;
28858 -- No business flow processing for business flow method of NONE.
28859 END IF;
28860
28861 --
28862 -- call analytical criteria
28863 --
28864
28865 --
28866 -- call description
28867 --
28868
28869 xla_ae_lines_pkg.SetLineDescription(
28870 p_ae_header_id => l_ae_header_id
28871 ,p_description => Description_2 (
28872 p_application_id => p_application_id
28873 , p_ae_header_id => l_ae_header_id
28874 , p_source_1 => p_source_1
28875 )
28876 );
28877
28878
28879 --
28880 -- call ADRs
28881 -- Bug 4922099
28882 --
28883 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28884 (NVL(l_actual_upg_option, 'N') = 'O') OR
28885 (NVL(l_enc_upg_option, 'N') = 'O')
28886 )
28887 THEN
28888 NULL;
28889 --
28890 --
28891
28892 l_ccid := AcctDerRule_3(
28893 p_application_id => p_application_id
28894 , p_ae_header_id => l_ae_header_id
28895 , p_source_2 => p_source_2
28896 , x_transaction_coa_id => l_adr_transaction_coa_id
28897 , x_accounting_coa_id => l_adr_accounting_coa_id
28898 , x_value_type_code => l_adr_value_type_code
28899 , p_side => 'NA'
28900 );
28901
28902 xla_ae_lines_pkg.set_ccid(
28903 p_code_combination_id => l_ccid
28904 , p_value_type_code => l_adr_value_type_code
28905 , p_transaction_coa_id => l_adr_transaction_coa_id
28906 , p_accounting_coa_id => l_adr_accounting_coa_id
28907 , p_adr_code => 'AP_INVOICE_DIST'
28908 , p_adr_type_code => 'S'
28909 , p_component_type => l_component_type
28910 , p_component_code => l_component_code
28911 , p_component_type_code => l_component_type_code
28912 , p_component_appl_id => l_component_appl_id
28913 , p_amb_context_code => l_amb_context_code
28914 , p_side => 'NA'
28915 );
28916
28917
28918 l_segment := AcctDerRule_8(
28919 p_application_id => p_application_id
28920 , p_ae_header_id => l_ae_header_id
28921 , p_source_4 => p_source_4
28922 , p_source_5 => p_source_5
28923 , p_source_6 => p_source_6
28924 , x_transaction_coa_id => l_adr_transaction_coa_id
28925 , x_accounting_coa_id => l_adr_accounting_coa_id
28926 , x_flexfield_segment_code => l_adr_flexfield_segment_code
28927 , x_flex_value_set_id => l_adr_flex_value_set_id
28928 , x_value_type_code => l_adr_value_type_code
28929 , x_value_combination_id => l_adr_value_combination_id
28930 , x_value_segment_code => l_adr_value_segment_code
28931 , p_side => 'NA'
28932 , p_override_seg_flag => 'Y'
28933 );
28934
28935 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
28936
28937 xla_ae_lines_pkg.set_segment(
28938 p_to_segment_code => 'GL_ACCOUNT'
28939 , p_segment_value => l_segment
28940 , p_from_segment_code => l_adr_value_segment_code
28941 , p_from_combination_id => l_adr_value_combination_id
28942 , p_value_type_code => l_adr_value_type_code
28943 , p_transaction_coa_id => l_adr_transaction_coa_id
28944 , p_accounting_coa_id => l_adr_accounting_coa_id
28945 , p_flexfield_segment_code => l_adr_flexfield_segment_code
28946 , p_flex_value_set_id => l_adr_flex_value_set_id
28947 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
28948 , p_adr_type_code => 'S'
28949 , p_component_type => l_component_type
28950 , p_component_code => l_component_code
28954 , p_entity_code => 'AP_INVOICES'
28951 , p_component_type_code => l_component_type_code
28952 , p_component_appl_id => l_component_appl_id
28953 , p_amb_context_code => l_amb_context_code
28955 , p_event_class_code => 'INVOICES'
28956 , p_side => 'NA'
28957 );
28958
28959 END IF;
28960
28961 --
28962 --
28963 END IF;
28964 --
28965 -- Bug 4922099
28966 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28967 (NVL(l_enc_upg_option, 'N') = 'O')
28968 ) AND
28969 (l_bflow_method_code = 'PRIOR_ENTRY')
28970 )
28971 THEN
28972 IF
28973 --
28974 1 = 2
28975 --
28976 THEN
28977 xla_accounting_err_pkg.build_message
28978 (p_appli_s_name => 'XLA'
28979 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28980 ,p_token_1 => 'LINE_NUMBER'
28981 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28982 ,p_token_2 => 'LINE_TYPE_NAME'
28983 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28984 l_component_type
28985 ,l_component_code
28986 ,l_component_type_code
28987 ,l_component_appl_id
28988 ,l_amb_context_code
28989 ,l_entity_code
28990 ,l_event_class_code
28991 )
28992 ,p_token_3 => 'OWNER'
28993 ,p_value_3 => xla_lookups_pkg.get_meaning(
28994 p_lookup_type => 'XLA_OWNER_TYPE'
28995 ,p_lookup_code => l_component_type_code
28996 )
28997 ,p_token_4 => 'PRODUCT_NAME'
28998 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28999 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29000 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29001 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29002 ,p_ae_header_id => NULL
29003 );
29004
29005 IF (C_LEVEL_ERROR>= g_log_level) THEN
29006 trace
29007 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29008 ,p_level => C_LEVEL_ERROR
29009 ,p_module => l_log_module);
29010 END IF;
29011 END IF;
29012 END IF;
29013 --
29014 --
29015 ------------------------------------------------------------------------------------------------
29016 -- 4219869 Business Flow
29017 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29018 -- Prior Entry. Currently, the following code is always generated.
29019 ------------------------------------------------------------------------------------------------
29020 XLA_AE_LINES_PKG.ValidateCurrentLine;
29021
29022 ------------------------------------------------------------------------------------
29023 -- 4219869 Business Flow
29024 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29025 ------------------------------------------------------------------------------------
29026 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29027
29028 ----------------------------------------------------------------------------------
29029 -- 4219869 Business Flow
29030 -- Update journal entry status -- Need to generate this within IF <condition>
29031 ----------------------------------------------------------------------------------
29032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29034 ,p_balance_type_code => l_balance_type_code
29035 );
29036
29037 -------------------------------------------------------------------------------------------
29038 -- 4262811 - Generate the Accrual Reversal lines
29039 -------------------------------------------------------------------------------------------
29040 BEGIN
29041 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29042 (g_array_event(p_event_id).array_value_num('header_index'));
29043 IF l_acc_rev_flag IS NULL THEN
29044 l_acc_rev_flag := 'N';
29045 END IF;
29046 EXCEPTION
29047 WHEN OTHERS THEN
29048 l_acc_rev_flag := 'N';
29049 END;
29050 --
29051 IF (l_acc_rev_flag = 'Y') THEN
29052
29053 -- 4645092 ------------------------------------------------------------------------------
29054 -- To allow MPA report to determine if it should generate report process
29055 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29056 ------------------------------------------------------------------------------------------
29057
29058 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29059 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29060 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29061 -- call ADRs
29062 -- Bug 4922099
29063 --
29064 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29065 (NVL(l_actual_upg_option, 'N') = 'O') OR
29066 (NVL(l_enc_upg_option, 'N') = 'O')
29067 )
29068 THEN
29069 NULL;
29070 --
29071 --
29072
29073 l_ccid := AcctDerRule_3(
29074 p_application_id => p_application_id
29075 , p_ae_header_id => l_ae_header_id
29076 , p_source_2 => p_source_2
29077 , x_transaction_coa_id => l_adr_transaction_coa_id
29078 , x_accounting_coa_id => l_adr_accounting_coa_id
29079 , x_value_type_code => l_adr_value_type_code
29080 , p_side => 'NA'
29081 );
29082
29083 xla_ae_lines_pkg.set_ccid(
29084 p_code_combination_id => l_ccid
29085 , p_value_type_code => l_adr_value_type_code
29086 , p_transaction_coa_id => l_adr_transaction_coa_id
29087 , p_accounting_coa_id => l_adr_accounting_coa_id
29088 , p_adr_code => 'AP_INVOICE_DIST'
29089 , p_adr_type_code => 'S'
29090 , p_component_type => l_component_type
29091 , p_component_code => l_component_code
29092 , p_component_type_code => l_component_type_code
29093 , p_component_appl_id => l_component_appl_id
29094 , p_amb_context_code => l_amb_context_code
29095 , p_side => 'NA'
29096 );
29097
29098
29099 l_segment := AcctDerRule_8(
29100 p_application_id => p_application_id
29101 , p_ae_header_id => l_ae_header_id
29102 , p_source_4 => p_source_4
29103 , p_source_5 => p_source_5
29104 , p_source_6 => p_source_6
29105 , x_transaction_coa_id => l_adr_transaction_coa_id
29106 , x_accounting_coa_id => l_adr_accounting_coa_id
29107 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29108 , x_flex_value_set_id => l_adr_flex_value_set_id
29109 , x_value_type_code => l_adr_value_type_code
29110 , x_value_combination_id => l_adr_value_combination_id
29111 , x_value_segment_code => l_adr_value_segment_code
29112 , p_side => 'NA'
29113 , p_override_seg_flag => 'Y'
29114 );
29115
29116 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29117
29118 xla_ae_lines_pkg.set_segment(
29119 p_to_segment_code => 'GL_ACCOUNT'
29120 , p_segment_value => l_segment
29121 , p_from_segment_code => l_adr_value_segment_code
29122 , p_from_combination_id => l_adr_value_combination_id
29123 , p_value_type_code => l_adr_value_type_code
29124 , p_transaction_coa_id => l_adr_transaction_coa_id
29125 , p_accounting_coa_id => l_adr_accounting_coa_id
29126 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29127 , p_flex_value_set_id => l_adr_flex_value_set_id
29128 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
29129 , p_adr_type_code => 'S'
29130 , p_component_type => l_component_type
29131 , p_component_code => l_component_code
29132 , p_component_type_code => l_component_type_code
29133 , p_component_appl_id => l_component_appl_id
29134 , p_amb_context_code => l_amb_context_code
29135 , p_entity_code => 'AP_INVOICES'
29136 , p_event_class_code => 'INVOICES'
29137 , p_side => 'NA'
29138 );
29139
29140 END IF;
29141
29142 --
29143 --
29144 END IF;
29145
29146 --
29147 -- Update the line information that should be overwritten
29148 --
29149 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29150 p_header_num => 1);
29151 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29152
29153 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29154
29155 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29156 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29157 END IF;
29158
29159 --
29160 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29161 --
29162 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29163 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29164 ELSE
29165 ---------------------------------------------------------------------------------------------------
29166 -- 4262811a Switch Sign
29167 ---------------------------------------------------------------------------------------------------
29168 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29169 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29170 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29171 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29172 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29173 -- 5132302
29174 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29175 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29176
29177 END IF;
29178
29179 -- 4955764
29180 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29181 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29182
29183
29184 XLA_AE_LINES_PKG.ValidateCurrentLine;
29185 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29186
29187 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29188 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29189 ,p_balance_type_code => l_balance_type_code);
29190
29191 END IF;
29192
29193 -----------------------------------------------------------------------------------------
29194 -- 4262811 Multiperiod Accounting
29195 -----------------------------------------------------------------------------------------
29196 -- No MPA option is assigned.
29197
29198
29199 END IF;
29200 END IF;
29201 --
29202
29203 --
29204 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29205 trace
29206 (p_msg => 'END of AcctLineType_50'
29207 ,p_level => C_LEVEL_PROCEDURE
29208 ,p_module => l_log_module);
29209 END IF;
29210 --
29211 EXCEPTION
29212 WHEN xla_exceptions_pkg.application_exception THEN
29213 RAISE;
29214 WHEN OTHERS THEN
29215 xla_exceptions_pkg.raise_message
29216 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_50');
29217 END AcctLineType_50;
29218 --
29219
29220 ---------------------------------------
29221 --
29222 -- PRIVATE FUNCTION
29223 -- AcctLineType_51
29224 --
29225 ---------------------------------------
29226 PROCEDURE AcctLineType_51 (
29227 p_application_id IN NUMBER
29228 ,p_event_id IN NUMBER
29229 ,p_calculate_acctd_flag IN VARCHAR2
29230 ,p_calculate_g_l_flag IN VARCHAR2
29231 ,p_actual_flag IN OUT VARCHAR2
29232 ,p_balance_type_code OUT VARCHAR2
29233 ,p_gain_or_loss_ref OUT VARCHAR2
29234
29235 --Invoice Distribution Description
29236 , p_source_1 IN VARCHAR2
29237 --Invoice Distribution Account
29238 , p_source_2 IN NUMBER
29239 --Payment Status Flag of the Invoice
29240 , p_source_7 IN VARCHAR2
29241 --Invoice Distribution Type
29242 , p_source_8 IN VARCHAR2
29243 , p_source_8_meaning IN VARCHAR2
29244 --Federal Prior Year Flag
29245 , p_source_9 IN VARCHAR2
29246 --Invoice Distribution Encumbrance Amount
29247 , p_source_10 IN NUMBER
29248 --Accrue on Receipt Option
29249 , p_source_11 IN VARCHAR2
29250 , p_source_11_meaning IN VARCHAR2
29251 --Accounting Reversal Indicator
29252 , p_source_15 IN VARCHAR2
29253 --Distribution Link Type
29254 , p_source_17 IN VARCHAR2
29255 --Allocation to Main Distribution Identifier
29256 , p_source_19 IN NUMBER
29257 --Invoice Identifier
29258 , p_source_20 IN NUMBER
29259 --Business Flow Accounts Payable Application Identifier
29260 , p_source_21 IN NUMBER
29261 --Business Flow Invoice Distribution Type
29262 , p_source_22 IN VARCHAR2
29263 --Business Flow Invoice Entity Code
29264 , p_source_23 IN VARCHAR2
29265 --Business Flow Invoice Distribution Identifier
29266 , p_source_24 IN NUMBER
29267 --Business Flow Invoice Identifier
29268 , p_source_25 IN NUMBER
29269 --Invoice Distribution Identifier
29270 , p_source_26 IN NUMBER
29271 --Payables Encumbrance Upgrade Credit Account
29272 , p_source_27 IN NUMBER
29273 --Payables Encumbrance Upgrade Credit Amount
29274 , p_source_28 IN NUMBER
29275 --Invoice Currency Code
29276 , p_source_29 IN VARCHAR2
29277 --Payables Encumbrance Upgrade Credit Base Amount
29278 , p_source_30 IN NUMBER
29279 --Payables Encumbrance Upgrade Debit Account
29280 , p_source_31 IN NUMBER
29281 --Payables Encumbrance Upgrade Debit Amount
29282 , p_source_32 IN NUMBER
29283 --Payables Encumbrance Upgrade Debit Base Amount
29284 , p_source_33 IN NUMBER
29285 --Payables Encumbrance Upgrade Option
29286 , p_source_34 IN VARCHAR2
29287 --Invoice Exchange Date
29288 , p_source_36 IN DATE
29289 --Invoice Exchange Rate
29290 , p_source_37 IN NUMBER
29291 --Invoice Exchange Rate Type
29292 , p_source_38 IN VARCHAR2
29293 --Deferred Accounting End Date
29294 , p_source_39 IN DATE
29295 --Deferred Accounting Option
29296 , p_source_40 IN VARCHAR2
29297 --Deferred Accounting Start Date
29298 , p_source_41 IN DATE
29299 --Override Accounted Amount Indicator
29300 , p_source_42 IN VARCHAR2
29301 , p_source_42_meaning IN VARCHAR2
29302 --Invoice Supplier Identifier
29303 , p_source_43 IN NUMBER
29304 --Invoice Supplier Site Identifier
29305 , p_source_44 IN NUMBER
29306 --Third Party Type
29307 , p_source_45 IN VARCHAR2
29308 --Parent Reversal Identifier
29309 , p_source_46 IN NUMBER
29310 --Invoice Distribution Statistical Amount
29311 , p_source_47 IN NUMBER
29312 --Invoice Distribution Tax Line Identifier
29313 , p_source_48 IN NUMBER
29314 --Invoice Distribution Tax Distribution Identifier from Tax
29315 , p_source_49 IN NUMBER
29316 --Invoice Distribution Summary Tax Line Identifier
29317 , p_source_50 IN NUMBER
29318 --Payables Upgrade Credit Encumbrance Type Identifier
29319 , p_source_51 IN NUMBER
29320 --Payables Upgrade Debit Encumbrance Type Identifier
29321 , p_source_52 IN NUMBER
29322 --Invoice Distribution Encumbrance Ledger Amount
29323 , p_source_53 IN NUMBER
29324 --Invoice Distribution Amount
29325 , p_source_55 IN NUMBER
29326 --Purchasing Encumbrance Option
29327 , p_source_60 IN VARCHAR2
29328 , p_source_60_meaning IN VARCHAR2
29329 )
29330 IS
29331
29332 l_component_type VARCHAR2(80);
29333 l_component_code VARCHAR2(30);
29334 l_component_type_code VARCHAR2(1);
29335 l_component_appl_id INTEGER;
29336 l_amb_context_code VARCHAR2(30);
29337 l_entity_code VARCHAR2(30);
29338 l_event_class_code VARCHAR2(30);
29339 l_ae_header_id NUMBER;
29340 l_event_type_code VARCHAR2(30);
29341 l_line_definition_code VARCHAR2(30);
29342 l_line_definition_owner_code VARCHAR2(1);
29343 --
29344 -- adr variables
29345 l_segment VARCHAR2(30);
29346 l_ccid NUMBER;
29347 l_adr_transaction_coa_id NUMBER;
29348 l_adr_accounting_coa_id NUMBER;
29349 l_adr_flexfield_segment_code VARCHAR2(30);
29350 l_adr_flex_value_set_id NUMBER;
29351 l_adr_value_type_code VARCHAR2(30);
29352 l_adr_value_combination_id NUMBER;
29353 l_adr_value_segment_code VARCHAR2(30);
29354
29355 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29356 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29357 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29358 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29359
29360 -- 4262811 Variables ------------------------------------------------------------------------------------------
29361 l_entered_amt_idx NUMBER;
29362 l_accted_amt_idx NUMBER;
29363 l_acc_rev_flag VARCHAR2(1);
29364 l_accrual_line_num NUMBER;
29365 l_tmp_amt NUMBER;
29366 l_acc_rev_natural_side_code VARCHAR2(1);
29367
29368 l_num_entries NUMBER;
29369 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29370 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29371 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29372 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29373 l_recog_line_1 NUMBER;
29374 l_recog_line_2 NUMBER;
29375
29376 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29377 l_bflow_applied_to_amt NUMBER; -- 5132302
29378 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29379
29380 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29381
29382 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29383 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29384
29385 ---------------------------------------------------------------------------------------------------------------
29386
29387
29388 --
29389 -- bulk performance
29390 --
29391 l_balance_type_code VARCHAR2(1);
29392 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29393 l_log_module VARCHAR2(240);
29394
29395 --
29396 -- Upgrade strategy
29397 --
29398 l_actual_upg_option VARCHAR2(1);
29399 l_enc_upg_option VARCHAR2(1);
29400
29401 --
29402 BEGIN
29403 --
29404 IF g_log_enabled THEN
29405 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
29406 END IF;
29407 --
29408 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29409
29410 trace
29411 (p_msg => 'BEGIN of AcctLineType_51'
29412 ,p_level => C_LEVEL_PROCEDURE
29413 ,p_module => l_log_module);
29414
29415 END IF;
29416 --
29417 l_component_type := 'AMB_JLT';
29418 l_component_code := 'FV_AP_INV_PRICE_VAR_DR';
29419 l_component_type_code := 'S';
29420 l_component_appl_id := 200;
29421 l_amb_context_code := 'DEFAULT';
29422 l_entity_code := 'AP_INVOICES';
29423 l_event_class_code := 'INVOICES';
29424 l_event_type_code := 'INVOICES_ALL';
29425 l_line_definition_owner_code := 'S';
29426 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
29427 --
29428 l_balance_type_code := 'A';
29429 l_segment := NULL;
29430 l_ccid := NULL;
29431 l_adr_transaction_coa_id := NULL;
29432 l_adr_accounting_coa_id := NULL;
29433 l_adr_flexfield_segment_code := NULL;
29434 l_adr_flex_value_set_id := NULL;
29435 l_adr_value_type_code := NULL;
29436 l_adr_value_combination_id := NULL;
29437 l_adr_value_segment_code := NULL;
29438
29439 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29440 l_bflow_class_code := ''; -- 4219869 Business Flow
29441 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29442 l_budgetary_control_flag := 'Y';
29443
29444 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29445 l_bflow_applied_to_amt := NULL; -- 5132302
29446 l_entered_amt_idx := NULL; -- 4262811
29447 l_accted_amt_idx := NULL; -- 4262811
29448 l_acc_rev_flag := NULL; -- 4262811
29449 l_accrual_line_num := NULL; -- 4262811
29450 l_tmp_amt := NULL; -- 4262811
29451 --
29452
29453 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29454 l_balance_type_code <> 'B' THEN
29455 IF NVL(p_source_8,'
29456 ') = 'IPV' AND
29457 NVL(p_source_60,'
29458 ') = 'Y' AND
29459 ((p_source_53 < 0 AND
29460 NVL(p_source_9,'
29461 ') = 'Y') OR
29462 NVL(p_source_9,'
29463 ') = 'N')
29464 THEN
29465
29466 --
29467 XLA_AE_LINES_PKG.SetNewLine;
29468
29469 p_balance_type_code := l_balance_type_code;
29470 -- set the flag so later we will know whether the gain loss line needs to be created
29471
29472 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29473 p_actual_flag :='A';
29474 END IF;
29475
29476 --
29477 -- bulk performance
29478 --
29479 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29480 p_header_num => 0); -- 4262811
29481 --
29482 -- set accounting line options
29483 --
29484 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29485 p_natural_side_code => 'C'
29486 , p_gain_or_loss_flag => 'N'
29487 , p_gl_transfer_mode_code => 'S'
29488 , p_acct_entry_type_code => 'A'
29489 , p_switch_side_flag => 'N'
29490 , p_merge_duplicate_code => 'N'
29491 );
29492 --
29493 l_acc_rev_natural_side_code := 'D'; -- 4262811
29494 --
29495 --
29496 -- set accounting line type info
29497 --
29498 xla_ae_lines_pkg.SetAcctLineType
29499 (p_component_type => l_component_type
29500 ,p_event_type_code => l_event_type_code
29501 ,p_line_definition_owner_code => l_line_definition_owner_code
29502 ,p_line_definition_code => l_line_definition_code
29503 ,p_accounting_line_code => l_component_code
29504 ,p_accounting_line_type_code => l_component_type_code
29505 ,p_accounting_line_appl_id => l_component_appl_id
29506 ,p_amb_context_code => l_amb_context_code
29507 ,p_entity_code => l_entity_code
29508 ,p_event_class_code => l_event_class_code);
29509 --
29510 -- set accounting class
29511 --
29512 xla_ae_lines_pkg.SetAcctClass(
29513 p_accounting_class_code => 'ACCOUNTSPAYABLE'
29514 , p_ae_header_id => l_ae_header_id
29515 );
29516
29517 --
29518 -- set rounding class
29519 --
29520 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29521 'ACCOUNTSPAYABLE';
29522
29523 --
29524 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29525 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29526 --
29527 -- bulk performance
29528 --
29529 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29530
29531 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29532 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29533
29534 -- 4955764
29535 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29536 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29537
29538 -- 4458381 Public Sector Enh
29539
29540 --
29541 -- set accounting attributes for the line type
29542 --
29543 l_entered_amt_idx := 24;
29544 l_accted_amt_idx := 29;
29545 l_bflow_applied_to_amt_idx := 7; -- 5132302
29546 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29547 l_rec_acct_attrs.array_char_value(1) := p_source_15;
29548 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
29549 l_rec_acct_attrs.array_num_value(2) :=
29550 xla_ae_sources_pkg.GetSystemSourceNum(
29551 p_source_code => 'XLA_EVENT_APPL_ID'
29552 , p_source_type_code => 'Y'
29553 , p_source_application_id => 602
29554 );
29555 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
29556 l_rec_acct_attrs.array_char_value(3) := p_source_17;
29557 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
29558 l_rec_acct_attrs.array_char_value(4) :=
29559 xla_ae_sources_pkg.GetSystemSourceChar(
29560 p_source_code => 'XLA_ENTITY_CODE'
29561 , p_source_type_code => 'Y'
29562 , p_source_application_id => 602
29563 );
29564 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
29565 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
29566 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
29567 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
29568 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
29569 l_rec_acct_attrs.array_num_value(7) := p_source_55;
29570 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
29571 l_rec_acct_attrs.array_num_value(8) := p_source_21;
29572 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29573 l_rec_acct_attrs.array_char_value(9) := p_source_22;
29574 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
29575 l_rec_acct_attrs.array_char_value(10) := p_source_23;
29576 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
29577 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
29578 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29579 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
29580 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
29581 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
29582 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
29583 l_rec_acct_attrs.array_char_value(14) := p_source_17;
29584 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
29585 l_rec_acct_attrs.array_num_value(15) := p_source_27;
29586 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
29587 l_rec_acct_attrs.array_num_value(16) := p_source_28;
29588 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
29589 l_rec_acct_attrs.array_char_value(17) := p_source_29;
29590 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
29591 l_rec_acct_attrs.array_num_value(18) := p_source_30;
29592 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
29593 l_rec_acct_attrs.array_num_value(19) := p_source_31;
29594 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
29595 l_rec_acct_attrs.array_num_value(20) := p_source_32;
29596 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
29597 l_rec_acct_attrs.array_char_value(21) := p_source_29;
29598 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
29599 l_rec_acct_attrs.array_num_value(22) := p_source_33;
29600 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
29601 l_rec_acct_attrs.array_char_value(23) := p_source_34;
29602 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
29603 l_rec_acct_attrs.array_num_value(24) := p_source_10;
29604 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
29605 l_rec_acct_attrs.array_char_value(25) := p_source_29;
29606 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
29607 l_rec_acct_attrs.array_date_value(26) := p_source_36;
29608 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
29609 l_rec_acct_attrs.array_num_value(27) := p_source_37;
29610 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
29611 l_rec_acct_attrs.array_char_value(28) := p_source_38;
29612 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
29613 l_rec_acct_attrs.array_num_value(29) := p_source_53;
29614 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
29615 l_rec_acct_attrs.array_date_value(30) := p_source_39;
29616 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
29617 l_rec_acct_attrs.array_char_value(31) := p_source_40;
29618 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
29619 l_rec_acct_attrs.array_date_value(32) := p_source_41;
29620 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
29621 l_rec_acct_attrs.array_char_value(33) := p_source_42;
29622 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
29623 l_rec_acct_attrs.array_num_value(34) := p_source_43;
29624 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
29625 l_rec_acct_attrs.array_num_value(35) := p_source_44;
29626 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
29627 l_rec_acct_attrs.array_char_value(36) := p_source_45;
29628 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
29629 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
29630 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
29631 l_rec_acct_attrs.array_char_value(38) := p_source_17;
29632 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
29633 l_rec_acct_attrs.array_num_value(39) := p_source_47;
29634 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
29635 l_rec_acct_attrs.array_num_value(40) := p_source_48;
29636 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
29637 l_rec_acct_attrs.array_num_value(41) := p_source_49;
29638 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
29639 l_rec_acct_attrs.array_num_value(42) := p_source_50;
29640 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
29641 l_rec_acct_attrs.array_num_value(43) := p_source_51;
29642 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
29643 l_rec_acct_attrs.array_num_value(44) := p_source_52;
29644
29645 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29646 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29647
29648 ---------------------------------------------------------------------------------------------------------------
29649 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29650 ---------------------------------------------------------------------------------------------------------------
29651 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29652
29653 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29654 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29655
29656 IF xla_accounting_cache_pkg.GetValueChar
29657 (p_source_code => 'LEDGER_CATEGORY_CODE'
29658 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29659 AND l_bflow_method_code = 'PRIOR_ENTRY'
29660 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29661 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29662 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29663 )
29664 THEN
29665 xla_ae_lines_pkg.BflowUpgEntry
29666 (p_business_method_code => l_bflow_method_code
29667 ,p_business_class_code => l_bflow_class_code
29668 ,p_balance_type => l_balance_type_code);
29669 ELSE
29670 NULL;
29671 -- No business flow processing for business flow method of NONE.
29672 END IF;
29673
29674 --
29675 -- call analytical criteria
29676 --
29677
29678 --
29679 -- call description
29680 --
29681
29682 xla_ae_lines_pkg.SetLineDescription(
29683 p_ae_header_id => l_ae_header_id
29684 ,p_description => Description_2 (
29685 p_application_id => p_application_id
29686 , p_ae_header_id => l_ae_header_id
29687 , p_source_1 => p_source_1
29688 )
29689 );
29690
29691
29692 --
29693 -- call ADRs
29694 -- Bug 4922099
29695 --
29696 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29697 (NVL(l_actual_upg_option, 'N') = 'O') OR
29698 (NVL(l_enc_upg_option, 'N') = 'O')
29699 )
29700 THEN
29701 NULL;
29702 --
29703 --
29704
29705 l_ccid := AcctDerRule_3(
29706 p_application_id => p_application_id
29707 , p_ae_header_id => l_ae_header_id
29708 , p_source_2 => p_source_2
29709 , x_transaction_coa_id => l_adr_transaction_coa_id
29710 , x_accounting_coa_id => l_adr_accounting_coa_id
29711 , x_value_type_code => l_adr_value_type_code
29712 , p_side => 'NA'
29713 );
29714
29715 xla_ae_lines_pkg.set_ccid(
29716 p_code_combination_id => l_ccid
29717 , p_value_type_code => l_adr_value_type_code
29718 , p_transaction_coa_id => l_adr_transaction_coa_id
29719 , p_accounting_coa_id => l_adr_accounting_coa_id
29720 , p_adr_code => 'AP_INVOICE_DIST'
29721 , p_adr_type_code => 'S'
29722 , p_component_type => l_component_type
29723 , p_component_code => l_component_code
29724 , p_component_type_code => l_component_type_code
29725 , p_component_appl_id => l_component_appl_id
29726 , p_amb_context_code => l_amb_context_code
29727 , p_side => 'NA'
29728 );
29729
29730
29731 l_segment := AcctDerRule_12(
29732 p_application_id => p_application_id
29733 , p_ae_header_id => l_ae_header_id
29734 , p_source_7 => p_source_7
29735 , p_source_8 => p_source_8
29736 , p_source_8_meaning => p_source_8_meaning
29737 , p_source_9 => p_source_9
29738 , p_source_10 => p_source_10
29739 , p_source_11 => p_source_11
29740 , p_source_11_meaning => p_source_11_meaning
29741 , x_transaction_coa_id => l_adr_transaction_coa_id
29742 , x_accounting_coa_id => l_adr_accounting_coa_id
29743 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29744 , x_flex_value_set_id => l_adr_flex_value_set_id
29745 , x_value_type_code => l_adr_value_type_code
29746 , x_value_combination_id => l_adr_value_combination_id
29747 , x_value_segment_code => l_adr_value_segment_code
29748 , p_side => 'NA'
29749 , p_override_seg_flag => 'Y'
29750 );
29751
29752 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29753
29754 xla_ae_lines_pkg.set_segment(
29755 p_to_segment_code => 'GL_ACCOUNT'
29756 , p_segment_value => l_segment
29757 , p_from_segment_code => l_adr_value_segment_code
29758 , p_from_combination_id => l_adr_value_combination_id
29759 , p_value_type_code => l_adr_value_type_code
29760 , p_transaction_coa_id => l_adr_transaction_coa_id
29761 , p_accounting_coa_id => l_adr_accounting_coa_id
29762 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29763 , p_flex_value_set_id => l_adr_flex_value_set_id
29764 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
29765 , p_adr_type_code => 'S'
29766 , p_component_type => l_component_type
29767 , p_component_code => l_component_code
29768 , p_component_type_code => l_component_type_code
29769 , p_component_appl_id => l_component_appl_id
29770 , p_amb_context_code => l_amb_context_code
29771 , p_entity_code => 'AP_INVOICES'
29772 , p_event_class_code => 'INVOICES'
29773 , p_side => 'NA'
29774 );
29775
29776 END IF;
29777
29778 --
29779 --
29780 END IF;
29781 --
29782 -- Bug 4922099
29783 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29784 (NVL(l_enc_upg_option, 'N') = 'O')
29785 ) AND
29786 (l_bflow_method_code = 'PRIOR_ENTRY')
29787 )
29788 THEN
29789 IF
29790 --
29791 1 = 2
29792 --
29793 THEN
29794 xla_accounting_err_pkg.build_message
29795 (p_appli_s_name => 'XLA'
29796 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29797 ,p_token_1 => 'LINE_NUMBER'
29798 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29799 ,p_token_2 => 'LINE_TYPE_NAME'
29800 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29801 l_component_type
29802 ,l_component_code
29803 ,l_component_type_code
29804 ,l_component_appl_id
29805 ,l_amb_context_code
29806 ,l_entity_code
29807 ,l_event_class_code
29808 )
29809 ,p_token_3 => 'OWNER'
29810 ,p_value_3 => xla_lookups_pkg.get_meaning(
29811 p_lookup_type => 'XLA_OWNER_TYPE'
29812 ,p_lookup_code => l_component_type_code
29813 )
29814 ,p_token_4 => 'PRODUCT_NAME'
29815 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29816 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29817 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29818 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29819 ,p_ae_header_id => NULL
29820 );
29821
29822 IF (C_LEVEL_ERROR>= g_log_level) THEN
29823 trace
29824 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29825 ,p_level => C_LEVEL_ERROR
29826 ,p_module => l_log_module);
29827 END IF;
29828 END IF;
29829 END IF;
29830 --
29831 --
29832 ------------------------------------------------------------------------------------------------
29833 -- 4219869 Business Flow
29834 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29835 -- Prior Entry. Currently, the following code is always generated.
29836 ------------------------------------------------------------------------------------------------
29837 XLA_AE_LINES_PKG.ValidateCurrentLine;
29838
29839 ------------------------------------------------------------------------------------
29840 -- 4219869 Business Flow
29841 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29842 ------------------------------------------------------------------------------------
29843 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29844
29845 ----------------------------------------------------------------------------------
29846 -- 4219869 Business Flow
29847 -- Update journal entry status -- Need to generate this within IF <condition>
29848 ----------------------------------------------------------------------------------
29849 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29850 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29851 ,p_balance_type_code => l_balance_type_code
29852 );
29853
29854 -------------------------------------------------------------------------------------------
29855 -- 4262811 - Generate the Accrual Reversal lines
29856 -------------------------------------------------------------------------------------------
29857 BEGIN
29858 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29859 (g_array_event(p_event_id).array_value_num('header_index'));
29860 IF l_acc_rev_flag IS NULL THEN
29861 l_acc_rev_flag := 'N';
29862 END IF;
29863 EXCEPTION
29864 WHEN OTHERS THEN
29865 l_acc_rev_flag := 'N';
29866 END;
29867 --
29868 IF (l_acc_rev_flag = 'Y') THEN
29869
29870 -- 4645092 ------------------------------------------------------------------------------
29871 -- To allow MPA report to determine if it should generate report process
29872 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29873 ------------------------------------------------------------------------------------------
29874
29875 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29876 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29877 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29878 -- call ADRs
29879 -- Bug 4922099
29880 --
29881 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29882 (NVL(l_actual_upg_option, 'N') = 'O') OR
29883 (NVL(l_enc_upg_option, 'N') = 'O')
29884 )
29885 THEN
29886 NULL;
29887 --
29888 --
29889
29890 l_ccid := AcctDerRule_3(
29891 p_application_id => p_application_id
29892 , p_ae_header_id => l_ae_header_id
29893 , p_source_2 => p_source_2
29894 , x_transaction_coa_id => l_adr_transaction_coa_id
29895 , x_accounting_coa_id => l_adr_accounting_coa_id
29896 , x_value_type_code => l_adr_value_type_code
29897 , p_side => 'NA'
29898 );
29899
29900 xla_ae_lines_pkg.set_ccid(
29901 p_code_combination_id => l_ccid
29902 , p_value_type_code => l_adr_value_type_code
29903 , p_transaction_coa_id => l_adr_transaction_coa_id
29904 , p_accounting_coa_id => l_adr_accounting_coa_id
29905 , p_adr_code => 'AP_INVOICE_DIST'
29906 , p_adr_type_code => 'S'
29907 , p_component_type => l_component_type
29908 , p_component_code => l_component_code
29909 , p_component_type_code => l_component_type_code
29910 , p_component_appl_id => l_component_appl_id
29911 , p_amb_context_code => l_amb_context_code
29912 , p_side => 'NA'
29913 );
29914
29915
29916 l_segment := AcctDerRule_12(
29917 p_application_id => p_application_id
29918 , p_ae_header_id => l_ae_header_id
29919 , p_source_7 => p_source_7
29920 , p_source_8 => p_source_8
29921 , p_source_8_meaning => p_source_8_meaning
29922 , p_source_9 => p_source_9
29923 , p_source_10 => p_source_10
29924 , p_source_11 => p_source_11
29925 , p_source_11_meaning => p_source_11_meaning
29926 , x_transaction_coa_id => l_adr_transaction_coa_id
29927 , x_accounting_coa_id => l_adr_accounting_coa_id
29928 , x_flexfield_segment_code => l_adr_flexfield_segment_code
29929 , x_flex_value_set_id => l_adr_flex_value_set_id
29930 , x_value_type_code => l_adr_value_type_code
29931 , x_value_combination_id => l_adr_value_combination_id
29932 , x_value_segment_code => l_adr_value_segment_code
29933 , p_side => 'NA'
29934 , p_override_seg_flag => 'Y'
29935 );
29936
29937 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
29938
29939 xla_ae_lines_pkg.set_segment(
29940 p_to_segment_code => 'GL_ACCOUNT'
29941 , p_segment_value => l_segment
29942 , p_from_segment_code => l_adr_value_segment_code
29943 , p_from_combination_id => l_adr_value_combination_id
29944 , p_value_type_code => l_adr_value_type_code
29945 , p_transaction_coa_id => l_adr_transaction_coa_id
29946 , p_accounting_coa_id => l_adr_accounting_coa_id
29947 , p_flexfield_segment_code => l_adr_flexfield_segment_code
29948 , p_flex_value_set_id => l_adr_flex_value_set_id
29949 , p_adr_code => 'FV_490X01_OBL_ACCOUNT'
29950 , p_adr_type_code => 'S'
29951 , p_component_type => l_component_type
29952 , p_component_code => l_component_code
29953 , p_component_type_code => l_component_type_code
29954 , p_component_appl_id => l_component_appl_id
29955 , p_amb_context_code => l_amb_context_code
29956 , p_entity_code => 'AP_INVOICES'
29957 , p_event_class_code => 'INVOICES'
29958 , p_side => 'NA'
29959 );
29960
29961 END IF;
29962
29963 --
29964 --
29965 END IF;
29966
29967 --
29968 -- Update the line information that should be overwritten
29969 --
29970 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29971 p_header_num => 1);
29972 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29973
29974 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29975
29976 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29977 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29978 END IF;
29979
29980 --
29981 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29982 --
29983 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29984 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29985 ELSE
29986 ---------------------------------------------------------------------------------------------------
29987 -- 4262811a Switch Sign
29988 ---------------------------------------------------------------------------------------------------
29989 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29991 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29992 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29993 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29994 -- 5132302
29995 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29996 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29997
29998 END IF;
29999
30000 -- 4955764
30001 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30002 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30003
30004
30005 XLA_AE_LINES_PKG.ValidateCurrentLine;
30006 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30007
30008 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30009 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30010 ,p_balance_type_code => l_balance_type_code);
30011
30012 END IF;
30013
30014 -----------------------------------------------------------------------------------------
30015 -- 4262811 Multiperiod Accounting
30016 -----------------------------------------------------------------------------------------
30017 -- No MPA option is assigned.
30018
30019
30020 END IF;
30021 END IF;
30022 --
30023
30024 --
30025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30026 trace
30027 (p_msg => 'END of AcctLineType_51'
30028 ,p_level => C_LEVEL_PROCEDURE
30029 ,p_module => l_log_module);
30030 END IF;
30031 --
30032 EXCEPTION
30033 WHEN xla_exceptions_pkg.application_exception THEN
30034 RAISE;
30035 WHEN OTHERS THEN
30036 xla_exceptions_pkg.raise_message
30037 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_51');
30038 END AcctLineType_51;
30039 --
30040
30041 ---------------------------------------
30042 --
30043 -- PRIVATE FUNCTION
30044 -- AcctLineType_52
30045 --
30046 ---------------------------------------
30047 PROCEDURE AcctLineType_52 (
30048 p_application_id IN NUMBER
30049 ,p_event_id IN NUMBER
30050 ,p_calculate_acctd_flag IN VARCHAR2
30051 ,p_calculate_g_l_flag IN VARCHAR2
30052 ,p_actual_flag IN OUT VARCHAR2
30053 ,p_balance_type_code OUT VARCHAR2
30054 ,p_gain_or_loss_ref OUT VARCHAR2
30055
30056 --Invoice Distribution Description
30057 , p_source_1 IN VARCHAR2
30058 --Invoice Distribution Account
30059 , p_source_2 IN NUMBER
30060 --Invoice Distribution Type
30061 , p_source_8 IN VARCHAR2
30062 , p_source_8_meaning IN VARCHAR2
30063 --Federal Prior Year Flag
30064 , p_source_9 IN VARCHAR2
30065 --Accrue on Receipt Option
30066 , p_source_11 IN VARCHAR2
30067 , p_source_11_meaning IN VARCHAR2
30068 --Purchase Order Distribution Identifier
30069 , p_source_12 IN NUMBER
30070 --Accounting Reversal Indicator
30071 , p_source_15 IN VARCHAR2
30072 --Distribution Link Type
30073 , p_source_17 IN VARCHAR2
30074 --Allocation to Main Distribution Identifier
30075 , p_source_19 IN NUMBER
30076 --Invoice Identifier
30077 , p_source_20 IN NUMBER
30078 --Business Flow Accounts Payable Application Identifier
30079 , p_source_21 IN NUMBER
30080 --Business Flow Invoice Distribution Type
30081 , p_source_22 IN VARCHAR2
30082 --Business Flow Invoice Entity Code
30083 , p_source_23 IN VARCHAR2
30084 --Business Flow Invoice Distribution Identifier
30085 , p_source_24 IN NUMBER
30086 --Business Flow Invoice Identifier
30087 , p_source_25 IN NUMBER
30088 --Invoice Distribution Identifier
30089 , p_source_26 IN NUMBER
30090 --Payables Encumbrance Upgrade Credit Account
30091 , p_source_27 IN NUMBER
30092 --Payables Encumbrance Upgrade Credit Amount
30093 , p_source_28 IN NUMBER
30094 --Invoice Currency Code
30095 , p_source_29 IN VARCHAR2
30096 --Payables Encumbrance Upgrade Credit Base Amount
30097 , p_source_30 IN NUMBER
30098 --Payables Encumbrance Upgrade Debit Account
30099 , p_source_31 IN NUMBER
30100 --Payables Encumbrance Upgrade Debit Amount
30101 , p_source_32 IN NUMBER
30102 --Payables Encumbrance Upgrade Debit Base Amount
30103 , p_source_33 IN NUMBER
30104 --Payables Encumbrance Upgrade Option
30105 , p_source_34 IN VARCHAR2
30106 --Invoice Exchange Date
30107 , p_source_36 IN DATE
30108 --Invoice Exchange Rate
30109 , p_source_37 IN NUMBER
30110 --Invoice Exchange Rate Type
30111 , p_source_38 IN VARCHAR2
30112 --Deferred Accounting End Date
30113 , p_source_39 IN DATE
30114 --Deferred Accounting Option
30115 , p_source_40 IN VARCHAR2
30116 --Deferred Accounting Start Date
30117 , p_source_41 IN DATE
30118 --Override Accounted Amount Indicator
30119 , p_source_42 IN VARCHAR2
30120 , p_source_42_meaning IN VARCHAR2
30121 --Invoice Supplier Identifier
30122 , p_source_43 IN NUMBER
30123 --Invoice Supplier Site Identifier
30124 , p_source_44 IN NUMBER
30125 --Third Party Type
30126 , p_source_45 IN VARCHAR2
30127 --Parent Reversal Identifier
30128 , p_source_46 IN NUMBER
30129 --Invoice Distribution Statistical Amount
30130 , p_source_47 IN NUMBER
30131 --Invoice Distribution Tax Line Identifier
30132 , p_source_48 IN NUMBER
30133 --Invoice Distribution Tax Distribution Identifier from Tax
30134 , p_source_49 IN NUMBER
30135 --Invoice Distribution Summary Tax Line Identifier
30136 , p_source_50 IN NUMBER
30137 --Payables Upgrade Credit Encumbrance Type Identifier
30138 , p_source_51 IN NUMBER
30139 --Payables Upgrade Debit Encumbrance Type Identifier
30140 , p_source_52 IN NUMBER
30141 --Invoice Distribution Amount
30142 , p_source_55 IN NUMBER
30143 --Purchasing Encumbrance Option
30144 , p_source_60 IN VARCHAR2
30145 , p_source_60_meaning IN VARCHAR2
30146 --Quantity Variance Amount
30147 , p_source_62 IN NUMBER
30148 --Quantity Variance Amount in Ledger Currency
30149 , p_source_63 IN NUMBER
30150 )
30151 IS
30152
30153 l_component_type VARCHAR2(80);
30154 l_component_code VARCHAR2(30);
30155 l_component_type_code VARCHAR2(1);
30156 l_component_appl_id INTEGER;
30157 l_amb_context_code VARCHAR2(30);
30158 l_entity_code VARCHAR2(30);
30159 l_event_class_code VARCHAR2(30);
30160 l_ae_header_id NUMBER;
30161 l_event_type_code VARCHAR2(30);
30162 l_line_definition_code VARCHAR2(30);
30163 l_line_definition_owner_code VARCHAR2(1);
30164 --
30165 -- adr variables
30166 l_segment VARCHAR2(30);
30167 l_ccid NUMBER;
30168 l_adr_transaction_coa_id NUMBER;
30169 l_adr_accounting_coa_id NUMBER;
30170 l_adr_flexfield_segment_code VARCHAR2(30);
30171 l_adr_flex_value_set_id NUMBER;
30172 l_adr_value_type_code VARCHAR2(30);
30173 l_adr_value_combination_id NUMBER;
30174 l_adr_value_segment_code VARCHAR2(30);
30175
30176 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30177 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30178 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30179 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30180
30181 -- 4262811 Variables ------------------------------------------------------------------------------------------
30182 l_entered_amt_idx NUMBER;
30183 l_accted_amt_idx NUMBER;
30184 l_acc_rev_flag VARCHAR2(1);
30185 l_accrual_line_num NUMBER;
30186 l_tmp_amt NUMBER;
30187 l_acc_rev_natural_side_code VARCHAR2(1);
30188
30189 l_num_entries NUMBER;
30190 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30191 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30192 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30193 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30194 l_recog_line_1 NUMBER;
30195 l_recog_line_2 NUMBER;
30196
30197 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30198 l_bflow_applied_to_amt NUMBER; -- 5132302
30199 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30200
30201 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30202
30203 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30204 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30205
30206 ---------------------------------------------------------------------------------------------------------------
30207
30208
30209 --
30210 -- bulk performance
30211 --
30212 l_balance_type_code VARCHAR2(1);
30213 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30214 l_log_module VARCHAR2(240);
30215
30216 --
30217 -- Upgrade strategy
30218 --
30219 l_actual_upg_option VARCHAR2(1);
30220 l_enc_upg_option VARCHAR2(1);
30221
30222 --
30223 BEGIN
30224 --
30225 IF g_log_enabled THEN
30226 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
30227 END IF;
30228 --
30229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30230
30231 trace
30232 (p_msg => 'BEGIN of AcctLineType_52'
30233 ,p_level => C_LEVEL_PROCEDURE
30234 ,p_module => l_log_module);
30235
30236 END IF;
30237 --
30238 l_component_type := 'AMB_JLT';
30239 l_component_code := 'FV_AP_INV_QTY_VAR_CR';
30240 l_component_type_code := 'S';
30241 l_component_appl_id := 200;
30242 l_amb_context_code := 'DEFAULT';
30243 l_entity_code := 'AP_INVOICES';
30244 l_event_class_code := 'INVOICES';
30245 l_event_type_code := 'INVOICES_ALL';
30246 l_line_definition_owner_code := 'S';
30247 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
30248 --
30249 l_balance_type_code := 'A';
30250 l_segment := NULL;
30251 l_ccid := NULL;
30252 l_adr_transaction_coa_id := NULL;
30253 l_adr_accounting_coa_id := NULL;
30254 l_adr_flexfield_segment_code := NULL;
30255 l_adr_flex_value_set_id := NULL;
30256 l_adr_value_type_code := NULL;
30257 l_adr_value_combination_id := NULL;
30258 l_adr_value_segment_code := NULL;
30259
30260 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30261 l_bflow_class_code := ''; -- 4219869 Business Flow
30262 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30263 l_budgetary_control_flag := 'Y';
30264
30265 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30266 l_bflow_applied_to_amt := NULL; -- 5132302
30267 l_entered_amt_idx := NULL; -- 4262811
30268 l_accted_amt_idx := NULL; -- 4262811
30269 l_acc_rev_flag := NULL; -- 4262811
30270 l_accrual_line_num := NULL; -- 4262811
30271 l_tmp_amt := NULL; -- 4262811
30272 --
30273
30274 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30275 l_balance_type_code <> 'B' THEN
30276 IF NVL(p_source_8,'
30277 ') <> 'ACCRUAL' AND
30278 p_source_62 IS NOT NULL AND
30279 NVL(p_source_60,'
30280 ') = 'Y'
30281 THEN
30282
30283 --
30284 XLA_AE_LINES_PKG.SetNewLine;
30285
30286 p_balance_type_code := l_balance_type_code;
30287 -- set the flag so later we will know whether the gain loss line needs to be created
30288
30289 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30290 p_actual_flag :='A';
30291 END IF;
30292
30293 --
30294 -- bulk performance
30295 --
30296 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30297 p_header_num => 0); -- 4262811
30298 --
30299 -- set accounting line options
30300 --
30301 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30302 p_natural_side_code => 'C'
30303 , p_gain_or_loss_flag => 'N'
30304 , p_gl_transfer_mode_code => 'S'
30305 , p_acct_entry_type_code => 'A'
30306 , p_switch_side_flag => 'N'
30307 , p_merge_duplicate_code => 'N'
30308 );
30309 --
30310 l_acc_rev_natural_side_code := 'D'; -- 4262811
30311 --
30312 --
30313 -- set accounting line type info
30314 --
30315 xla_ae_lines_pkg.SetAcctLineType
30316 (p_component_type => l_component_type
30317 ,p_event_type_code => l_event_type_code
30318 ,p_line_definition_owner_code => l_line_definition_owner_code
30319 ,p_line_definition_code => l_line_definition_code
30320 ,p_accounting_line_code => l_component_code
30321 ,p_accounting_line_type_code => l_component_type_code
30322 ,p_accounting_line_appl_id => l_component_appl_id
30323 ,p_amb_context_code => l_amb_context_code
30324 ,p_entity_code => l_entity_code
30325 ,p_event_class_code => l_event_class_code);
30326 --
30327 -- set accounting class
30328 --
30329 xla_ae_lines_pkg.SetAcctClass(
30330 p_accounting_class_code => 'ACCOUNTSPAYABLE'
30331 , p_ae_header_id => l_ae_header_id
30332 );
30333
30334 --
30335 -- set rounding class
30336 --
30337 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30338 'ACCOUNTSPAYABLE';
30339
30340 --
30341 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30342 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30343 --
30344 -- bulk performance
30345 --
30346 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30347
30348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30349 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30350
30351 -- 4955764
30352 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30353 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30354
30355 -- 4458381 Public Sector Enh
30356
30357 --
30358 -- set accounting attributes for the line type
30359 --
30360 l_entered_amt_idx := 24;
30361 l_accted_amt_idx := 29;
30362 l_bflow_applied_to_amt_idx := 7; -- 5132302
30363 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30364 l_rec_acct_attrs.array_char_value(1) := p_source_15;
30365 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30366 l_rec_acct_attrs.array_num_value(2) :=
30367 xla_ae_sources_pkg.GetSystemSourceNum(
30368 p_source_code => 'XLA_EVENT_APPL_ID'
30369 , p_source_type_code => 'Y'
30370 , p_source_application_id => 602
30371 );
30372 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30373 l_rec_acct_attrs.array_char_value(3) := p_source_17;
30374 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30375 l_rec_acct_attrs.array_char_value(4) :=
30376 xla_ae_sources_pkg.GetSystemSourceChar(
30377 p_source_code => 'XLA_ENTITY_CODE'
30378 , p_source_type_code => 'Y'
30379 , p_source_application_id => 602
30380 );
30381 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30382 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
30383 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30384 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
30385 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
30386 l_rec_acct_attrs.array_num_value(7) := p_source_55;
30387 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
30388 l_rec_acct_attrs.array_num_value(8) := p_source_21;
30389 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30390 l_rec_acct_attrs.array_char_value(9) := p_source_22;
30391 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
30392 l_rec_acct_attrs.array_char_value(10) := p_source_23;
30393 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
30394 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
30395 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30396 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
30397 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
30398 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
30399 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
30400 l_rec_acct_attrs.array_char_value(14) := p_source_17;
30401 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
30402 l_rec_acct_attrs.array_num_value(15) := p_source_27;
30403 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
30404 l_rec_acct_attrs.array_num_value(16) := p_source_28;
30405 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
30406 l_rec_acct_attrs.array_char_value(17) := p_source_29;
30407 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
30408 l_rec_acct_attrs.array_num_value(18) := p_source_30;
30409 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
30410 l_rec_acct_attrs.array_num_value(19) := p_source_31;
30411 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
30412 l_rec_acct_attrs.array_num_value(20) := p_source_32;
30413 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
30414 l_rec_acct_attrs.array_char_value(21) := p_source_29;
30415 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
30416 l_rec_acct_attrs.array_num_value(22) := p_source_33;
30417 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
30418 l_rec_acct_attrs.array_char_value(23) := p_source_34;
30419 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
30420 l_rec_acct_attrs.array_num_value(24) := p_source_62;
30421 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
30422 l_rec_acct_attrs.array_char_value(25) := p_source_29;
30423 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
30424 l_rec_acct_attrs.array_date_value(26) := p_source_36;
30425 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
30426 l_rec_acct_attrs.array_num_value(27) := p_source_37;
30427 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
30428 l_rec_acct_attrs.array_char_value(28) := p_source_38;
30429 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
30430 l_rec_acct_attrs.array_num_value(29) := p_source_63;
30431 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
30432 l_rec_acct_attrs.array_date_value(30) := p_source_39;
30433 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
30434 l_rec_acct_attrs.array_char_value(31) := p_source_40;
30435 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
30436 l_rec_acct_attrs.array_date_value(32) := p_source_41;
30437 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
30438 l_rec_acct_attrs.array_char_value(33) := p_source_42;
30439 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
30440 l_rec_acct_attrs.array_num_value(34) := p_source_43;
30441 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
30442 l_rec_acct_attrs.array_num_value(35) := p_source_44;
30443 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
30444 l_rec_acct_attrs.array_char_value(36) := p_source_45;
30445 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
30446 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
30447 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
30448 l_rec_acct_attrs.array_char_value(38) := p_source_17;
30449 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
30450 l_rec_acct_attrs.array_num_value(39) := p_source_47;
30451 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
30452 l_rec_acct_attrs.array_num_value(40) := p_source_48;
30453 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
30454 l_rec_acct_attrs.array_num_value(41) := p_source_49;
30455 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
30456 l_rec_acct_attrs.array_num_value(42) := p_source_50;
30457 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
30458 l_rec_acct_attrs.array_num_value(43) := p_source_51;
30459 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
30460 l_rec_acct_attrs.array_num_value(44) := p_source_52;
30461
30462 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30463 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30464
30465 ---------------------------------------------------------------------------------------------------------------
30466 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30467 ---------------------------------------------------------------------------------------------------------------
30468 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30469
30470 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30471 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30472
30473 IF xla_accounting_cache_pkg.GetValueChar
30474 (p_source_code => 'LEDGER_CATEGORY_CODE'
30475 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30476 AND l_bflow_method_code = 'PRIOR_ENTRY'
30477 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30478 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30479 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30480 )
30481 THEN
30482 xla_ae_lines_pkg.BflowUpgEntry
30483 (p_business_method_code => l_bflow_method_code
30484 ,p_business_class_code => l_bflow_class_code
30485 ,p_balance_type => l_balance_type_code);
30486 ELSE
30487 NULL;
30488 -- No business flow processing for business flow method of NONE.
30489 END IF;
30490
30491 --
30492 -- call analytical criteria
30493 --
30494
30495 --
30496 -- call description
30497 --
30498
30499 xla_ae_lines_pkg.SetLineDescription(
30500 p_ae_header_id => l_ae_header_id
30501 ,p_description => Description_2 (
30502 p_application_id => p_application_id
30503 , p_ae_header_id => l_ae_header_id
30504 , p_source_1 => p_source_1
30505 )
30506 );
30507
30508
30509 --
30510 -- call ADRs
30511 -- Bug 4922099
30512 --
30513 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30514 (NVL(l_actual_upg_option, 'N') = 'O') OR
30515 (NVL(l_enc_upg_option, 'N') = 'O')
30516 )
30517 THEN
30518 NULL;
30519 --
30520 --
30521
30522 l_ccid := AcctDerRule_3(
30523 p_application_id => p_application_id
30524 , p_ae_header_id => l_ae_header_id
30525 , p_source_2 => p_source_2
30526 , x_transaction_coa_id => l_adr_transaction_coa_id
30527 , x_accounting_coa_id => l_adr_accounting_coa_id
30528 , x_value_type_code => l_adr_value_type_code
30529 , p_side => 'NA'
30530 );
30531
30532 xla_ae_lines_pkg.set_ccid(
30533 p_code_combination_id => l_ccid
30534 , p_value_type_code => l_adr_value_type_code
30535 , p_transaction_coa_id => l_adr_transaction_coa_id
30536 , p_accounting_coa_id => l_adr_accounting_coa_id
30537 , p_adr_code => 'AP_INVOICE_DIST'
30538 , p_adr_type_code => 'S'
30539 , p_component_type => l_component_type
30540 , p_component_code => l_component_code
30541 , p_component_type_code => l_component_type_code
30542 , p_component_appl_id => l_component_appl_id
30543 , p_amb_context_code => l_amb_context_code
30544 , p_side => 'NA'
30545 );
30546
30547
30548 l_segment := AcctDerRule_16(
30549 p_application_id => p_application_id
30550 , p_ae_header_id => l_ae_header_id
30551 , p_source_9 => p_source_9
30552 , p_source_11 => p_source_11
30553 , p_source_11_meaning => p_source_11_meaning
30554 , p_source_12 => p_source_12
30555 , x_transaction_coa_id => l_adr_transaction_coa_id
30556 , x_accounting_coa_id => l_adr_accounting_coa_id
30557 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30558 , x_flex_value_set_id => l_adr_flex_value_set_id
30559 , x_value_type_code => l_adr_value_type_code
30560 , x_value_combination_id => l_adr_value_combination_id
30561 , x_value_segment_code => l_adr_value_segment_code
30562 , p_side => 'NA'
30563 , p_override_seg_flag => 'Y'
30564 );
30565
30566 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30567
30568 xla_ae_lines_pkg.set_segment(
30569 p_to_segment_code => 'GL_ACCOUNT'
30570 , p_segment_value => l_segment
30571 , p_from_segment_code => l_adr_value_segment_code
30572 , p_from_combination_id => l_adr_value_combination_id
30573 , p_value_type_code => l_adr_value_type_code
30574 , p_transaction_coa_id => l_adr_transaction_coa_id
30575 , p_accounting_coa_id => l_adr_accounting_coa_id
30576 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30577 , p_flex_value_set_id => l_adr_flex_value_set_id
30578 , p_adr_code => 'FV_QUAN_VAR_ACC_CR'
30579 , p_adr_type_code => 'S'
30580 , p_component_type => l_component_type
30581 , p_component_code => l_component_code
30582 , p_component_type_code => l_component_type_code
30583 , p_component_appl_id => l_component_appl_id
30584 , p_amb_context_code => l_amb_context_code
30585 , p_entity_code => 'AP_INVOICES'
30586 , p_event_class_code => 'INVOICES'
30587 , p_side => 'NA'
30588 );
30589
30590 END IF;
30591
30592 --
30593 --
30594 END IF;
30595 --
30596 -- Bug 4922099
30597 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30598 (NVL(l_enc_upg_option, 'N') = 'O')
30599 ) AND
30600 (l_bflow_method_code = 'PRIOR_ENTRY')
30601 )
30602 THEN
30603 IF
30604 --
30605 1 = 2
30606 --
30607 THEN
30608 xla_accounting_err_pkg.build_message
30609 (p_appli_s_name => 'XLA'
30610 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30611 ,p_token_1 => 'LINE_NUMBER'
30612 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30613 ,p_token_2 => 'LINE_TYPE_NAME'
30614 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30615 l_component_type
30616 ,l_component_code
30617 ,l_component_type_code
30618 ,l_component_appl_id
30619 ,l_amb_context_code
30620 ,l_entity_code
30621 ,l_event_class_code
30622 )
30623 ,p_token_3 => 'OWNER'
30624 ,p_value_3 => xla_lookups_pkg.get_meaning(
30625 p_lookup_type => 'XLA_OWNER_TYPE'
30626 ,p_lookup_code => l_component_type_code
30627 )
30628 ,p_token_4 => 'PRODUCT_NAME'
30629 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30630 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30631 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30632 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30633 ,p_ae_header_id => NULL
30634 );
30635
30636 IF (C_LEVEL_ERROR>= g_log_level) THEN
30637 trace
30638 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30639 ,p_level => C_LEVEL_ERROR
30640 ,p_module => l_log_module);
30641 END IF;
30642 END IF;
30643 END IF;
30644 --
30645 --
30646 ------------------------------------------------------------------------------------------------
30647 -- 4219869 Business Flow
30648 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30649 -- Prior Entry. Currently, the following code is always generated.
30650 ------------------------------------------------------------------------------------------------
30651 XLA_AE_LINES_PKG.ValidateCurrentLine;
30652
30653 ------------------------------------------------------------------------------------
30654 -- 4219869 Business Flow
30655 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30656 ------------------------------------------------------------------------------------
30657 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30658
30659 ----------------------------------------------------------------------------------
30660 -- 4219869 Business Flow
30661 -- Update journal entry status -- Need to generate this within IF <condition>
30662 ----------------------------------------------------------------------------------
30663 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30664 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30665 ,p_balance_type_code => l_balance_type_code
30666 );
30667
30668 -------------------------------------------------------------------------------------------
30669 -- 4262811 - Generate the Accrual Reversal lines
30670 -------------------------------------------------------------------------------------------
30671 BEGIN
30672 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30673 (g_array_event(p_event_id).array_value_num('header_index'));
30674 IF l_acc_rev_flag IS NULL THEN
30675 l_acc_rev_flag := 'N';
30676 END IF;
30677 EXCEPTION
30678 WHEN OTHERS THEN
30679 l_acc_rev_flag := 'N';
30680 END;
30681 --
30682 IF (l_acc_rev_flag = 'Y') THEN
30683
30684 -- 4645092 ------------------------------------------------------------------------------
30685 -- To allow MPA report to determine if it should generate report process
30686 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30687 ------------------------------------------------------------------------------------------
30688
30689 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30690 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30691 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30692 -- call ADRs
30693 -- Bug 4922099
30694 --
30695 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30696 (NVL(l_actual_upg_option, 'N') = 'O') OR
30697 (NVL(l_enc_upg_option, 'N') = 'O')
30698 )
30699 THEN
30700 NULL;
30701 --
30702 --
30703
30704 l_ccid := AcctDerRule_3(
30705 p_application_id => p_application_id
30706 , p_ae_header_id => l_ae_header_id
30707 , p_source_2 => p_source_2
30708 , x_transaction_coa_id => l_adr_transaction_coa_id
30709 , x_accounting_coa_id => l_adr_accounting_coa_id
30710 , x_value_type_code => l_adr_value_type_code
30711 , p_side => 'NA'
30712 );
30713
30714 xla_ae_lines_pkg.set_ccid(
30715 p_code_combination_id => l_ccid
30716 , p_value_type_code => l_adr_value_type_code
30717 , p_transaction_coa_id => l_adr_transaction_coa_id
30718 , p_accounting_coa_id => l_adr_accounting_coa_id
30719 , p_adr_code => 'AP_INVOICE_DIST'
30720 , p_adr_type_code => 'S'
30721 , p_component_type => l_component_type
30722 , p_component_code => l_component_code
30723 , p_component_type_code => l_component_type_code
30724 , p_component_appl_id => l_component_appl_id
30725 , p_amb_context_code => l_amb_context_code
30726 , p_side => 'NA'
30727 );
30728
30729
30730 l_segment := AcctDerRule_16(
30731 p_application_id => p_application_id
30732 , p_ae_header_id => l_ae_header_id
30733 , p_source_9 => p_source_9
30734 , p_source_11 => p_source_11
30735 , p_source_11_meaning => p_source_11_meaning
30736 , p_source_12 => p_source_12
30737 , x_transaction_coa_id => l_adr_transaction_coa_id
30738 , x_accounting_coa_id => l_adr_accounting_coa_id
30739 , x_flexfield_segment_code => l_adr_flexfield_segment_code
30740 , x_flex_value_set_id => l_adr_flex_value_set_id
30741 , x_value_type_code => l_adr_value_type_code
30742 , x_value_combination_id => l_adr_value_combination_id
30743 , x_value_segment_code => l_adr_value_segment_code
30744 , p_side => 'NA'
30745 , p_override_seg_flag => 'Y'
30746 );
30747
30748 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
30749
30750 xla_ae_lines_pkg.set_segment(
30751 p_to_segment_code => 'GL_ACCOUNT'
30752 , p_segment_value => l_segment
30753 , p_from_segment_code => l_adr_value_segment_code
30754 , p_from_combination_id => l_adr_value_combination_id
30755 , p_value_type_code => l_adr_value_type_code
30756 , p_transaction_coa_id => l_adr_transaction_coa_id
30757 , p_accounting_coa_id => l_adr_accounting_coa_id
30758 , p_flexfield_segment_code => l_adr_flexfield_segment_code
30759 , p_flex_value_set_id => l_adr_flex_value_set_id
30760 , p_adr_code => 'FV_QUAN_VAR_ACC_CR'
30761 , p_adr_type_code => 'S'
30762 , p_component_type => l_component_type
30763 , p_component_code => l_component_code
30764 , p_component_type_code => l_component_type_code
30765 , p_component_appl_id => l_component_appl_id
30766 , p_amb_context_code => l_amb_context_code
30767 , p_entity_code => 'AP_INVOICES'
30768 , p_event_class_code => 'INVOICES'
30769 , p_side => 'NA'
30770 );
30771
30772 END IF;
30773
30774 --
30775 --
30776 END IF;
30777
30778 --
30779 -- Update the line information that should be overwritten
30780 --
30781 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30782 p_header_num => 1);
30783 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30784
30785 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30786
30787 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30788 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30789 END IF;
30790
30791 --
30792 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30793 --
30794 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30795 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30796 ELSE
30797 ---------------------------------------------------------------------------------------------------
30798 -- 4262811a Switch Sign
30799 ---------------------------------------------------------------------------------------------------
30800 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30801 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30802 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30803 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30804 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30805 -- 5132302
30806 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30807 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30808
30809 END IF;
30810
30811 -- 4955764
30812 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30813 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30814
30815
30816 XLA_AE_LINES_PKG.ValidateCurrentLine;
30817 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30818
30819 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30820 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30821 ,p_balance_type_code => l_balance_type_code);
30822
30823 END IF;
30824
30825 -----------------------------------------------------------------------------------------
30826 -- 4262811 Multiperiod Accounting
30827 -----------------------------------------------------------------------------------------
30828 -- No MPA option is assigned.
30829
30830
30831 END IF;
30832 END IF;
30833 --
30834
30835 --
30836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30837 trace
30838 (p_msg => 'END of AcctLineType_52'
30839 ,p_level => C_LEVEL_PROCEDURE
30840 ,p_module => l_log_module);
30841 END IF;
30842 --
30843 EXCEPTION
30844 WHEN xla_exceptions_pkg.application_exception THEN
30845 RAISE;
30846 WHEN OTHERS THEN
30847 xla_exceptions_pkg.raise_message
30848 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_52');
30849 END AcctLineType_52;
30850 --
30851
30852 ---------------------------------------
30853 --
30854 -- PRIVATE FUNCTION
30855 -- AcctLineType_53
30856 --
30857 ---------------------------------------
30858 PROCEDURE AcctLineType_53 (
30859 p_application_id IN NUMBER
30860 ,p_event_id IN NUMBER
30861 ,p_calculate_acctd_flag IN VARCHAR2
30862 ,p_calculate_g_l_flag IN VARCHAR2
30863 ,p_actual_flag IN OUT VARCHAR2
30864 ,p_balance_type_code OUT VARCHAR2
30865 ,p_gain_or_loss_ref OUT VARCHAR2
30866
30867 --Invoice Distribution Description
30868 , p_source_1 IN VARCHAR2
30869 --Invoice Distribution Account
30870 , p_source_2 IN NUMBER
30871 --Federal Fund Category
30872 , p_source_4 IN VARCHAR2
30873 --Federal Fund Expired Status
30874 , p_source_5 IN VARCHAR2
30875 --Federal Fund Category Description
30876 , p_source_6 IN VARCHAR2
30877 --Invoice Distribution Type
30878 , p_source_8 IN VARCHAR2
30879 , p_source_8_meaning IN VARCHAR2
30880 --Accounting Reversal Indicator
30881 , p_source_15 IN VARCHAR2
30882 --Distribution Link Type
30883 , p_source_17 IN VARCHAR2
30884 --Allocation to Main Distribution Identifier
30885 , p_source_19 IN NUMBER
30886 --Invoice Identifier
30887 , p_source_20 IN NUMBER
30888 --Business Flow Accounts Payable Application Identifier
30889 , p_source_21 IN NUMBER
30890 --Business Flow Invoice Distribution Type
30891 , p_source_22 IN VARCHAR2
30892 --Business Flow Invoice Entity Code
30893 , p_source_23 IN VARCHAR2
30894 --Business Flow Invoice Distribution Identifier
30895 , p_source_24 IN NUMBER
30896 --Business Flow Invoice Identifier
30897 , p_source_25 IN NUMBER
30898 --Invoice Distribution Identifier
30899 , p_source_26 IN NUMBER
30900 --Payables Encumbrance Upgrade Credit Account
30901 , p_source_27 IN NUMBER
30902 --Payables Encumbrance Upgrade Credit Amount
30903 , p_source_28 IN NUMBER
30904 --Invoice Currency Code
30905 , p_source_29 IN VARCHAR2
30906 --Payables Encumbrance Upgrade Credit Base Amount
30907 , p_source_30 IN NUMBER
30908 --Payables Encumbrance Upgrade Debit Account
30909 , p_source_31 IN NUMBER
30910 --Payables Encumbrance Upgrade Debit Amount
30911 , p_source_32 IN NUMBER
30912 --Payables Encumbrance Upgrade Debit Base Amount
30913 , p_source_33 IN NUMBER
30914 --Payables Encumbrance Upgrade Option
30915 , p_source_34 IN VARCHAR2
30916 --Invoice Exchange Date
30917 , p_source_36 IN DATE
30918 --Invoice Exchange Rate
30919 , p_source_37 IN NUMBER
30920 --Invoice Exchange Rate Type
30921 , p_source_38 IN VARCHAR2
30922 --Deferred Accounting End Date
30923 , p_source_39 IN DATE
30924 --Deferred Accounting Option
30925 , p_source_40 IN VARCHAR2
30926 --Deferred Accounting Start Date
30927 , p_source_41 IN DATE
30928 --Override Accounted Amount Indicator
30929 , p_source_42 IN VARCHAR2
30930 , p_source_42_meaning IN VARCHAR2
30931 --Invoice Supplier Identifier
30932 , p_source_43 IN NUMBER
30933 --Invoice Supplier Site Identifier
30934 , p_source_44 IN NUMBER
30935 --Third Party Type
30936 , p_source_45 IN VARCHAR2
30937 --Parent Reversal Identifier
30938 , p_source_46 IN NUMBER
30939 --Invoice Distribution Statistical Amount
30940 , p_source_47 IN NUMBER
30941 --Invoice Distribution Tax Line Identifier
30945 --Invoice Distribution Summary Tax Line Identifier
30942 , p_source_48 IN NUMBER
30943 --Invoice Distribution Tax Distribution Identifier from Tax
30944 , p_source_49 IN NUMBER
30946 , p_source_50 IN NUMBER
30947 --Payables Upgrade Credit Encumbrance Type Identifier
30948 , p_source_51 IN NUMBER
30949 --Payables Upgrade Debit Encumbrance Type Identifier
30950 , p_source_52 IN NUMBER
30951 --Invoice Distribution Amount
30952 , p_source_55 IN NUMBER
30953 --Purchasing Encumbrance Option
30954 , p_source_60 IN VARCHAR2
30955 , p_source_60_meaning IN VARCHAR2
30956 --Quantity Variance Amount
30957 , p_source_62 IN NUMBER
30958 --Quantity Variance Amount in Ledger Currency
30959 , p_source_63 IN NUMBER
30960 )
30961 IS
30962
30963 l_component_type VARCHAR2(80);
30964 l_component_code VARCHAR2(30);
30965 l_component_type_code VARCHAR2(1);
30966 l_component_appl_id INTEGER;
30967 l_amb_context_code VARCHAR2(30);
30968 l_entity_code VARCHAR2(30);
30969 l_event_class_code VARCHAR2(30);
30970 l_ae_header_id NUMBER;
30971 l_event_type_code VARCHAR2(30);
30972 l_line_definition_code VARCHAR2(30);
30973 l_line_definition_owner_code VARCHAR2(1);
30974 --
30975 -- adr variables
30976 l_segment VARCHAR2(30);
30977 l_ccid NUMBER;
30978 l_adr_transaction_coa_id NUMBER;
30979 l_adr_accounting_coa_id NUMBER;
30980 l_adr_flexfield_segment_code VARCHAR2(30);
30981 l_adr_flex_value_set_id NUMBER;
30982 l_adr_value_type_code VARCHAR2(30);
30983 l_adr_value_combination_id NUMBER;
30984 l_adr_value_segment_code VARCHAR2(30);
30985
30986 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30987 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30988 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30989 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30990
30991 -- 4262811 Variables ------------------------------------------------------------------------------------------
30992 l_entered_amt_idx NUMBER;
30993 l_accted_amt_idx NUMBER;
30994 l_acc_rev_flag VARCHAR2(1);
30995 l_accrual_line_num NUMBER;
30996 l_tmp_amt NUMBER;
30997 l_acc_rev_natural_side_code VARCHAR2(1);
30998
30999 l_num_entries NUMBER;
31000 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31001 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31002 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31003 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31004 l_recog_line_1 NUMBER;
31005 l_recog_line_2 NUMBER;
31006
31007 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31008 l_bflow_applied_to_amt NUMBER; -- 5132302
31009 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31010
31011 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31012
31013 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31014 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31015
31016 ---------------------------------------------------------------------------------------------------------------
31017
31018
31019 --
31020 -- bulk performance
31021 --
31022 l_balance_type_code VARCHAR2(1);
31023 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31024 l_log_module VARCHAR2(240);
31025
31026 --
31027 -- Upgrade strategy
31028 --
31029 l_actual_upg_option VARCHAR2(1);
31030 l_enc_upg_option VARCHAR2(1);
31031
31032 --
31033 BEGIN
31034 --
31035 IF g_log_enabled THEN
31036 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
31037 END IF;
31038 --
31039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31040
31041 trace
31042 (p_msg => 'BEGIN of AcctLineType_53'
31043 ,p_level => C_LEVEL_PROCEDURE
31044 ,p_module => l_log_module);
31045
31046 END IF;
31047 --
31048 l_component_type := 'AMB_JLT';
31049 l_component_code := 'FV_AP_INV_QTY_VAR_DR';
31050 l_component_type_code := 'S';
31051 l_component_appl_id := 200;
31052 l_amb_context_code := 'DEFAULT';
31053 l_entity_code := 'AP_INVOICES';
31054 l_event_class_code := 'INVOICES';
31055 l_event_type_code := 'INVOICES_ALL';
31056 l_line_definition_owner_code := 'S';
31057 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
31058 --
31059 l_balance_type_code := 'A';
31060 l_segment := NULL;
31061 l_ccid := NULL;
31062 l_adr_transaction_coa_id := NULL;
31063 l_adr_accounting_coa_id := NULL;
31064 l_adr_flexfield_segment_code := NULL;
31065 l_adr_flex_value_set_id := NULL;
31066 l_adr_value_type_code := NULL;
31067 l_adr_value_combination_id := NULL;
31068 l_adr_value_segment_code := NULL;
31069
31070 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31071 l_bflow_class_code := ''; -- 4219869 Business Flow
31072 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31073 l_budgetary_control_flag := 'Y';
31074
31075 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31076 l_bflow_applied_to_amt := NULL; -- 5132302
31077 l_entered_amt_idx := NULL; -- 4262811
31078 l_accted_amt_idx := NULL; -- 4262811
31079 l_acc_rev_flag := NULL; -- 4262811
31080 l_accrual_line_num := NULL; -- 4262811
31081 l_tmp_amt := NULL; -- 4262811
31082 --
31083
31084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31085 l_balance_type_code <> 'B' THEN
31086 IF NVL(p_source_8,'
31087 ') <> 'ACCRUAL' AND
31088 p_source_62 IS NOT NULL AND
31089 NVL(p_source_60,'
31090 ') = 'Y'
31091 THEN
31092
31093 --
31094 XLA_AE_LINES_PKG.SetNewLine;
31095
31096 p_balance_type_code := l_balance_type_code;
31097 -- set the flag so later we will know whether the gain loss line needs to be created
31098
31099 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31100 p_actual_flag :='A';
31101 END IF;
31102
31103 --
31104 -- bulk performance
31105 --
31106 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31107 p_header_num => 0); -- 4262811
31108 --
31109 -- set accounting line options
31110 --
31111 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31112 p_natural_side_code => 'D'
31113 , p_gain_or_loss_flag => 'N'
31114 , p_gl_transfer_mode_code => 'S'
31115 , p_acct_entry_type_code => 'A'
31116 , p_switch_side_flag => 'N'
31117 , p_merge_duplicate_code => 'N'
31118 );
31119 --
31120 l_acc_rev_natural_side_code := 'C'; -- 4262811
31121 --
31122 --
31123 -- set accounting line type info
31124 --
31125 xla_ae_lines_pkg.SetAcctLineType
31126 (p_component_type => l_component_type
31127 ,p_event_type_code => l_event_type_code
31128 ,p_line_definition_owner_code => l_line_definition_owner_code
31129 ,p_line_definition_code => l_line_definition_code
31130 ,p_accounting_line_code => l_component_code
31131 ,p_accounting_line_type_code => l_component_type_code
31132 ,p_accounting_line_appl_id => l_component_appl_id
31133 ,p_amb_context_code => l_amb_context_code
31134 ,p_entity_code => l_entity_code
31135 ,p_event_class_code => l_event_class_code);
31136 --
31137 -- set accounting class
31138 --
31139 xla_ae_lines_pkg.SetAcctClass(
31140 p_accounting_class_code => 'ACCOUNTSPAYABLE'
31141 , p_ae_header_id => l_ae_header_id
31142 );
31143
31144 --
31145 -- set rounding class
31146 --
31147 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31148 'ACCOUNTSPAYABLE';
31149
31150 --
31151 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31152 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31153 --
31154 -- bulk performance
31155 --
31156 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31157
31158 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31159 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31160
31161 -- 4955764
31162 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31163 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31164
31165 -- 4458381 Public Sector Enh
31166
31167 --
31168 -- set accounting attributes for the line type
31169 --
31170 l_entered_amt_idx := 24;
31171 l_accted_amt_idx := 29;
31172 l_bflow_applied_to_amt_idx := 7; -- 5132302
31173 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31174 l_rec_acct_attrs.array_char_value(1) := p_source_15;
31175 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31176 l_rec_acct_attrs.array_num_value(2) :=
31177 xla_ae_sources_pkg.GetSystemSourceNum(
31178 p_source_code => 'XLA_EVENT_APPL_ID'
31179 , p_source_type_code => 'Y'
31180 , p_source_application_id => 602
31181 );
31182 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31183 l_rec_acct_attrs.array_char_value(3) := p_source_17;
31184 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31185 l_rec_acct_attrs.array_char_value(4) :=
31186 xla_ae_sources_pkg.GetSystemSourceChar(
31187 p_source_code => 'XLA_ENTITY_CODE'
31188 , p_source_type_code => 'Y'
31189 , p_source_application_id => 602
31190 );
31191 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
31192 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
31193 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
31194 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
31195 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
31196 l_rec_acct_attrs.array_num_value(7) := p_source_55;
31197 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
31198 l_rec_acct_attrs.array_num_value(8) := p_source_21;
31199 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31200 l_rec_acct_attrs.array_char_value(9) := p_source_22;
31201 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
31202 l_rec_acct_attrs.array_char_value(10) := p_source_23;
31203 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
31204 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_24);
31205 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31206 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_25);
31207 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
31208 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
31209 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
31210 l_rec_acct_attrs.array_char_value(14) := p_source_17;
31211 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
31212 l_rec_acct_attrs.array_num_value(15) := p_source_27;
31213 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
31214 l_rec_acct_attrs.array_num_value(16) := p_source_28;
31215 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
31216 l_rec_acct_attrs.array_char_value(17) := p_source_29;
31217 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
31218 l_rec_acct_attrs.array_num_value(18) := p_source_30;
31219 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
31220 l_rec_acct_attrs.array_num_value(19) := p_source_31;
31221 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
31222 l_rec_acct_attrs.array_num_value(20) := p_source_32;
31223 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
31224 l_rec_acct_attrs.array_char_value(21) := p_source_29;
31225 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
31226 l_rec_acct_attrs.array_num_value(22) := p_source_33;
31227 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
31228 l_rec_acct_attrs.array_char_value(23) := p_source_34;
31229 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
31230 l_rec_acct_attrs.array_num_value(24) := p_source_62;
31231 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
31232 l_rec_acct_attrs.array_char_value(25) := p_source_29;
31233 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
31234 l_rec_acct_attrs.array_date_value(26) := p_source_36;
31235 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
31236 l_rec_acct_attrs.array_num_value(27) := p_source_37;
31237 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
31238 l_rec_acct_attrs.array_char_value(28) := p_source_38;
31239 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
31240 l_rec_acct_attrs.array_num_value(29) := p_source_63;
31241 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
31242 l_rec_acct_attrs.array_date_value(30) := p_source_39;
31243 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
31244 l_rec_acct_attrs.array_char_value(31) := p_source_40;
31245 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
31246 l_rec_acct_attrs.array_date_value(32) := p_source_41;
31247 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
31248 l_rec_acct_attrs.array_char_value(33) := p_source_42;
31249 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
31250 l_rec_acct_attrs.array_num_value(34) := p_source_43;
31251 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
31252 l_rec_acct_attrs.array_num_value(35) := p_source_44;
31253 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
31254 l_rec_acct_attrs.array_char_value(36) := p_source_45;
31255 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
31256 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
31257 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
31258 l_rec_acct_attrs.array_char_value(38) := p_source_17;
31259 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
31260 l_rec_acct_attrs.array_num_value(39) := p_source_47;
31261 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
31262 l_rec_acct_attrs.array_num_value(40) := p_source_48;
31263 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
31264 l_rec_acct_attrs.array_num_value(41) := p_source_49;
31265 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
31266 l_rec_acct_attrs.array_num_value(42) := p_source_50;
31267 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
31268 l_rec_acct_attrs.array_num_value(43) := p_source_51;
31269 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
31270 l_rec_acct_attrs.array_num_value(44) := p_source_52;
31271
31272 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31273 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31274
31275 ---------------------------------------------------------------------------------------------------------------
31276 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31277 ---------------------------------------------------------------------------------------------------------------
31278 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31279
31280 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31281 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31282
31283 IF xla_accounting_cache_pkg.GetValueChar
31284 (p_source_code => 'LEDGER_CATEGORY_CODE'
31285 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31286 AND l_bflow_method_code = 'PRIOR_ENTRY'
31287 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31288 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31289 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31290 )
31291 THEN
31292 xla_ae_lines_pkg.BflowUpgEntry
31293 (p_business_method_code => l_bflow_method_code
31294 ,p_business_class_code => l_bflow_class_code
31295 ,p_balance_type => l_balance_type_code);
31296 ELSE
31297 NULL;
31298 -- No business flow processing for business flow method of NONE.
31299 END IF;
31300
31301 --
31302 -- call analytical criteria
31303 --
31304
31305 --
31306 -- call description
31307 --
31308
31309 xla_ae_lines_pkg.SetLineDescription(
31310 p_ae_header_id => l_ae_header_id
31311 ,p_description => Description_2 (
31312 p_application_id => p_application_id
31313 , p_ae_header_id => l_ae_header_id
31314 , p_source_1 => p_source_1
31315 )
31316 );
31317
31318
31319 --
31320 -- call ADRs
31321 -- Bug 4922099
31322 --
31323 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31324 (NVL(l_actual_upg_option, 'N') = 'O') OR
31325 (NVL(l_enc_upg_option, 'N') = 'O')
31326 )
31327 THEN
31328 NULL;
31329 --
31330 --
31331
31332 l_ccid := AcctDerRule_3(
31333 p_application_id => p_application_id
31334 , p_ae_header_id => l_ae_header_id
31335 , p_source_2 => p_source_2
31336 , x_transaction_coa_id => l_adr_transaction_coa_id
31337 , x_accounting_coa_id => l_adr_accounting_coa_id
31338 , x_value_type_code => l_adr_value_type_code
31339 , p_side => 'NA'
31340 );
31341
31342 xla_ae_lines_pkg.set_ccid(
31343 p_code_combination_id => l_ccid
31344 , p_value_type_code => l_adr_value_type_code
31345 , p_transaction_coa_id => l_adr_transaction_coa_id
31346 , p_accounting_coa_id => l_adr_accounting_coa_id
31347 , p_adr_code => 'AP_INVOICE_DIST'
31348 , p_adr_type_code => 'S'
31349 , p_component_type => l_component_type
31350 , p_component_code => l_component_code
31351 , p_component_type_code => l_component_type_code
31352 , p_component_appl_id => l_component_appl_id
31353 , p_amb_context_code => l_amb_context_code
31354 , p_side => 'NA'
31355 );
31356
31357
31358 l_segment := AcctDerRule_8(
31359 p_application_id => p_application_id
31360 , p_ae_header_id => l_ae_header_id
31361 , p_source_4 => p_source_4
31362 , p_source_5 => p_source_5
31363 , p_source_6 => p_source_6
31364 , x_transaction_coa_id => l_adr_transaction_coa_id
31365 , x_accounting_coa_id => l_adr_accounting_coa_id
31366 , x_flexfield_segment_code => l_adr_flexfield_segment_code
31367 , x_flex_value_set_id => l_adr_flex_value_set_id
31368 , x_value_type_code => l_adr_value_type_code
31369 , x_value_combination_id => l_adr_value_combination_id
31370 , x_value_segment_code => l_adr_value_segment_code
31371 , p_side => 'NA'
31372 , p_override_seg_flag => 'Y'
31373 );
31374
31375 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
31376
31377 xla_ae_lines_pkg.set_segment(
31378 p_to_segment_code => 'GL_ACCOUNT'
31379 , p_segment_value => l_segment
31380 , p_from_segment_code => l_adr_value_segment_code
31381 , p_from_combination_id => l_adr_value_combination_id
31382 , p_value_type_code => l_adr_value_type_code
31383 , p_transaction_coa_id => l_adr_transaction_coa_id
31384 , p_accounting_coa_id => l_adr_accounting_coa_id
31385 , p_flexfield_segment_code => l_adr_flexfield_segment_code
31386 , p_flex_value_set_id => l_adr_flex_value_set_id
31387 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
31388 , p_adr_type_code => 'S'
31389 , p_component_type => l_component_type
31390 , p_component_code => l_component_code
31391 , p_component_type_code => l_component_type_code
31392 , p_component_appl_id => l_component_appl_id
31393 , p_amb_context_code => l_amb_context_code
31394 , p_entity_code => 'AP_INVOICES'
31395 , p_event_class_code => 'INVOICES'
31396 , p_side => 'NA'
31397 );
31398
31399 END IF;
31400
31401 --
31402 --
31403 END IF;
31404 --
31405 -- Bug 4922099
31406 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31407 (NVL(l_enc_upg_option, 'N') = 'O')
31408 ) AND
31409 (l_bflow_method_code = 'PRIOR_ENTRY')
31410 )
31411 THEN
31412 IF
31413 --
31414 1 = 2
31415 --
31416 THEN
31417 xla_accounting_err_pkg.build_message
31418 (p_appli_s_name => 'XLA'
31419 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31420 ,p_token_1 => 'LINE_NUMBER'
31421 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31422 ,p_token_2 => 'LINE_TYPE_NAME'
31423 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31424 l_component_type
31425 ,l_component_code
31426 ,l_component_type_code
31427 ,l_component_appl_id
31428 ,l_amb_context_code
31429 ,l_entity_code
31430 ,l_event_class_code
31431 )
31432 ,p_token_3 => 'OWNER'
31433 ,p_value_3 => xla_lookups_pkg.get_meaning(
31434 p_lookup_type => 'XLA_OWNER_TYPE'
31435 ,p_lookup_code => l_component_type_code
31436 )
31437 ,p_token_4 => 'PRODUCT_NAME'
31438 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31439 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31440 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31441 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31442 ,p_ae_header_id => NULL
31443 );
31444
31445 IF (C_LEVEL_ERROR>= g_log_level) THEN
31446 trace
31447 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31448 ,p_level => C_LEVEL_ERROR
31449 ,p_module => l_log_module);
31450 END IF;
31451 END IF;
31452 END IF;
31453 --
31454 --
31455 ------------------------------------------------------------------------------------------------
31456 -- 4219869 Business Flow
31457 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31458 -- Prior Entry. Currently, the following code is always generated.
31459 ------------------------------------------------------------------------------------------------
31460 XLA_AE_LINES_PKG.ValidateCurrentLine;
31461
31462 ------------------------------------------------------------------------------------
31463 -- 4219869 Business Flow
31464 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31465 ------------------------------------------------------------------------------------
31466 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31467
31468 ----------------------------------------------------------------------------------
31469 -- 4219869 Business Flow
31470 -- Update journal entry status -- Need to generate this within IF <condition>
31471 ----------------------------------------------------------------------------------
31472 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31473 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31474 ,p_balance_type_code => l_balance_type_code
31475 );
31476
31477 -------------------------------------------------------------------------------------------
31478 -- 4262811 - Generate the Accrual Reversal lines
31479 -------------------------------------------------------------------------------------------
31480 BEGIN
31481 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31482 (g_array_event(p_event_id).array_value_num('header_index'));
31483 IF l_acc_rev_flag IS NULL THEN
31484 l_acc_rev_flag := 'N';
31485 END IF;
31486 EXCEPTION
31487 WHEN OTHERS THEN
31488 l_acc_rev_flag := 'N';
31489 END;
31490 --
31491 IF (l_acc_rev_flag = 'Y') THEN
31492
31493 -- 4645092 ------------------------------------------------------------------------------
31494 -- To allow MPA report to determine if it should generate report process
31495 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31496 ------------------------------------------------------------------------------------------
31497
31498 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31499 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31500 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
31501 -- call ADRs
31502 -- Bug 4922099
31503 --
31504 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31505 (NVL(l_actual_upg_option, 'N') = 'O') OR
31506 (NVL(l_enc_upg_option, 'N') = 'O')
31507 )
31508 THEN
31509 NULL;
31510 --
31511 --
31512
31513 l_ccid := AcctDerRule_3(
31514 p_application_id => p_application_id
31515 , p_ae_header_id => l_ae_header_id
31516 , p_source_2 => p_source_2
31517 , x_transaction_coa_id => l_adr_transaction_coa_id
31518 , x_accounting_coa_id => l_adr_accounting_coa_id
31519 , x_value_type_code => l_adr_value_type_code
31520 , p_side => 'NA'
31521 );
31522
31523 xla_ae_lines_pkg.set_ccid(
31524 p_code_combination_id => l_ccid
31525 , p_value_type_code => l_adr_value_type_code
31526 , p_transaction_coa_id => l_adr_transaction_coa_id
31527 , p_accounting_coa_id => l_adr_accounting_coa_id
31528 , p_adr_code => 'AP_INVOICE_DIST'
31529 , p_adr_type_code => 'S'
31530 , p_component_type => l_component_type
31531 , p_component_code => l_component_code
31532 , p_component_type_code => l_component_type_code
31533 , p_component_appl_id => l_component_appl_id
31534 , p_amb_context_code => l_amb_context_code
31535 , p_side => 'NA'
31536 );
31537
31538
31539 l_segment := AcctDerRule_8(
31540 p_application_id => p_application_id
31541 , p_ae_header_id => l_ae_header_id
31542 , p_source_4 => p_source_4
31543 , p_source_5 => p_source_5
31544 , p_source_6 => p_source_6
31545 , x_transaction_coa_id => l_adr_transaction_coa_id
31546 , x_accounting_coa_id => l_adr_accounting_coa_id
31547 , x_flexfield_segment_code => l_adr_flexfield_segment_code
31548 , x_flex_value_set_id => l_adr_flex_value_set_id
31549 , x_value_type_code => l_adr_value_type_code
31550 , x_value_combination_id => l_adr_value_combination_id
31551 , x_value_segment_code => l_adr_value_segment_code
31552 , p_side => 'NA'
31553 , p_override_seg_flag => 'Y'
31554 );
31555
31556 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
31557
31558 xla_ae_lines_pkg.set_segment(
31559 p_to_segment_code => 'GL_ACCOUNT'
31560 , p_segment_value => l_segment
31561 , p_from_segment_code => l_adr_value_segment_code
31562 , p_from_combination_id => l_adr_value_combination_id
31563 , p_value_type_code => l_adr_value_type_code
31564 , p_transaction_coa_id => l_adr_transaction_coa_id
31565 , p_accounting_coa_id => l_adr_accounting_coa_id
31566 , p_flexfield_segment_code => l_adr_flexfield_segment_code
31567 , p_flex_value_set_id => l_adr_flex_value_set_id
31568 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
31569 , p_adr_type_code => 'S'
31570 , p_component_type => l_component_type
31571 , p_component_code => l_component_code
31572 , p_component_type_code => l_component_type_code
31573 , p_component_appl_id => l_component_appl_id
31574 , p_amb_context_code => l_amb_context_code
31575 , p_entity_code => 'AP_INVOICES'
31576 , p_event_class_code => 'INVOICES'
31577 , p_side => 'NA'
31578 );
31579
31580 END IF;
31581
31582 --
31583 --
31584 END IF;
31585
31586 --
31587 -- Update the line information that should be overwritten
31588 --
31589 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31590 p_header_num => 1);
31591 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31592
31593 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31594
31595 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31596 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31597 END IF;
31598
31599 --
31600 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31601 --
31602 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31603 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31604 ELSE
31605 ---------------------------------------------------------------------------------------------------
31606 -- 4262811a Switch Sign
31607 ---------------------------------------------------------------------------------------------------
31608 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31609 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31610 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31611 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31612 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31613 -- 5132302
31614 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31615 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31616
31617 END IF;
31618
31619 -- 4955764
31620 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31621 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31622
31623
31624 XLA_AE_LINES_PKG.ValidateCurrentLine;
31625 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31626
31627 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31628 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31629 ,p_balance_type_code => l_balance_type_code);
31630
31631 END IF;
31632
31633 -----------------------------------------------------------------------------------------
31634 -- 4262811 Multiperiod Accounting
31635 -----------------------------------------------------------------------------------------
31636 -- No MPA option is assigned.
31637
31638
31639 END IF;
31640 END IF;
31641 --
31642
31643 --
31644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31645 trace
31646 (p_msg => 'END of AcctLineType_53'
31647 ,p_level => C_LEVEL_PROCEDURE
31648 ,p_module => l_log_module);
31649 END IF;
31650 --
31651 EXCEPTION
31652 WHEN xla_exceptions_pkg.application_exception THEN
31653 RAISE;
31654 WHEN OTHERS THEN
31655 xla_exceptions_pkg.raise_message
31656 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_53');
31657 END AcctLineType_53;
31658 --
31659
31660 ---------------------------------------
31661 --
31662 -- PRIVATE FUNCTION
31663 -- AcctLineType_54
31664 --
31665 ---------------------------------------
31666 PROCEDURE AcctLineType_54 (
31667 p_application_id IN NUMBER
31668 ,p_event_id IN NUMBER
31669 ,p_calculate_acctd_flag IN VARCHAR2
31670 ,p_calculate_g_l_flag IN VARCHAR2
31671 ,p_actual_flag IN OUT VARCHAR2
31672 ,p_balance_type_code OUT VARCHAR2
31673 ,p_gain_or_loss_ref OUT VARCHAR2
31674
31675 --Invoice Distribution Description
31676 , p_source_1 IN VARCHAR2
31677 --Invoice Distribution Account
31678 , p_source_2 IN NUMBER
31679 --Federal Fund Expired Status
31680 , p_source_5 IN VARCHAR2
31681 --Invoice Distribution Type
31682 , p_source_8 IN VARCHAR2
31683 , p_source_8_meaning IN VARCHAR2
31684 --Invoice Distribution Encumbrance Amount
31685 , p_source_10 IN NUMBER
31686 --Accrue on Receipt Option
31687 , p_source_11 IN VARCHAR2
31688 , p_source_11_meaning IN VARCHAR2
31689 --Purchase Order Distribution Identifier
31690 , p_source_12 IN NUMBER
31691 --Accounting Reversal Indicator
31692 , p_source_15 IN VARCHAR2
31693 --Distribution Link Type
31694 , p_source_17 IN VARCHAR2
31695 --Allocation to Main Distribution Identifier
31696 , p_source_19 IN NUMBER
31697 --Invoice Identifier
31698 , p_source_20 IN NUMBER
31699 --Invoice Distribution Identifier
31700 , p_source_26 IN NUMBER
31701 --Payables Encumbrance Upgrade Credit Account
31702 , p_source_27 IN NUMBER
31703 --Payables Encumbrance Upgrade Credit Amount
31704 , p_source_28 IN NUMBER
31705 --Invoice Currency Code
31706 , p_source_29 IN VARCHAR2
31707 --Payables Encumbrance Upgrade Credit Base Amount
31708 , p_source_30 IN NUMBER
31709 --Payables Encumbrance Upgrade Debit Account
31710 , p_source_31 IN NUMBER
31711 --Payables Encumbrance Upgrade Debit Amount
31712 , p_source_32 IN NUMBER
31713 --Payables Encumbrance Upgrade Debit Base Amount
31714 , p_source_33 IN NUMBER
31715 --Payables Encumbrance Upgrade Option
31716 , p_source_34 IN VARCHAR2
31717 --Invoice Exchange Date
31718 , p_source_36 IN DATE
31719 --Invoice Exchange Rate
31720 , p_source_37 IN NUMBER
31721 --Invoice Exchange Rate Type
31722 , p_source_38 IN VARCHAR2
31723 --Deferred Accounting End Date
31724 , p_source_39 IN DATE
31725 --Deferred Accounting Option
31726 , p_source_40 IN VARCHAR2
31727 --Deferred Accounting Start Date
31728 , p_source_41 IN DATE
31729 --Override Accounted Amount Indicator
31730 , p_source_42 IN VARCHAR2
31731 , p_source_42_meaning IN VARCHAR2
31732 --Invoice Supplier Identifier
31733 , p_source_43 IN NUMBER
31734 --Invoice Supplier Site Identifier
31735 , p_source_44 IN NUMBER
31736 --Third Party Type
31737 , p_source_45 IN VARCHAR2
31738 --Parent Reversal Identifier
31739 , p_source_46 IN NUMBER
31740 --Invoice Distribution Statistical Amount
31741 , p_source_47 IN NUMBER
31742 --Invoice Distribution Tax Line Identifier
31743 , p_source_48 IN NUMBER
31744 --Invoice Distribution Tax Distribution Identifier from Tax
31745 , p_source_49 IN NUMBER
31746 --Invoice Distribution Summary Tax Line Identifier
31747 , p_source_50 IN NUMBER
31748 --Payables Upgrade Credit Encumbrance Type Identifier
31749 , p_source_51 IN NUMBER
31750 --Payables Upgrade Debit Encumbrance Type Identifier
31751 , p_source_52 IN NUMBER
31752 --Invoice Distribution Amount
31753 , p_source_55 IN NUMBER
31754 --Business Flow Purchasing Application Identifier
31755 , p_source_64 IN NUMBER
31756 --Business Flow Purchase Order Distribution Type
31757 , p_source_65 IN VARCHAR2
31758 --Business Flow Purchase Order Entity Code
31759 , p_source_66 IN VARCHAR2
31760 --Business Flow Purchase Order Distribution Identifier
31761 , p_source_67 IN NUMBER
31762 --Business Flow Purchasing Document Identifier
31763 , p_source_68 IN NUMBER
31764 --Federal Paid Unexpended Obligation Amount
31765 , p_source_69 IN NUMBER
31766 )
31767 IS
31768
31769 l_component_type VARCHAR2(80);
31770 l_component_code VARCHAR2(30);
31771 l_component_type_code VARCHAR2(1);
31772 l_component_appl_id INTEGER;
31773 l_amb_context_code VARCHAR2(30);
31774 l_entity_code VARCHAR2(30);
31775 l_event_class_code VARCHAR2(30);
31776 l_ae_header_id NUMBER;
31777 l_event_type_code VARCHAR2(30);
31778 l_line_definition_code VARCHAR2(30);
31779 l_line_definition_owner_code VARCHAR2(1);
31780 --
31781 -- adr variables
31782 l_segment VARCHAR2(30);
31783 l_ccid NUMBER;
31784 l_adr_transaction_coa_id NUMBER;
31785 l_adr_accounting_coa_id NUMBER;
31786 l_adr_flexfield_segment_code VARCHAR2(30);
31787 l_adr_flex_value_set_id NUMBER;
31788 l_adr_value_type_code VARCHAR2(30);
31789 l_adr_value_combination_id NUMBER;
31790 l_adr_value_segment_code VARCHAR2(30);
31791
31792 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31793 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31794 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31795 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31796
31797 -- 4262811 Variables ------------------------------------------------------------------------------------------
31798 l_entered_amt_idx NUMBER;
31799 l_accted_amt_idx NUMBER;
31800 l_acc_rev_flag VARCHAR2(1);
31801 l_accrual_line_num NUMBER;
31802 l_tmp_amt NUMBER;
31803 l_acc_rev_natural_side_code VARCHAR2(1);
31804
31805 l_num_entries NUMBER;
31806 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31807 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31808 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31809 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31810 l_recog_line_1 NUMBER;
31811 l_recog_line_2 NUMBER;
31812
31813 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31814 l_bflow_applied_to_amt NUMBER; -- 5132302
31815 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31816
31817 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31818
31819 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31820 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31821
31822 ---------------------------------------------------------------------------------------------------------------
31823
31824
31825 --
31826 -- bulk performance
31827 --
31828 l_balance_type_code VARCHAR2(1);
31829 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31830 l_log_module VARCHAR2(240);
31831
31832 --
31833 -- Upgrade strategy
31834 --
31835 l_actual_upg_option VARCHAR2(1);
31836 l_enc_upg_option VARCHAR2(1);
31837
31838 --
31839 BEGIN
31840 --
31841 IF g_log_enabled THEN
31842 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
31843 END IF;
31844 --
31845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31846
31847 trace
31848 (p_msg => 'BEGIN of AcctLineType_54'
31849 ,p_level => C_LEVEL_PROCEDURE
31850 ,p_module => l_log_module);
31851
31852 END IF;
31853 --
31854 l_component_type := 'AMB_JLT';
31855 l_component_code := 'FV_AP_PAID_EXP_REV_CR';
31856 l_component_type_code := 'S';
31857 l_component_appl_id := 200;
31858 l_amb_context_code := 'DEFAULT';
31859 l_entity_code := 'AP_INVOICES';
31860 l_event_class_code := 'INVOICES';
31861 l_event_type_code := 'INVOICES_ALL';
31862 l_line_definition_owner_code := 'S';
31863 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
31864 --
31865 l_balance_type_code := 'A';
31866 l_segment := NULL;
31867 l_ccid := NULL;
31868 l_adr_transaction_coa_id := NULL;
31869 l_adr_accounting_coa_id := NULL;
31870 l_adr_flexfield_segment_code := NULL;
31871 l_adr_flex_value_set_id := NULL;
31872 l_adr_value_type_code := NULL;
31873 l_adr_value_combination_id := NULL;
31874 l_adr_value_segment_code := NULL;
31875
31876 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31877 l_bflow_class_code := ''; -- 4219869 Business Flow
31878 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31879 l_budgetary_control_flag := 'Y';
31880
31881 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31882 l_bflow_applied_to_amt := NULL; -- 5132302
31883 l_entered_amt_idx := NULL; -- 4262811
31884 l_accted_amt_idx := NULL; -- 4262811
31885 l_acc_rev_flag := NULL; -- 4262811
31886 l_accrual_line_num := NULL; -- 4262811
31887 l_tmp_amt := NULL; -- 4262811
31888 --
31889
31890 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31891 l_balance_type_code <> 'B' THEN
31892 IF p_source_12 IS NOT NULL AND
31893 (NVL(p_source_8,'
31894 ') = 'ITEM' OR
31895 (NVL(p_source_8,'
31896 ') = 'IPV' AND
31897 p_source_10 < 0) OR
31898 NVL(p_source_8,'
31899 ') = 'ACCRUAL') AND
31900 NVL(p_source_5,'
31901 ') = 'Expired' AND
31902 NVL(p_source_11,'
31903 ') <> 'Y'
31904 THEN
31905
31906 --
31907 XLA_AE_LINES_PKG.SetNewLine;
31908
31909 p_balance_type_code := l_balance_type_code;
31910 -- set the flag so later we will know whether the gain loss line needs to be created
31911
31912 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31913 p_actual_flag :='A';
31914 END IF;
31915
31916 --
31917 -- bulk performance
31918 --
31919 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31920 p_header_num => 0); -- 4262811
31921 --
31922 -- set accounting line options
31923 --
31924 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31925 p_natural_side_code => 'C'
31926 , p_gain_or_loss_flag => 'N'
31927 , p_gl_transfer_mode_code => 'S'
31928 , p_acct_entry_type_code => 'A'
31929 , p_switch_side_flag => 'N'
31930 , p_merge_duplicate_code => 'N'
31931 );
31932 --
31933 l_acc_rev_natural_side_code := 'D'; -- 4262811
31934 --
31935 --
31936 -- set accounting line type info
31937 --
31938 xla_ae_lines_pkg.SetAcctLineType
31939 (p_component_type => l_component_type
31940 ,p_event_type_code => l_event_type_code
31941 ,p_line_definition_owner_code => l_line_definition_owner_code
31942 ,p_line_definition_code => l_line_definition_code
31943 ,p_accounting_line_code => l_component_code
31944 ,p_accounting_line_type_code => l_component_type_code
31945 ,p_accounting_line_appl_id => l_component_appl_id
31946 ,p_amb_context_code => l_amb_context_code
31947 ,p_entity_code => l_entity_code
31948 ,p_event_class_code => l_event_class_code);
31949 --
31950 -- set accounting class
31951 --
31952 xla_ae_lines_pkg.SetAcctClass(
31953 p_accounting_class_code => 'ACCOUNTSPAYABLE'
31954 , p_ae_header_id => l_ae_header_id
31955 );
31956
31957 --
31958 -- set rounding class
31959 --
31960 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31961 'ACCOUNTSPAYABLE';
31962
31963 --
31964 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31965 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31966 --
31967 -- bulk performance
31968 --
31969 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31970
31971 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31972 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31973
31974 -- 4955764
31975 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31976 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31977
31978 -- 4458381 Public Sector Enh
31979
31980 --
31981 -- set accounting attributes for the line type
31982 --
31983 l_entered_amt_idx := 24;
31984 l_accted_amt_idx := 29;
31985 l_bflow_applied_to_amt_idx := 7; -- 5132302
31986 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31987 l_rec_acct_attrs.array_char_value(1) := p_source_15;
31988 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31989 l_rec_acct_attrs.array_num_value(2) :=
31990 xla_ae_sources_pkg.GetSystemSourceNum(
31991 p_source_code => 'XLA_EVENT_APPL_ID'
31992 , p_source_type_code => 'Y'
31993 , p_source_application_id => 602
31994 );
31995 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31996 l_rec_acct_attrs.array_char_value(3) := p_source_17;
31997 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31998 l_rec_acct_attrs.array_char_value(4) :=
31999 xla_ae_sources_pkg.GetSystemSourceChar(
32000 p_source_code => 'XLA_ENTITY_CODE'
32001 , p_source_type_code => 'Y'
32002 , p_source_application_id => 602
32003 );
32004 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32005 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
32006 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32007 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
32008 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
32009 l_rec_acct_attrs.array_num_value(7) := p_source_55;
32010 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
32011 l_rec_acct_attrs.array_num_value(8) := p_source_64;
32012 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32013 l_rec_acct_attrs.array_char_value(9) := p_source_65;
32014 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
32015 l_rec_acct_attrs.array_char_value(10) := p_source_66;
32016 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
32017 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_67);
32018 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32019 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_68);
32020 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
32021 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
32022 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
32023 l_rec_acct_attrs.array_char_value(14) := p_source_17;
32024 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
32025 l_rec_acct_attrs.array_num_value(15) := p_source_27;
32026 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
32027 l_rec_acct_attrs.array_num_value(16) := p_source_28;
32028 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
32029 l_rec_acct_attrs.array_char_value(17) := p_source_29;
32030 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
32031 l_rec_acct_attrs.array_num_value(18) := p_source_30;
32032 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
32033 l_rec_acct_attrs.array_num_value(19) := p_source_31;
32034 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
32035 l_rec_acct_attrs.array_num_value(20) := p_source_32;
32036 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
32037 l_rec_acct_attrs.array_char_value(21) := p_source_29;
32038 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
32039 l_rec_acct_attrs.array_num_value(22) := p_source_33;
32040 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
32041 l_rec_acct_attrs.array_char_value(23) := p_source_34;
32042 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
32043 l_rec_acct_attrs.array_num_value(24) := p_source_69;
32044 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
32045 l_rec_acct_attrs.array_char_value(25) := p_source_29;
32046 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
32047 l_rec_acct_attrs.array_date_value(26) := p_source_36;
32048 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
32049 l_rec_acct_attrs.array_num_value(27) := p_source_37;
32050 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
32051 l_rec_acct_attrs.array_char_value(28) := p_source_38;
32052 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
32053 l_rec_acct_attrs.array_num_value(29) := p_source_69;
32054 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
32055 l_rec_acct_attrs.array_date_value(30) := p_source_39;
32056 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
32057 l_rec_acct_attrs.array_char_value(31) := p_source_40;
32058 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
32059 l_rec_acct_attrs.array_date_value(32) := p_source_41;
32060 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
32061 l_rec_acct_attrs.array_char_value(33) := p_source_42;
32062 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
32063 l_rec_acct_attrs.array_num_value(34) := p_source_43;
32064 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
32065 l_rec_acct_attrs.array_num_value(35) := p_source_44;
32066 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
32067 l_rec_acct_attrs.array_char_value(36) := p_source_45;
32068 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
32069 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
32070 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
32071 l_rec_acct_attrs.array_char_value(38) := p_source_17;
32072 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
32073 l_rec_acct_attrs.array_num_value(39) := p_source_47;
32074 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
32075 l_rec_acct_attrs.array_num_value(40) := p_source_48;
32076 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
32077 l_rec_acct_attrs.array_num_value(41) := p_source_49;
32078 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
32079 l_rec_acct_attrs.array_num_value(42) := p_source_50;
32080 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
32081 l_rec_acct_attrs.array_num_value(43) := p_source_51;
32082 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
32083 l_rec_acct_attrs.array_num_value(44) := p_source_52;
32084
32085 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32086 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32087
32088 ---------------------------------------------------------------------------------------------------------------
32089 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32090 ---------------------------------------------------------------------------------------------------------------
32091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32092
32093 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32094 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32095
32096 IF xla_accounting_cache_pkg.GetValueChar
32097 (p_source_code => 'LEDGER_CATEGORY_CODE'
32098 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32099 AND l_bflow_method_code = 'PRIOR_ENTRY'
32100 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32101 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32102 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32103 )
32104 THEN
32105 xla_ae_lines_pkg.BflowUpgEntry
32106 (p_business_method_code => l_bflow_method_code
32107 ,p_business_class_code => l_bflow_class_code
32108 ,p_balance_type => l_balance_type_code);
32109 ELSE
32110 NULL;
32111 -- No business flow processing for business flow method of NONE.
32112 END IF;
32113
32114 --
32115 -- call analytical criteria
32116 --
32117
32118 --
32119 -- call description
32120 --
32121
32122 xla_ae_lines_pkg.SetLineDescription(
32123 p_ae_header_id => l_ae_header_id
32124 ,p_description => Description_2 (
32125 p_application_id => p_application_id
32126 , p_ae_header_id => l_ae_header_id
32127 , p_source_1 => p_source_1
32128 )
32129 );
32130
32131
32132 --
32133 -- call ADRs
32134 -- Bug 4922099
32135 --
32136 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32137 (NVL(l_actual_upg_option, 'N') = 'O') OR
32138 (NVL(l_enc_upg_option, 'N') = 'O')
32139 )
32140 THEN
32141 NULL;
32142 --
32143 --
32144
32145 l_ccid := AcctDerRule_3(
32146 p_application_id => p_application_id
32147 , p_ae_header_id => l_ae_header_id
32148 , p_source_2 => p_source_2
32149 , x_transaction_coa_id => l_adr_transaction_coa_id
32150 , x_accounting_coa_id => l_adr_accounting_coa_id
32151 , x_value_type_code => l_adr_value_type_code
32152 , p_side => 'NA'
32153 );
32154
32155 xla_ae_lines_pkg.set_ccid(
32156 p_code_combination_id => l_ccid
32157 , p_value_type_code => l_adr_value_type_code
32158 , p_transaction_coa_id => l_adr_transaction_coa_id
32159 , p_accounting_coa_id => l_adr_accounting_coa_id
32160 , p_adr_code => 'AP_INVOICE_DIST'
32161 , p_adr_type_code => 'S'
32162 , p_component_type => l_component_type
32163 , p_component_code => l_component_code
32164 , p_component_type_code => l_component_type_code
32165 , p_component_appl_id => l_component_appl_id
32166 , p_amb_context_code => l_amb_context_code
32167 , p_side => 'NA'
32168 );
32169
32170
32171 l_segment := AcctDerRule_7(
32172 p_application_id => p_application_id
32173 , p_ae_header_id => l_ae_header_id
32174 , x_transaction_coa_id => l_adr_transaction_coa_id
32175 , x_accounting_coa_id => l_adr_accounting_coa_id
32176 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32177 , x_flex_value_set_id => l_adr_flex_value_set_id
32178 , x_value_type_code => l_adr_value_type_code
32179 , x_value_combination_id => l_adr_value_combination_id
32180 , x_value_segment_code => l_adr_value_segment_code
32181 , p_side => 'NA'
32182 , p_override_seg_flag => 'Y'
32183 );
32184
32185 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32186
32187 xla_ae_lines_pkg.set_segment(
32188 p_to_segment_code => 'GL_ACCOUNT'
32189 , p_segment_value => l_segment
32190 , p_from_segment_code => l_adr_value_segment_code
32191 , p_from_combination_id => l_adr_value_combination_id
32192 , p_value_type_code => l_adr_value_type_code
32193 , p_transaction_coa_id => l_adr_transaction_coa_id
32194 , p_accounting_coa_id => l_adr_accounting_coa_id
32195 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32196 , p_flex_value_set_id => l_adr_flex_value_set_id
32197 , p_adr_code => 'FV_465002_PAYABLES'
32198 , p_adr_type_code => 'S'
32199 , p_component_type => l_component_type
32200 , p_component_code => l_component_code
32201 , p_component_type_code => l_component_type_code
32202 , p_component_appl_id => l_component_appl_id
32203 , p_amb_context_code => l_amb_context_code
32204 , p_entity_code => 'AP_INVOICES'
32205 , p_event_class_code => 'INVOICES'
32206 , p_side => 'NA'
32207 );
32208
32209 END IF;
32210
32211 --
32212 --
32213 END IF;
32214 --
32215 -- Bug 4922099
32216 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32217 (NVL(l_enc_upg_option, 'N') = 'O')
32218 ) AND
32219 (l_bflow_method_code = 'PRIOR_ENTRY')
32220 )
32221 THEN
32222 IF
32223 --
32224 1 = 2
32225 --
32226 THEN
32227 xla_accounting_err_pkg.build_message
32228 (p_appli_s_name => 'XLA'
32229 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32230 ,p_token_1 => 'LINE_NUMBER'
32231 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32232 ,p_token_2 => 'LINE_TYPE_NAME'
32233 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32234 l_component_type
32235 ,l_component_code
32236 ,l_component_type_code
32237 ,l_component_appl_id
32238 ,l_amb_context_code
32239 ,l_entity_code
32240 ,l_event_class_code
32241 )
32242 ,p_token_3 => 'OWNER'
32243 ,p_value_3 => xla_lookups_pkg.get_meaning(
32244 p_lookup_type => 'XLA_OWNER_TYPE'
32245 ,p_lookup_code => l_component_type_code
32246 )
32247 ,p_token_4 => 'PRODUCT_NAME'
32248 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32249 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32250 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32251 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32252 ,p_ae_header_id => NULL
32253 );
32254
32255 IF (C_LEVEL_ERROR>= g_log_level) THEN
32256 trace
32257 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32258 ,p_level => C_LEVEL_ERROR
32259 ,p_module => l_log_module);
32260 END IF;
32261 END IF;
32262 END IF;
32263 --
32264 --
32265 ------------------------------------------------------------------------------------------------
32266 -- 4219869 Business Flow
32267 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32268 -- Prior Entry. Currently, the following code is always generated.
32269 ------------------------------------------------------------------------------------------------
32270 XLA_AE_LINES_PKG.ValidateCurrentLine;
32271
32272 ------------------------------------------------------------------------------------
32273 -- 4219869 Business Flow
32274 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32275 ------------------------------------------------------------------------------------
32276 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32277
32278 ----------------------------------------------------------------------------------
32279 -- 4219869 Business Flow
32280 -- Update journal entry status -- Need to generate this within IF <condition>
32281 ----------------------------------------------------------------------------------
32282 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32283 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32284 ,p_balance_type_code => l_balance_type_code
32285 );
32286
32287 -------------------------------------------------------------------------------------------
32288 -- 4262811 - Generate the Accrual Reversal lines
32289 -------------------------------------------------------------------------------------------
32290 BEGIN
32291 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32292 (g_array_event(p_event_id).array_value_num('header_index'));
32293 IF l_acc_rev_flag IS NULL THEN
32294 l_acc_rev_flag := 'N';
32295 END IF;
32296 EXCEPTION
32297 WHEN OTHERS THEN
32298 l_acc_rev_flag := 'N';
32299 END;
32300 --
32301 IF (l_acc_rev_flag = 'Y') THEN
32302
32303 -- 4645092 ------------------------------------------------------------------------------
32304 -- To allow MPA report to determine if it should generate report process
32305 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32306 ------------------------------------------------------------------------------------------
32307
32308 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32309 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32310 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32311 -- call ADRs
32312 -- Bug 4922099
32313 --
32314 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32315 (NVL(l_actual_upg_option, 'N') = 'O') OR
32316 (NVL(l_enc_upg_option, 'N') = 'O')
32317 )
32318 THEN
32319 NULL;
32320 --
32321 --
32322
32323 l_ccid := AcctDerRule_3(
32324 p_application_id => p_application_id
32325 , p_ae_header_id => l_ae_header_id
32326 , p_source_2 => p_source_2
32327 , x_transaction_coa_id => l_adr_transaction_coa_id
32328 , x_accounting_coa_id => l_adr_accounting_coa_id
32329 , x_value_type_code => l_adr_value_type_code
32330 , p_side => 'NA'
32331 );
32332
32333 xla_ae_lines_pkg.set_ccid(
32334 p_code_combination_id => l_ccid
32335 , p_value_type_code => l_adr_value_type_code
32336 , p_transaction_coa_id => l_adr_transaction_coa_id
32337 , p_accounting_coa_id => l_adr_accounting_coa_id
32338 , p_adr_code => 'AP_INVOICE_DIST'
32339 , p_adr_type_code => 'S'
32340 , p_component_type => l_component_type
32341 , p_component_code => l_component_code
32342 , p_component_type_code => l_component_type_code
32343 , p_component_appl_id => l_component_appl_id
32344 , p_amb_context_code => l_amb_context_code
32345 , p_side => 'NA'
32346 );
32347
32348
32349 l_segment := AcctDerRule_7(
32350 p_application_id => p_application_id
32351 , p_ae_header_id => l_ae_header_id
32352 , x_transaction_coa_id => l_adr_transaction_coa_id
32353 , x_accounting_coa_id => l_adr_accounting_coa_id
32354 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32355 , x_flex_value_set_id => l_adr_flex_value_set_id
32356 , x_value_type_code => l_adr_value_type_code
32357 , x_value_combination_id => l_adr_value_combination_id
32358 , x_value_segment_code => l_adr_value_segment_code
32359 , p_side => 'NA'
32360 , p_override_seg_flag => 'Y'
32361 );
32362
32363 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32364
32365 xla_ae_lines_pkg.set_segment(
32366 p_to_segment_code => 'GL_ACCOUNT'
32367 , p_segment_value => l_segment
32368 , p_from_segment_code => l_adr_value_segment_code
32369 , p_from_combination_id => l_adr_value_combination_id
32370 , p_value_type_code => l_adr_value_type_code
32371 , p_transaction_coa_id => l_adr_transaction_coa_id
32372 , p_accounting_coa_id => l_adr_accounting_coa_id
32373 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32374 , p_flex_value_set_id => l_adr_flex_value_set_id
32375 , p_adr_code => 'FV_465002_PAYABLES'
32376 , p_adr_type_code => 'S'
32377 , p_component_type => l_component_type
32378 , p_component_code => l_component_code
32379 , p_component_type_code => l_component_type_code
32380 , p_component_appl_id => l_component_appl_id
32381 , p_amb_context_code => l_amb_context_code
32382 , p_entity_code => 'AP_INVOICES'
32383 , p_event_class_code => 'INVOICES'
32384 , p_side => 'NA'
32385 );
32386
32387 END IF;
32388
32389 --
32390 --
32391 END IF;
32392
32393 --
32394 -- Update the line information that should be overwritten
32395 --
32396 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32397 p_header_num => 1);
32398 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32399
32400 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32401
32402 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32403 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32404 END IF;
32405
32406 --
32407 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32408 --
32409 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32410 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32411 ELSE
32412 ---------------------------------------------------------------------------------------------------
32413 -- 4262811a Switch Sign
32414 ---------------------------------------------------------------------------------------------------
32415 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32416 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32417 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32418 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32419 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32420 -- 5132302
32421 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32422 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32423
32424 END IF;
32425
32426 -- 4955764
32427 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32428 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32429
32430
32431 XLA_AE_LINES_PKG.ValidateCurrentLine;
32432 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32433
32434 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32435 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32436 ,p_balance_type_code => l_balance_type_code);
32437
32438 END IF;
32439
32440 -----------------------------------------------------------------------------------------
32441 -- 4262811 Multiperiod Accounting
32442 -----------------------------------------------------------------------------------------
32443 -- No MPA option is assigned.
32444
32445
32446 END IF;
32447 END IF;
32448 --
32449
32450 --
32451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32452 trace
32453 (p_msg => 'END of AcctLineType_54'
32454 ,p_level => C_LEVEL_PROCEDURE
32455 ,p_module => l_log_module);
32456 END IF;
32457 --
32458 EXCEPTION
32459 WHEN xla_exceptions_pkg.application_exception THEN
32460 RAISE;
32461 WHEN OTHERS THEN
32462 xla_exceptions_pkg.raise_message
32463 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_54');
32464 END AcctLineType_54;
32465 --
32466
32467 ---------------------------------------
32468 --
32469 -- PRIVATE FUNCTION
32470 -- AcctLineType_55
32471 --
32472 ---------------------------------------
32473 PROCEDURE AcctLineType_55 (
32474 p_application_id IN NUMBER
32475 ,p_event_id IN NUMBER
32476 ,p_calculate_acctd_flag IN VARCHAR2
32477 ,p_calculate_g_l_flag IN VARCHAR2
32478 ,p_actual_flag IN OUT VARCHAR2
32479 ,p_balance_type_code OUT VARCHAR2
32480 ,p_gain_or_loss_ref OUT VARCHAR2
32481
32482 --Federal Fund Expired Status
32483 , p_source_5 IN VARCHAR2
32484 --Invoice Distribution Type
32485 , p_source_8 IN VARCHAR2
32486 , p_source_8_meaning IN VARCHAR2
32487 --Federal Prior Year Flag
32488 , p_source_9 IN VARCHAR2
32489 --Invoice Distribution Encumbrance Amount
32490 , p_source_10 IN NUMBER
32491 --Accrue on Receipt Option
32492 , p_source_11 IN VARCHAR2
32493 , p_source_11_meaning IN VARCHAR2
32494 --Purchase Order Distribution Identifier
32495 , p_source_12 IN NUMBER
32496 --Accounting Reversal Indicator
32497 , p_source_15 IN VARCHAR2
32498 --Distribution Link Type
32499 , p_source_17 IN VARCHAR2
32500 --Allocation to Main Distribution Identifier
32501 , p_source_19 IN NUMBER
32502 --Invoice Identifier
32503 , p_source_20 IN NUMBER
32504 --Invoice Distribution Identifier
32505 , p_source_26 IN NUMBER
32506 --Payables Encumbrance Upgrade Credit Account
32507 , p_source_27 IN NUMBER
32508 --Payables Encumbrance Upgrade Credit Amount
32509 , p_source_28 IN NUMBER
32510 --Invoice Currency Code
32511 , p_source_29 IN VARCHAR2
32512 --Payables Encumbrance Upgrade Credit Base Amount
32513 , p_source_30 IN NUMBER
32514 --Payables Encumbrance Upgrade Debit Account
32515 , p_source_31 IN NUMBER
32516 --Payables Encumbrance Upgrade Debit Amount
32517 , p_source_32 IN NUMBER
32518 --Payables Encumbrance Upgrade Debit Base Amount
32519 , p_source_33 IN NUMBER
32520 --Payables Encumbrance Upgrade Option
32521 , p_source_34 IN VARCHAR2
32522 --Deferred Accounting End Date
32523 , p_source_39 IN DATE
32524 --Deferred Accounting Option
32525 , p_source_40 IN VARCHAR2
32526 --Deferred Accounting Start Date
32527 , p_source_41 IN DATE
32528 --Override Accounted Amount Indicator
32529 , p_source_42 IN VARCHAR2
32530 , p_source_42_meaning IN VARCHAR2
32531 --Third Party Type
32532 , p_source_45 IN VARCHAR2
32533 --Parent Reversal Identifier
32534 , p_source_46 IN NUMBER
32535 --Invoice Distribution Statistical Amount
32536 , p_source_47 IN NUMBER
32537 --Invoice Distribution Tax Line Identifier
32538 , p_source_48 IN NUMBER
32539 --Invoice Distribution Tax Distribution Identifier from Tax
32540 , p_source_49 IN NUMBER
32541 --Invoice Distribution Summary Tax Line Identifier
32542 , p_source_50 IN NUMBER
32543 --Payables Upgrade Credit Encumbrance Type Identifier
32544 , p_source_51 IN NUMBER
32545 --Payables Upgrade Debit Encumbrance Type Identifier
32546 , p_source_52 IN NUMBER
32547 --Invoice Distribution Amount
32548 , p_source_55 IN NUMBER
32549 --Business Flow Purchasing Application Identifier
32550 , p_source_64 IN NUMBER
32551 --Business Flow Purchase Order Distribution Type
32552 , p_source_65 IN VARCHAR2
32553 --Business Flow Purchase Order Entity Code
32554 , p_source_66 IN VARCHAR2
32555 --Business Flow Purchase Order Distribution Identifier
32556 , p_source_67 IN NUMBER
32557 --Business Flow Purchasing Document Identifier
32558 , p_source_68 IN NUMBER
32559 --Federal Paid Unexpended Obligation Amount
32560 , p_source_69 IN NUMBER
32561 )
32562 IS
32563
32564 l_component_type VARCHAR2(80);
32565 l_component_code VARCHAR2(30);
32566 l_component_type_code VARCHAR2(1);
32567 l_component_appl_id INTEGER;
32568 l_amb_context_code VARCHAR2(30);
32569 l_entity_code VARCHAR2(30);
32570 l_event_class_code VARCHAR2(30);
32571 l_ae_header_id NUMBER;
32572 l_event_type_code VARCHAR2(30);
32573 l_line_definition_code VARCHAR2(30);
32574 l_line_definition_owner_code VARCHAR2(1);
32575 --
32576 -- adr variables
32577 l_segment VARCHAR2(30);
32578 l_ccid NUMBER;
32579 l_adr_transaction_coa_id NUMBER;
32580 l_adr_accounting_coa_id NUMBER;
32581 l_adr_flexfield_segment_code VARCHAR2(30);
32582 l_adr_flex_value_set_id NUMBER;
32583 l_adr_value_type_code VARCHAR2(30);
32584 l_adr_value_combination_id NUMBER;
32585 l_adr_value_segment_code VARCHAR2(30);
32586
32587 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32588 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32589 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32590 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32591
32592 -- 4262811 Variables ------------------------------------------------------------------------------------------
32593 l_entered_amt_idx NUMBER;
32594 l_accted_amt_idx NUMBER;
32595 l_acc_rev_flag VARCHAR2(1);
32596 l_accrual_line_num NUMBER;
32597 l_tmp_amt NUMBER;
32598 l_acc_rev_natural_side_code VARCHAR2(1);
32599
32600 l_num_entries NUMBER;
32601 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32602 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32603 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32604 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32605 l_recog_line_1 NUMBER;
32606 l_recog_line_2 NUMBER;
32607
32608 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32609 l_bflow_applied_to_amt NUMBER; -- 5132302
32610 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32611
32612 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32613
32614 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32615 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32616
32617 ---------------------------------------------------------------------------------------------------------------
32618
32619
32620 --
32621 -- bulk performance
32622 --
32623 l_balance_type_code VARCHAR2(1);
32624 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32625 l_log_module VARCHAR2(240);
32626
32627 --
32628 -- Upgrade strategy
32629 --
32630 l_actual_upg_option VARCHAR2(1);
32631 l_enc_upg_option VARCHAR2(1);
32632
32633 --
32634 BEGIN
32635 --
32636 IF g_log_enabled THEN
32637 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
32638 END IF;
32639 --
32640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32641
32642 trace
32643 (p_msg => 'BEGIN of AcctLineType_55'
32644 ,p_level => C_LEVEL_PROCEDURE
32645 ,p_module => l_log_module);
32646
32647 END IF;
32648 --
32649 l_component_type := 'AMB_JLT';
32650 l_component_code := 'FV_AP_PAID_OBL_REV_CR';
32651 l_component_type_code := 'S';
32652 l_component_appl_id := 200;
32653 l_amb_context_code := 'DEFAULT';
32654 l_entity_code := 'AP_INVOICES';
32655 l_event_class_code := 'INVOICES';
32656 l_event_type_code := 'INVOICES_ALL';
32657 l_line_definition_owner_code := 'S';
32658 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
32659 --
32660 l_balance_type_code := 'A';
32661 l_segment := NULL;
32662 l_ccid := NULL;
32663 l_adr_transaction_coa_id := NULL;
32664 l_adr_accounting_coa_id := NULL;
32665 l_adr_flexfield_segment_code := NULL;
32666 l_adr_flex_value_set_id := NULL;
32667 l_adr_value_type_code := NULL;
32668 l_adr_value_combination_id := NULL;
32669 l_adr_value_segment_code := NULL;
32670
32671 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
32672 l_bflow_class_code := 'FV_PO_DR'; -- 4219869 Business Flow
32673 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
32674 l_budgetary_control_flag := 'Y';
32675
32676 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32677 l_bflow_applied_to_amt := NULL; -- 5132302
32678 l_entered_amt_idx := NULL; -- 4262811
32679 l_accted_amt_idx := NULL; -- 4262811
32680 l_acc_rev_flag := NULL; -- 4262811
32681 l_accrual_line_num := NULL; -- 4262811
32682 l_tmp_amt := NULL; -- 4262811
32683 --
32684
32685 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32686 l_balance_type_code <> 'B' THEN
32687 IF p_source_12 IS NOT NULL AND
32688 (NVL(p_source_8,'
32689 ') = 'ITEM' OR
32690 (NVL(p_source_8,'
32691 ') = 'IPV' AND
32692 p_source_10 < 0) OR
32693 NVL(p_source_8,'
32694 ') = 'ACCRUAL') AND
32695 NVL(p_source_5,'
32696 ') = 'Unexpired' AND
32697 NVL(p_source_11,'
32698 ') <> 'Y' AND
32699 NVL(p_source_9,'
32700 ') <> 'Y'
32701 THEN
32702
32703 --
32704 XLA_AE_LINES_PKG.SetNewLine;
32705
32706 p_balance_type_code := l_balance_type_code;
32707 -- set the flag so later we will know whether the gain loss line needs to be created
32708
32709 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32710 p_actual_flag :='A';
32711 END IF;
32712
32713 --
32714 -- bulk performance
32715 --
32716 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32717 p_header_num => 0); -- 4262811
32718 --
32719 -- set accounting line options
32720 --
32721 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32722 p_natural_side_code => 'C'
32723 , p_gain_or_loss_flag => 'N'
32724 , p_gl_transfer_mode_code => 'S'
32725 , p_acct_entry_type_code => 'A'
32726 , p_switch_side_flag => 'N'
32727 , p_merge_duplicate_code => 'N'
32728 );
32729 --
32730 l_acc_rev_natural_side_code := 'D'; -- 4262811
32731 --
32732 --
32733 -- set accounting line type info
32734 --
32735 xla_ae_lines_pkg.SetAcctLineType
32736 (p_component_type => l_component_type
32737 ,p_event_type_code => l_event_type_code
32738 ,p_line_definition_owner_code => l_line_definition_owner_code
32739 ,p_line_definition_code => l_line_definition_code
32740 ,p_accounting_line_code => l_component_code
32741 ,p_accounting_line_type_code => l_component_type_code
32742 ,p_accounting_line_appl_id => l_component_appl_id
32743 ,p_amb_context_code => l_amb_context_code
32744 ,p_entity_code => l_entity_code
32745 ,p_event_class_code => l_event_class_code);
32746 --
32747 -- set accounting class
32748 --
32749 xla_ae_lines_pkg.SetAcctClass(
32750 p_accounting_class_code => 'ACCOUNTSPAYABLE'
32751 , p_ae_header_id => l_ae_header_id
32752 );
32753
32754 --
32755 -- set rounding class
32756 --
32757 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32758 'ACCOUNTSPAYABLE';
32759
32760 --
32761 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32762 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32763 --
32764 -- bulk performance
32765 --
32766 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32767
32768 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32769 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32770
32771 -- 4955764
32772 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32773 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32774
32775 -- 4458381 Public Sector Enh
32776
32777 --
32778 -- set accounting attributes for the line type
32779 --
32780 l_entered_amt_idx := 24;
32781 l_accted_amt_idx := 26;
32782 l_bflow_applied_to_amt_idx := 7; -- 5132302
32783 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32784 l_rec_acct_attrs.array_char_value(1) := p_source_15;
32785 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
32786 l_rec_acct_attrs.array_num_value(2) :=
32787 xla_ae_sources_pkg.GetSystemSourceNum(
32788 p_source_code => 'XLA_EVENT_APPL_ID'
32789 , p_source_type_code => 'Y'
32790 , p_source_application_id => 602
32791 );
32792 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
32793 l_rec_acct_attrs.array_char_value(3) := p_source_17;
32794 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
32795 l_rec_acct_attrs.array_char_value(4) :=
32796 xla_ae_sources_pkg.GetSystemSourceChar(
32797 p_source_code => 'XLA_ENTITY_CODE'
32798 , p_source_type_code => 'Y'
32799 , p_source_application_id => 602
32800 );
32801 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32802 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
32803 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32804 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
32805 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
32806 l_rec_acct_attrs.array_num_value(7) := p_source_55;
32807 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
32808 l_rec_acct_attrs.array_num_value(8) := p_source_64;
32809 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32810 l_rec_acct_attrs.array_char_value(9) := p_source_65;
32811 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
32812 l_rec_acct_attrs.array_char_value(10) := p_source_66;
32813 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
32814 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_67);
32815 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32816 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_68);
32817 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
32818 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
32819 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
32820 l_rec_acct_attrs.array_char_value(14) := p_source_17;
32821 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
32822 l_rec_acct_attrs.array_num_value(15) := p_source_27;
32823 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
32824 l_rec_acct_attrs.array_num_value(16) := p_source_28;
32825 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
32826 l_rec_acct_attrs.array_char_value(17) := p_source_29;
32827 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
32828 l_rec_acct_attrs.array_num_value(18) := p_source_30;
32829 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
32830 l_rec_acct_attrs.array_num_value(19) := p_source_31;
32831 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
32832 l_rec_acct_attrs.array_num_value(20) := p_source_32;
32833 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
32834 l_rec_acct_attrs.array_char_value(21) := p_source_29;
32835 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
32836 l_rec_acct_attrs.array_num_value(22) := p_source_33;
32837 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
32838 l_rec_acct_attrs.array_char_value(23) := p_source_34;
32839 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
32840 l_rec_acct_attrs.array_num_value(24) := p_source_69;
32841 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
32842 l_rec_acct_attrs.array_char_value(25) := p_source_29;
32843 l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
32844 l_rec_acct_attrs.array_num_value(26) := p_source_69;
32845 l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
32846 l_rec_acct_attrs.array_date_value(27) := p_source_39;
32847 l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
32848 l_rec_acct_attrs.array_char_value(28) := p_source_40;
32849 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
32850 l_rec_acct_attrs.array_date_value(29) := p_source_41;
32851 l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
32852 l_rec_acct_attrs.array_char_value(30) := p_source_42;
32853 l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
32854 l_rec_acct_attrs.array_char_value(31) := p_source_45;
32855 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
32856 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_46);
32857 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
32858 l_rec_acct_attrs.array_char_value(33) := p_source_17;
32859 l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
32860 l_rec_acct_attrs.array_num_value(34) := p_source_47;
32861 l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
32862 l_rec_acct_attrs.array_num_value(35) := p_source_48;
32863 l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
32864 l_rec_acct_attrs.array_num_value(36) := p_source_49;
32865 l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
32866 l_rec_acct_attrs.array_num_value(37) := p_source_50;
32867 l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
32868 l_rec_acct_attrs.array_num_value(38) := p_source_51;
32869 l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
32870 l_rec_acct_attrs.array_num_value(39) := p_source_52;
32871
32872 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32873 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32874
32875 ---------------------------------------------------------------------------------------------------------------
32876 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32877 ---------------------------------------------------------------------------------------------------------------
32878 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32879
32880 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32881 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32882
32883 IF xla_accounting_cache_pkg.GetValueChar
32884 (p_source_code => 'LEDGER_CATEGORY_CODE'
32885 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32886 AND l_bflow_method_code = 'PRIOR_ENTRY'
32887 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32888 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32889 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32890 )
32891 THEN
32892 xla_ae_lines_pkg.BflowUpgEntry
32893 (p_business_method_code => l_bflow_method_code
32894 ,p_business_class_code => l_bflow_class_code
32895 ,p_balance_type => l_balance_type_code);
32896 ELSE
32897 NULL;
32898 XLA_AE_LINES_PKG.business_flow_validation(
32899 p_business_method_code => l_bflow_method_code
32900 ,p_business_class_code => l_bflow_class_code
32901 ,p_inherit_description_flag => l_inherit_desc_flag);
32902 END IF;
32903
32904 --
32905 -- call analytical criteria
32906 --
32907 -- Inherited Analytical Criteria for business flow method of Prior Entry.
32908 --
32909 -- call description
32910 --
32911 -- No description or it is inherited.
32912 --
32913 -- call ADRs
32914 -- Bug 4922099
32915 --
32916 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32917 (NVL(l_actual_upg_option, 'N') = 'O') OR
32918 (NVL(l_enc_upg_option, 'N') = 'O')
32919 )
32920 THEN
32921 NULL;
32922 --
32923 --
32924
32925 --
32926 --
32927 END IF;
32928 --
32929 -- Bug 4922099
32930 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32931 (NVL(l_enc_upg_option, 'N') = 'O')
32932 ) AND
32933 (l_bflow_method_code = 'PRIOR_ENTRY')
32934 )
32935 THEN
32936 IF
32937 --
32938 1 = 1
32939 --
32940 THEN
32941 xla_accounting_err_pkg.build_message
32942 (p_appli_s_name => 'XLA'
32943 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32944 ,p_token_1 => 'LINE_NUMBER'
32945 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32946 ,p_token_2 => 'LINE_TYPE_NAME'
32947 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32948 l_component_type
32949 ,l_component_code
32950 ,l_component_type_code
32951 ,l_component_appl_id
32952 ,l_amb_context_code
32953 ,l_entity_code
32954 ,l_event_class_code
32955 )
32956 ,p_token_3 => 'OWNER'
32957 ,p_value_3 => xla_lookups_pkg.get_meaning(
32958 p_lookup_type => 'XLA_OWNER_TYPE'
32959 ,p_lookup_code => l_component_type_code
32960 )
32961 ,p_token_4 => 'PRODUCT_NAME'
32962 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32963 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32964 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32965 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32966 ,p_ae_header_id => NULL
32967 );
32968
32969 IF (C_LEVEL_ERROR>= g_log_level) THEN
32970 trace
32971 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32972 ,p_level => C_LEVEL_ERROR
32973 ,p_module => l_log_module);
32974 END IF;
32975 END IF;
32976 END IF;
32977 --
32978 --
32979 ------------------------------------------------------------------------------------------------
32980 -- 4219869 Business Flow
32981 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32982 -- Prior Entry. Currently, the following code is always generated.
32983 ------------------------------------------------------------------------------------------------
32984 -- No ValidateCurrentLine for business flow method of Prior Entry
32985
32986 ------------------------------------------------------------------------------------
32987 -- 4219869 Business Flow
32988 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32989 ------------------------------------------------------------------------------------
32990 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32991
32992 ----------------------------------------------------------------------------------
32993 -- 4219869 Business Flow
32994 -- Update journal entry status -- Need to generate this within IF <condition>
32995 ----------------------------------------------------------------------------------
32996 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32997 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32998 ,p_balance_type_code => l_balance_type_code
32999 );
33000
33001 -------------------------------------------------------------------------------------------
33002 -- 4262811 - Generate the Accrual Reversal lines
33003 -------------------------------------------------------------------------------------------
33004 BEGIN
33005 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33006 (g_array_event(p_event_id).array_value_num('header_index'));
33007 IF l_acc_rev_flag IS NULL THEN
33008 l_acc_rev_flag := 'N';
33009 END IF;
33010 EXCEPTION
33011 WHEN OTHERS THEN
33012 l_acc_rev_flag := 'N';
33013 END;
33014 --
33015 IF (l_acc_rev_flag = 'Y') THEN
33016
33017 -- 4645092 ------------------------------------------------------------------------------
33018 -- To allow MPA report to determine if it should generate report process
33019 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33020 ------------------------------------------------------------------------------------------
33021
33022 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33023 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33024 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33025 -- call ADRs
33026 -- Bug 4922099
33027 --
33028 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33029 (NVL(l_actual_upg_option, 'N') = 'O') OR
33030 (NVL(l_enc_upg_option, 'N') = 'O')
33031 )
33032 THEN
33033 NULL;
33034 --
33035 --
33036
33037 --
33038 --
33039 END IF;
33040
33041 --
33042 -- Update the line information that should be overwritten
33043 --
33044 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33045 p_header_num => 1);
33046 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33047
33048 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33049
33050 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33051 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33055 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33052 END IF;
33053
33054 --
33056 --
33057 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33058 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33059 ELSE
33060 ---------------------------------------------------------------------------------------------------
33061 -- 4262811a Switch Sign
33062 ---------------------------------------------------------------------------------------------------
33063 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33064 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33065 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33066 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33067 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33068 -- 5132302
33069 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33070 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33071
33072 END IF;
33073
33074 -- 4955764
33075 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33076 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33077
33078
33079 XLA_AE_LINES_PKG.ValidateCurrentLine;
33080 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33081
33082 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33083 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33084 ,p_balance_type_code => l_balance_type_code);
33085
33086 END IF;
33087
33088 -----------------------------------------------------------------------------------------
33089 -- 4262811 Multiperiod Accounting
33090 -----------------------------------------------------------------------------------------
33091 -- No MPA option is assigned.
33092
33093
33094 END IF;
33095 END IF;
33096 --
33097
33098 --
33099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33100 trace
33101 (p_msg => 'END of AcctLineType_55'
33102 ,p_level => C_LEVEL_PROCEDURE
33103 ,p_module => l_log_module);
33104 END IF;
33105 --
33106 EXCEPTION
33107 WHEN xla_exceptions_pkg.application_exception THEN
33108 RAISE;
33109 WHEN OTHERS THEN
33110 xla_exceptions_pkg.raise_message
33111 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_55');
33112 END AcctLineType_55;
33113 --
33114
33115 ---------------------------------------
33116 --
33117 -- PRIVATE FUNCTION
33118 -- AcctLineType_56
33119 --
33120 ---------------------------------------
33121 PROCEDURE AcctLineType_56 (
33122 p_application_id IN NUMBER
33123 ,p_event_id IN NUMBER
33124 ,p_calculate_acctd_flag IN VARCHAR2
33125 ,p_calculate_g_l_flag IN VARCHAR2
33126 ,p_actual_flag IN OUT VARCHAR2
33127 ,p_balance_type_code OUT VARCHAR2
33128 ,p_gain_or_loss_ref OUT VARCHAR2
33129
33130 --Invoice Distribution Account
33131 , p_source_2 IN NUMBER
33132 --Payment Status Flag of the Invoice
33133 , p_source_7 IN VARCHAR2
33134 --Invoice Distribution Type
33135 , p_source_8 IN VARCHAR2
33136 , p_source_8_meaning IN VARCHAR2
33137 --Federal Prior Year Flag
33138 , p_source_9 IN VARCHAR2
33139 --Invoice Distribution Encumbrance Amount
33140 , p_source_10 IN NUMBER
33141 --Accrue on Receipt Option
33142 , p_source_11 IN VARCHAR2
33143 , p_source_11_meaning IN VARCHAR2
33144 --Purchase Order Distribution Identifier
33145 , p_source_12 IN NUMBER
33146 --Accounting Reversal Indicator
33147 , p_source_15 IN VARCHAR2
33148 --Distribution Link Type
33149 , p_source_17 IN VARCHAR2
33150 --Allocation to Main Distribution Identifier
33151 , p_source_19 IN NUMBER
33152 --Invoice Identifier
33153 , p_source_20 IN NUMBER
33154 --Invoice Distribution Identifier
33155 , p_source_26 IN NUMBER
33156 --Payables Encumbrance Upgrade Credit Account
33157 , p_source_27 IN NUMBER
33158 --Payables Encumbrance Upgrade Credit Amount
33159 , p_source_28 IN NUMBER
33160 --Invoice Currency Code
33161 , p_source_29 IN VARCHAR2
33162 --Payables Encumbrance Upgrade Credit Base Amount
33163 , p_source_30 IN NUMBER
33164 --Payables Encumbrance Upgrade Debit Account
33165 , p_source_31 IN NUMBER
33166 --Payables Encumbrance Upgrade Debit Amount
33167 , p_source_32 IN NUMBER
33168 --Payables Encumbrance Upgrade Debit Base Amount
33169 , p_source_33 IN NUMBER
33170 --Payables Encumbrance Upgrade Option
33171 , p_source_34 IN VARCHAR2
33172 --Invoice Exchange Date
33173 , p_source_36 IN DATE
33174 --Invoice Exchange Rate
33175 , p_source_37 IN NUMBER
33176 --Invoice Exchange Rate Type
33177 , p_source_38 IN VARCHAR2
33178 --Deferred Accounting End Date
33179 , p_source_39 IN DATE
33180 --Deferred Accounting Option
33181 , p_source_40 IN VARCHAR2
33182 --Deferred Accounting Start Date
33183 , p_source_41 IN DATE
33184 --Override Accounted Amount Indicator
33185 , p_source_42 IN VARCHAR2
33186 , p_source_42_meaning IN VARCHAR2
33187 --Invoice Supplier Identifier
33188 , p_source_43 IN NUMBER
33189 --Invoice Supplier Site Identifier
33190 , p_source_44 IN NUMBER
33191 --Third Party Type
33192 , p_source_45 IN VARCHAR2
33193 --Parent Reversal Identifier
33194 , p_source_46 IN NUMBER
33195 --Invoice Distribution Statistical Amount
33196 , p_source_47 IN NUMBER
33197 --Invoice Distribution Tax Line Identifier
33198 , p_source_48 IN NUMBER
33199 --Invoice Distribution Tax Distribution Identifier from Tax
33200 , p_source_49 IN NUMBER
33201 --Invoice Distribution Summary Tax Line Identifier
33202 , p_source_50 IN NUMBER
33203 --Payables Upgrade Credit Encumbrance Type Identifier
33204 , p_source_51 IN NUMBER
33205 --Payables Upgrade Debit Encumbrance Type Identifier
33206 , p_source_52 IN NUMBER
33207 --Invoice Distribution Amount
33208 , p_source_55 IN NUMBER
33209 --Business Flow Purchasing Application Identifier
33210 , p_source_64 IN NUMBER
33211 --Business Flow Purchase Order Distribution Type
33212 , p_source_65 IN VARCHAR2
33213 --Business Flow Purchase Order Entity Code
33214 , p_source_66 IN VARCHAR2
33215 --Business Flow Purchase Order Distribution Identifier
33216 , p_source_67 IN NUMBER
33217 --Business Flow Purchasing Document Identifier
33218 , p_source_68 IN NUMBER
33219 --Federal Paid Unexpended Obligation Amount
33220 , p_source_69 IN NUMBER
33221 )
33222 IS
33223
33224 l_component_type VARCHAR2(80);
33225 l_component_code VARCHAR2(30);
33226 l_component_type_code VARCHAR2(1);
33227 l_component_appl_id INTEGER;
33228 l_amb_context_code VARCHAR2(30);
33229 l_entity_code VARCHAR2(30);
33230 l_event_class_code VARCHAR2(30);
33231 l_ae_header_id NUMBER;
33232 l_event_type_code VARCHAR2(30);
33233 l_line_definition_code VARCHAR2(30);
33234 l_line_definition_owner_code VARCHAR2(1);
33235 --
33236 -- adr variables
33237 l_segment VARCHAR2(30);
33238 l_ccid NUMBER;
33239 l_adr_transaction_coa_id NUMBER;
33240 l_adr_accounting_coa_id NUMBER;
33241 l_adr_flexfield_segment_code VARCHAR2(30);
33242 l_adr_flex_value_set_id NUMBER;
33243 l_adr_value_type_code VARCHAR2(30);
33244 l_adr_value_combination_id NUMBER;
33245 l_adr_value_segment_code VARCHAR2(30);
33246
33247 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33248 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33249 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33250 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33251
33252 -- 4262811 Variables ------------------------------------------------------------------------------------------
33253 l_entered_amt_idx NUMBER;
33254 l_accted_amt_idx NUMBER;
33255 l_acc_rev_flag VARCHAR2(1);
33256 l_accrual_line_num NUMBER;
33257 l_tmp_amt NUMBER;
33258 l_acc_rev_natural_side_code VARCHAR2(1);
33259
33260 l_num_entries NUMBER;
33261 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33262 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33263 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33264 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33265 l_recog_line_1 NUMBER;
33266 l_recog_line_2 NUMBER;
33267
33268 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33269 l_bflow_applied_to_amt NUMBER; -- 5132302
33270 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33271
33272 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33273
33274 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33275 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33276
33277 ---------------------------------------------------------------------------------------------------------------
33278
33279
33280 --
33281 -- bulk performance
33282 --
33283 l_balance_type_code VARCHAR2(1);
33284 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33285 l_log_module VARCHAR2(240);
33286
33287 --
33288 -- Upgrade strategy
33289 --
33290 l_actual_upg_option VARCHAR2(1);
33291 l_enc_upg_option VARCHAR2(1);
33292
33293 --
33294 BEGIN
33295 --
33296 IF g_log_enabled THEN
33297 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
33298 END IF;
33299 --
33300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33301
33302 trace
33303 (p_msg => 'BEGIN of AcctLineType_56'
33304 ,p_level => C_LEVEL_PROCEDURE
33305 ,p_module => l_log_module);
33306
33307 END IF;
33308 --
33309 l_component_type := 'AMB_JLT';
33310 l_component_code := 'FV_AP_PAID_OBL_REV_DR';
33311 l_component_type_code := 'S';
33312 l_component_appl_id := 200;
33313 l_amb_context_code := 'DEFAULT';
33314 l_entity_code := 'AP_INVOICES';
33315 l_event_class_code := 'INVOICES';
33316 l_event_type_code := 'INVOICES_ALL';
33317 l_line_definition_owner_code := 'S';
33318 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
33319 --
33320 l_balance_type_code := 'A';
33321 l_segment := NULL;
33322 l_ccid := NULL;
33323 l_adr_transaction_coa_id := NULL;
33324 l_adr_accounting_coa_id := NULL;
33325 l_adr_flexfield_segment_code := NULL;
33326 l_adr_flex_value_set_id := NULL;
33327 l_adr_value_type_code := NULL;
33328 l_adr_value_combination_id := NULL;
33329 l_adr_value_segment_code := NULL;
33330
33331 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33332 l_bflow_class_code := ''; -- 4219869 Business Flow
33333 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33334 l_budgetary_control_flag := 'Y';
33335
33336 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33337 l_bflow_applied_to_amt := NULL; -- 5132302
33338 l_entered_amt_idx := NULL; -- 4262811
33339 l_accted_amt_idx := NULL; -- 4262811
33340 l_acc_rev_flag := NULL; -- 4262811
33341 l_accrual_line_num := NULL; -- 4262811
33342 l_tmp_amt := NULL; -- 4262811
33343 --
33344
33345 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33346 l_balance_type_code <> 'B' THEN
33347 IF p_source_12 IS NOT NULL AND
33348 (NVL(p_source_8,'
33349 ') = 'ITEM' OR
33350 (NVL(p_source_8,'
33351 ') = 'IPV' AND
33352 p_source_10 < 0) OR
33353 NVL(p_source_8,'
33354 ') = 'ACCRUAL') AND
33355 NVL(p_source_11,'
33356 ') <> 'Y' AND
33357 NVL(p_source_9,'
33358 ') <> 'Y'
33359 THEN
33360
33361 --
33362 XLA_AE_LINES_PKG.SetNewLine;
33363
33364 p_balance_type_code := l_balance_type_code;
33365 -- set the flag so later we will know whether the gain loss line needs to be created
33366
33367 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33368 p_actual_flag :='A';
33369 END IF;
33370
33371 --
33372 -- bulk performance
33373 --
33374 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33375 p_header_num => 0); -- 4262811
33376 --
33377 -- set accounting line options
33378 --
33379 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33380 p_natural_side_code => 'D'
33381 , p_gain_or_loss_flag => 'N'
33382 , p_gl_transfer_mode_code => 'S'
33383 , p_acct_entry_type_code => 'A'
33384 , p_switch_side_flag => 'N'
33385 , p_merge_duplicate_code => 'N'
33386 );
33387 --
33388 l_acc_rev_natural_side_code := 'C'; -- 4262811
33389 --
33390 --
33391 -- set accounting line type info
33392 --
33393 xla_ae_lines_pkg.SetAcctLineType
33394 (p_component_type => l_component_type
33395 ,p_event_type_code => l_event_type_code
33396 ,p_line_definition_owner_code => l_line_definition_owner_code
33397 ,p_line_definition_code => l_line_definition_code
33398 ,p_accounting_line_code => l_component_code
33399 ,p_accounting_line_type_code => l_component_type_code
33400 ,p_accounting_line_appl_id => l_component_appl_id
33401 ,p_amb_context_code => l_amb_context_code
33402 ,p_entity_code => l_entity_code
33403 ,p_event_class_code => l_event_class_code);
33404 --
33405 -- set accounting class
33406 --
33407 xla_ae_lines_pkg.SetAcctClass(
33408 p_accounting_class_code => 'ACCOUNTSPAYABLE'
33409 , p_ae_header_id => l_ae_header_id
33410 );
33411
33412 --
33413 -- set rounding class
33414 --
33415 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33416 'ACCOUNTSPAYABLE';
33417
33418 --
33419 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33420 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33421 --
33422 -- bulk performance
33423 --
33424 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33425
33426 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33427 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33428
33429 -- 4955764
33430 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33431 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33432
33433 -- 4458381 Public Sector Enh
33434
33435 --
33436 -- set accounting attributes for the line type
33437 --
33438 l_entered_amt_idx := 24;
33439 l_accted_amt_idx := 29;
33440 l_bflow_applied_to_amt_idx := 7; -- 5132302
33441 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33442 l_rec_acct_attrs.array_char_value(1) := p_source_15;
33443 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33444 l_rec_acct_attrs.array_num_value(2) :=
33445 xla_ae_sources_pkg.GetSystemSourceNum(
33446 p_source_code => 'XLA_EVENT_APPL_ID'
33447 , p_source_type_code => 'Y'
33448 , p_source_application_id => 602
33449 );
33450 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33451 l_rec_acct_attrs.array_char_value(3) := p_source_17;
33452 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33453 l_rec_acct_attrs.array_char_value(4) :=
33454 xla_ae_sources_pkg.GetSystemSourceChar(
33455 p_source_code => 'XLA_ENTITY_CODE'
33456 , p_source_type_code => 'Y'
33457 , p_source_application_id => 602
33458 );
33459 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33460 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
33461 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33462 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
33463 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
33464 l_rec_acct_attrs.array_num_value(7) := p_source_55;
33465 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
33466 l_rec_acct_attrs.array_num_value(8) := p_source_64;
33467 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33468 l_rec_acct_attrs.array_char_value(9) := p_source_65;
33469 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
33470 l_rec_acct_attrs.array_char_value(10) := p_source_66;
33471 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
33472 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_67);
33473 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33474 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_68);
33475 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
33476 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
33477 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
33478 l_rec_acct_attrs.array_char_value(14) := p_source_17;
33479 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
33480 l_rec_acct_attrs.array_num_value(15) := p_source_27;
33481 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
33482 l_rec_acct_attrs.array_num_value(16) := p_source_28;
33483 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
33484 l_rec_acct_attrs.array_char_value(17) := p_source_29;
33485 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
33486 l_rec_acct_attrs.array_num_value(18) := p_source_30;
33487 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
33488 l_rec_acct_attrs.array_num_value(19) := p_source_31;
33489 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
33490 l_rec_acct_attrs.array_num_value(20) := p_source_32;
33491 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
33492 l_rec_acct_attrs.array_char_value(21) := p_source_29;
33493 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
33494 l_rec_acct_attrs.array_num_value(22) := p_source_33;
33495 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
33496 l_rec_acct_attrs.array_char_value(23) := p_source_34;
33497 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
33498 l_rec_acct_attrs.array_num_value(24) := p_source_69;
33499 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
33500 l_rec_acct_attrs.array_char_value(25) := p_source_29;
33501 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
33502 l_rec_acct_attrs.array_date_value(26) := p_source_36;
33503 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
33504 l_rec_acct_attrs.array_num_value(27) := p_source_37;
33505 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
33506 l_rec_acct_attrs.array_char_value(28) := p_source_38;
33507 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
33508 l_rec_acct_attrs.array_num_value(29) := p_source_69;
33509 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
33510 l_rec_acct_attrs.array_date_value(30) := p_source_39;
33511 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
33512 l_rec_acct_attrs.array_char_value(31) := p_source_40;
33513 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
33514 l_rec_acct_attrs.array_date_value(32) := p_source_41;
33515 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
33516 l_rec_acct_attrs.array_char_value(33) := p_source_42;
33517 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
33518 l_rec_acct_attrs.array_num_value(34) := p_source_43;
33519 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
33520 l_rec_acct_attrs.array_num_value(35) := p_source_44;
33521 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
33522 l_rec_acct_attrs.array_char_value(36) := p_source_45;
33523 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
33524 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
33525 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
33526 l_rec_acct_attrs.array_char_value(38) := p_source_17;
33527 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
33528 l_rec_acct_attrs.array_num_value(39) := p_source_47;
33529 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
33530 l_rec_acct_attrs.array_num_value(40) := p_source_48;
33531 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
33532 l_rec_acct_attrs.array_num_value(41) := p_source_49;
33533 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
33534 l_rec_acct_attrs.array_num_value(42) := p_source_50;
33535 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
33536 l_rec_acct_attrs.array_num_value(43) := p_source_51;
33537 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
33538 l_rec_acct_attrs.array_num_value(44) := p_source_52;
33539
33540 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33541 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33542
33543 ---------------------------------------------------------------------------------------------------------------
33544 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33545 ---------------------------------------------------------------------------------------------------------------
33546 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33547
33548 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33549 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33550
33551 IF xla_accounting_cache_pkg.GetValueChar
33552 (p_source_code => 'LEDGER_CATEGORY_CODE'
33553 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33554 AND l_bflow_method_code = 'PRIOR_ENTRY'
33555 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33556 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33557 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33558 )
33559 THEN
33560 xla_ae_lines_pkg.BflowUpgEntry
33561 (p_business_method_code => l_bflow_method_code
33562 ,p_business_class_code => l_bflow_class_code
33563 ,p_balance_type => l_balance_type_code);
33564 ELSE
33565 NULL;
33566 -- No business flow processing for business flow method of NONE.
33567 END IF;
33568
33569 --
33570 -- call analytical criteria
33571 --
33572
33573 --
33574 -- call description
33575 --
33576 -- No description or it is inherited.
33577 --
33578 -- call ADRs
33579 -- Bug 4922099
33580 --
33581 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33582 (NVL(l_actual_upg_option, 'N') = 'O') OR
33583 (NVL(l_enc_upg_option, 'N') = 'O')
33584 )
33585 THEN
33586 NULL;
33587 --
33588 --
33589
33590 l_ccid := AcctDerRule_3(
33591 p_application_id => p_application_id
33592 , p_ae_header_id => l_ae_header_id
33593 , p_source_2 => p_source_2
33594 , x_transaction_coa_id => l_adr_transaction_coa_id
33595 , x_accounting_coa_id => l_adr_accounting_coa_id
33596 , x_value_type_code => l_adr_value_type_code
33597 , p_side => 'NA'
33598 );
33599
33600 xla_ae_lines_pkg.set_ccid(
33601 p_code_combination_id => l_ccid
33602 , p_value_type_code => l_adr_value_type_code
33603 , p_transaction_coa_id => l_adr_transaction_coa_id
33604 , p_accounting_coa_id => l_adr_accounting_coa_id
33605 , p_adr_code => 'AP_INVOICE_DIST'
33606 , p_adr_type_code => 'S'
33607 , p_component_type => l_component_type
33608 , p_component_code => l_component_code
33609 , p_component_type_code => l_component_type_code
33610 , p_component_appl_id => l_component_appl_id
33611 , p_amb_context_code => l_amb_context_code
33612 , p_side => 'NA'
33613 );
33614
33615
33616 l_segment := AcctDerRule_10(
33617 p_application_id => p_application_id
33618 , p_ae_header_id => l_ae_header_id
33619 , p_source_7 => p_source_7
33620 , x_transaction_coa_id => l_adr_transaction_coa_id
33621 , x_accounting_coa_id => l_adr_accounting_coa_id
33622 , x_flexfield_segment_code => l_adr_flexfield_segment_code
33623 , x_flex_value_set_id => l_adr_flex_value_set_id
33624 , x_value_type_code => l_adr_value_type_code
33625 , x_value_combination_id => l_adr_value_combination_id
33626 , x_value_segment_code => l_adr_value_segment_code
33627 , p_side => 'NA'
33628 , p_override_seg_flag => 'Y'
33629 );
33630
33631 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
33632
33633 xla_ae_lines_pkg.set_segment(
33634 p_to_segment_code => 'GL_ACCOUNT'
33635 , p_segment_value => l_segment
33636 , p_from_segment_code => l_adr_value_segment_code
33637 , p_from_combination_id => l_adr_value_combination_id
33638 , p_value_type_code => l_adr_value_type_code
33639 , p_transaction_coa_id => l_adr_transaction_coa_id
33640 , p_accounting_coa_id => l_adr_accounting_coa_id
33641 , p_flexfield_segment_code => l_adr_flexfield_segment_code
33642 , p_flex_value_set_id => l_adr_flex_value_set_id
33643 , p_adr_code => 'FV_480X01_PAID_OBL_REV_DR'
33644 , p_adr_type_code => 'S'
33645 , p_component_type => l_component_type
33646 , p_component_code => l_component_code
33647 , p_component_type_code => l_component_type_code
33648 , p_component_appl_id => l_component_appl_id
33649 , p_amb_context_code => l_amb_context_code
33650 , p_entity_code => 'AP_INVOICES'
33651 , p_event_class_code => 'INVOICES'
33652 , p_side => 'NA'
33653 );
33654
33655 END IF;
33656
33657 --
33658 --
33659 END IF;
33660 --
33661 -- Bug 4922099
33662 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33663 (NVL(l_enc_upg_option, 'N') = 'O')
33664 ) AND
33665 (l_bflow_method_code = 'PRIOR_ENTRY')
33666 )
33667 THEN
33668 IF
33669 --
33670 1 = 2
33671 --
33672 THEN
33673 xla_accounting_err_pkg.build_message
33674 (p_appli_s_name => 'XLA'
33675 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33676 ,p_token_1 => 'LINE_NUMBER'
33677 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33678 ,p_token_2 => 'LINE_TYPE_NAME'
33679 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33680 l_component_type
33681 ,l_component_code
33682 ,l_component_type_code
33683 ,l_component_appl_id
33684 ,l_amb_context_code
33685 ,l_entity_code
33686 ,l_event_class_code
33687 )
33688 ,p_token_3 => 'OWNER'
33689 ,p_value_3 => xla_lookups_pkg.get_meaning(
33690 p_lookup_type => 'XLA_OWNER_TYPE'
33691 ,p_lookup_code => l_component_type_code
33692 )
33693 ,p_token_4 => 'PRODUCT_NAME'
33694 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33695 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33696 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33697 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33698 ,p_ae_header_id => NULL
33699 );
33700
33701 IF (C_LEVEL_ERROR>= g_log_level) THEN
33702 trace
33703 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33704 ,p_level => C_LEVEL_ERROR
33705 ,p_module => l_log_module);
33706 END IF;
33707 END IF;
33708 END IF;
33709 --
33710 --
33711 ------------------------------------------------------------------------------------------------
33712 -- 4219869 Business Flow
33713 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33714 -- Prior Entry. Currently, the following code is always generated.
33715 ------------------------------------------------------------------------------------------------
33716 XLA_AE_LINES_PKG.ValidateCurrentLine;
33717
33718 ------------------------------------------------------------------------------------
33719 -- 4219869 Business Flow
33720 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33721 ------------------------------------------------------------------------------------
33722 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33723
33724 ----------------------------------------------------------------------------------
33725 -- 4219869 Business Flow
33726 -- Update journal entry status -- Need to generate this within IF <condition>
33727 ----------------------------------------------------------------------------------
33728 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33729 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33730 ,p_balance_type_code => l_balance_type_code
33731 );
33732
33733 -------------------------------------------------------------------------------------------
33734 -- 4262811 - Generate the Accrual Reversal lines
33735 -------------------------------------------------------------------------------------------
33736 BEGIN
33737 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33738 (g_array_event(p_event_id).array_value_num('header_index'));
33739 IF l_acc_rev_flag IS NULL THEN
33740 l_acc_rev_flag := 'N';
33741 END IF;
33742 EXCEPTION
33743 WHEN OTHERS THEN
33744 l_acc_rev_flag := 'N';
33745 END;
33746 --
33747 IF (l_acc_rev_flag = 'Y') THEN
33748
33749 -- 4645092 ------------------------------------------------------------------------------
33750 -- To allow MPA report to determine if it should generate report process
33751 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33752 ------------------------------------------------------------------------------------------
33753
33754 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33755 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33756 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33757 -- call ADRs
33758 -- Bug 4922099
33759 --
33760 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33761 (NVL(l_actual_upg_option, 'N') = 'O') OR
33762 (NVL(l_enc_upg_option, 'N') = 'O')
33763 )
33764 THEN
33765 NULL;
33766 --
33767 --
33768
33769 l_ccid := AcctDerRule_3(
33770 p_application_id => p_application_id
33771 , p_ae_header_id => l_ae_header_id
33772 , p_source_2 => p_source_2
33773 , x_transaction_coa_id => l_adr_transaction_coa_id
33774 , x_accounting_coa_id => l_adr_accounting_coa_id
33775 , x_value_type_code => l_adr_value_type_code
33776 , p_side => 'NA'
33777 );
33778
33779 xla_ae_lines_pkg.set_ccid(
33780 p_code_combination_id => l_ccid
33781 , p_value_type_code => l_adr_value_type_code
33782 , p_transaction_coa_id => l_adr_transaction_coa_id
33783 , p_accounting_coa_id => l_adr_accounting_coa_id
33784 , p_adr_code => 'AP_INVOICE_DIST'
33785 , p_adr_type_code => 'S'
33786 , p_component_type => l_component_type
33787 , p_component_code => l_component_code
33788 , p_component_type_code => l_component_type_code
33789 , p_component_appl_id => l_component_appl_id
33790 , p_amb_context_code => l_amb_context_code
33791 , p_side => 'NA'
33792 );
33793
33794
33795 l_segment := AcctDerRule_10(
33796 p_application_id => p_application_id
33797 , p_ae_header_id => l_ae_header_id
33798 , p_source_7 => p_source_7
33799 , x_transaction_coa_id => l_adr_transaction_coa_id
33800 , x_accounting_coa_id => l_adr_accounting_coa_id
33801 , x_flexfield_segment_code => l_adr_flexfield_segment_code
33802 , x_flex_value_set_id => l_adr_flex_value_set_id
33803 , x_value_type_code => l_adr_value_type_code
33804 , x_value_combination_id => l_adr_value_combination_id
33805 , x_value_segment_code => l_adr_value_segment_code
33806 , p_side => 'NA'
33807 , p_override_seg_flag => 'Y'
33808 );
33809
33810 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
33811
33812 xla_ae_lines_pkg.set_segment(
33813 p_to_segment_code => 'GL_ACCOUNT'
33814 , p_segment_value => l_segment
33815 , p_from_segment_code => l_adr_value_segment_code
33816 , p_from_combination_id => l_adr_value_combination_id
33817 , p_value_type_code => l_adr_value_type_code
33818 , p_transaction_coa_id => l_adr_transaction_coa_id
33819 , p_accounting_coa_id => l_adr_accounting_coa_id
33820 , p_flexfield_segment_code => l_adr_flexfield_segment_code
33821 , p_flex_value_set_id => l_adr_flex_value_set_id
33822 , p_adr_code => 'FV_480X01_PAID_OBL_REV_DR'
33823 , p_adr_type_code => 'S'
33824 , p_component_type => l_component_type
33825 , p_component_code => l_component_code
33826 , p_component_type_code => l_component_type_code
33827 , p_component_appl_id => l_component_appl_id
33828 , p_amb_context_code => l_amb_context_code
33829 , p_entity_code => 'AP_INVOICES'
33830 , p_event_class_code => 'INVOICES'
33831 , p_side => 'NA'
33832 );
33833
33834 END IF;
33835
33836 --
33837 --
33838 END IF;
33839
33840 --
33841 -- Update the line information that should be overwritten
33842 --
33843 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33844 p_header_num => 1);
33845 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33846
33847 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33848
33849 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33850 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33851 END IF;
33852
33853 --
33854 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33855 --
33856 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33857 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33858 ELSE
33859 ---------------------------------------------------------------------------------------------------
33860 -- 4262811a Switch Sign
33861 ---------------------------------------------------------------------------------------------------
33862 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33863 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33864 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33865 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33866 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33867 -- 5132302
33868 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33869 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33870
33871 END IF;
33872
33873 -- 4955764
33874 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33875 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33876
33877
33878 XLA_AE_LINES_PKG.ValidateCurrentLine;
33879 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33880
33881 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33882 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33883 ,p_balance_type_code => l_balance_type_code);
33884
33885 END IF;
33886
33887 -----------------------------------------------------------------------------------------
33888 -- 4262811 Multiperiod Accounting
33889 -----------------------------------------------------------------------------------------
33890 -- No MPA option is assigned.
33891
33892
33893 END IF;
33894 END IF;
33895 --
33896
33897 --
33898 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33899 trace
33900 (p_msg => 'END of AcctLineType_56'
33901 ,p_level => C_LEVEL_PROCEDURE
33902 ,p_module => l_log_module);
33903 END IF;
33904 --
33905 EXCEPTION
33906 WHEN xla_exceptions_pkg.application_exception THEN
33907 RAISE;
33908 WHEN OTHERS THEN
33909 xla_exceptions_pkg.raise_message
33910 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_56');
33911 END AcctLineType_56;
33912 --
33913
33914 ---------------------------------------
33915 --
33916 -- PRIVATE FUNCTION
33917 -- AcctLineType_57
33918 --
33919 ---------------------------------------
33920 PROCEDURE AcctLineType_57 (
33921 p_application_id IN NUMBER
33922 ,p_event_id IN NUMBER
33923 ,p_calculate_acctd_flag IN VARCHAR2
33924 ,p_calculate_g_l_flag IN VARCHAR2
33925 ,p_actual_flag IN OUT VARCHAR2
33926 ,p_balance_type_code OUT VARCHAR2
33927 ,p_gain_or_loss_ref OUT VARCHAR2
33928
33929 --Invoice Distribution Description
33930 , p_source_1 IN VARCHAR2
33931 --Invoice Distribution Account
33932 , p_source_2 IN NUMBER
33933 --Federal Fund Expired Status
33934 , p_source_5 IN VARCHAR2
33935 --Invoice Distribution Type
33936 , p_source_8 IN VARCHAR2
33937 , p_source_8_meaning IN VARCHAR2
33938 --Federal Prior Year Flag
33939 , p_source_9 IN VARCHAR2
33940 --Invoice Distribution Encumbrance Amount
33941 , p_source_10 IN NUMBER
33942 --Accrue on Receipt Option
33943 , p_source_11 IN VARCHAR2
33944 , p_source_11_meaning IN VARCHAR2
33945 --Purchase Order Distribution Identifier
33946 , p_source_12 IN NUMBER
33947 --Accounting Reversal Indicator
33948 , p_source_15 IN VARCHAR2
33949 --Distribution Link Type
33950 , p_source_17 IN VARCHAR2
33951 --Allocation to Main Distribution Identifier
33952 , p_source_19 IN NUMBER
33953 --Invoice Identifier
33954 , p_source_20 IN NUMBER
33955 --Invoice Distribution Identifier
33956 , p_source_26 IN NUMBER
33957 --Payables Encumbrance Upgrade Credit Account
33958 , p_source_27 IN NUMBER
33959 --Payables Encumbrance Upgrade Credit Amount
33960 , p_source_28 IN NUMBER
33961 --Invoice Currency Code
33962 , p_source_29 IN VARCHAR2
33963 --Payables Encumbrance Upgrade Credit Base Amount
33964 , p_source_30 IN NUMBER
33965 --Payables Encumbrance Upgrade Debit Account
33966 , p_source_31 IN NUMBER
33967 --Payables Encumbrance Upgrade Debit Amount
33968 , p_source_32 IN NUMBER
33969 --Payables Encumbrance Upgrade Debit Base Amount
33970 , p_source_33 IN NUMBER
33971 --Payables Encumbrance Upgrade Option
33972 , p_source_34 IN VARCHAR2
33973 --Invoice Exchange Date
33974 , p_source_36 IN DATE
33975 --Invoice Exchange Rate
33976 , p_source_37 IN NUMBER
33977 --Invoice Exchange Rate Type
33978 , p_source_38 IN VARCHAR2
33979 --Deferred Accounting End Date
33980 , p_source_39 IN DATE
33981 --Deferred Accounting Option
33982 , p_source_40 IN VARCHAR2
33983 --Deferred Accounting Start Date
33984 , p_source_41 IN DATE
33985 --Override Accounted Amount Indicator
33986 , p_source_42 IN VARCHAR2
33987 , p_source_42_meaning IN VARCHAR2
33988 --Invoice Supplier Identifier
33989 , p_source_43 IN NUMBER
33990 --Invoice Supplier Site Identifier
33991 , p_source_44 IN NUMBER
33992 --Third Party Type
33993 , p_source_45 IN VARCHAR2
33994 --Parent Reversal Identifier
33995 , p_source_46 IN NUMBER
33996 --Invoice Distribution Statistical Amount
33997 , p_source_47 IN NUMBER
33998 --Invoice Distribution Tax Line Identifier
33999 , p_source_48 IN NUMBER
34000 --Invoice Distribution Tax Distribution Identifier from Tax
34001 , p_source_49 IN NUMBER
34002 --Invoice Distribution Summary Tax Line Identifier
34003 , p_source_50 IN NUMBER
34004 --Payables Upgrade Credit Encumbrance Type Identifier
34005 , p_source_51 IN NUMBER
34006 --Payables Upgrade Debit Encumbrance Type Identifier
34007 , p_source_52 IN NUMBER
34008 --Invoice Distribution Amount
34009 , p_source_55 IN NUMBER
34010 --Business Flow Purchasing Application Identifier
34011 , p_source_64 IN NUMBER
34012 --Business Flow Purchase Order Distribution Type
34013 , p_source_65 IN VARCHAR2
34014 --Business Flow Purchase Order Entity Code
34015 , p_source_66 IN VARCHAR2
34016 --Business Flow Purchase Order Distribution Identifier
34017 , p_source_67 IN NUMBER
34018 --Business Flow Purchasing Document Identifier
34019 , p_source_68 IN NUMBER
34020 --Federal Paid Unexpended Obligation Amount
34021 , p_source_69 IN NUMBER
34022 )
34023 IS
34024
34025 l_component_type VARCHAR2(80);
34026 l_component_code VARCHAR2(30);
34027 l_component_type_code VARCHAR2(1);
34028 l_component_appl_id INTEGER;
34029 l_amb_context_code VARCHAR2(30);
34030 l_entity_code VARCHAR2(30);
34031 l_event_class_code VARCHAR2(30);
34032 l_ae_header_id NUMBER;
34033 l_event_type_code VARCHAR2(30);
34034 l_line_definition_code VARCHAR2(30);
34035 l_line_definition_owner_code VARCHAR2(1);
34036 --
34037 -- adr variables
34038 l_segment VARCHAR2(30);
34039 l_ccid NUMBER;
34040 l_adr_transaction_coa_id NUMBER;
34041 l_adr_accounting_coa_id NUMBER;
34042 l_adr_flexfield_segment_code VARCHAR2(30);
34043 l_adr_flex_value_set_id NUMBER;
34044 l_adr_value_type_code VARCHAR2(30);
34045 l_adr_value_combination_id NUMBER;
34046 l_adr_value_segment_code VARCHAR2(30);
34047
34048 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34049 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34050 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34051 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34052
34053 -- 4262811 Variables ------------------------------------------------------------------------------------------
34054 l_entered_amt_idx NUMBER;
34055 l_accted_amt_idx NUMBER;
34056 l_acc_rev_flag VARCHAR2(1);
34057 l_accrual_line_num NUMBER;
34058 l_tmp_amt NUMBER;
34059 l_acc_rev_natural_side_code VARCHAR2(1);
34060
34061 l_num_entries NUMBER;
34062 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34063 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34064 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34065 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34066 l_recog_line_1 NUMBER;
34067 l_recog_line_2 NUMBER;
34068
34069 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34070 l_bflow_applied_to_amt NUMBER; -- 5132302
34071 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34072
34073 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34074
34075 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34076 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34077
34078 ---------------------------------------------------------------------------------------------------------------
34079
34080
34081 --
34082 -- bulk performance
34083 --
34084 l_balance_type_code VARCHAR2(1);
34085 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34086 l_log_module VARCHAR2(240);
34087
34088 --
34089 -- Upgrade strategy
34090 --
34091 l_actual_upg_option VARCHAR2(1);
34092 l_enc_upg_option VARCHAR2(1);
34093
34094 --
34095 BEGIN
34096 --
34097 IF g_log_enabled THEN
34098 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
34099 END IF;
34100 --
34101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34102
34103 trace
34104 (p_msg => 'BEGIN of AcctLineType_57'
34105 ,p_level => C_LEVEL_PROCEDURE
34106 ,p_module => l_log_module);
34107
34108 END IF;
34109 --
34110 l_component_type := 'AMB_JLT';
34111 l_component_code := 'FV_AP_PAID_PYA_REV_DR';
34112 l_component_type_code := 'S';
34113 l_component_appl_id := 200;
34114 l_amb_context_code := 'DEFAULT';
34115 l_entity_code := 'AP_INVOICES';
34116 l_event_class_code := 'INVOICES';
34117 l_event_type_code := 'INVOICES_ALL';
34118 l_line_definition_owner_code := 'S';
34119 l_line_definition_code := 'FV_AP_ACCRUAL_INVOICES_ALL';
34120 --
34121 l_balance_type_code := 'A';
34122 l_segment := NULL;
34123 l_ccid := NULL;
34124 l_adr_transaction_coa_id := NULL;
34125 l_adr_accounting_coa_id := NULL;
34126 l_adr_flexfield_segment_code := NULL;
34127 l_adr_flex_value_set_id := NULL;
34128 l_adr_value_type_code := NULL;
34129 l_adr_value_combination_id := NULL;
34130 l_adr_value_segment_code := NULL;
34131
34132 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34133 l_bflow_class_code := ''; -- 4219869 Business Flow
34134 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34135 l_budgetary_control_flag := 'Y';
34136
34137 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34138 l_bflow_applied_to_amt := NULL; -- 5132302
34139 l_entered_amt_idx := NULL; -- 4262811
34140 l_accted_amt_idx := NULL; -- 4262811
34141 l_acc_rev_flag := NULL; -- 4262811
34142 l_accrual_line_num := NULL; -- 4262811
34143 l_tmp_amt := NULL; -- 4262811
34144 --
34145
34146 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34147 l_balance_type_code <> 'B' THEN
34148 IF p_source_12 IS NOT NULL AND
34149 (NVL(p_source_8,'
34150 ') = 'ITEM' OR
34151 (NVL(p_source_8,'
34152 ') = 'IPV' AND
34153 p_source_10 < 0) OR
34154 NVL(p_source_8,'
34155 ') = 'ACCRUAL') AND
34156 NVL(p_source_11,'
34157 ') <> 'Y' AND
34158 NVL(p_source_9,'
34159 ') = 'Y' AND
34160 NVL(p_source_5,'
34161 ') = 'Expired'
34162 THEN
34163
34164 --
34165 XLA_AE_LINES_PKG.SetNewLine;
34166
34167 p_balance_type_code := l_balance_type_code;
34168 -- set the flag so later we will know whether the gain loss line needs to be created
34169
34170 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34171 p_actual_flag :='A';
34172 END IF;
34173
34174 --
34175 -- bulk performance
34176 --
34177 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34178 p_header_num => 0); -- 4262811
34179 --
34180 -- set accounting line options
34181 --
34182 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34183 p_natural_side_code => 'D'
34184 , p_gain_or_loss_flag => 'N'
34185 , p_gl_transfer_mode_code => 'S'
34186 , p_acct_entry_type_code => 'A'
34187 , p_switch_side_flag => 'N'
34188 , p_merge_duplicate_code => 'N'
34189 );
34190 --
34191 l_acc_rev_natural_side_code := 'C'; -- 4262811
34192 --
34193 --
34194 -- set accounting line type info
34195 --
34196 xla_ae_lines_pkg.SetAcctLineType
34197 (p_component_type => l_component_type
34198 ,p_event_type_code => l_event_type_code
34199 ,p_line_definition_owner_code => l_line_definition_owner_code
34200 ,p_line_definition_code => l_line_definition_code
34201 ,p_accounting_line_code => l_component_code
34202 ,p_accounting_line_type_code => l_component_type_code
34203 ,p_accounting_line_appl_id => l_component_appl_id
34204 ,p_amb_context_code => l_amb_context_code
34205 ,p_entity_code => l_entity_code
34206 ,p_event_class_code => l_event_class_code);
34207 --
34208 -- set accounting class
34209 --
34210 xla_ae_lines_pkg.SetAcctClass(
34211 p_accounting_class_code => 'ACCOUNTSPAYABLE'
34212 , p_ae_header_id => l_ae_header_id
34213 );
34214
34215 --
34216 -- set rounding class
34217 --
34218 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34219 'ACCOUNTSPAYABLE';
34220
34221 --
34222 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34223 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34224 --
34225 -- bulk performance
34226 --
34227 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34228
34229 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34230 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34231
34232 -- 4955764
34233 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34234 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34235
34236 -- 4458381 Public Sector Enh
34237
34238 --
34239 -- set accounting attributes for the line type
34240 --
34241 l_entered_amt_idx := 24;
34242 l_accted_amt_idx := 29;
34243 l_bflow_applied_to_amt_idx := 7; -- 5132302
34244 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34245 l_rec_acct_attrs.array_char_value(1) := p_source_15;
34246 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
34247 l_rec_acct_attrs.array_num_value(2) :=
34248 xla_ae_sources_pkg.GetSystemSourceNum(
34249 p_source_code => 'XLA_EVENT_APPL_ID'
34250 , p_source_type_code => 'Y'
34251 , p_source_application_id => 602
34252 );
34253 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
34254 l_rec_acct_attrs.array_char_value(3) := p_source_17;
34255 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
34256 l_rec_acct_attrs.array_char_value(4) :=
34257 xla_ae_sources_pkg.GetSystemSourceChar(
34258 p_source_code => 'XLA_ENTITY_CODE'
34259 , p_source_type_code => 'Y'
34260 , p_source_application_id => 602
34261 );
34262 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
34263 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
34264 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
34265 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
34266 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
34267 l_rec_acct_attrs.array_num_value(7) := p_source_55;
34268 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
34269 l_rec_acct_attrs.array_num_value(8) := p_source_64;
34270 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34271 l_rec_acct_attrs.array_char_value(9) := p_source_65;
34272 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
34273 l_rec_acct_attrs.array_char_value(10) := p_source_66;
34274 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
34275 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_67);
34276 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34277 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_68);
34278 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
34279 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_26);
34280 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
34281 l_rec_acct_attrs.array_char_value(14) := p_source_17;
34282 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
34283 l_rec_acct_attrs.array_num_value(15) := p_source_27;
34284 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
34285 l_rec_acct_attrs.array_num_value(16) := p_source_28;
34286 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
34287 l_rec_acct_attrs.array_char_value(17) := p_source_29;
34288 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
34289 l_rec_acct_attrs.array_num_value(18) := p_source_30;
34290 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
34291 l_rec_acct_attrs.array_num_value(19) := p_source_31;
34292 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
34293 l_rec_acct_attrs.array_num_value(20) := p_source_32;
34294 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
34295 l_rec_acct_attrs.array_char_value(21) := p_source_29;
34296 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
34297 l_rec_acct_attrs.array_num_value(22) := p_source_33;
34298 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
34299 l_rec_acct_attrs.array_char_value(23) := p_source_34;
34300 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
34301 l_rec_acct_attrs.array_num_value(24) := p_source_69;
34302 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
34303 l_rec_acct_attrs.array_char_value(25) := p_source_29;
34304 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
34305 l_rec_acct_attrs.array_date_value(26) := p_source_36;
34306 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
34307 l_rec_acct_attrs.array_num_value(27) := p_source_37;
34308 l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
34309 l_rec_acct_attrs.array_char_value(28) := p_source_38;
34310 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
34311 l_rec_acct_attrs.array_num_value(29) := p_source_69;
34312 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
34313 l_rec_acct_attrs.array_date_value(30) := p_source_39;
34314 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
34315 l_rec_acct_attrs.array_char_value(31) := p_source_40;
34316 l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
34317 l_rec_acct_attrs.array_date_value(32) := p_source_41;
34318 l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
34319 l_rec_acct_attrs.array_char_value(33) := p_source_42;
34320 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
34321 l_rec_acct_attrs.array_num_value(34) := p_source_43;
34322 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
34323 l_rec_acct_attrs.array_num_value(35) := p_source_44;
34324 l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
34325 l_rec_acct_attrs.array_char_value(36) := p_source_45;
34326 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
34327 l_rec_acct_attrs.array_num_value(37) := to_char(p_source_46);
34328 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
34329 l_rec_acct_attrs.array_char_value(38) := p_source_17;
34330 l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
34331 l_rec_acct_attrs.array_num_value(39) := p_source_47;
34332 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
34333 l_rec_acct_attrs.array_num_value(40) := p_source_48;
34334 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
34335 l_rec_acct_attrs.array_num_value(41) := p_source_49;
34336 l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
34337 l_rec_acct_attrs.array_num_value(42) := p_source_50;
34338 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
34339 l_rec_acct_attrs.array_num_value(43) := p_source_51;
34340 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
34341 l_rec_acct_attrs.array_num_value(44) := p_source_52;
34342
34343 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34344 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34345
34346 ---------------------------------------------------------------------------------------------------------------
34347 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34348 ---------------------------------------------------------------------------------------------------------------
34349 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34350
34351 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34352 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34353
34354 IF xla_accounting_cache_pkg.GetValueChar
34355 (p_source_code => 'LEDGER_CATEGORY_CODE'
34356 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34357 AND l_bflow_method_code = 'PRIOR_ENTRY'
34358 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34359 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34360 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34361 )
34362 THEN
34363 xla_ae_lines_pkg.BflowUpgEntry
34364 (p_business_method_code => l_bflow_method_code
34365 ,p_business_class_code => l_bflow_class_code
34366 ,p_balance_type => l_balance_type_code);
34367 ELSE
34368 NULL;
34369 -- No business flow processing for business flow method of NONE.
34370 END IF;
34371
34372 --
34373 -- call analytical criteria
34374 --
34375
34376 --
34377 -- call description
34378 --
34379
34380 xla_ae_lines_pkg.SetLineDescription(
34381 p_ae_header_id => l_ae_header_id
34382 ,p_description => Description_2 (
34383 p_application_id => p_application_id
34384 , p_ae_header_id => l_ae_header_id
34385 , p_source_1 => p_source_1
34386 )
34387 );
34388
34389
34390 --
34391 -- call ADRs
34392 -- Bug 4922099
34393 --
34394 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34395 (NVL(l_actual_upg_option, 'N') = 'O') OR
34396 (NVL(l_enc_upg_option, 'N') = 'O')
34397 )
34398 THEN
34399 NULL;
34400 --
34401 --
34402
34403 l_ccid := AcctDerRule_3(
34404 p_application_id => p_application_id
34405 , p_ae_header_id => l_ae_header_id
34406 , p_source_2 => p_source_2
34407 , x_transaction_coa_id => l_adr_transaction_coa_id
34408 , x_accounting_coa_id => l_adr_accounting_coa_id
34409 , x_value_type_code => l_adr_value_type_code
34410 , p_side => 'NA'
34411 );
34412
34413 xla_ae_lines_pkg.set_ccid(
34414 p_code_combination_id => l_ccid
34415 , p_value_type_code => l_adr_value_type_code
34416 , p_transaction_coa_id => l_adr_transaction_coa_id
34417 , p_accounting_coa_id => l_adr_accounting_coa_id
34418 , p_adr_code => 'AP_INVOICE_DIST'
34419 , p_adr_type_code => 'S'
34420 , p_component_type => l_component_type
34421 , p_component_code => l_component_code
34422 , p_component_type_code => l_component_type_code
34423 , p_component_appl_id => l_component_appl_id
34424 , p_amb_context_code => l_amb_context_code
34425 , p_side => 'NA'
34426 );
34427
34428
34429 l_segment := AcctDerRule_9(
34430 p_application_id => p_application_id
34431 , p_ae_header_id => l_ae_header_id
34432 , x_transaction_coa_id => l_adr_transaction_coa_id
34433 , x_accounting_coa_id => l_adr_accounting_coa_id
34434 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34435 , x_flex_value_set_id => l_adr_flex_value_set_id
34436 , x_value_type_code => l_adr_value_type_code
34437 , x_value_combination_id => l_adr_value_combination_id
34438 , x_value_segment_code => l_adr_value_segment_code
34439 , p_side => 'NA'
34440 , p_override_seg_flag => 'Y'
34441 );
34442
34443 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34444
34445 xla_ae_lines_pkg.set_segment(
34446 p_to_segment_code => 'GL_ACCOUNT'
34447 , p_segment_value => l_segment
34448 , p_from_segment_code => l_adr_value_segment_code
34449 , p_from_combination_id => l_adr_value_combination_id
34450 , p_value_type_code => l_adr_value_type_code
34451 , p_transaction_coa_id => l_adr_transaction_coa_id
34452 , p_accounting_coa_id => l_adr_accounting_coa_id
34453 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34454 , p_flex_value_set_id => l_adr_flex_value_set_id
34455 , p_adr_code => 'FV_480101_PAYABLES'
34456 , p_adr_type_code => 'S'
34457 , p_component_type => l_component_type
34458 , p_component_code => l_component_code
34459 , p_component_type_code => l_component_type_code
34460 , p_component_appl_id => l_component_appl_id
34461 , p_amb_context_code => l_amb_context_code
34462 , p_entity_code => 'AP_INVOICES'
34463 , p_event_class_code => 'INVOICES'
34464 , p_side => 'NA'
34465 );
34466
34467 END IF;
34468
34469 --
34470 --
34471 END IF;
34472 --
34473 -- Bug 4922099
34474 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34475 (NVL(l_enc_upg_option, 'N') = 'O')
34476 ) AND
34477 (l_bflow_method_code = 'PRIOR_ENTRY')
34478 )
34479 THEN
34480 IF
34481 --
34482 1 = 2
34483 --
34484 THEN
34485 xla_accounting_err_pkg.build_message
34486 (p_appli_s_name => 'XLA'
34487 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34488 ,p_token_1 => 'LINE_NUMBER'
34489 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34490 ,p_token_2 => 'LINE_TYPE_NAME'
34491 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34492 l_component_type
34493 ,l_component_code
34494 ,l_component_type_code
34495 ,l_component_appl_id
34496 ,l_amb_context_code
34497 ,l_entity_code
34498 ,l_event_class_code
34499 )
34500 ,p_token_3 => 'OWNER'
34501 ,p_value_3 => xla_lookups_pkg.get_meaning(
34502 p_lookup_type => 'XLA_OWNER_TYPE'
34503 ,p_lookup_code => l_component_type_code
34504 )
34505 ,p_token_4 => 'PRODUCT_NAME'
34506 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34507 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34508 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34509 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34510 ,p_ae_header_id => NULL
34511 );
34512
34513 IF (C_LEVEL_ERROR>= g_log_level) THEN
34514 trace
34515 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34516 ,p_level => C_LEVEL_ERROR
34517 ,p_module => l_log_module);
34518 END IF;
34519 END IF;
34520 END IF;
34521 --
34522 --
34523 ------------------------------------------------------------------------------------------------
34524 -- 4219869 Business Flow
34525 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34526 -- Prior Entry. Currently, the following code is always generated.
34527 ------------------------------------------------------------------------------------------------
34528 XLA_AE_LINES_PKG.ValidateCurrentLine;
34529
34530 ------------------------------------------------------------------------------------
34531 -- 4219869 Business Flow
34532 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34533 ------------------------------------------------------------------------------------
34534 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34535
34536 ----------------------------------------------------------------------------------
34537 -- 4219869 Business Flow
34538 -- Update journal entry status -- Need to generate this within IF <condition>
34539 ----------------------------------------------------------------------------------
34540 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34541 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34542 ,p_balance_type_code => l_balance_type_code
34543 );
34544
34545 -------------------------------------------------------------------------------------------
34546 -- 4262811 - Generate the Accrual Reversal lines
34547 -------------------------------------------------------------------------------------------
34548 BEGIN
34549 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34550 (g_array_event(p_event_id).array_value_num('header_index'));
34551 IF l_acc_rev_flag IS NULL THEN
34552 l_acc_rev_flag := 'N';
34553 END IF;
34554 EXCEPTION
34555 WHEN OTHERS THEN
34556 l_acc_rev_flag := 'N';
34557 END;
34558 --
34559 IF (l_acc_rev_flag = 'Y') THEN
34560
34561 -- 4645092 ------------------------------------------------------------------------------
34562 -- To allow MPA report to determine if it should generate report process
34563 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34564 ------------------------------------------------------------------------------------------
34565
34566 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34567 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34568 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34569 -- call ADRs
34570 -- Bug 4922099
34571 --
34572 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34573 (NVL(l_actual_upg_option, 'N') = 'O') OR
34574 (NVL(l_enc_upg_option, 'N') = 'O')
34575 )
34576 THEN
34577 NULL;
34578 --
34579 --
34580
34581 l_ccid := AcctDerRule_3(
34582 p_application_id => p_application_id
34583 , p_ae_header_id => l_ae_header_id
34584 , p_source_2 => p_source_2
34585 , x_transaction_coa_id => l_adr_transaction_coa_id
34586 , x_accounting_coa_id => l_adr_accounting_coa_id
34587 , x_value_type_code => l_adr_value_type_code
34588 , p_side => 'NA'
34589 );
34590
34591 xla_ae_lines_pkg.set_ccid(
34592 p_code_combination_id => l_ccid
34593 , p_value_type_code => l_adr_value_type_code
34594 , p_transaction_coa_id => l_adr_transaction_coa_id
34595 , p_accounting_coa_id => l_adr_accounting_coa_id
34596 , p_adr_code => 'AP_INVOICE_DIST'
34597 , p_adr_type_code => 'S'
34598 , p_component_type => l_component_type
34599 , p_component_code => l_component_code
34600 , p_component_type_code => l_component_type_code
34601 , p_component_appl_id => l_component_appl_id
34602 , p_amb_context_code => l_amb_context_code
34603 , p_side => 'NA'
34604 );
34605
34606
34607 l_segment := AcctDerRule_9(
34608 p_application_id => p_application_id
34609 , p_ae_header_id => l_ae_header_id
34610 , x_transaction_coa_id => l_adr_transaction_coa_id
34611 , x_accounting_coa_id => l_adr_accounting_coa_id
34612 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34613 , x_flex_value_set_id => l_adr_flex_value_set_id
34614 , x_value_type_code => l_adr_value_type_code
34615 , x_value_combination_id => l_adr_value_combination_id
34616 , x_value_segment_code => l_adr_value_segment_code
34617 , p_side => 'NA'
34618 , p_override_seg_flag => 'Y'
34619 );
34620
34621 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34622
34623 xla_ae_lines_pkg.set_segment(
34624 p_to_segment_code => 'GL_ACCOUNT'
34625 , p_segment_value => l_segment
34626 , p_from_segment_code => l_adr_value_segment_code
34627 , p_from_combination_id => l_adr_value_combination_id
34628 , p_value_type_code => l_adr_value_type_code
34629 , p_transaction_coa_id => l_adr_transaction_coa_id
34630 , p_accounting_coa_id => l_adr_accounting_coa_id
34631 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34632 , p_flex_value_set_id => l_adr_flex_value_set_id
34633 , p_adr_code => 'FV_480101_PAYABLES'
34634 , p_adr_type_code => 'S'
34635 , p_component_type => l_component_type
34636 , p_component_code => l_component_code
34637 , p_component_type_code => l_component_type_code
34638 , p_component_appl_id => l_component_appl_id
34639 , p_amb_context_code => l_amb_context_code
34640 , p_entity_code => 'AP_INVOICES'
34641 , p_event_class_code => 'INVOICES'
34642 , p_side => 'NA'
34643 );
34644
34645 END IF;
34646
34647 --
34648 --
34649 END IF;
34650
34651 --
34652 -- Update the line information that should be overwritten
34653 --
34654 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34655 p_header_num => 1);
34656 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34657
34658 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34659
34660 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34661 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34662 END IF;
34663
34664 --
34665 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34666 --
34667 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34668 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34669 ELSE
34670 ---------------------------------------------------------------------------------------------------
34671 -- 4262811a Switch Sign
34672 ---------------------------------------------------------------------------------------------------
34673 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34674 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34675 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34676 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34677 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34678 -- 5132302
34679 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34680 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34681
34682 END IF;
34683
34684 -- 4955764
34685 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34686 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34687
34688
34689 XLA_AE_LINES_PKG.ValidateCurrentLine;
34690 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34691
34692 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34693 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34694 ,p_balance_type_code => l_balance_type_code);
34695
34696 END IF;
34697
34698 -----------------------------------------------------------------------------------------
34699 -- 4262811 Multiperiod Accounting
34700 -----------------------------------------------------------------------------------------
34701 -- No MPA option is assigned.
34702
34703
34704 END IF;
34705 END IF;
34706 --
34707
34708 --
34709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34710 trace
34711 (p_msg => 'END of AcctLineType_57'
34712 ,p_level => C_LEVEL_PROCEDURE
34713 ,p_module => l_log_module);
34714 END IF;
34715 --
34716 EXCEPTION
34717 WHEN xla_exceptions_pkg.application_exception THEN
34718 RAISE;
34719 WHEN OTHERS THEN
34720 xla_exceptions_pkg.raise_message
34721 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_57');
34722 END AcctLineType_57;
34723 --
34724
34725 ---------------------------------------
34726 --
34727 -- PRIVATE FUNCTION
34728 -- AcctLineType_58
34729 --
34730 ---------------------------------------
34731 PROCEDURE AcctLineType_58 (
34732 p_application_id IN NUMBER
34733 ,p_event_id IN NUMBER
34734 ,p_calculate_acctd_flag IN VARCHAR2
34735 ,p_calculate_g_l_flag IN VARCHAR2
34736 ,p_actual_flag IN OUT VARCHAR2
34737 ,p_balance_type_code OUT VARCHAR2
34738 ,p_gain_or_loss_ref OUT VARCHAR2
34739
34740 --Invoice Distribution Description
34741 , p_source_1 IN VARCHAR2
34742 --Invoice Distribution Account
34743 , p_source_2 IN NUMBER
34744 --Invoice Type
34745 , p_source_13 IN VARCHAR2
34746 , p_source_13_meaning IN VARCHAR2
34747 --Accounting Reversal Indicator
34748 , p_source_15 IN VARCHAR2
34749 --Distribution Link Type
34750 , p_source_17 IN VARCHAR2
34751 --Allocation to Main Distribution Identifier
34752 , p_source_19 IN NUMBER
34753 --Invoice Identifier
34754 , p_source_20 IN NUMBER
34755 --Business Flow Accounts Payable Application Identifier
34756 , p_source_21 IN NUMBER
34757 --Business Flow Invoice Distribution Type
34758 , p_source_22 IN VARCHAR2
34759 --Business Flow Invoice Entity Code
34760 , p_source_23 IN VARCHAR2
34761 --Business Flow Invoice Distribution Identifier
34762 , p_source_24 IN NUMBER
34763 --Business Flow Invoice Identifier
34764 , p_source_25 IN NUMBER
34765 --Invoice Distribution Identifier
34766 , p_source_26 IN NUMBER
34767 --Payables Encumbrance Upgrade Credit Account
34768 , p_source_27 IN NUMBER
34769 --Payables Encumbrance Upgrade Credit Amount
34770 , p_source_28 IN NUMBER
34771 --Invoice Currency Code
34772 , p_source_29 IN VARCHAR2
34773 --Payables Encumbrance Upgrade Credit Base Amount
34774 , p_source_30 IN NUMBER
34775 --Payables Encumbrance Upgrade Debit Account
34776 , p_source_31 IN NUMBER
34777 --Payables Encumbrance Upgrade Debit Amount
34778 , p_source_32 IN NUMBER
34779 --Payables Encumbrance Upgrade Debit Base Amount
34780 , p_source_33 IN NUMBER
34781 --Payables Encumbrance Upgrade Option
34782 , p_source_34 IN VARCHAR2
34783 --Invoice Exchange Date
34784 , p_source_36 IN DATE
34785 --Invoice Exchange Rate
34786 , p_source_37 IN NUMBER
34787 --Invoice Exchange Rate Type
34788 , p_source_38 IN VARCHAR2
34789 --Deferred Accounting End Date
34790 , p_source_39 IN DATE
34791 --Deferred Accounting Option
34792 , p_source_40 IN VARCHAR2
34793 --Deferred Accounting Start Date
34794 , p_source_41 IN DATE
34795 --Override Accounted Amount Indicator
34796 , p_source_42 IN VARCHAR2
34797 , p_source_42_meaning IN VARCHAR2
34798 --Invoice Supplier Identifier
34799 , p_source_43 IN NUMBER
34800 --Invoice Supplier Site Identifier
34801 , p_source_44 IN NUMBER
34802 --Third Party Type
34803 , p_source_45 IN VARCHAR2
34804 --Parent Reversal Identifier
34805 , p_source_46 IN NUMBER
34806 --Invoice Distribution Statistical Amount
34807 , p_source_47 IN NUMBER
34808 --Invoice Distribution Tax Line Identifier
34809 , p_source_48 IN NUMBER
34810 --Invoice Distribution Tax Distribution Identifier from Tax
34811 , p_source_49 IN NUMBER
34812 --Invoice Distribution Summary Tax Line Identifier
34813 , p_source_50 IN NUMBER
34814 --Payables Upgrade Credit Encumbrance Type Identifier
34815 , p_source_51 IN NUMBER
34816 --Payables Upgrade Debit Encumbrance Type Identifier
34817 , p_source_52 IN NUMBER
34818 --Invoice Distribution Amount
34819 , p_source_55 IN NUMBER
34820 --Invoice Distribution Ledger Amount
34821 , p_source_56 IN NUMBER
34822 --POD_PO_DISTRIBUTION_ID
34823 , p_source_70 IN NUMBER
34824 )
34825 IS
34826
34827 l_component_type VARCHAR2(80);
34828 l_component_code VARCHAR2(30);
34829 l_component_type_code VARCHAR2(1);
34830 l_component_appl_id INTEGER;
34831 l_amb_context_code VARCHAR2(30);
34832 l_entity_code VARCHAR2(30);
34833 l_event_class_code VARCHAR2(30);
34834 l_ae_header_id NUMBER;
34835 l_event_type_code VARCHAR2(30);
34836 l_line_definition_code VARCHAR2(30);
34837 l_line_definition_owner_code VARCHAR2(1);
34838 --
34839 -- adr variables
34840 l_segment VARCHAR2(30);
34841 l_ccid NUMBER;
34842 l_adr_transaction_coa_id NUMBER;
34843 l_adr_accounting_coa_id NUMBER;
34844 l_adr_flexfield_segment_code VARCHAR2(30);
34845 l_adr_flex_value_set_id NUMBER;
34846 l_adr_value_type_code VARCHAR2(30);
34847 l_adr_value_combination_id NUMBER;
34848 l_adr_value_segment_code VARCHAR2(30);
34849
34850 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34851 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34852 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34853 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34854
34855 -- 4262811 Variables ------------------------------------------------------------------------------------------
34856 l_entered_amt_idx NUMBER;
34857 l_accted_amt_idx NUMBER;
34858 l_acc_rev_flag VARCHAR2(1);
34859 l_accrual_line_num NUMBER;
34860 l_tmp_amt NUMBER;
34861 l_acc_rev_natural_side_code VARCHAR2(1);
34862
34863 l_num_entries NUMBER;
34864 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34865 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34866 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34867 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34868 l_recog_line_1 NUMBER;
34869 l_recog_line_2 NUMBER;
34870
34871 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34872 l_bflow_applied_to_amt NUMBER; -- 5132302
34873 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34874
34875 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34876
34877 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34878 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34879
34880 ---------------------------------------------------------------------------------------------------------------
34881
34882
34883 --
34884 -- bulk performance
34885 --
34886 l_balance_type_code VARCHAR2(1);
34887 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34888 l_log_module VARCHAR2(240);
34889
34890 --
34891 -- Upgrade strategy
34892 --
34893 l_actual_upg_option VARCHAR2(1);
34894 l_enc_upg_option VARCHAR2(1);
34895
34896 --
34897 BEGIN
34898 --
34899 IF g_log_enabled THEN
34900 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
34901 END IF;
34902 --
34903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34904
34905 trace
34906 (p_msg => 'BEGIN of AcctLineType_58'
34907 ,p_level => C_LEVEL_PROCEDURE
34908 ,p_module => l_log_module);
34909
34910 END IF;
34911 --
34912 l_component_type := 'AMB_JLT';
34913 l_component_code := 'FV_PREPAYMENT_INV_CR';
34914 l_component_type_code := 'S';
34915 l_component_appl_id := 200;
34916 l_amb_context_code := 'DEFAULT';
34917 l_entity_code := 'AP_INVOICES';
34918 l_event_class_code := 'PREPAYMENTS';
34919 l_event_type_code := 'PREPAYMENTS_ALL';
34920 l_line_definition_owner_code := 'S';
34921 l_line_definition_code := 'FV_AP_PREPAYMENTS_ALL';
34922 --
34923 l_balance_type_code := 'A';
34924 l_segment := NULL;
34925 l_ccid := NULL;
34926 l_adr_transaction_coa_id := NULL;
34927 l_adr_accounting_coa_id := NULL;
34928 l_adr_flexfield_segment_code := NULL;
34929 l_adr_flex_value_set_id := NULL;
34930 l_adr_value_type_code := NULL;
34931 l_adr_value_combination_id := NULL;
34932 l_adr_value_segment_code := NULL;
34933
34934 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34935 l_bflow_class_code := ''; -- 4219869 Business Flow
34936 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34937 l_budgetary_control_flag := 'Y';
34938
34939 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34940 l_bflow_applied_to_amt := NULL; -- 5132302
34941 l_entered_amt_idx := NULL; -- 4262811
34942 l_accted_amt_idx := NULL; -- 4262811
34943 l_acc_rev_flag := NULL; -- 4262811
34944 l_accrual_line_num := NULL; -- 4262811
34945 l_tmp_amt := NULL; -- 4262811
34946 --
34947
34948 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34949 l_balance_type_code <> 'B' THEN
34950 IF p_source_70 IS NULL AND
34951 NVL(p_source_13,'
34952 ') = 'PREPAYMENT'
34953 THEN
34954
34955 --
34956 XLA_AE_LINES_PKG.SetNewLine;
34957
34958 p_balance_type_code := l_balance_type_code;
34959 -- set the flag so later we will know whether the gain loss line needs to be created
34960
34961 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34962 p_actual_flag :='A';
34963 END IF;
34964
34965 --
34966 -- bulk performance
34967 --
34968 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34969 p_header_num => 0); -- 4262811
34970 --
34971 -- set accounting line options
34972 --
34973 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34974 p_natural_side_code => 'C'
34975 , p_gain_or_loss_flag => 'N'
34976 , p_gl_transfer_mode_code => 'S'
34977 , p_acct_entry_type_code => 'A'
34978 , p_switch_side_flag => 'N'
34979 , p_merge_duplicate_code => 'N'
34980 );
34981 --
34982 l_acc_rev_natural_side_code := 'D'; -- 4262811
34983 --
34984 --
34985 -- set accounting line type info
34986 --
34987 xla_ae_lines_pkg.SetAcctLineType
34988 (p_component_type => l_component_type
34989 ,p_event_type_code => l_event_type_code
34990 ,p_line_definition_owner_code => l_line_definition_owner_code
34991 ,p_line_definition_code => l_line_definition_code
34992 ,p_accounting_line_code => l_component_code
34993 ,p_accounting_line_type_code => l_component_type_code
34994 ,p_accounting_line_appl_id => l_component_appl_id
34995 ,p_amb_context_code => l_amb_context_code
34996 ,p_entity_code => l_entity_code
34997 ,p_event_class_code => l_event_class_code);
34998 --
34999 -- set accounting class
35000 --
35001 xla_ae_lines_pkg.SetAcctClass(
35002 p_accounting_class_code => 'ACCOUNTSPAYABLE'
35003 , p_ae_header_id => l_ae_header_id
35004 );
35005
35006 --
35007 -- set rounding class
35008 --
35009 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35010 'ACCOUNTSPAYABLE';
35011
35012 --
35013 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35014 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35015 --
35016 -- bulk performance
35017 --
35018 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35019
35020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35021 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35022
35023 -- 4955764
35024 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35025 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35026
35027 -- 4458381 Public Sector Enh
35028
35029 --
35030 -- set accounting attributes for the line type
35031 --
35032 l_entered_amt_idx := 23;
35033 l_accted_amt_idx := 28;
35034 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35035 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35036 l_rec_acct_attrs.array_char_value(1) := p_source_15;
35037 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35038 l_rec_acct_attrs.array_num_value(2) :=
35039 xla_ae_sources_pkg.GetSystemSourceNum(
35040 p_source_code => 'XLA_EVENT_APPL_ID'
35041 , p_source_type_code => 'Y'
35042 , p_source_application_id => 602
35043 );
35044 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35045 l_rec_acct_attrs.array_char_value(3) := p_source_17;
35046 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35047 l_rec_acct_attrs.array_char_value(4) :=
35048 xla_ae_sources_pkg.GetSystemSourceChar(
35049 p_source_code => 'XLA_ENTITY_CODE'
35050 , p_source_type_code => 'Y'
35051 , p_source_application_id => 602
35052 );
35053 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35054 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
35055 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35056 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
35057 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35058 l_rec_acct_attrs.array_num_value(7) := p_source_21;
35059 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35060 l_rec_acct_attrs.array_char_value(8) := p_source_22;
35061 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35062 l_rec_acct_attrs.array_char_value(9) := p_source_23;
35063 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35064 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
35065 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35066 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
35067 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35068 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
35069 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35070 l_rec_acct_attrs.array_char_value(13) := p_source_17;
35071 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35072 l_rec_acct_attrs.array_num_value(14) := p_source_27;
35073 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35074 l_rec_acct_attrs.array_num_value(15) := p_source_28;
35075 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35076 l_rec_acct_attrs.array_char_value(16) := p_source_29;
35077 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35078 l_rec_acct_attrs.array_num_value(17) := p_source_30;
35079 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35080 l_rec_acct_attrs.array_num_value(18) := p_source_31;
35081 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35082 l_rec_acct_attrs.array_num_value(19) := p_source_32;
35083 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35084 l_rec_acct_attrs.array_char_value(20) := p_source_29;
35085 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35086 l_rec_acct_attrs.array_num_value(21) := p_source_33;
35087 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35088 l_rec_acct_attrs.array_char_value(22) := p_source_34;
35089 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35090 l_rec_acct_attrs.array_num_value(23) := p_source_55;
35091 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35092 l_rec_acct_attrs.array_char_value(24) := p_source_29;
35093 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35094 l_rec_acct_attrs.array_date_value(25) := p_source_36;
35095 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35096 l_rec_acct_attrs.array_num_value(26) := p_source_37;
35097 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35098 l_rec_acct_attrs.array_char_value(27) := p_source_38;
35099 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35100 l_rec_acct_attrs.array_num_value(28) := p_source_56;
35101 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
35102 l_rec_acct_attrs.array_date_value(29) := p_source_39;
35103 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
35104 l_rec_acct_attrs.array_char_value(30) := p_source_40;
35105 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
35106 l_rec_acct_attrs.array_date_value(31) := p_source_41;
35107 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
35108 l_rec_acct_attrs.array_char_value(32) := p_source_42;
35109 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
35110 l_rec_acct_attrs.array_num_value(33) := p_source_43;
35111 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
35112 l_rec_acct_attrs.array_num_value(34) := p_source_44;
35113 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
35114 l_rec_acct_attrs.array_char_value(35) := p_source_45;
35115 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
35116 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
35117 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
35118 l_rec_acct_attrs.array_char_value(37) := p_source_17;
35119 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
35120 l_rec_acct_attrs.array_num_value(38) := p_source_47;
35121 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
35122 l_rec_acct_attrs.array_num_value(39) := p_source_48;
35123 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
35124 l_rec_acct_attrs.array_num_value(40) := p_source_49;
35125 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
35126 l_rec_acct_attrs.array_num_value(41) := p_source_50;
35127 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
35128 l_rec_acct_attrs.array_num_value(42) := p_source_51;
35129 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
35130 l_rec_acct_attrs.array_num_value(43) := p_source_52;
35131
35132 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35133 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35134
35135 ---------------------------------------------------------------------------------------------------------------
35136 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35137 ---------------------------------------------------------------------------------------------------------------
35138 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35139
35140 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35141 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35142
35143 IF xla_accounting_cache_pkg.GetValueChar
35144 (p_source_code => 'LEDGER_CATEGORY_CODE'
35145 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35146 AND l_bflow_method_code = 'PRIOR_ENTRY'
35147 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35148 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35149 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35150 )
35151 THEN
35152 xla_ae_lines_pkg.BflowUpgEntry
35153 (p_business_method_code => l_bflow_method_code
35154 ,p_business_class_code => l_bflow_class_code
35155 ,p_balance_type => l_balance_type_code);
35156 ELSE
35157 NULL;
35158 -- No business flow processing for business flow method of NONE.
35159 END IF;
35160
35161 --
35162 -- call analytical criteria
35163 --
35164
35165 --
35166 -- call description
35167 --
35168
35169 xla_ae_lines_pkg.SetLineDescription(
35170 p_ae_header_id => l_ae_header_id
35171 ,p_description => Description_2 (
35172 p_application_id => p_application_id
35173 , p_ae_header_id => l_ae_header_id
35174 , p_source_1 => p_source_1
35175 )
35176 );
35177
35178
35179 --
35180 -- call ADRs
35181 -- Bug 4922099
35182 --
35183 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35184 (NVL(l_actual_upg_option, 'N') = 'O') OR
35185 (NVL(l_enc_upg_option, 'N') = 'O')
35186 )
35187 THEN
35188 NULL;
35189 --
35190 --
35191
35192 l_ccid := AcctDerRule_3(
35193 p_application_id => p_application_id
35194 , p_ae_header_id => l_ae_header_id
35195 , p_source_2 => p_source_2
35196 , x_transaction_coa_id => l_adr_transaction_coa_id
35197 , x_accounting_coa_id => l_adr_accounting_coa_id
35198 , x_value_type_code => l_adr_value_type_code
35199 , p_side => 'NA'
35200 );
35201
35202 xla_ae_lines_pkg.set_ccid(
35203 p_code_combination_id => l_ccid
35204 , p_value_type_code => l_adr_value_type_code
35205 , p_transaction_coa_id => l_adr_transaction_coa_id
35206 , p_accounting_coa_id => l_adr_accounting_coa_id
35207 , p_adr_code => 'AP_INVOICE_DIST'
35208 , p_adr_type_code => 'S'
35209 , p_component_type => l_component_type
35210 , p_component_code => l_component_code
35211 , p_component_type_code => l_component_type_code
35212 , p_component_appl_id => l_component_appl_id
35213 , p_amb_context_code => l_amb_context_code
35214 , p_side => 'NA'
35215 );
35216
35217
35218 l_segment := AcctDerRule_11(
35219 p_application_id => p_application_id
35220 , p_ae_header_id => l_ae_header_id
35221 , x_transaction_coa_id => l_adr_transaction_coa_id
35222 , x_accounting_coa_id => l_adr_accounting_coa_id
35223 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35224 , x_flex_value_set_id => l_adr_flex_value_set_id
35225 , x_value_type_code => l_adr_value_type_code
35226 , x_value_combination_id => l_adr_value_combination_id
35227 , x_value_segment_code => l_adr_value_segment_code
35228 , p_side => 'NA'
35229 , p_override_seg_flag => 'Y'
35230 );
35231
35232 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35233
35234 xla_ae_lines_pkg.set_segment(
35235 p_to_segment_code => 'GL_ACCOUNT'
35236 , p_segment_value => l_segment
35237 , p_from_segment_code => l_adr_value_segment_code
35238 , p_from_combination_id => l_adr_value_combination_id
35239 , p_value_type_code => l_adr_value_type_code
35240 , p_transaction_coa_id => l_adr_transaction_coa_id
35241 , p_accounting_coa_id => l_adr_accounting_coa_id
35242 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35243 , p_flex_value_set_id => l_adr_flex_value_set_id
35244 , p_adr_code => 'FV_48X101_PAYABLES'
35245 , p_adr_type_code => 'S'
35246 , p_component_type => l_component_type
35247 , p_component_code => l_component_code
35248 , p_component_type_code => l_component_type_code
35249 , p_component_appl_id => l_component_appl_id
35250 , p_amb_context_code => l_amb_context_code
35251 , p_entity_code => 'AP_INVOICES'
35252 , p_event_class_code => 'PREPAYMENTS'
35253 , p_side => 'NA'
35254 );
35255
35256 END IF;
35257
35258 --
35259 --
35260 END IF;
35261 --
35262 -- Bug 4922099
35263 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35264 (NVL(l_enc_upg_option, 'N') = 'O')
35265 ) AND
35266 (l_bflow_method_code = 'PRIOR_ENTRY')
35267 )
35268 THEN
35269 IF
35270 --
35271 1 = 2
35272 --
35273 THEN
35274 xla_accounting_err_pkg.build_message
35275 (p_appli_s_name => 'XLA'
35276 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35277 ,p_token_1 => 'LINE_NUMBER'
35278 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35279 ,p_token_2 => 'LINE_TYPE_NAME'
35280 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35281 l_component_type
35282 ,l_component_code
35283 ,l_component_type_code
35284 ,l_component_appl_id
35285 ,l_amb_context_code
35286 ,l_entity_code
35287 ,l_event_class_code
35288 )
35289 ,p_token_3 => 'OWNER'
35290 ,p_value_3 => xla_lookups_pkg.get_meaning(
35291 p_lookup_type => 'XLA_OWNER_TYPE'
35292 ,p_lookup_code => l_component_type_code
35293 )
35294 ,p_token_4 => 'PRODUCT_NAME'
35295 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35296 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35297 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35298 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35299 ,p_ae_header_id => NULL
35300 );
35301
35302 IF (C_LEVEL_ERROR>= g_log_level) THEN
35303 trace
35304 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35305 ,p_level => C_LEVEL_ERROR
35306 ,p_module => l_log_module);
35307 END IF;
35308 END IF;
35309 END IF;
35310 --
35311 --
35312 ------------------------------------------------------------------------------------------------
35313 -- 4219869 Business Flow
35314 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35315 -- Prior Entry. Currently, the following code is always generated.
35316 ------------------------------------------------------------------------------------------------
35317 XLA_AE_LINES_PKG.ValidateCurrentLine;
35318
35319 ------------------------------------------------------------------------------------
35320 -- 4219869 Business Flow
35321 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35322 ------------------------------------------------------------------------------------
35323 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35324
35325 ----------------------------------------------------------------------------------
35326 -- 4219869 Business Flow
35327 -- Update journal entry status -- Need to generate this within IF <condition>
35328 ----------------------------------------------------------------------------------
35329 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35330 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35331 ,p_balance_type_code => l_balance_type_code
35332 );
35333
35334 -------------------------------------------------------------------------------------------
35335 -- 4262811 - Generate the Accrual Reversal lines
35336 -------------------------------------------------------------------------------------------
35337 BEGIN
35338 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35339 (g_array_event(p_event_id).array_value_num('header_index'));
35340 IF l_acc_rev_flag IS NULL THEN
35341 l_acc_rev_flag := 'N';
35342 END IF;
35343 EXCEPTION
35344 WHEN OTHERS THEN
35345 l_acc_rev_flag := 'N';
35346 END;
35347 --
35348 IF (l_acc_rev_flag = 'Y') THEN
35349
35350 -- 4645092 ------------------------------------------------------------------------------
35351 -- To allow MPA report to determine if it should generate report process
35352 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35353 ------------------------------------------------------------------------------------------
35354
35355 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35356 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35357 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35358 -- call ADRs
35359 -- Bug 4922099
35360 --
35361 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35362 (NVL(l_actual_upg_option, 'N') = 'O') OR
35363 (NVL(l_enc_upg_option, 'N') = 'O')
35364 )
35365 THEN
35366 NULL;
35367 --
35368 --
35369
35370 l_ccid := AcctDerRule_3(
35371 p_application_id => p_application_id
35372 , p_ae_header_id => l_ae_header_id
35373 , p_source_2 => p_source_2
35374 , x_transaction_coa_id => l_adr_transaction_coa_id
35375 , x_accounting_coa_id => l_adr_accounting_coa_id
35376 , x_value_type_code => l_adr_value_type_code
35377 , p_side => 'NA'
35378 );
35379
35380 xla_ae_lines_pkg.set_ccid(
35381 p_code_combination_id => l_ccid
35382 , p_value_type_code => l_adr_value_type_code
35383 , p_transaction_coa_id => l_adr_transaction_coa_id
35384 , p_accounting_coa_id => l_adr_accounting_coa_id
35385 , p_adr_code => 'AP_INVOICE_DIST'
35386 , p_adr_type_code => 'S'
35387 , p_component_type => l_component_type
35388 , p_component_code => l_component_code
35389 , p_component_type_code => l_component_type_code
35390 , p_component_appl_id => l_component_appl_id
35391 , p_amb_context_code => l_amb_context_code
35392 , p_side => 'NA'
35393 );
35394
35395
35396 l_segment := AcctDerRule_11(
35397 p_application_id => p_application_id
35398 , p_ae_header_id => l_ae_header_id
35399 , x_transaction_coa_id => l_adr_transaction_coa_id
35400 , x_accounting_coa_id => l_adr_accounting_coa_id
35401 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35402 , x_flex_value_set_id => l_adr_flex_value_set_id
35403 , x_value_type_code => l_adr_value_type_code
35404 , x_value_combination_id => l_adr_value_combination_id
35405 , x_value_segment_code => l_adr_value_segment_code
35406 , p_side => 'NA'
35407 , p_override_seg_flag => 'Y'
35408 );
35409
35410 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35411
35412 xla_ae_lines_pkg.set_segment(
35413 p_to_segment_code => 'GL_ACCOUNT'
35414 , p_segment_value => l_segment
35415 , p_from_segment_code => l_adr_value_segment_code
35416 , p_from_combination_id => l_adr_value_combination_id
35417 , p_value_type_code => l_adr_value_type_code
35418 , p_transaction_coa_id => l_adr_transaction_coa_id
35419 , p_accounting_coa_id => l_adr_accounting_coa_id
35420 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35421 , p_flex_value_set_id => l_adr_flex_value_set_id
35422 , p_adr_code => 'FV_48X101_PAYABLES'
35423 , p_adr_type_code => 'S'
35424 , p_component_type => l_component_type
35425 , p_component_code => l_component_code
35426 , p_component_type_code => l_component_type_code
35427 , p_component_appl_id => l_component_appl_id
35428 , p_amb_context_code => l_amb_context_code
35429 , p_entity_code => 'AP_INVOICES'
35430 , p_event_class_code => 'PREPAYMENTS'
35431 , p_side => 'NA'
35432 );
35433
35434 END IF;
35435
35436 --
35437 --
35438 END IF;
35439
35440 --
35441 -- Update the line information that should be overwritten
35442 --
35443 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35444 p_header_num => 1);
35445 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35446
35447 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35448
35449 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35450 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35451 END IF;
35452
35453 --
35454 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35455 --
35456 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35457 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35458 ELSE
35459 ---------------------------------------------------------------------------------------------------
35460 -- 4262811a Switch Sign
35461 ---------------------------------------------------------------------------------------------------
35462 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35463 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35464 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35465 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35466 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35467 -- 5132302
35468 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35469 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35470
35471 END IF;
35472
35473 -- 4955764
35474 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35475 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35476
35477
35478 XLA_AE_LINES_PKG.ValidateCurrentLine;
35479 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35480
35481 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35482 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35483 ,p_balance_type_code => l_balance_type_code);
35484
35485 END IF;
35486
35487 -----------------------------------------------------------------------------------------
35488 -- 4262811 Multiperiod Accounting
35489 -----------------------------------------------------------------------------------------
35490 -- No MPA option is assigned.
35491
35492
35493 END IF;
35494 END IF;
35495 --
35496
35497 --
35498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35499 trace
35500 (p_msg => 'END of AcctLineType_58'
35501 ,p_level => C_LEVEL_PROCEDURE
35502 ,p_module => l_log_module);
35503 END IF;
35504 --
35505 EXCEPTION
35506 WHEN xla_exceptions_pkg.application_exception THEN
35507 RAISE;
35508 WHEN OTHERS THEN
35509 xla_exceptions_pkg.raise_message
35510 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_58');
35511 END AcctLineType_58;
35512 --
35513
35514 ---------------------------------------
35515 --
35516 -- PRIVATE FUNCTION
35517 -- AcctLineType_59
35518 --
35519 ---------------------------------------
35520 PROCEDURE AcctLineType_59 (
35521 p_application_id IN NUMBER
35522 ,p_event_id IN NUMBER
35523 ,p_calculate_acctd_flag IN VARCHAR2
35524 ,p_calculate_g_l_flag IN VARCHAR2
35525 ,p_actual_flag IN OUT VARCHAR2
35526 ,p_balance_type_code OUT VARCHAR2
35527 ,p_gain_or_loss_ref OUT VARCHAR2
35528
35529 --Invoice Distribution Description
35530 , p_source_1 IN VARCHAR2
35531 --Invoice Distribution Account
35532 , p_source_2 IN NUMBER
35533 --Federal Fund Category
35534 , p_source_4 IN VARCHAR2
35535 --Federal Fund Expired Status
35536 , p_source_5 IN VARCHAR2
35537 --Federal Fund Category Description
35538 , p_source_6 IN VARCHAR2
35539 --Invoice Type
35540 , p_source_13 IN VARCHAR2
35541 , p_source_13_meaning IN VARCHAR2
35542 --Accounting Reversal Indicator
35543 , p_source_15 IN VARCHAR2
35544 --Distribution Link Type
35545 , p_source_17 IN VARCHAR2
35546 --Allocation to Main Distribution Identifier
35547 , p_source_19 IN NUMBER
35548 --Invoice Identifier
35549 , p_source_20 IN NUMBER
35550 --Business Flow Accounts Payable Application Identifier
35551 , p_source_21 IN NUMBER
35552 --Business Flow Invoice Distribution Type
35553 , p_source_22 IN VARCHAR2
35554 --Business Flow Invoice Entity Code
35555 , p_source_23 IN VARCHAR2
35556 --Business Flow Invoice Distribution Identifier
35557 , p_source_24 IN NUMBER
35558 --Business Flow Invoice Identifier
35559 , p_source_25 IN NUMBER
35560 --Invoice Distribution Identifier
35561 , p_source_26 IN NUMBER
35562 --Payables Encumbrance Upgrade Credit Account
35563 , p_source_27 IN NUMBER
35564 --Payables Encumbrance Upgrade Credit Amount
35565 , p_source_28 IN NUMBER
35566 --Invoice Currency Code
35567 , p_source_29 IN VARCHAR2
35568 --Payables Encumbrance Upgrade Credit Base Amount
35569 , p_source_30 IN NUMBER
35570 --Payables Encumbrance Upgrade Debit Account
35571 , p_source_31 IN NUMBER
35572 --Payables Encumbrance Upgrade Debit Amount
35573 , p_source_32 IN NUMBER
35574 --Payables Encumbrance Upgrade Debit Base Amount
35575 , p_source_33 IN NUMBER
35576 --Payables Encumbrance Upgrade Option
35577 , p_source_34 IN VARCHAR2
35578 --Invoice Exchange Date
35579 , p_source_36 IN DATE
35580 --Invoice Exchange Rate
35581 , p_source_37 IN NUMBER
35582 --Invoice Exchange Rate Type
35583 , p_source_38 IN VARCHAR2
35584 --Deferred Accounting End Date
35585 , p_source_39 IN DATE
35586 --Deferred Accounting Option
35587 , p_source_40 IN VARCHAR2
35588 --Deferred Accounting Start Date
35589 , p_source_41 IN DATE
35590 --Override Accounted Amount Indicator
35591 , p_source_42 IN VARCHAR2
35592 , p_source_42_meaning IN VARCHAR2
35593 --Invoice Supplier Identifier
35594 , p_source_43 IN NUMBER
35595 --Invoice Supplier Site Identifier
35596 , p_source_44 IN NUMBER
35597 --Third Party Type
35598 , p_source_45 IN VARCHAR2
35599 --Parent Reversal Identifier
35600 , p_source_46 IN NUMBER
35601 --Invoice Distribution Statistical Amount
35602 , p_source_47 IN NUMBER
35603 --Invoice Distribution Tax Line Identifier
35604 , p_source_48 IN NUMBER
35605 --Invoice Distribution Tax Distribution Identifier from Tax
35606 , p_source_49 IN NUMBER
35607 --Invoice Distribution Summary Tax Line Identifier
35608 , p_source_50 IN NUMBER
35609 --Payables Upgrade Credit Encumbrance Type Identifier
35610 , p_source_51 IN NUMBER
35611 --Payables Upgrade Debit Encumbrance Type Identifier
35612 , p_source_52 IN NUMBER
35613 --Invoice Distribution Amount
35614 , p_source_55 IN NUMBER
35615 --Invoice Distribution Ledger Amount
35616 , p_source_56 IN NUMBER
35617 --POD_PO_DISTRIBUTION_ID
35618 , p_source_70 IN NUMBER
35619 )
35620 IS
35621
35622 l_component_type VARCHAR2(80);
35623 l_component_code VARCHAR2(30);
35624 l_component_type_code VARCHAR2(1);
35625 l_component_appl_id INTEGER;
35626 l_amb_context_code VARCHAR2(30);
35627 l_entity_code VARCHAR2(30);
35628 l_event_class_code VARCHAR2(30);
35629 l_ae_header_id NUMBER;
35630 l_event_type_code VARCHAR2(30);
35631 l_line_definition_code VARCHAR2(30);
35632 l_line_definition_owner_code VARCHAR2(1);
35633 --
35634 -- adr variables
35635 l_segment VARCHAR2(30);
35636 l_ccid NUMBER;
35637 l_adr_transaction_coa_id NUMBER;
35638 l_adr_accounting_coa_id NUMBER;
35639 l_adr_flexfield_segment_code VARCHAR2(30);
35640 l_adr_flex_value_set_id NUMBER;
35641 l_adr_value_type_code VARCHAR2(30);
35642 l_adr_value_combination_id NUMBER;
35643 l_adr_value_segment_code VARCHAR2(30);
35644
35645 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35646 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35647 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35648 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35649
35650 -- 4262811 Variables ------------------------------------------------------------------------------------------
35651 l_entered_amt_idx NUMBER;
35652 l_accted_amt_idx NUMBER;
35653 l_acc_rev_flag VARCHAR2(1);
35654 l_accrual_line_num NUMBER;
35655 l_tmp_amt NUMBER;
35656 l_acc_rev_natural_side_code VARCHAR2(1);
35657
35658 l_num_entries NUMBER;
35659 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35660 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35661 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35662 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35663 l_recog_line_1 NUMBER;
35664 l_recog_line_2 NUMBER;
35665
35666 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35667 l_bflow_applied_to_amt NUMBER; -- 5132302
35668 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35669
35670 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35671
35672 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35673 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35674
35675 ---------------------------------------------------------------------------------------------------------------
35676
35677
35678 --
35679 -- bulk performance
35680 --
35681 l_balance_type_code VARCHAR2(1);
35682 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35683 l_log_module VARCHAR2(240);
35684
35685 --
35686 -- Upgrade strategy
35687 --
35688 l_actual_upg_option VARCHAR2(1);
35689 l_enc_upg_option VARCHAR2(1);
35690
35691 --
35692 BEGIN
35693 --
35694 IF g_log_enabled THEN
35695 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
35696 END IF;
35697 --
35698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35699
35700 trace
35701 (p_msg => 'BEGIN of AcctLineType_59'
35702 ,p_level => C_LEVEL_PROCEDURE
35703 ,p_module => l_log_module);
35704
35705 END IF;
35706 --
35707 l_component_type := 'AMB_JLT';
35708 l_component_code := 'FV_PREPAYMENT_INV_DR';
35709 l_component_type_code := 'S';
35710 l_component_appl_id := 200;
35711 l_amb_context_code := 'DEFAULT';
35712 l_entity_code := 'AP_INVOICES';
35713 l_event_class_code := 'PREPAYMENTS';
35714 l_event_type_code := 'PREPAYMENTS_ALL';
35715 l_line_definition_owner_code := 'S';
35716 l_line_definition_code := 'FV_AP_PREPAYMENTS_ALL';
35717 --
35718 l_balance_type_code := 'A';
35719 l_segment := NULL;
35720 l_ccid := NULL;
35721 l_adr_transaction_coa_id := NULL;
35722 l_adr_accounting_coa_id := NULL;
35723 l_adr_flexfield_segment_code := NULL;
35724 l_adr_flex_value_set_id := NULL;
35725 l_adr_value_type_code := NULL;
35726 l_adr_value_combination_id := NULL;
35727 l_adr_value_segment_code := NULL;
35728
35729 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35730 l_bflow_class_code := ''; -- 4219869 Business Flow
35731 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35732 l_budgetary_control_flag := 'Y';
35733
35734 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35735 l_bflow_applied_to_amt := NULL; -- 5132302
35736 l_entered_amt_idx := NULL; -- 4262811
35737 l_accted_amt_idx := NULL; -- 4262811
35738 l_acc_rev_flag := NULL; -- 4262811
35739 l_accrual_line_num := NULL; -- 4262811
35740 l_tmp_amt := NULL; -- 4262811
35741 --
35742
35743 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35744 l_balance_type_code <> 'B' THEN
35745 IF p_source_70 IS NULL AND
35746 NVL(p_source_13,'
35747 ') = 'PREPAYMENT'
35748 THEN
35749
35750 --
35751 XLA_AE_LINES_PKG.SetNewLine;
35752
35753 p_balance_type_code := l_balance_type_code;
35754 -- set the flag so later we will know whether the gain loss line needs to be created
35755
35756 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35757 p_actual_flag :='A';
35758 END IF;
35759
35760 --
35761 -- bulk performance
35762 --
35763 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35764 p_header_num => 0); -- 4262811
35765 --
35766 -- set accounting line options
35767 --
35768 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35769 p_natural_side_code => 'D'
35770 , p_gain_or_loss_flag => 'N'
35771 , p_gl_transfer_mode_code => 'S'
35772 , p_acct_entry_type_code => 'A'
35773 , p_switch_side_flag => 'N'
35774 , p_merge_duplicate_code => 'N'
35775 );
35776 --
35777 l_acc_rev_natural_side_code := 'C'; -- 4262811
35778 --
35779 --
35780 -- set accounting line type info
35781 --
35782 xla_ae_lines_pkg.SetAcctLineType
35783 (p_component_type => l_component_type
35784 ,p_event_type_code => l_event_type_code
35785 ,p_line_definition_owner_code => l_line_definition_owner_code
35786 ,p_line_definition_code => l_line_definition_code
35787 ,p_accounting_line_code => l_component_code
35788 ,p_accounting_line_type_code => l_component_type_code
35789 ,p_accounting_line_appl_id => l_component_appl_id
35790 ,p_amb_context_code => l_amb_context_code
35791 ,p_entity_code => l_entity_code
35792 ,p_event_class_code => l_event_class_code);
35793 --
35794 -- set accounting class
35795 --
35796 xla_ae_lines_pkg.SetAcctClass(
35797 p_accounting_class_code => 'ACCOUNTSPAYABLE'
35798 , p_ae_header_id => l_ae_header_id
35799 );
35800
35801 --
35802 -- set rounding class
35803 --
35804 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35805 'ACCOUNTSPAYABLE';
35806
35807 --
35808 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35809 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35810 --
35811 -- bulk performance
35812 --
35813 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35814
35815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35816 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35817
35818 -- 4955764
35819 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35820 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35821
35822 -- 4458381 Public Sector Enh
35823
35824 --
35825 -- set accounting attributes for the line type
35826 --
35827 l_entered_amt_idx := 23;
35828 l_accted_amt_idx := 28;
35829 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35830 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35831 l_rec_acct_attrs.array_char_value(1) := p_source_15;
35832 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35833 l_rec_acct_attrs.array_num_value(2) :=
35834 xla_ae_sources_pkg.GetSystemSourceNum(
35835 p_source_code => 'XLA_EVENT_APPL_ID'
35836 , p_source_type_code => 'Y'
35837 , p_source_application_id => 602
35838 );
35839 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35840 l_rec_acct_attrs.array_char_value(3) := p_source_17;
35841 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35842 l_rec_acct_attrs.array_char_value(4) :=
35843 xla_ae_sources_pkg.GetSystemSourceChar(
35844 p_source_code => 'XLA_ENTITY_CODE'
35845 , p_source_type_code => 'Y'
35846 , p_source_application_id => 602
35847 );
35848 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35849 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_19);
35850 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35851 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_20);
35852 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35853 l_rec_acct_attrs.array_num_value(7) := p_source_21;
35854 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35855 l_rec_acct_attrs.array_char_value(8) := p_source_22;
35856 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35857 l_rec_acct_attrs.array_char_value(9) := p_source_23;
35858 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35859 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_24);
35860 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35861 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_25);
35862 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
35863 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_26);
35864 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
35865 l_rec_acct_attrs.array_char_value(13) := p_source_17;
35866 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
35867 l_rec_acct_attrs.array_num_value(14) := p_source_27;
35868 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
35869 l_rec_acct_attrs.array_num_value(15) := p_source_28;
35870 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
35871 l_rec_acct_attrs.array_char_value(16) := p_source_29;
35872 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
35873 l_rec_acct_attrs.array_num_value(17) := p_source_30;
35874 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
35875 l_rec_acct_attrs.array_num_value(18) := p_source_31;
35876 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
35877 l_rec_acct_attrs.array_num_value(19) := p_source_32;
35878 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
35879 l_rec_acct_attrs.array_char_value(20) := p_source_29;
35880 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
35881 l_rec_acct_attrs.array_num_value(21) := p_source_33;
35882 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
35883 l_rec_acct_attrs.array_char_value(22) := p_source_34;
35884 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
35885 l_rec_acct_attrs.array_num_value(23) := p_source_55;
35886 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
35887 l_rec_acct_attrs.array_char_value(24) := p_source_29;
35888 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
35889 l_rec_acct_attrs.array_date_value(25) := p_source_36;
35890 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
35891 l_rec_acct_attrs.array_num_value(26) := p_source_37;
35892 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
35893 l_rec_acct_attrs.array_char_value(27) := p_source_38;
35894 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
35895 l_rec_acct_attrs.array_num_value(28) := p_source_56;
35896 l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
35897 l_rec_acct_attrs.array_date_value(29) := p_source_39;
35898 l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
35899 l_rec_acct_attrs.array_char_value(30) := p_source_40;
35900 l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
35901 l_rec_acct_attrs.array_date_value(31) := p_source_41;
35902 l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
35903 l_rec_acct_attrs.array_char_value(32) := p_source_42;
35904 l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
35905 l_rec_acct_attrs.array_num_value(33) := p_source_43;
35906 l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
35907 l_rec_acct_attrs.array_num_value(34) := p_source_44;
35908 l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
35909 l_rec_acct_attrs.array_char_value(35) := p_source_45;
35910 l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
35911 l_rec_acct_attrs.array_num_value(36) := to_char(p_source_46);
35912 l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
35913 l_rec_acct_attrs.array_char_value(37) := p_source_17;
35914 l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
35915 l_rec_acct_attrs.array_num_value(38) := p_source_47;
35916 l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
35917 l_rec_acct_attrs.array_num_value(39) := p_source_48;
35918 l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
35919 l_rec_acct_attrs.array_num_value(40) := p_source_49;
35920 l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
35921 l_rec_acct_attrs.array_num_value(41) := p_source_50;
35922 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
35923 l_rec_acct_attrs.array_num_value(42) := p_source_51;
35924 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
35925 l_rec_acct_attrs.array_num_value(43) := p_source_52;
35926
35927 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35928 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35929
35930 ---------------------------------------------------------------------------------------------------------------
35931 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35932 ---------------------------------------------------------------------------------------------------------------
35933 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35934
35935 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35936 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35937
35938 IF xla_accounting_cache_pkg.GetValueChar
35939 (p_source_code => 'LEDGER_CATEGORY_CODE'
35940 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35941 AND l_bflow_method_code = 'PRIOR_ENTRY'
35942 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35943 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35944 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35945 )
35946 THEN
35947 xla_ae_lines_pkg.BflowUpgEntry
35948 (p_business_method_code => l_bflow_method_code
35949 ,p_business_class_code => l_bflow_class_code
35950 ,p_balance_type => l_balance_type_code);
35951 ELSE
35952 NULL;
35953 -- No business flow processing for business flow method of NONE.
35954 END IF;
35955
35956 --
35957 -- call analytical criteria
35958 --
35959
35960 --
35961 -- call description
35962 --
35963
35964 xla_ae_lines_pkg.SetLineDescription(
35965 p_ae_header_id => l_ae_header_id
35966 ,p_description => Description_2 (
35967 p_application_id => p_application_id
35968 , p_ae_header_id => l_ae_header_id
35969 , p_source_1 => p_source_1
35970 )
35971 );
35972
35973
35974 --
35975 -- call ADRs
35976 -- Bug 4922099
35977 --
35978 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35979 (NVL(l_actual_upg_option, 'N') = 'O') OR
35980 (NVL(l_enc_upg_option, 'N') = 'O')
35981 )
35982 THEN
35983 NULL;
35984 --
35985 --
35986
35987 l_ccid := AcctDerRule_3(
35988 p_application_id => p_application_id
35989 , p_ae_header_id => l_ae_header_id
35990 , p_source_2 => p_source_2
35991 , x_transaction_coa_id => l_adr_transaction_coa_id
35992 , x_accounting_coa_id => l_adr_accounting_coa_id
35993 , x_value_type_code => l_adr_value_type_code
35994 , p_side => 'NA'
35995 );
35996
35997 xla_ae_lines_pkg.set_ccid(
35998 p_code_combination_id => l_ccid
35999 , p_value_type_code => l_adr_value_type_code
36000 , p_transaction_coa_id => l_adr_transaction_coa_id
36001 , p_accounting_coa_id => l_adr_accounting_coa_id
36002 , p_adr_code => 'AP_INVOICE_DIST'
36003 , p_adr_type_code => 'S'
36004 , p_component_type => l_component_type
36005 , p_component_code => l_component_code
36006 , p_component_type_code => l_component_type_code
36007 , p_component_appl_id => l_component_appl_id
36008 , p_amb_context_code => l_amb_context_code
36009 , p_side => 'NA'
36010 );
36011
36012
36013 l_segment := AcctDerRule_8(
36014 p_application_id => p_application_id
36015 , p_ae_header_id => l_ae_header_id
36016 , p_source_4 => p_source_4
36017 , p_source_5 => p_source_5
36018 , p_source_6 => p_source_6
36019 , x_transaction_coa_id => l_adr_transaction_coa_id
36020 , x_accounting_coa_id => l_adr_accounting_coa_id
36021 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36022 , x_flex_value_set_id => l_adr_flex_value_set_id
36023 , x_value_type_code => l_adr_value_type_code
36024 , x_value_combination_id => l_adr_value_combination_id
36025 , x_value_segment_code => l_adr_value_segment_code
36026 , p_side => 'NA'
36027 , p_override_seg_flag => 'Y'
36028 );
36029
36030 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36031
36032 xla_ae_lines_pkg.set_segment(
36033 p_to_segment_code => 'GL_ACCOUNT'
36034 , p_segment_value => l_segment
36035 , p_from_segment_code => l_adr_value_segment_code
36036 , p_from_combination_id => l_adr_value_combination_id
36037 , p_value_type_code => l_adr_value_type_code
36038 , p_transaction_coa_id => l_adr_transaction_coa_id
36039 , p_accounting_coa_id => l_adr_accounting_coa_id
36040 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36041 , p_flex_value_set_id => l_adr_flex_value_set_id
36042 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
36043 , p_adr_type_code => 'S'
36044 , p_component_type => l_component_type
36045 , p_component_code => l_component_code
36046 , p_component_type_code => l_component_type_code
36047 , p_component_appl_id => l_component_appl_id
36048 , p_amb_context_code => l_amb_context_code
36049 , p_entity_code => 'AP_INVOICES'
36050 , p_event_class_code => 'PREPAYMENTS'
36051 , p_side => 'NA'
36052 );
36053
36054 END IF;
36055
36056 --
36057 --
36058 END IF;
36059 --
36060 -- Bug 4922099
36061 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36062 (NVL(l_enc_upg_option, 'N') = 'O')
36063 ) AND
36064 (l_bflow_method_code = 'PRIOR_ENTRY')
36065 )
36066 THEN
36067 IF
36068 --
36069 1 = 2
36070 --
36071 THEN
36072 xla_accounting_err_pkg.build_message
36073 (p_appli_s_name => 'XLA'
36074 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36075 ,p_token_1 => 'LINE_NUMBER'
36076 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36077 ,p_token_2 => 'LINE_TYPE_NAME'
36078 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36079 l_component_type
36080 ,l_component_code
36081 ,l_component_type_code
36082 ,l_component_appl_id
36083 ,l_amb_context_code
36084 ,l_entity_code
36085 ,l_event_class_code
36086 )
36087 ,p_token_3 => 'OWNER'
36088 ,p_value_3 => xla_lookups_pkg.get_meaning(
36089 p_lookup_type => 'XLA_OWNER_TYPE'
36090 ,p_lookup_code => l_component_type_code
36091 )
36092 ,p_token_4 => 'PRODUCT_NAME'
36093 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36094 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36095 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36096 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36097 ,p_ae_header_id => NULL
36098 );
36099
36100 IF (C_LEVEL_ERROR>= g_log_level) THEN
36101 trace
36102 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36103 ,p_level => C_LEVEL_ERROR
36104 ,p_module => l_log_module);
36105 END IF;
36106 END IF;
36107 END IF;
36108 --
36109 --
36110 ------------------------------------------------------------------------------------------------
36111 -- 4219869 Business Flow
36112 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36113 -- Prior Entry. Currently, the following code is always generated.
36114 ------------------------------------------------------------------------------------------------
36115 XLA_AE_LINES_PKG.ValidateCurrentLine;
36116
36117 ------------------------------------------------------------------------------------
36118 -- 4219869 Business Flow
36119 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36120 ------------------------------------------------------------------------------------
36121 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36122
36123 ----------------------------------------------------------------------------------
36124 -- 4219869 Business Flow
36125 -- Update journal entry status -- Need to generate this within IF <condition>
36126 ----------------------------------------------------------------------------------
36127 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36128 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36129 ,p_balance_type_code => l_balance_type_code
36130 );
36131
36132 -------------------------------------------------------------------------------------------
36133 -- 4262811 - Generate the Accrual Reversal lines
36134 -------------------------------------------------------------------------------------------
36135 BEGIN
36136 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36137 (g_array_event(p_event_id).array_value_num('header_index'));
36138 IF l_acc_rev_flag IS NULL THEN
36139 l_acc_rev_flag := 'N';
36140 END IF;
36141 EXCEPTION
36142 WHEN OTHERS THEN
36143 l_acc_rev_flag := 'N';
36144 END;
36145 --
36146 IF (l_acc_rev_flag = 'Y') THEN
36147
36148 -- 4645092 ------------------------------------------------------------------------------
36149 -- To allow MPA report to determine if it should generate report process
36150 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36151 ------------------------------------------------------------------------------------------
36152
36153 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36154 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36155 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36156 -- call ADRs
36157 -- Bug 4922099
36158 --
36159 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36160 (NVL(l_actual_upg_option, 'N') = 'O') OR
36161 (NVL(l_enc_upg_option, 'N') = 'O')
36162 )
36163 THEN
36164 NULL;
36165 --
36166 --
36167
36168 l_ccid := AcctDerRule_3(
36169 p_application_id => p_application_id
36170 , p_ae_header_id => l_ae_header_id
36171 , p_source_2 => p_source_2
36172 , x_transaction_coa_id => l_adr_transaction_coa_id
36173 , x_accounting_coa_id => l_adr_accounting_coa_id
36174 , x_value_type_code => l_adr_value_type_code
36175 , p_side => 'NA'
36176 );
36177
36178 xla_ae_lines_pkg.set_ccid(
36179 p_code_combination_id => l_ccid
36180 , p_value_type_code => l_adr_value_type_code
36181 , p_transaction_coa_id => l_adr_transaction_coa_id
36182 , p_accounting_coa_id => l_adr_accounting_coa_id
36183 , p_adr_code => 'AP_INVOICE_DIST'
36184 , p_adr_type_code => 'S'
36185 , p_component_type => l_component_type
36186 , p_component_code => l_component_code
36187 , p_component_type_code => l_component_type_code
36188 , p_component_appl_id => l_component_appl_id
36189 , p_amb_context_code => l_amb_context_code
36190 , p_side => 'NA'
36191 );
36192
36193
36194 l_segment := AcctDerRule_8(
36195 p_application_id => p_application_id
36196 , p_ae_header_id => l_ae_header_id
36197 , p_source_4 => p_source_4
36198 , p_source_5 => p_source_5
36199 , p_source_6 => p_source_6
36200 , x_transaction_coa_id => l_adr_transaction_coa_id
36201 , x_accounting_coa_id => l_adr_accounting_coa_id
36202 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36203 , x_flex_value_set_id => l_adr_flex_value_set_id
36204 , x_value_type_code => l_adr_value_type_code
36205 , x_value_combination_id => l_adr_value_combination_id
36206 , x_value_segment_code => l_adr_value_segment_code
36207 , p_side => 'NA'
36208 , p_override_seg_flag => 'Y'
36209 );
36210
36211 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36212
36213 xla_ae_lines_pkg.set_segment(
36214 p_to_segment_code => 'GL_ACCOUNT'
36215 , p_segment_value => l_segment
36216 , p_from_segment_code => l_adr_value_segment_code
36217 , p_from_combination_id => l_adr_value_combination_id
36218 , p_value_type_code => l_adr_value_type_code
36219 , p_transaction_coa_id => l_adr_transaction_coa_id
36220 , p_accounting_coa_id => l_adr_accounting_coa_id
36221 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36222 , p_flex_value_set_id => l_adr_flex_value_set_id
36223 , p_adr_code => 'FV_46X002_ALLOTMENT_RES_ACCT'
36224 , p_adr_type_code => 'S'
36225 , p_component_type => l_component_type
36226 , p_component_code => l_component_code
36227 , p_component_type_code => l_component_type_code
36228 , p_component_appl_id => l_component_appl_id
36229 , p_amb_context_code => l_amb_context_code
36230 , p_entity_code => 'AP_INVOICES'
36231 , p_event_class_code => 'PREPAYMENTS'
36232 , p_side => 'NA'
36233 );
36234
36235 END IF;
36236
36237 --
36238 --
36239 END IF;
36240
36241 --
36242 -- Update the line information that should be overwritten
36243 --
36244 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36245 p_header_num => 1);
36246 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36247
36248 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36249
36250 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36251 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36252 END IF;
36253
36254 --
36255 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36256 --
36257 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36258 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36259 ELSE
36260 ---------------------------------------------------------------------------------------------------
36261 -- 4262811a Switch Sign
36262 ---------------------------------------------------------------------------------------------------
36263 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36264 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36265 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36266 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36267 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36268 -- 5132302
36269 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36270 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36271
36272 END IF;
36273
36274 -- 4955764
36275 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36276 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36277
36278
36279 XLA_AE_LINES_PKG.ValidateCurrentLine;
36280 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36281
36282 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36283 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36284 ,p_balance_type_code => l_balance_type_code);
36285
36286 END IF;
36287
36288 -----------------------------------------------------------------------------------------
36289 -- 4262811 Multiperiod Accounting
36290 -----------------------------------------------------------------------------------------
36291 -- No MPA option is assigned.
36292
36293
36294 END IF;
36295 END IF;
36296 --
36297
36298 --
36299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36300 trace
36301 (p_msg => 'END of AcctLineType_59'
36302 ,p_level => C_LEVEL_PROCEDURE
36303 ,p_module => l_log_module);
36304 END IF;
36305 --
36306 EXCEPTION
36307 WHEN xla_exceptions_pkg.application_exception THEN
36308 RAISE;
36309 WHEN OTHERS THEN
36310 xla_exceptions_pkg.raise_message
36311 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.AcctLineType_59');
36312 END AcctLineType_59;
36313 --
36314
36315 ---------------------------------------
36316 --
36317 -- PRIVATE PROCEDURE
36318 -- insert_sources_60
36319 --
36320 ----------------------------------------
36321 --
36322 PROCEDURE insert_sources_60(
36323 p_target_ledger_id IN NUMBER
36324 , p_language IN VARCHAR2
36325 , p_sla_ledger_id IN NUMBER
36326 , p_pad_start_date IN DATE
36327 , p_pad_end_date IN DATE
36328 )
36329 IS
36330
36331 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS_ALL';
36332 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS';
36333 p_apps_owner VARCHAR2(30);
36334 l_log_module VARCHAR2(240);
36335 BEGIN
36336 IF g_log_enabled THEN
36337 l_log_module := C_DEFAULT_MODULE||'.insert_sources_60';
36338 END IF;
36339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36340
36341 trace
36342 (p_msg => 'BEGIN of insert_sources_60'
36343 ,p_level => C_LEVEL_PROCEDURE
36344 ,p_module => l_log_module);
36345
36346 END IF;
36347
36348 -- select APPS owner
36349 SELECT oracle_username
36350 INTO p_apps_owner
36351 FROM fnd_oracle_userid
36352 WHERE read_only_flag = 'U'
36353 ;
36354
36355 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36356 trace
36357 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
36358 ' - p_language = '||p_language||
36359 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
36360 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
36361 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
36362 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
36363 ,p_level => C_LEVEL_STATEMENT
36364 ,p_module => l_log_module);
36365 END IF;
36366
36367
36368 --
36369 INSERT INTO xla_diag_sources --hdr2
36370 (
36371 event_id
36372 , ledger_id
36373 , sla_ledger_id
36374 , description_language
36375 , object_name
36376 , object_type_code
36377 , line_number
36378 , source_application_id
36379 , source_type_code
36380 , source_code
36381 , source_value
36382 , source_meaning
36383 , created_by
36384 , creation_date
36385 , last_update_date
36386 , last_updated_by
36387 , last_update_login
36388 , program_update_date
36389 , program_application_id
36390 , program_id
36391 , request_id
36392 )
36393 SELECT
36394 event_id
36395 , p_target_ledger_id
36396 , p_sla_ledger_id
36397 , p_language
36398 , object_name
36399 , object_type_code
36400 , line_number
36401 , source_application_id
36402 , source_type_code
36403 , source_code
36404 , SUBSTR(source_value ,1,1996)
36405 , SUBSTR(source_meaning ,1,200)
36406 , xla_environment_pkg.g_Usr_Id
36407 , TRUNC(SYSDATE)
36408 , TRUNC(SYSDATE)
36409 , xla_environment_pkg.g_Usr_Id
36410 , xla_environment_pkg.g_Login_Id
36411 , TRUNC(SYSDATE)
36412 , xla_environment_pkg.g_Prog_Appl_Id
36413 , xla_environment_pkg.g_Prog_Id
36414 , xla_environment_pkg.g_Req_Id
36415 FROM (
36416 SELECT xet.event_id event_id
36417 , 0 line_number
36418 , CASE r
36419 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36420 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36421 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36422 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36423 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36424 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36425 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36426 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36427 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36428 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36429 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36430 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36431 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
36432
36433 ELSE null
36434 END object_name
36435 , CASE r
36436 WHEN 1 THEN 'HEADER'
36437 WHEN 2 THEN 'HEADER'
36438 WHEN 3 THEN 'HEADER'
36439 WHEN 4 THEN 'HEADER'
36440 WHEN 5 THEN 'HEADER'
36441 WHEN 6 THEN 'HEADER'
36442 WHEN 7 THEN 'HEADER'
36443 WHEN 8 THEN 'HEADER'
36444 WHEN 9 THEN 'HEADER'
36445 WHEN 10 THEN 'HEADER'
36446 WHEN 11 THEN 'HEADER'
36447 WHEN 12 THEN 'HEADER'
36448 WHEN 13 THEN 'HEADER'
36449
36450 ELSE null
36451 END object_type_code
36452 , CASE r
36453 WHEN 1 THEN '200'
36454 WHEN 2 THEN '200'
36455 WHEN 3 THEN '200'
36456 WHEN 4 THEN '200'
36457 WHEN 5 THEN '200'
36458 WHEN 6 THEN '200'
36459 WHEN 7 THEN '200'
36460 WHEN 8 THEN '200'
36461 WHEN 9 THEN '200'
36462 WHEN 10 THEN '200'
36463 WHEN 11 THEN '200'
36464 WHEN 12 THEN '200'
36465 WHEN 13 THEN '200'
36466
36467 ELSE null
36468 END source_application_id
36469 , 'S' source_type_code
36470 , CASE r
36471 WHEN 1 THEN 'AI_PAYMENT_STATUS_FLAG'
36472 WHEN 2 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE'
36473 WHEN 3 THEN 'AI_INVOICE_ID'
36474 WHEN 4 THEN 'AI_INVOICE_CURRENCY_CODE'
36475 WHEN 5 THEN 'INV_EXCHANGE_DATE'
36476 WHEN 6 THEN 'INV_EXCHANGE_RATE'
36477 WHEN 7 THEN 'INV_EXCHANGE_RATE_TYPE'
36478 WHEN 8 THEN 'AI_VENDOR_ID'
36479 WHEN 9 THEN 'AI_VENDOR_SITE_ID'
36480 WHEN 10 THEN 'THIRD_PARTY_TYPE'
36481 WHEN 11 THEN 'INV_DOC_SEQUENCE_CATEGORY'
36482 WHEN 12 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
36483 WHEN 13 THEN 'INV_DOC_SEQUENCE_VALUE'
36484
36485 ELSE null
36486 END source_code
36487 , CASE r
36488 WHEN 1 THEN TO_CHAR(h2.AI_PAYMENT_STATUS_FLAG)
36489 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
36490 WHEN 3 THEN TO_CHAR(h2.AI_INVOICE_ID)
36491 WHEN 4 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
36492 WHEN 5 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
36493 WHEN 6 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
36494 WHEN 7 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
36495 WHEN 8 THEN TO_CHAR(h2.AI_VENDOR_ID)
36496 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
36497 WHEN 10 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
36498 WHEN 11 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
36499 WHEN 12 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
36500 WHEN 13 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
36501
36502 ELSE null
36503 END source_value
36504 , CASE r
36505 WHEN 2 THEN fvl13.meaning
36506
36507 ELSE null
36508 END source_meaning
36509 FROM xla_events_gt xet
36510 , AP_INVOICE_EXTRACT_HEADER_V h2
36511 , fnd_lookup_values fvl13
36512 ,(select rownum r from all_objects where rownum <= 13 and owner = p_apps_owner)
36513 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
36514 AND xet.event_class_code = C_EVENT_CLASS_CODE
36515 AND h2.event_id = xet.event_id
36516 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
36517 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
36518 AND fvl13.view_application_id(+) = 200
36519 AND fvl13.language(+) = USERENV('LANG')
36520
36521 )
36522 ;
36523 --
36524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36525
36526 trace
36527 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
36528 ,p_level => C_LEVEL_STATEMENT
36529 ,p_module => l_log_module);
36530
36531 END IF;
36532 --
36533
36534
36535
36536 --
36537 INSERT INTO xla_diag_sources --line2
36538 (
36539 event_id
36540 , ledger_id
36541 , sla_ledger_id
36542 , description_language
36543 , object_name
36544 , object_type_code
36545 , line_number
36546 , source_application_id
36547 , source_type_code
36548 , source_code
36549 , source_value
36550 , source_meaning
36551 , created_by
36552 , creation_date
36553 , last_update_date
36554 , last_updated_by
36555 , last_update_login
36556 , program_update_date
36557 , program_application_id
36558 , program_id
36559 , request_id
36560 )
36561 SELECT event_id
36562 , p_target_ledger_id
36563 , p_sla_ledger_id
36564 , p_language
36565 , object_name
36566 , object_type_code
36567 , line_number
36568 , source_application_id
36569 , source_type_code
36570 , source_code
36571 , SUBSTR(source_value,1,1996)
36572 , SUBSTR(source_meaning ,1,200)
36573 , xla_environment_pkg.g_Usr_Id
36574 , TRUNC(SYSDATE)
36575 , TRUNC(SYSDATE)
36576 , xla_environment_pkg.g_Usr_Id
36577 , xla_environment_pkg.g_Login_Id
36578 , TRUNC(SYSDATE)
36579 , xla_environment_pkg.g_Prog_Appl_Id
36580 , xla_environment_pkg.g_Prog_Id
36581 , xla_environment_pkg.g_Req_Id
36582 FROM (
36583 SELECT xet.event_id event_id
36584 , l1.line_number line_number
36585 , CASE r
36586 WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36587 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36588 WHEN 3 THEN 'FV_XLA_AP_REF_V'
36589 WHEN 4 THEN 'FV_XLA_AP_REF_V'
36590 WHEN 5 THEN 'FV_XLA_AP_REF_V'
36591 WHEN 6 THEN 'FV_XLA_AP_REF_V'
36592 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36593 WHEN 8 THEN 'FV_XLA_AP_REF_V'
36594 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36595 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36596 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36597 WHEN 12 THEN 'FV_XLA_AP_REF_V'
36598 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36599 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36600 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36601 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36602 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36603 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36604 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36605 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36606 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36607 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36608 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36609 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36610 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36611 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36612 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36613 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36614 WHEN 29 THEN 'FV_XLA_AP_REF_V'
36615 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36616 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36617 WHEN 32 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36618 WHEN 33 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36619 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36620 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36621 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
36622 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
36623 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36624 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36625 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36626 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36627 WHEN 42 THEN 'FV_XLA_AP_REF_V'
36628 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36629 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
36630
36631 ELSE null
36632 END object_name
36633 , CASE r
36634 WHEN 1 THEN 'LINE'
36635 WHEN 2 THEN 'LINE'
36636 WHEN 3 THEN 'LINE'
36637 WHEN 4 THEN 'LINE'
36638 WHEN 5 THEN 'LINE'
36639 WHEN 6 THEN 'LINE'
36640 WHEN 7 THEN 'LINE'
36641 WHEN 8 THEN 'LINE'
36642 WHEN 9 THEN 'LINE'
36643 WHEN 10 THEN 'LINE'
36644 WHEN 11 THEN 'LINE'
36645 WHEN 12 THEN 'LINE'
36646 WHEN 13 THEN 'LINE'
36647 WHEN 14 THEN 'LINE'
36648 WHEN 15 THEN 'LINE'
36649 WHEN 16 THEN 'LINE'
36650 WHEN 17 THEN 'LINE'
36651 WHEN 18 THEN 'LINE'
36652 WHEN 19 THEN 'LINE'
36653 WHEN 20 THEN 'LINE'
36654 WHEN 21 THEN 'LINE'
36655 WHEN 22 THEN 'LINE'
36656 WHEN 23 THEN 'LINE'
36657 WHEN 24 THEN 'LINE'
36658 WHEN 25 THEN 'LINE'
36659 WHEN 26 THEN 'LINE'
36660 WHEN 27 THEN 'LINE'
36661 WHEN 28 THEN 'LINE'
36662 WHEN 29 THEN 'LINE'
36663 WHEN 30 THEN 'LINE'
36664 WHEN 31 THEN 'LINE'
36665 WHEN 32 THEN 'LINE'
36666 WHEN 33 THEN 'LINE'
36667 WHEN 34 THEN 'LINE'
36668 WHEN 35 THEN 'LINE'
36669 WHEN 36 THEN 'LINE'
36670 WHEN 37 THEN 'LINE'
36671 WHEN 38 THEN 'LINE'
36672 WHEN 39 THEN 'LINE'
36673 WHEN 40 THEN 'LINE'
36674 WHEN 41 THEN 'LINE'
36675 WHEN 42 THEN 'LINE'
36676 WHEN 43 THEN 'LINE'
36677 WHEN 44 THEN 'LINE'
36678
36679 ELSE null
36680 END object_type_code
36681 , CASE r
36682 WHEN 1 THEN '200'
36683 WHEN 2 THEN '200'
36684 WHEN 3 THEN '8901'
36685 WHEN 4 THEN '8901'
36686 WHEN 5 THEN '8901'
36687 WHEN 6 THEN '8901'
36688 WHEN 7 THEN '200'
36689 WHEN 8 THEN '8901'
36690 WHEN 9 THEN '200'
36691 WHEN 10 THEN '200'
36692 WHEN 11 THEN '200'
36693 WHEN 12 THEN '8901'
36694 WHEN 13 THEN '200'
36695 WHEN 14 THEN '200'
36696 WHEN 15 THEN '200'
36697 WHEN 16 THEN '200'
36698 WHEN 17 THEN '200'
36699 WHEN 18 THEN '200'
36700 WHEN 19 THEN '200'
36701 WHEN 20 THEN '200'
36702 WHEN 21 THEN '200'
36703 WHEN 22 THEN '200'
36704 WHEN 23 THEN '200'
36705 WHEN 24 THEN '200'
36706 WHEN 25 THEN '200'
36707 WHEN 26 THEN '200'
36708 WHEN 27 THEN '200'
36709 WHEN 28 THEN '200'
36710 WHEN 29 THEN '8901'
36711 WHEN 30 THEN '200'
36712 WHEN 31 THEN '200'
36713 WHEN 32 THEN '200'
36714 WHEN 33 THEN '200'
36715 WHEN 34 THEN '200'
36716 WHEN 35 THEN '200'
36717 WHEN 36 THEN '200'
36718 WHEN 37 THEN '200'
36719 WHEN 38 THEN '200'
36720 WHEN 39 THEN '200'
36721 WHEN 40 THEN '200'
36722 WHEN 41 THEN '200'
36723 WHEN 42 THEN '8901'
36724 WHEN 43 THEN '200'
36725 WHEN 44 THEN '200'
36726
36727 ELSE null
36728 END source_application_id
36729 , 'S' source_type_code
36730 , CASE r
36731 WHEN 1 THEN 'AID_DESCRIPTION'
36732 WHEN 2 THEN 'AID_DIST_CCID'
36733 WHEN 3 THEN 'FEDERAL_ANTICIPATION'
36734 WHEN 4 THEN 'FEDERAL_FUND_CATEGORY'
36735 WHEN 5 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
36736 WHEN 6 THEN 'FEDERAL_FUND_CAT_DESC'
36737 WHEN 7 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
36738 WHEN 8 THEN 'FEDERAL_PRIOR_YEAR_FLAG'
36739 WHEN 9 THEN 'ENCUMBRANCE_AMOUNT'
36740 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
36741 WHEN 11 THEN 'PO_DISTRIBUTION_ID'
36742 WHEN 12 THEN 'FEDERAL_ADJUSTMENT_TYPE'
36743 WHEN 13 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
36744 WHEN 14 THEN 'DISTRIBUTION_LINK_TYPE'
36745 WHEN 15 THEN 'ALLOC_TO_MAIN_DIST_ID'
36746 WHEN 16 THEN 'BUS_FLOW_AP_APP_ID'
36747 WHEN 17 THEN 'BUS_FLOW_INV_DIST_TYPE'
36748 WHEN 18 THEN 'BUS_FLOW_INV_ENTITY_CODE'
36749 WHEN 19 THEN 'BUS_FLOW_INV_DIST_ID'
36750 WHEN 20 THEN 'BUS_FLOW_INV_ID'
36751 WHEN 21 THEN 'AID_INVOICE_DIST_ID'
36752 WHEN 22 THEN 'UPG_ENC_CR_CCID'
36753 WHEN 23 THEN 'UPG_ENC_CR_AMT'
36754 WHEN 24 THEN 'UPG_ENC_CR_BASE_AMT'
36755 WHEN 25 THEN 'UPG_ENC_DR_CCID'
36756 WHEN 26 THEN 'UPG_ENC_DR_AMT'
36757 WHEN 27 THEN 'UPG_ENC_DR_BASE_AMT'
36758 WHEN 28 THEN 'UPG_AP_ENCUM_OPTION'
36759 WHEN 29 THEN 'FEDERAL_ANTICIPATED_AMT'
36760 WHEN 30 THEN 'DEFERRED_END_DATE'
36761 WHEN 31 THEN 'DEFERRED_OPTION'
36762 WHEN 32 THEN 'DEFERRED_START_DATE'
36763 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
36764 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID'
36765 WHEN 35 THEN 'AID_STAT_AMOUNT'
36766 WHEN 36 THEN 'TAX_LINE_ID'
36767 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID'
36768 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID'
36769 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID'
36770 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID'
36771 WHEN 41 THEN 'ENCUMBRANCE_BASE_AMOUNT'
36772 WHEN 42 THEN 'FEDERAL_UNANTICIPATED_AMT'
36773 WHEN 43 THEN 'AID_AMOUNT'
36774 WHEN 44 THEN 'INV_DIST_BASE_AMOUNT'
36775
36776 ELSE null
36777 END source_code
36778 , CASE r
36779 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
36780 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
36781 WHEN 3 THEN TO_CHAR(l3.FEDERAL_ANTICIPATION)
36782 WHEN 4 THEN TO_CHAR(l3.FEDERAL_FUND_CATEGORY)
36783 WHEN 5 THEN TO_CHAR(l3.FEDERAL_FUND_EXPIRED_STATUS)
36784 WHEN 6 THEN TO_CHAR(l3.FEDERAL_FUND_CAT_DESC)
36785 WHEN 7 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
36786 WHEN 8 THEN TO_CHAR(l3.FEDERAL_PRIOR_YEAR_FLAG)
36787 WHEN 9 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
36788 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
36789 WHEN 11 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
36790 WHEN 12 THEN TO_CHAR(l3.FEDERAL_ADJUSTMENT_TYPE)
36791 WHEN 13 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
36792 WHEN 14 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
36793 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
36794 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
36795 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
36796 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
36797 WHEN 19 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
36798 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
36799 WHEN 21 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
36800 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
36801 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
36802 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
36803 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
36804 WHEN 26 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
36805 WHEN 27 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
36806 WHEN 28 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
36807 WHEN 29 THEN TO_CHAR(l3.FEDERAL_ANTICIPATED_AMT)
36808 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
36809 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
36810 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
36811 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
36812 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
36813 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
36814 WHEN 36 THEN TO_CHAR(l4.TAX_LINE_ID)
36815 WHEN 37 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
36816 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
36817 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
36818 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
36819 WHEN 41 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
36820 WHEN 42 THEN TO_CHAR(l3.FEDERAL_UNANTICIPATED_AMT)
36821 WHEN 43 THEN TO_CHAR(l1.AID_AMOUNT)
36822 WHEN 44 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
36823
36824 ELSE null
36825 END source_value
36826 , CASE r
36827 WHEN 7 THEN fvl8.meaning
36828 WHEN 10 THEN fvl11.meaning
36829 WHEN 33 THEN fvl42.meaning
36830
36831 ELSE null
36832 END source_meaning
36833 FROM xla_events_gt xet
36834 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
36835 , FV_XLA_AP_REF_V l3
36836 , ZX_AP_DEF_TAX_EXTRACT_V l4
36837 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
36838 , fnd_lookup_values fvl8
36839 , fnd_lookup_values fvl11
36840 , fnd_lookup_values fvl42
36841 , (select rownum r from all_objects where rownum <= 44 and owner = p_apps_owner)
36842 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
36843 AND xet.event_class_code = C_EVENT_CLASS_CODE
36844 AND l1.event_id = xet.event_id
36845 AND l3.federal_event_id (+) = l1.event_id and l3.federal_line_number (+) = l1.line_number AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND fvl8.lookup_type(+) =
36846 'INVOICE DISTRIBUTION TYPE'
36847 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
36848 AND fvl8.view_application_id(+) = 200
36849 AND fvl8.language(+) = USERENV('LANG')
36850 AND fvl11.lookup_type(+) = 'YES_NO'
36851 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
36852 AND fvl11.view_application_id(+) = 0
36853 AND fvl11.language(+) = USERENV('LANG')
36854 AND fvl42.lookup_type(+) = 'YES_NO'
36855 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
36856 AND fvl42.view_application_id(+) = 0
36857 AND fvl42.language(+) = USERENV('LANG')
36858
36859 )
36860 ;
36861 --
36862 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
36863
36864 trace
36865 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
36866 ,p_level => C_LEVEL_STATEMENT
36867 ,p_module => l_log_module);
36868
36869 END IF;
36870
36871
36872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36873 trace
36874 (p_msg => 'END of insert_sources_60'
36875 ,p_level => C_LEVEL_PROCEDURE
36876 ,p_module => l_log_module);
36877 END IF;
36878 EXCEPTION
36879 WHEN xla_exceptions_pkg.application_exception THEN
36880 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
36881 trace
36882 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
36883 ,p_level => C_LEVEL_EXCEPTION
36884 ,p_module => l_log_module);
36885 END IF;
36886 RAISE;
36887 WHEN OTHERS THEN
36888 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
36889 trace
36890 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
36891 ,p_level => C_LEVEL_EXCEPTION
36892 ,p_module => l_log_module);
36893 END IF;
36894 xla_exceptions_pkg.raise_message
36895 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.insert_sources_60');
36896 END insert_sources_60;
36897 --
36898
36899 ---------------------------------------
36900 --
36901 -- PRIVATE FUNCTION
36902 -- EventClass_60
36903 --
36904 ----------------------------------------
36905 --
36906 FUNCTION EventClass_60
36907 (p_application_id IN NUMBER
36908 ,p_base_ledger_id IN NUMBER
36909 ,p_target_ledger_id IN NUMBER
36910 ,p_language IN VARCHAR2
36911 ,p_currency_code IN VARCHAR2
36912 ,p_sla_ledger_id IN NUMBER
36913 ,p_pad_start_date IN DATE
36914 ,p_pad_end_date IN DATE
36915 ,p_primary_ledger_id IN NUMBER)
36916 RETURN BOOLEAN IS
36917 --
36918 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS_ALL';
36919 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT MEMOS';
36920
36921 l_calculate_acctd_flag VARCHAR2(1) :='N';
36922 l_calculate_g_l_flag VARCHAR2(1) :='N';
36923 --
36924 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36925 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36926 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
36927 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
36928 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36929 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
36930 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
36931 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36932 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36933 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36934 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36935 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36936 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36937 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
36938 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
36939 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
36940 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
36941 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
36942 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36943 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36944 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36945 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
36946 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
36947 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
36948 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
36949 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
36950
36951 l_event_id NUMBER;
36952 l_previous_event_id NUMBER;
36953 l_first_event_id NUMBER;
36954 l_last_event_id NUMBER;
36955
36956 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
36957 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36958 --
36959 --
36960 l_result BOOLEAN := TRUE;
36961 l_rows NUMBER := 1000;
36962 l_event_type_name VARCHAR2(80) := 'All';
36963 l_event_class_name VARCHAR2(80) := 'Credit Memos';
36964 l_description VARCHAR2(4000);
36965 l_transaction_reversal NUMBER;
36966 l_ae_header_id NUMBER;
36967 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
36968 l_log_module VARCHAR2(240);
36969 --
36970 l_acct_reversal_source VARCHAR2(30);
36971 l_trx_reversal_source VARCHAR2(30);
36972
36973 l_continue_with_lines BOOLEAN := TRUE;
36974 --
36975 l_acc_rev_gl_date_source DATE; -- 4262811
36976 --
36977 type t_array_event_id is table of number index by binary_integer;
36978
36979 l_rec_array_event t_rec_array_event;
36980 l_null_rec_array_event t_rec_array_event;
36981 l_array_ae_header_id xla_number_array_type;
36982 l_actual_flag VARCHAR2(1) := NULL;
36983 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
36984 l_balance_type_code VARCHAR2(1) :=NULL;
36985 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
36986
36987 --
36988 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
36989 --
36990
36991 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_PAYMENT_STATUS_FLAG%TYPE INDEX BY BINARY_INTEGER;
36992 TYPE t_array_source_13 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
36993 TYPE t_array_source_20 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
36994 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
36995 TYPE t_array_source_36 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
36996 TYPE t_array_source_37 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
36997 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
36998 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
36999 TYPE t_array_source_44 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
37000 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
37001 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
37002 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
37003 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
37004
37005 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
37006 TYPE t_array_source_2 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
37007 TYPE t_array_source_3 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATION%TYPE INDEX BY BINARY_INTEGER;
37008 TYPE t_array_source_4 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
37009 TYPE t_array_source_5 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
37010 TYPE t_array_source_6 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CAT_DESC%TYPE INDEX BY BINARY_INTEGER;
37011 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
37012 TYPE t_array_source_9 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
37013 TYPE t_array_source_10 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
37014 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
37015 TYPE t_array_source_12 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
37016 TYPE t_array_source_14 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ADJUSTMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
37017 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
37018 TYPE t_array_source_17 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
37019 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
37020 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
37021 TYPE t_array_source_22 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
37022 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
37023 TYPE t_array_source_24 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
37024 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
37025 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
37026 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
37027 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
37028 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
37029 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
37030 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
37031 TYPE t_array_source_33 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
37035 TYPE t_array_source_40 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
37032 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
37033 TYPE t_array_source_35 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
37034 TYPE t_array_source_39 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
37036 TYPE t_array_source_41 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
37037 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
37038 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
37039 TYPE t_array_source_47 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
37040 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
37041 TYPE t_array_source_49 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
37042 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
37043 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
37044 TYPE t_array_source_52 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
37045 TYPE t_array_source_53 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
37046 TYPE t_array_source_54 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_UNANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
37047 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
37048 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
37049
37050 l_array_source_7 t_array_source_7;
37051 l_array_source_13 t_array_source_13;
37052 l_array_source_13_meaning t_array_lookup_meaning;
37053 l_array_source_20 t_array_source_20;
37054 l_array_source_29 t_array_source_29;
37055 l_array_source_36 t_array_source_36;
37056 l_array_source_37 t_array_source_37;
37057 l_array_source_38 t_array_source_38;
37058 l_array_source_43 t_array_source_43;
37059 l_array_source_44 t_array_source_44;
37060 l_array_source_45 t_array_source_45;
37061 l_array_source_71 t_array_source_71;
37062 l_array_source_72 t_array_source_72;
37063 l_array_source_73 t_array_source_73;
37064
37065 l_array_source_1 t_array_source_1;
37066 l_array_source_2 t_array_source_2;
37067 l_array_source_3 t_array_source_3;
37068 l_array_source_4 t_array_source_4;
37069 l_array_source_5 t_array_source_5;
37070 l_array_source_6 t_array_source_6;
37071 l_array_source_8 t_array_source_8;
37072 l_array_source_8_meaning t_array_lookup_meaning;
37073 l_array_source_9 t_array_source_9;
37074 l_array_source_10 t_array_source_10;
37075 l_array_source_11 t_array_source_11;
37076 l_array_source_11_meaning t_array_lookup_meaning;
37077 l_array_source_12 t_array_source_12;
37078 l_array_source_14 t_array_source_14;
37079 l_array_source_15 t_array_source_15;
37080 l_array_source_17 t_array_source_17;
37081 l_array_source_19 t_array_source_19;
37082 l_array_source_21 t_array_source_21;
37083 l_array_source_22 t_array_source_22;
37084 l_array_source_23 t_array_source_23;
37085 l_array_source_24 t_array_source_24;
37086 l_array_source_25 t_array_source_25;
37087 l_array_source_26 t_array_source_26;
37088 l_array_source_27 t_array_source_27;
37089 l_array_source_28 t_array_source_28;
37090 l_array_source_30 t_array_source_30;
37091 l_array_source_31 t_array_source_31;
37092 l_array_source_32 t_array_source_32;
37093 l_array_source_33 t_array_source_33;
37094 l_array_source_34 t_array_source_34;
37095 l_array_source_35 t_array_source_35;
37096 l_array_source_39 t_array_source_39;
37097 l_array_source_40 t_array_source_40;
37098 l_array_source_41 t_array_source_41;
37099 l_array_source_42 t_array_source_42;
37100 l_array_source_42_meaning t_array_lookup_meaning;
37101 l_array_source_46 t_array_source_46;
37102 l_array_source_47 t_array_source_47;
37103 l_array_source_48 t_array_source_48;
37104 l_array_source_49 t_array_source_49;
37105 l_array_source_50 t_array_source_50;
37106 l_array_source_51 t_array_source_51;
37107 l_array_source_52 t_array_source_52;
37108 l_array_source_53 t_array_source_53;
37109 l_array_source_54 t_array_source_54;
37110 l_array_source_55 t_array_source_55;
37111 l_array_source_56 t_array_source_56;
37112
37113 --
37114 CURSOR header_cur
37115 IS
37116 SELECT /*+ leading(xet) cardinality(xet,1) */
37117 -- Event Class Code: CREDIT MEMOS
37118 xet.entity_id
37119 ,xet.legal_entity_id
37120 ,xet.entity_code
37121 ,xet.transaction_number
37122 ,xet.event_id
37123 ,xet.event_class_code
37124 ,xet.event_type_code
37125 ,xet.event_number
37126 ,xet.event_date
37127 ,xet.transaction_date
37128 ,xet.reference_num_1
37129 ,xet.reference_num_2
37130 ,xet.reference_num_3
37131 ,xet.reference_num_4
37132 ,xet.reference_char_1
37133 ,xet.reference_char_2
37134 ,xet.reference_char_3
37135 ,xet.reference_char_4
37136 ,xet.reference_date_1
37137 ,xet.reference_date_2
37138 ,xet.reference_date_3
37139 ,xet.reference_date_4
37140 ,xet.event_created_by
37141 ,xet.budgetary_control_flag
37142 , h2.AI_PAYMENT_STATUS_FLAG source_7
37143 , h2.AI_INVOICE_TYPE_LOOKUP_CODE source_13
37144 , fvl13.meaning source_13_meaning
37145 , h2.AI_INVOICE_ID source_20
37146 , h2.AI_INVOICE_CURRENCY_CODE source_29
37147 , h2.INV_EXCHANGE_DATE source_36
37148 , h2.INV_EXCHANGE_RATE source_37
37149 , h2.INV_EXCHANGE_RATE_TYPE source_38
37150 , h2.AI_VENDOR_ID source_43
37151 , h2.AI_VENDOR_SITE_ID source_44
37152 , h2.THIRD_PARTY_TYPE source_45
37153 , h2.INV_DOC_SEQUENCE_CATEGORY source_71
37154 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_72
37155 , h2.INV_DOC_SEQUENCE_VALUE source_73
37156 FROM xla_events_gt xet
37157 , AP_INVOICE_EXTRACT_HEADER_V h2
37158 , fnd_lookup_values fvl13
37159 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
37160 and xet.event_class_code = C_EVENT_CLASS_CODE
37161 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
37162 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
37163 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
37164 AND fvl13.view_application_id(+) = 200
37165 AND fvl13.language(+) = USERENV('LANG')
37166
37167 ORDER BY event_id
37168 ;
37169
37170
37171 --
37172 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
37173 IS
37174 SELECT /*+ leading(xet) cardinality(xet,1) */
37175 -- Event Class Code: CREDIT MEMOS
37176 xet.entity_id
37177 ,xet.legal_entity_id
37178 ,xet.entity_code
37179 ,xet.transaction_number
37180 ,xet.event_id
37181 ,xet.event_class_code
37182 ,xet.event_type_code
37183 ,xet.event_number
37184 ,xet.event_date
37185 ,xet.transaction_date
37186 ,xet.reference_num_1
37187 ,xet.reference_num_2
37188 ,xet.reference_num_3
37189 ,xet.reference_num_4
37190 ,xet.reference_char_1
37191 ,xet.reference_char_2
37192 ,xet.reference_char_3
37193 ,xet.reference_char_4
37194 ,xet.reference_date_1
37195 ,xet.reference_date_2
37196 ,xet.reference_date_3
37197 ,xet.reference_date_4
37198 ,xet.event_created_by
37199 ,xet.budgetary_control_flag
37200 , l1.LINE_NUMBER
37201 , l1.AID_DESCRIPTION source_1
37202 , l1.AID_DIST_CCID source_2
37203 , l3.FEDERAL_ANTICIPATION source_3
37204 , l3.FEDERAL_FUND_CATEGORY source_4
37205 , l3.FEDERAL_FUND_EXPIRED_STATUS source_5
37206 , l3.FEDERAL_FUND_CAT_DESC source_6
37207 , l1.AID_LINE_TYPE_LOOKUP_CODE source_8
37208 , fvl8.meaning source_8_meaning
37209 , l3.FEDERAL_PRIOR_YEAR_FLAG source_9
37210 , l1.ENCUMBRANCE_AMOUNT source_10
37211 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_11
37212 , fvl11.meaning source_11_meaning
37213 , l1.PO_DISTRIBUTION_ID source_12
37214 , l3.FEDERAL_ADJUSTMENT_TYPE source_14
37215 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_15
37219 , l1.BUS_FLOW_INV_DIST_TYPE source_22
37216 , l1.DISTRIBUTION_LINK_TYPE source_17
37217 , l1.ALLOC_TO_MAIN_DIST_ID source_19
37218 , l1.BUS_FLOW_AP_APP_ID source_21
37220 , l1.BUS_FLOW_INV_ENTITY_CODE source_23
37221 , l1.BUS_FLOW_INV_DIST_ID source_24
37222 , l1.BUS_FLOW_INV_ID source_25
37223 , l1.AID_INVOICE_DIST_ID source_26
37224 , l1.UPG_ENC_CR_CCID source_27
37225 , l1.UPG_ENC_CR_AMT source_28
37226 , l1.UPG_ENC_CR_BASE_AMT source_30
37227 , l1.UPG_ENC_DR_CCID source_31
37228 , l1.UPG_ENC_DR_AMT source_32
37229 , l1.UPG_ENC_DR_BASE_AMT source_33
37230 , l1.UPG_AP_ENCUM_OPTION source_34
37231 , l3.FEDERAL_ANTICIPATED_AMT source_35
37232 , l1.DEFERRED_END_DATE source_39
37233 , l1.DEFERRED_OPTION source_40
37234 , l1.DEFERRED_START_DATE source_41
37235 , l1.OVERRIDE_ACCTD_AMT_FLAG source_42
37236 , fvl42.meaning source_42_meaning
37237 , l1.AID_PARENT_REVERSAL_ID source_46
37238 , l1.AID_STAT_AMOUNT source_47
37239 , l4.TAX_LINE_ID source_48
37240 , l5.REC_NREC_TAX_DIST_ID source_49
37241 , l1.SUMMARY_TAX_LINE_ID source_50
37242 , l1.UPG_CR_ENC_TYPE_ID source_51
37243 , l1.UPG_DR_ENC_TYPE_ID source_52
37244 , l1.ENCUMBRANCE_BASE_AMOUNT source_53
37245 , l3.FEDERAL_UNANTICIPATED_AMT source_54
37246 , l1.AID_AMOUNT source_55
37247 , l1.INV_DIST_BASE_AMOUNT source_56
37248 FROM xla_events_gt xet
37249 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
37250 , FV_XLA_AP_REF_V l3
37251 , ZX_AP_DEF_TAX_EXTRACT_V l4
37252 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
37253 , fnd_lookup_values fvl8
37254 , fnd_lookup_values fvl11
37255 , fnd_lookup_values fvl42
37256 WHERE xet.event_id between x_first_event_id and x_last_event_id
37257 and xet.event_date between p_pad_start_date and p_pad_end_date
37258 and xet.event_class_code = C_EVENT_CLASS_CODE
37259 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
37260 AND l3.Federal_Event_Id (+) = l1.event_Id AND l3.Federal_line_number (+) = l1.line_number AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+) AND fvl8.lookup_type(+) =
37261 'INVOICE DISTRIBUTION TYPE'
37262 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
37263 AND fvl8.view_application_id(+) = 200
37264 AND fvl8.language(+) = USERENV('LANG')
37265 AND fvl11.lookup_type(+) = 'YES_NO'
37266 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
37267 AND fvl11.view_application_id(+) = 0
37268 AND fvl11.language(+) = USERENV('LANG')
37269 AND fvl42.lookup_type(+) = 'YES_NO'
37270 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
37271 AND fvl42.view_application_id(+) = 0
37272 AND fvl42.language(+) = USERENV('LANG')
37273 ;
37274
37275 --
37276 BEGIN
37277 IF g_log_enabled THEN
37278 l_log_module := C_DEFAULT_MODULE||'.EventClass_60';
37279 END IF;
37280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37281 trace
37282 (p_msg => 'BEGIN of EventClass_60'
37283 ,p_level => C_LEVEL_PROCEDURE
37284 ,p_module => l_log_module);
37285 END IF;
37286
37287 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
37288 trace
37289 (p_msg => 'p_application_id = '||p_application_id||
37290 ' - p_base_ledger_id = '||p_base_ledger_id||
37291 ' - p_target_ledger_id = '||p_target_ledger_id||
37292 ' - p_language = '||p_language||
37293 ' - p_currency_code = '||p_currency_code||
37294 ' - p_sla_ledger_id = '||p_sla_ledger_id
37295 ,p_level => C_LEVEL_STATEMENT
37296 ,p_module => l_log_module);
37297 END IF;
37298 --
37299 -- initialze arrays
37300 --
37301 g_array_event.DELETE;
37302 l_rec_array_event := l_null_rec_array_event;
37303 --
37304 --------------------------------------
37305 -- 4262811 Initialze MPA Line Number
37306 --------------------------------------
37307 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
37308
37309 --
37310
37311 --
37312 OPEN header_cur;
37313 --
37314 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
37315 trace
37316 (p_msg => 'SQL - FETCH header_cur'
37317 ,p_level => C_LEVEL_STATEMENT
37318 ,p_module => l_log_module);
37319 END IF;
37320 --
37321 LOOP
37322 FETCH header_cur BULK COLLECT INTO
37323 l_array_entity_id
37324 , l_array_legal_entity_id
37325 , l_array_entity_code
37326 , l_array_transaction_num
37327 , l_array_event_id
37328 , l_array_class_code
37329 , l_array_event_type
37330 , l_array_event_number
37331 , l_array_event_date
37332 , l_array_transaction_date
37333 , l_array_reference_num_1
37334 , l_array_reference_num_2
37335 , l_array_reference_num_3
37336 , l_array_reference_num_4
37337 , l_array_reference_char_1
37338 , l_array_reference_char_2
37339 , l_array_reference_char_3
37340 , l_array_reference_char_4
37341 , l_array_reference_date_1
37342 , l_array_reference_date_2
37343 , l_array_reference_date_3
37344 , l_array_reference_date_4
37345 , l_array_event_created_by
37346 , l_array_budgetary_control_flag
37347 , l_array_source_7
37348 , l_array_source_13
37349 , l_array_source_13_meaning
37350 , l_array_source_20
37351 , l_array_source_29
37352 , l_array_source_36
37353 , l_array_source_37
37354 , l_array_source_38
37355 , l_array_source_43
37356 , l_array_source_44
37357 , l_array_source_45
37358 , l_array_source_71
37359 , l_array_source_72
37360 , l_array_source_73
37361 LIMIT l_rows;
37362 --
37363 IF (C_LEVEL_EVENT >= g_log_level) THEN
37364 trace
37365 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
37366 ,p_level => C_LEVEL_EVENT
37367 ,p_module => l_log_module);
37368 END IF;
37369 --
37370 EXIT WHEN l_array_entity_id.COUNT = 0;
37371
37372 -- initialize arrays
37373 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
37374 XLA_AE_LINES_PKG.g_rec_lines := NULL;
37375
37376 --
37377 -- Bug 4458708
37378 --
37379 XLA_AE_LINES_PKG.g_LineNumber := 0;
37380
37381
37382 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
37383 g_last_hdr_idx := l_array_event_id.LAST;
37384 --
37385 -- loop for the headers. Each iteration is for each header extract row
37386 -- fetched in header cursor
37387 --
37388 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
37389
37390 --
37391 -- set event info as cache for other routines to refer event attributes
37392 --
37393 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
37394 (p_application_id => p_application_id
37395 ,p_primary_ledger_id => p_primary_ledger_id
37396 ,p_base_ledger_id => p_base_ledger_id
37397 ,p_target_ledger_id => p_target_ledger_id
37398 ,p_entity_id => l_array_entity_id(hdr_idx)
37399 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
37400 ,p_entity_code => l_array_entity_code(hdr_idx)
37401 ,p_transaction_num => l_array_transaction_num(hdr_idx)
37402 ,p_event_id => l_array_event_id(hdr_idx)
37403 ,p_event_class_code => l_array_class_code(hdr_idx)
37404 ,p_event_type_code => l_array_event_type(hdr_idx)
37405 ,p_event_number => l_array_event_number(hdr_idx)
37406 ,p_event_date => l_array_event_date(hdr_idx)
37407 ,p_transaction_date => l_array_transaction_date(hdr_idx)
37408 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
37409 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
37410 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
37411 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
37412 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
37413 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
37414 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
37415 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
37416 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
37417 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
37418 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
37419 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
37420 ,p_event_created_by => l_array_event_created_by(hdr_idx)
37421 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
37422
37423 --
37424 -- set the status of entry to C_VALID (0)
37425 --
37426 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
37427
37428 --
37429 -- initialize a row for ae header
37430 --
37431 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
37432
37433 l_event_id := l_array_event_id(hdr_idx);
37434
37435 --
37436 -- storing the hdr_idx for event. May be used by line cursor.
37437 --
37438 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
37439
37440 --
37441 -- store sources from header extract. This can be improved to
37442 -- store only those sources from header extract that may be used in lines
37443 --
37444
37445 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
37446 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
37447 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
37448 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
37449 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
37450 g_array_event(l_event_id).array_value_date('source_36') := l_array_source_36(hdr_idx);
37451 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
37452 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
37453 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
37454 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
37455 g_array_event(l_event_id).array_value_char('source_45') := l_array_source_45(hdr_idx);
37456 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
37457 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
37458 g_array_event(l_event_id).array_value_num('source_73') := l_array_source_73(hdr_idx);
37459
37460 --
37461 -- initilaize the status of ae headers for diffrent balance types
37462 -- the status is initialised to C_NOT_CREATED (2)
37463 --
37464 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
37465 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
37466 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
37467
37468 --
37469 -- call api to validate and store accounting attributes for header
37470 --
37471
37472 ------------------------------------------------------------
37473 -- Accrual Reversal : to get date for Standard Source (NONE)
37474 ------------------------------------------------------------
37475 l_acc_rev_gl_date_source := NULL;
37476
37477 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
37478 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_71');
37479 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
37480 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_72');
37481 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
37482 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_73');
37483 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
37484 l_rec_acct_attrs.array_date_value(4) :=
37485 xla_ae_sources_pkg.GetSystemSourceDate(
37486 p_source_code => 'XLA_EVENT_DATE'
37487 , p_source_type_code => 'Y'
37488 , p_source_application_id => 602
37489 );
37490
37491
37492 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
37493
37494 XLA_AE_HEADER_PKG.SetJeCategoryName;
37495
37496 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
37497 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
37498 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
37499 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
37500 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
37501
37502
37503 --
37504 xla_ae_header_pkg.SetHdrDescription(
37505 p_description => Description_1 (
37506 p_application_id => p_application_id
37507 )
37508 );
37509 --
37510
37511 -- No header level analytical criteria
37512
37513 --
37514 --accounting attribute enhancement, bug 3612931
37515 --
37516 l_trx_reversal_source := SUBSTR(NULL, 1,30);
37517
37518 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
37519 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
37520
37521 xla_accounting_err_pkg.build_message
37522 (p_appli_s_name => 'XLA'
37523 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
37524 ,p_token_1 => 'ACCT_ATTR_NAME'
37525 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
37526 ,p_token_2 => 'PRODUCT_NAME'
37527 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
37528 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
37529 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
37530 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
37531
37532 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
37533 --
37534 -- following sets the accounting attributes needed to reverse
37535 -- accounting for a distributeion
37536 --
37537 xla_ae_lines_pkg.SetTrxReversalAttrs
37538 (p_event_id => l_event_id
37539 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
37540 ,p_trx_reversal_source => l_trx_reversal_source);
37541
37542 END IF;
37543
37544
37545 ----------------------------------------------------------------
37546 -- 4262811 - update the header statuses to invalid in need be
37547 ----------------------------------------------------------------
37548 --
37549 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
37550
37551
37552 -----------------------------------------------
37553 -- No accrual reversal for the event class/type
37554 -----------------------------------------------
37555 ----------------------------------------------------------------
37556
37557 --
37558 -- this ends the header loop iteration for one bulk fetch
37559 --
37560 END LOOP;
37561
37562 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
37563 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
37564
37565 --
37566 -- insert dummy rows into lines gt table that were created due to
37567 -- transaction reversals
37568 --
37569 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
37570 l_result := XLA_AE_LINES_PKG.InsertLines;
37571 END IF;
37572
37573 --
37574 -- reset the temp_line_num for each set of events fetched from header
37575 -- cursor rather than doing it for each new event in line cursor
37576 -- Bug 3939231
37577 --
37578 xla_ae_lines_pkg.g_temp_line_num := 0;
37579
37580
37581
37582 --
37583 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
37584 --
37585 --
37586 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
37587
37588 trace
37589 (p_msg => 'SQL - FETCH line_cur'
37590 ,p_level => C_LEVEL_STATEMENT
37591 ,p_module => l_log_module);
37592
37593 END IF;
37594 --
37595 --
37596 LOOP
37597 --
37598 FETCH line_cur BULK COLLECT INTO
37599 l_array_entity_id
37600 , l_array_legal_entity_id
37601 , l_array_entity_code
37602 , l_array_transaction_num
37603 , l_array_event_id
37604 , l_array_class_code
37605 , l_array_event_type
37606 , l_array_event_number
37607 , l_array_event_date
37608 , l_array_transaction_date
37609 , l_array_reference_num_1
37610 , l_array_reference_num_2
37611 , l_array_reference_num_3
37612 , l_array_reference_num_4
37613 , l_array_reference_char_1
37614 , l_array_reference_char_2
37615 , l_array_reference_char_3
37616 , l_array_reference_char_4
37617 , l_array_reference_date_1
37618 , l_array_reference_date_2
37619 , l_array_reference_date_3
37620 , l_array_reference_date_4
37621 , l_array_event_created_by
37622 , l_array_budgetary_control_flag
37623 , l_array_extract_line_num
37624 , l_array_source_1
37625 , l_array_source_2
37626 , l_array_source_3
37627 , l_array_source_4
37628 , l_array_source_5
37629 , l_array_source_6
37630 , l_array_source_8
37631 , l_array_source_8_meaning
37632 , l_array_source_9
37633 , l_array_source_10
37634 , l_array_source_11
37635 , l_array_source_11_meaning
37636 , l_array_source_12
37637 , l_array_source_14
37638 , l_array_source_15
37639 , l_array_source_17
37640 , l_array_source_19
37641 , l_array_source_21
37642 , l_array_source_22
37643 , l_array_source_23
37644 , l_array_source_24
37645 , l_array_source_25
37646 , l_array_source_26
37647 , l_array_source_27
37648 , l_array_source_28
37649 , l_array_source_30
37650 , l_array_source_31
37651 , l_array_source_32
37652 , l_array_source_33
37653 , l_array_source_34
37654 , l_array_source_35
37655 , l_array_source_39
37656 , l_array_source_40
37657 , l_array_source_41
37658 , l_array_source_42
37659 , l_array_source_42_meaning
37660 , l_array_source_46
37661 , l_array_source_47
37662 , l_array_source_48
37663 , l_array_source_49
37664 , l_array_source_50
37665 , l_array_source_51
37666 , l_array_source_52
37667 , l_array_source_53
37668 , l_array_source_54
37669 , l_array_source_55
37670 , l_array_source_56
37671 LIMIT l_rows;
37672
37673 --
37674 IF (C_LEVEL_EVENT >= g_log_level) THEN
37675 trace
37676 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
37677 ,p_level => C_LEVEL_EVENT
37678 ,p_module => l_log_module);
37679 END IF;
37680 --
37681 EXIT WHEN l_array_entity_id.count = 0;
37682
37683 XLA_AE_LINES_PKG.g_rec_lines := null;
37684
37685 --
37686 -- Bug 4458708
37687 --
37688 XLA_AE_LINES_PKG.g_LineNumber := 0;
37689 --
37690 --
37691
37692 FOR Idx IN 1..l_array_event_id.count LOOP
37693 --
37694 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
37695 --
37696 l_event_id := l_array_event_id(idx); -- 5648433
37697
37698 --
37699 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
37700 --
37701
37702 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
37703 (g_array_event(l_event_id).array_value_num('header_index'))
37704 ,'N'
37705 ) <> 'Y'
37706 THEN
37707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
37708 trace
37709 (p_msg => 'Trancaction revesal option is not Y '
37710 ,p_level => C_LEVEL_STATEMENT
37711 ,p_module => l_log_module);
37712 END IF;
37713
37714 --
37715 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
37716 --
37717 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
37718 --
37719 -- set event info as cache for other routines to refer event attributes
37720 --
37721
37722 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
37723 l_previous_event_id := l_event_id;
37724
37725 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
37726 (p_application_id => p_application_id
37727 ,p_primary_ledger_id => p_primary_ledger_id
37728 ,p_base_ledger_id => p_base_ledger_id
37729 ,p_target_ledger_id => p_target_ledger_id
37730 ,p_entity_id => l_array_entity_id(Idx)
37731 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
37732 ,p_entity_code => l_array_entity_code(Idx)
37733 ,p_transaction_num => l_array_transaction_num(Idx)
37734 ,p_event_id => l_array_event_id(Idx)
37735 ,p_event_class_code => l_array_class_code(Idx)
37736 ,p_event_type_code => l_array_event_type(Idx)
37737 ,p_event_number => l_array_event_number(Idx)
37738 ,p_event_date => l_array_event_date(Idx)
37739 ,p_transaction_date => l_array_transaction_date(Idx)
37740 ,p_reference_num_1 => l_array_reference_num_1(Idx)
37741 ,p_reference_num_2 => l_array_reference_num_2(Idx)
37742 ,p_reference_num_3 => l_array_reference_num_3(Idx)
37743 ,p_reference_num_4 => l_array_reference_num_4(Idx)
37744 ,p_reference_char_1 => l_array_reference_char_1(Idx)
37745 ,p_reference_char_2 => l_array_reference_char_2(Idx)
37746 ,p_reference_char_3 => l_array_reference_char_3(Idx)
37747 ,p_reference_char_4 => l_array_reference_char_4(Idx)
37748 ,p_reference_date_1 => l_array_reference_date_1(Idx)
37749 ,p_reference_date_2 => l_array_reference_date_2(Idx)
37750 ,p_reference_date_3 => l_array_reference_date_3(Idx)
37751 ,p_reference_date_4 => l_array_reference_date_4(Idx)
37752 ,p_event_created_by => l_array_event_created_by(Idx)
37753 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
37754 --
37755 END IF;
37756
37757
37758
37759 --
37760 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
37761
37762 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
37763
37764 IF l_continue_with_lines THEN
37765 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
37766 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
37767
37768 xla_accounting_err_pkg.build_message
37769 (p_appli_s_name => 'XLA'
37770 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
37771 ,p_token_1 => 'LINE_NUMBER'
37772 ,p_value_1 => l_array_extract_line_num(Idx)
37773 ,p_token_2 => 'PRODUCT_NAME'
37774 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
37775 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
37776 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
37777 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
37778
37779 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
37780 --
37781 -- following sets the accounting attributes needed to reverse
37782 -- accounting for a distributeion
37783 --
37784
37785 --
37786 -- 5217187
37787 --
37788 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
37789 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
37790 g_array_event(l_event_id).array_value_num('header_index'));
37791 --
37792 --
37793
37794 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
37795 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
37796 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
37797 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_26(Idx);
37798 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
37799 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
37800 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
37801 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_27(Idx);
37802 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
37803 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_28(Idx);
37804 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
37805 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_29');
37806 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
37807 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_30(Idx);
37808 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
37809 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_31(Idx);
37810 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
37811 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_32(Idx);
37812 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
37813 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_29');
37814 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
37815 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_33(Idx);
37816 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
37817 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_34(Idx);
37818 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
37819 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_45');
37820 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
37821 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_46(Idx);
37822 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
37823 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_17(Idx);
37824 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
37825 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_48(Idx);
37826 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
37827 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_49(Idx);
37828 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
37829 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_50(Idx);
37830 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
37831 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_51(Idx);
37832 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
37833 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_52(Idx);
37834
37835
37836 xla_ae_lines_pkg.SetAcctReversalAttrs
37837 (p_event_id => l_event_id
37838 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
37839 ,p_calculate_acctd_flag => l_calculate_acctd_flag
37840 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
37841 END IF;
37842
37843 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
37844 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
37845
37846 --
37847 AcctLineType_17 (
37848 p_application_id => p_application_id
37849 ,p_event_id => l_event_id
37850 ,p_calculate_acctd_flag => l_calculate_acctd_flag
37851 ,p_calculate_g_l_flag => l_calculate_g_l_flag
37852 ,p_actual_flag => l_actual_flag
37853 ,p_balance_type_code => l_balance_type_code
37854 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
37855
37856 , p_source_1 => l_array_source_1(Idx)
37857 , p_source_2 => l_array_source_2(Idx)
37858 , p_source_3 => l_array_source_3(Idx)
37859 , p_source_8 => l_array_source_8(Idx)
37860 , p_source_8_meaning => l_array_source_8_meaning(Idx)
37861 , p_source_9 => l_array_source_9(Idx)
37862 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
37863 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
37864 , p_source_14 => l_array_source_14(Idx)
37865 , p_source_15 => l_array_source_15(Idx)
37866 , p_source_17 => l_array_source_17(Idx)
37867 , p_source_19 => l_array_source_19(Idx)
37868 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
37869 , p_source_21 => l_array_source_21(Idx)
37870 , p_source_22 => l_array_source_22(Idx)
37871 , p_source_23 => l_array_source_23(Idx)
37872 , p_source_24 => l_array_source_24(Idx)
37873 , p_source_25 => l_array_source_25(Idx)
37874 , p_source_26 => l_array_source_26(Idx)
37875 , p_source_27 => l_array_source_27(Idx)
37876 , p_source_28 => l_array_source_28(Idx)
37877 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
37878 , p_source_30 => l_array_source_30(Idx)
37879 , p_source_31 => l_array_source_31(Idx)
37880 , p_source_32 => l_array_source_32(Idx)
37881 , p_source_33 => l_array_source_33(Idx)
37882 , p_source_34 => l_array_source_34(Idx)
37883 , p_source_35 => l_array_source_35(Idx)
37884 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
37885 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
37886 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
37887 , p_source_39 => l_array_source_39(Idx)
37888 , p_source_40 => l_array_source_40(Idx)
37889 , p_source_41 => l_array_source_41(Idx)
37890 , p_source_42 => l_array_source_42(Idx)
37891 , p_source_42_meaning => l_array_source_42_meaning(Idx)
37892 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
37893 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
37894 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
37895 , p_source_46 => l_array_source_46(Idx)
37896 , p_source_47 => l_array_source_47(Idx)
37897 , p_source_48 => l_array_source_48(Idx)
37898 , p_source_49 => l_array_source_49(Idx)
37899 , p_source_50 => l_array_source_50(Idx)
37900 , p_source_51 => l_array_source_51(Idx)
37901 , p_source_52 => l_array_source_52(Idx)
37902 );
37903 If(l_balance_type_code = 'A') THEN
37904 l_actual_gain_loss_ref := l_gain_or_loss_ref;
37905 END IF;
37906
37907 --
37908
37909
37910 --
37911 AcctLineType_18 (
37912 p_application_id => p_application_id
37913 ,p_event_id => l_event_id
37914 ,p_calculate_acctd_flag => l_calculate_acctd_flag
37915 ,p_calculate_g_l_flag => l_calculate_g_l_flag
37916 ,p_actual_flag => l_actual_flag
37917 ,p_balance_type_code => l_balance_type_code
37918 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
37919
37920 , p_source_1 => l_array_source_1(Idx)
37921 , p_source_2 => l_array_source_2(Idx)
37922 , p_source_8 => l_array_source_8(Idx)
37923 , p_source_8_meaning => l_array_source_8_meaning(Idx)
37924 , p_source_9 => l_array_source_9(Idx)
37925 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
37926 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
37927 , p_source_14 => l_array_source_14(Idx)
37928 , p_source_15 => l_array_source_15(Idx)
37929 , p_source_17 => l_array_source_17(Idx)
37930 , p_source_19 => l_array_source_19(Idx)
37931 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
37932 , p_source_21 => l_array_source_21(Idx)
37933 , p_source_22 => l_array_source_22(Idx)
37934 , p_source_23 => l_array_source_23(Idx)
37935 , p_source_24 => l_array_source_24(Idx)
37936 , p_source_25 => l_array_source_25(Idx)
37937 , p_source_26 => l_array_source_26(Idx)
37938 , p_source_27 => l_array_source_27(Idx)
37939 , p_source_28 => l_array_source_28(Idx)
37940 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
37941 , p_source_30 => l_array_source_30(Idx)
37942 , p_source_31 => l_array_source_31(Idx)
37943 , p_source_32 => l_array_source_32(Idx)
37944 , p_source_33 => l_array_source_33(Idx)
37945 , p_source_34 => l_array_source_34(Idx)
37946 , p_source_35 => l_array_source_35(Idx)
37947 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
37948 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
37949 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
37950 , p_source_39 => l_array_source_39(Idx)
37951 , p_source_40 => l_array_source_40(Idx)
37952 , p_source_41 => l_array_source_41(Idx)
37953 , p_source_42 => l_array_source_42(Idx)
37954 , p_source_42_meaning => l_array_source_42_meaning(Idx)
37955 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
37956 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
37957 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
37958 , p_source_46 => l_array_source_46(Idx)
37959 , p_source_47 => l_array_source_47(Idx)
37960 , p_source_48 => l_array_source_48(Idx)
37961 , p_source_49 => l_array_source_49(Idx)
37962 , p_source_50 => l_array_source_50(Idx)
37963 , p_source_51 => l_array_source_51(Idx)
37964 , p_source_52 => l_array_source_52(Idx)
37965 , p_source_53 => l_array_source_53(Idx)
37966 );
37967 If(l_balance_type_code = 'A') THEN
37968 l_actual_gain_loss_ref := l_gain_or_loss_ref;
37969 END IF;
37970
37971 --
37972
37973
37974 --
37975 AcctLineType_19 (
37976 p_application_id => p_application_id
37977 ,p_event_id => l_event_id
37978 ,p_calculate_acctd_flag => l_calculate_acctd_flag
37979 ,p_calculate_g_l_flag => l_calculate_g_l_flag
37980 ,p_actual_flag => l_actual_flag
37981 ,p_balance_type_code => l_balance_type_code
37982 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
37983
37984 , p_source_1 => l_array_source_1(Idx)
37985 , p_source_2 => l_array_source_2(Idx)
37986 , p_source_3 => l_array_source_3(Idx)
37987 , p_source_8 => l_array_source_8(Idx)
37988 , p_source_8_meaning => l_array_source_8_meaning(Idx)
37989 , p_source_9 => l_array_source_9(Idx)
37990 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
37991 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
37992 , p_source_14 => l_array_source_14(Idx)
37993 , p_source_15 => l_array_source_15(Idx)
37994 , p_source_17 => l_array_source_17(Idx)
37995 , p_source_19 => l_array_source_19(Idx)
37996 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
37997 , p_source_21 => l_array_source_21(Idx)
37998 , p_source_22 => l_array_source_22(Idx)
37999 , p_source_23 => l_array_source_23(Idx)
38000 , p_source_24 => l_array_source_24(Idx)
38001 , p_source_25 => l_array_source_25(Idx)
38002 , p_source_26 => l_array_source_26(Idx)
38003 , p_source_27 => l_array_source_27(Idx)
38004 , p_source_28 => l_array_source_28(Idx)
38005 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38006 , p_source_30 => l_array_source_30(Idx)
38007 , p_source_31 => l_array_source_31(Idx)
38008 , p_source_32 => l_array_source_32(Idx)
38009 , p_source_33 => l_array_source_33(Idx)
38010 , p_source_34 => l_array_source_34(Idx)
38011 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38012 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38013 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38014 , p_source_39 => l_array_source_39(Idx)
38015 , p_source_40 => l_array_source_40(Idx)
38016 , p_source_41 => l_array_source_41(Idx)
38017 , p_source_42 => l_array_source_42(Idx)
38018 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38019 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38020 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38021 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38022 , p_source_46 => l_array_source_46(Idx)
38023 , p_source_47 => l_array_source_47(Idx)
38024 , p_source_48 => l_array_source_48(Idx)
38025 , p_source_49 => l_array_source_49(Idx)
38026 , p_source_50 => l_array_source_50(Idx)
38027 , p_source_51 => l_array_source_51(Idx)
38028 , p_source_52 => l_array_source_52(Idx)
38029 , p_source_54 => l_array_source_54(Idx)
38030 );
38031 If(l_balance_type_code = 'A') THEN
38032 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38033 END IF;
38034
38035 --
38036
38037
38038 --
38039 AcctLineType_20 (
38040 p_application_id => p_application_id
38041 ,p_event_id => l_event_id
38042 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38043 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38044 ,p_actual_flag => l_actual_flag
38045 ,p_balance_type_code => l_balance_type_code
38046 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38047
38048 , p_source_1 => l_array_source_1(Idx)
38049 , p_source_2 => l_array_source_2(Idx)
38050 , p_source_8 => l_array_source_8(Idx)
38051 , p_source_8_meaning => l_array_source_8_meaning(Idx)
38052 , p_source_9 => l_array_source_9(Idx)
38053 , p_source_11 => l_array_source_11(Idx)
38054 , p_source_11_meaning => l_array_source_11_meaning(Idx)
38055 , p_source_12 => l_array_source_12(Idx)
38056 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
38057 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
38058 , p_source_14 => l_array_source_14(Idx)
38059 , p_source_15 => l_array_source_15(Idx)
38060 , p_source_17 => l_array_source_17(Idx)
38061 , p_source_19 => l_array_source_19(Idx)
38062 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38063 , p_source_21 => l_array_source_21(Idx)
38064 , p_source_22 => l_array_source_22(Idx)
38065 , p_source_23 => l_array_source_23(Idx)
38066 , p_source_24 => l_array_source_24(Idx)
38067 , p_source_25 => l_array_source_25(Idx)
38068 , p_source_26 => l_array_source_26(Idx)
38069 , p_source_27 => l_array_source_27(Idx)
38070 , p_source_28 => l_array_source_28(Idx)
38071 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38072 , p_source_30 => l_array_source_30(Idx)
38073 , p_source_31 => l_array_source_31(Idx)
38074 , p_source_32 => l_array_source_32(Idx)
38075 , p_source_33 => l_array_source_33(Idx)
38076 , p_source_34 => l_array_source_34(Idx)
38077 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38078 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38079 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38080 , p_source_39 => l_array_source_39(Idx)
38081 , p_source_40 => l_array_source_40(Idx)
38082 , p_source_41 => l_array_source_41(Idx)
38083 , p_source_42 => l_array_source_42(Idx)
38084 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38085 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38086 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38087 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38088 , p_source_46 => l_array_source_46(Idx)
38089 , p_source_47 => l_array_source_47(Idx)
38090 , p_source_48 => l_array_source_48(Idx)
38091 , p_source_49 => l_array_source_49(Idx)
38092 , p_source_50 => l_array_source_50(Idx)
38093 , p_source_51 => l_array_source_51(Idx)
38094 , p_source_52 => l_array_source_52(Idx)
38095 , p_source_55 => l_array_source_55(Idx)
38096 , p_source_56 => l_array_source_56(Idx)
38097 );
38098 If(l_balance_type_code = 'A') THEN
38099 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38100 END IF;
38101
38102 --
38103
38104
38105 --
38106 AcctLineType_21 (
38107 p_application_id => p_application_id
38108 ,p_event_id => l_event_id
38109 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38110 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38111 ,p_actual_flag => l_actual_flag
38112 ,p_balance_type_code => l_balance_type_code
38113 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38114
38115 , p_source_1 => l_array_source_1(Idx)
38116 , p_source_2 => l_array_source_2(Idx)
38117 , p_source_4 => l_array_source_4(Idx)
38118 , p_source_5 => l_array_source_5(Idx)
38119 , p_source_6 => l_array_source_6(Idx)
38120 , p_source_8 => l_array_source_8(Idx)
38121 , p_source_8_meaning => l_array_source_8_meaning(Idx)
38122 , p_source_9 => l_array_source_9(Idx)
38123 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
38124 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
38125 , p_source_14 => l_array_source_14(Idx)
38126 , p_source_15 => l_array_source_15(Idx)
38127 , p_source_17 => l_array_source_17(Idx)
38128 , p_source_19 => l_array_source_19(Idx)
38129 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38130 , p_source_21 => l_array_source_21(Idx)
38131 , p_source_22 => l_array_source_22(Idx)
38132 , p_source_23 => l_array_source_23(Idx)
38133 , p_source_24 => l_array_source_24(Idx)
38134 , p_source_25 => l_array_source_25(Idx)
38135 , p_source_26 => l_array_source_26(Idx)
38136 , p_source_27 => l_array_source_27(Idx)
38137 , p_source_28 => l_array_source_28(Idx)
38138 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38139 , p_source_30 => l_array_source_30(Idx)
38140 , p_source_31 => l_array_source_31(Idx)
38141 , p_source_32 => l_array_source_32(Idx)
38142 , p_source_33 => l_array_source_33(Idx)
38143 , p_source_34 => l_array_source_34(Idx)
38144 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38145 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38146 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38147 , p_source_39 => l_array_source_39(Idx)
38148 , p_source_40 => l_array_source_40(Idx)
38149 , p_source_41 => l_array_source_41(Idx)
38150 , p_source_42 => l_array_source_42(Idx)
38151 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38152 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38153 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38154 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38155 , p_source_46 => l_array_source_46(Idx)
38156 , p_source_47 => l_array_source_47(Idx)
38157 , p_source_48 => l_array_source_48(Idx)
38158 , p_source_49 => l_array_source_49(Idx)
38159 , p_source_50 => l_array_source_50(Idx)
38160 , p_source_51 => l_array_source_51(Idx)
38161 , p_source_52 => l_array_source_52(Idx)
38162 , p_source_55 => l_array_source_55(Idx)
38163 , p_source_56 => l_array_source_56(Idx)
38164 );
38165 If(l_balance_type_code = 'A') THEN
38166 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38167 END IF;
38168
38169 --
38170
38171
38172 --
38173 AcctLineType_22 (
38174 p_application_id => p_application_id
38175 ,p_event_id => l_event_id
38176 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38177 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38178 ,p_actual_flag => l_actual_flag
38179 ,p_balance_type_code => l_balance_type_code
38180 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38181
38182 , p_source_1 => l_array_source_1(Idx)
38183 , p_source_2 => l_array_source_2(Idx)
38184 , p_source_6 => l_array_source_6(Idx)
38185 , p_source_15 => l_array_source_15(Idx)
38186 , p_source_17 => l_array_source_17(Idx)
38187 , p_source_19 => l_array_source_19(Idx)
38188 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38189 , p_source_21 => l_array_source_21(Idx)
38190 , p_source_22 => l_array_source_22(Idx)
38191 , p_source_23 => l_array_source_23(Idx)
38192 , p_source_24 => l_array_source_24(Idx)
38193 , p_source_25 => l_array_source_25(Idx)
38194 , p_source_26 => l_array_source_26(Idx)
38195 , p_source_27 => l_array_source_27(Idx)
38196 , p_source_28 => l_array_source_28(Idx)
38197 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38198 , p_source_30 => l_array_source_30(Idx)
38199 , p_source_31 => l_array_source_31(Idx)
38200 , p_source_32 => l_array_source_32(Idx)
38201 , p_source_33 => l_array_source_33(Idx)
38202 , p_source_34 => l_array_source_34(Idx)
38203 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38204 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38205 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38206 , p_source_39 => l_array_source_39(Idx)
38207 , p_source_40 => l_array_source_40(Idx)
38208 , p_source_41 => l_array_source_41(Idx)
38209 , p_source_42 => l_array_source_42(Idx)
38210 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38211 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38212 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38213 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38214 , p_source_46 => l_array_source_46(Idx)
38215 , p_source_47 => l_array_source_47(Idx)
38216 , p_source_48 => l_array_source_48(Idx)
38217 , p_source_49 => l_array_source_49(Idx)
38218 , p_source_50 => l_array_source_50(Idx)
38219 , p_source_51 => l_array_source_51(Idx)
38220 , p_source_52 => l_array_source_52(Idx)
38221 , p_source_55 => l_array_source_55(Idx)
38222 , p_source_56 => l_array_source_56(Idx)
38223 );
38224 If(l_balance_type_code = 'A') THEN
38225 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38226 END IF;
38227
38228 --
38229
38230
38231 --
38232 AcctLineType_23 (
38233 p_application_id => p_application_id
38234 ,p_event_id => l_event_id
38235 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38236 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38237 ,p_actual_flag => l_actual_flag
38238 ,p_balance_type_code => l_balance_type_code
38239 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38240
38241 , p_source_1 => l_array_source_1(Idx)
38242 , p_source_2 => l_array_source_2(Idx)
38243 , p_source_6 => l_array_source_6(Idx)
38244 , p_source_15 => l_array_source_15(Idx)
38245 , p_source_17 => l_array_source_17(Idx)
38246 , p_source_19 => l_array_source_19(Idx)
38247 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38248 , p_source_21 => l_array_source_21(Idx)
38249 , p_source_22 => l_array_source_22(Idx)
38250 , p_source_23 => l_array_source_23(Idx)
38251 , p_source_24 => l_array_source_24(Idx)
38252 , p_source_25 => l_array_source_25(Idx)
38253 , p_source_26 => l_array_source_26(Idx)
38254 , p_source_27 => l_array_source_27(Idx)
38255 , p_source_28 => l_array_source_28(Idx)
38256 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38257 , p_source_30 => l_array_source_30(Idx)
38258 , p_source_31 => l_array_source_31(Idx)
38259 , p_source_32 => l_array_source_32(Idx)
38260 , p_source_33 => l_array_source_33(Idx)
38261 , p_source_34 => l_array_source_34(Idx)
38262 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38263 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38264 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38265 , p_source_39 => l_array_source_39(Idx)
38266 , p_source_40 => l_array_source_40(Idx)
38267 , p_source_41 => l_array_source_41(Idx)
38268 , p_source_42 => l_array_source_42(Idx)
38269 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38270 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38271 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38272 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38273 , p_source_46 => l_array_source_46(Idx)
38274 , p_source_47 => l_array_source_47(Idx)
38275 , p_source_48 => l_array_source_48(Idx)
38276 , p_source_49 => l_array_source_49(Idx)
38277 , p_source_50 => l_array_source_50(Idx)
38278 , p_source_51 => l_array_source_51(Idx)
38279 , p_source_52 => l_array_source_52(Idx)
38280 , p_source_55 => l_array_source_55(Idx)
38281 , p_source_56 => l_array_source_56(Idx)
38282 );
38283 If(l_balance_type_code = 'A') THEN
38284 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38285 END IF;
38286
38287 --
38288
38289
38290 --
38291 AcctLineType_24 (
38292 p_application_id => p_application_id
38293 ,p_event_id => l_event_id
38294 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38295 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38296 ,p_actual_flag => l_actual_flag
38297 ,p_balance_type_code => l_balance_type_code
38298 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38299
38300 , p_source_6 => l_array_source_6(Idx)
38301 , p_source_15 => l_array_source_15(Idx)
38302 , p_source_17 => l_array_source_17(Idx)
38303 , p_source_19 => l_array_source_19(Idx)
38304 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38305 , p_source_21 => l_array_source_21(Idx)
38306 , p_source_22 => l_array_source_22(Idx)
38307 , p_source_23 => l_array_source_23(Idx)
38308 , p_source_24 => l_array_source_24(Idx)
38309 , p_source_25 => l_array_source_25(Idx)
38310 , p_source_26 => l_array_source_26(Idx)
38311 , p_source_27 => l_array_source_27(Idx)
38312 , p_source_28 => l_array_source_28(Idx)
38313 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38314 , p_source_30 => l_array_source_30(Idx)
38315 , p_source_31 => l_array_source_31(Idx)
38316 , p_source_32 => l_array_source_32(Idx)
38317 , p_source_33 => l_array_source_33(Idx)
38318 , p_source_34 => l_array_source_34(Idx)
38319 , p_source_39 => l_array_source_39(Idx)
38320 , p_source_40 => l_array_source_40(Idx)
38321 , p_source_41 => l_array_source_41(Idx)
38322 , p_source_42 => l_array_source_42(Idx)
38323 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38324 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38325 , p_source_46 => l_array_source_46(Idx)
38326 , p_source_47 => l_array_source_47(Idx)
38327 , p_source_48 => l_array_source_48(Idx)
38328 , p_source_49 => l_array_source_49(Idx)
38329 , p_source_50 => l_array_source_50(Idx)
38330 , p_source_51 => l_array_source_51(Idx)
38331 , p_source_52 => l_array_source_52(Idx)
38332 , p_source_55 => l_array_source_55(Idx)
38333 , p_source_56 => l_array_source_56(Idx)
38334 );
38335 If(l_balance_type_code = 'A') THEN
38336 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38337 END IF;
38338
38339 --
38340
38341
38342 --
38343 AcctLineType_25 (
38344 p_application_id => p_application_id
38345 ,p_event_id => l_event_id
38346 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38347 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38348 ,p_actual_flag => l_actual_flag
38349 ,p_balance_type_code => l_balance_type_code
38350 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38351
38352 , p_source_6 => l_array_source_6(Idx)
38353 , p_source_15 => l_array_source_15(Idx)
38354 , p_source_17 => l_array_source_17(Idx)
38355 , p_source_19 => l_array_source_19(Idx)
38356 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38357 , p_source_21 => l_array_source_21(Idx)
38358 , p_source_22 => l_array_source_22(Idx)
38359 , p_source_23 => l_array_source_23(Idx)
38360 , p_source_24 => l_array_source_24(Idx)
38361 , p_source_25 => l_array_source_25(Idx)
38362 , p_source_26 => l_array_source_26(Idx)
38363 , p_source_27 => l_array_source_27(Idx)
38364 , p_source_28 => l_array_source_28(Idx)
38365 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38366 , p_source_30 => l_array_source_30(Idx)
38367 , p_source_31 => l_array_source_31(Idx)
38368 , p_source_32 => l_array_source_32(Idx)
38369 , p_source_33 => l_array_source_33(Idx)
38370 , p_source_34 => l_array_source_34(Idx)
38371 , p_source_39 => l_array_source_39(Idx)
38372 , p_source_40 => l_array_source_40(Idx)
38373 , p_source_41 => l_array_source_41(Idx)
38374 , p_source_42 => l_array_source_42(Idx)
38375 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38376 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38377 , p_source_46 => l_array_source_46(Idx)
38378 , p_source_47 => l_array_source_47(Idx)
38379 , p_source_48 => l_array_source_48(Idx)
38380 , p_source_49 => l_array_source_49(Idx)
38381 , p_source_50 => l_array_source_50(Idx)
38382 , p_source_51 => l_array_source_51(Idx)
38383 , p_source_52 => l_array_source_52(Idx)
38384 , p_source_55 => l_array_source_55(Idx)
38385 , p_source_56 => l_array_source_56(Idx)
38386 );
38387 If(l_balance_type_code = 'A') THEN
38388 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38389 END IF;
38390
38391 --
38392
38393
38394 --
38395 AcctLineType_26 (
38396 p_application_id => p_application_id
38397 ,p_event_id => l_event_id
38398 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38399 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38400 ,p_actual_flag => l_actual_flag
38401 ,p_balance_type_code => l_balance_type_code
38402 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38403
38404 , p_source_1 => l_array_source_1(Idx)
38405 , p_source_2 => l_array_source_2(Idx)
38406 , p_source_4 => l_array_source_4(Idx)
38407 , p_source_5 => l_array_source_5(Idx)
38408 , p_source_6 => l_array_source_6(Idx)
38409 , p_source_8 => l_array_source_8(Idx)
38410 , p_source_8_meaning => l_array_source_8_meaning(Idx)
38411 , p_source_9 => l_array_source_9(Idx)
38412 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
38413 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
38414 , p_source_15 => l_array_source_15(Idx)
38415 , p_source_17 => l_array_source_17(Idx)
38416 , p_source_19 => l_array_source_19(Idx)
38417 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38418 , p_source_21 => l_array_source_21(Idx)
38419 , p_source_22 => l_array_source_22(Idx)
38420 , p_source_23 => l_array_source_23(Idx)
38421 , p_source_24 => l_array_source_24(Idx)
38422 , p_source_25 => l_array_source_25(Idx)
38423 , p_source_26 => l_array_source_26(Idx)
38424 , p_source_27 => l_array_source_27(Idx)
38425 , p_source_28 => l_array_source_28(Idx)
38426 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38427 , p_source_30 => l_array_source_30(Idx)
38428 , p_source_31 => l_array_source_31(Idx)
38429 , p_source_32 => l_array_source_32(Idx)
38430 , p_source_33 => l_array_source_33(Idx)
38431 , p_source_34 => l_array_source_34(Idx)
38432 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38433 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38434 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38435 , p_source_39 => l_array_source_39(Idx)
38436 , p_source_40 => l_array_source_40(Idx)
38437 , p_source_41 => l_array_source_41(Idx)
38438 , p_source_42 => l_array_source_42(Idx)
38439 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38440 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38441 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38442 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38443 , p_source_46 => l_array_source_46(Idx)
38444 , p_source_47 => l_array_source_47(Idx)
38445 , p_source_48 => l_array_source_48(Idx)
38446 , p_source_49 => l_array_source_49(Idx)
38447 , p_source_50 => l_array_source_50(Idx)
38448 , p_source_51 => l_array_source_51(Idx)
38449 , p_source_52 => l_array_source_52(Idx)
38450 , p_source_55 => l_array_source_55(Idx)
38451 , p_source_56 => l_array_source_56(Idx)
38452 );
38453 If(l_balance_type_code = 'A') THEN
38454 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38455 END IF;
38456
38457 --
38458
38459
38460 --
38461 AcctLineType_27 (
38462 p_application_id => p_application_id
38463 ,p_event_id => l_event_id
38464 ,p_calculate_acctd_flag => l_calculate_acctd_flag
38465 ,p_calculate_g_l_flag => l_calculate_g_l_flag
38466 ,p_actual_flag => l_actual_flag
38467 ,p_balance_type_code => l_balance_type_code
38468 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
38469
38470 , p_source_1 => l_array_source_1(Idx)
38471 , p_source_2 => l_array_source_2(Idx)
38472 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
38473 , p_source_8 => l_array_source_8(Idx)
38474 , p_source_8_meaning => l_array_source_8_meaning(Idx)
38475 , p_source_9 => l_array_source_9(Idx)
38476 , p_source_10 => l_array_source_10(Idx)
38477 , p_source_11 => l_array_source_11(Idx)
38478 , p_source_11_meaning => l_array_source_11_meaning(Idx)
38479 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
38480 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
38481 , p_source_15 => l_array_source_15(Idx)
38482 , p_source_17 => l_array_source_17(Idx)
38483 , p_source_19 => l_array_source_19(Idx)
38484 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
38485 , p_source_21 => l_array_source_21(Idx)
38486 , p_source_22 => l_array_source_22(Idx)
38487 , p_source_23 => l_array_source_23(Idx)
38488 , p_source_24 => l_array_source_24(Idx)
38489 , p_source_25 => l_array_source_25(Idx)
38490 , p_source_26 => l_array_source_26(Idx)
38491 , p_source_27 => l_array_source_27(Idx)
38492 , p_source_28 => l_array_source_28(Idx)
38493 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
38494 , p_source_30 => l_array_source_30(Idx)
38495 , p_source_31 => l_array_source_31(Idx)
38496 , p_source_32 => l_array_source_32(Idx)
38497 , p_source_33 => l_array_source_33(Idx)
38498 , p_source_34 => l_array_source_34(Idx)
38499 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
38500 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
38501 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
38502 , p_source_39 => l_array_source_39(Idx)
38503 , p_source_40 => l_array_source_40(Idx)
38504 , p_source_41 => l_array_source_41(Idx)
38505 , p_source_42 => l_array_source_42(Idx)
38506 , p_source_42_meaning => l_array_source_42_meaning(Idx)
38507 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
38508 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
38509 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
38510 , p_source_46 => l_array_source_46(Idx)
38511 , p_source_47 => l_array_source_47(Idx)
38512 , p_source_48 => l_array_source_48(Idx)
38513 , p_source_49 => l_array_source_49(Idx)
38514 , p_source_50 => l_array_source_50(Idx)
38515 , p_source_51 => l_array_source_51(Idx)
38516 , p_source_52 => l_array_source_52(Idx)
38517 , p_source_55 => l_array_source_55(Idx)
38518 , p_source_56 => l_array_source_56(Idx)
38519 );
38520 If(l_balance_type_code = 'A') THEN
38521 l_actual_gain_loss_ref := l_gain_or_loss_ref;
38522 END IF;
38523
38524 --
38525
38526 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
38527 -- or secondary ledger that has different currency with primary
38528 -- or alc that is calculated by sla
38529 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38530 (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'))
38531
38532 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
38533 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
38534 AND (l_actual_flag = 'A')) THEN
38535 XLA_AE_LINES_PKG.CreateGainOrLossLines(
38536 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
38537 ,p_application_id => p_application_id
38538 ,p_amb_context_code => 'DEFAULT'
38539 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
38540 ,p_event_class_code => C_EVENT_CLASS_CODE
38541 ,p_event_type_code => C_EVENT_TYPE_CODE
38542
38543 ,p_gain_ccid => -1
38544 ,p_loss_ccid => -1
38545
38546 ,p_actual_flag => l_actual_flag
38547 ,p_enc_flag => null
38548 ,p_actual_g_l_ref => l_actual_gain_loss_ref
38549 ,p_enc_g_l_ref => null
38550 );
38551 END IF;
38552 END IF;
38553 END IF;
38554
38555 ELSE
38556 --
38557 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
38558 --
38559 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
38560 trace
38561 (p_msg => 'Trancaction revesal option is Y'
38562 ,p_level => C_LEVEL_STATEMENT
38563 ,p_module => l_log_module);
38564 END IF;
38565 END IF;
38566
38567 END LOOP;
38568 l_result := XLA_AE_LINES_PKG.InsertLines ;
38569 end loop;
38570 close line_cur;
38571
38572
38573 --
38574 -- insert headers into xla_ae_headers_gt table
38575 --
38576 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
38577
38578 -- insert into errors table here.
38579
38580 END LOOP;
38581
38582 --
38583 -- 4865292
38584 --
38585 -- Compare g_hdr_extract_count with event count in
38586 -- CreateHeadersAndLines.
38587 --
38588 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
38589
38590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
38591 trace (p_msg => '# rows extracted from header extract objects '
38592 || ' (running total): '
38593 || g_hdr_extract_count
38594 ,p_level => C_LEVEL_STATEMENT
38595 ,p_module => l_log_module);
38596 END IF;
38597
38598 CLOSE header_cur;
38599 --
38600
38601 --
38602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38603 trace
38604 (p_msg => 'END of EventClass_60'
38605 ,p_level => C_LEVEL_PROCEDURE
38606 ,p_module => l_log_module);
38607 END IF;
38608 --
38609 RETURN l_result;
38610 EXCEPTION
38611 WHEN xla_exceptions_pkg.application_exception THEN
38612
38613 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
38614
38615
38616 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
38617
38618 RAISE;
38619
38620 WHEN NO_DATA_FOUND THEN
38621
38622 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
38623 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
38624
38625 FOR header_record IN header_cur
38626 LOOP
38627 l_array_header_events(header_record.event_id) := header_record.event_id;
38628 END LOOP;
38629
38630 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
38631 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
38632
38633 fnd_file.put_line(fnd_file.LOG, ' ');
38634 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
38635 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
38636 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
38637
38638 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
38639 LOOP
38640 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
38641 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
38642 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
38643 END IF;
38644 END LOOP;
38645
38646 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
38647 fnd_file.put_line(fnd_file.LOG, ' ');
38648
38649
38650 xla_exceptions_pkg.raise_message
38651 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_60');
38652
38653
38654 WHEN OTHERS THEN
38655 xla_exceptions_pkg.raise_message
38656 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_60');
38657 END EventClass_60;
38658 --
38659
38660 ---------------------------------------
38661 --
38662 -- PRIVATE PROCEDURE
38663 -- insert_sources_61
38664 --
38665 ----------------------------------------
38666 --
38667 PROCEDURE insert_sources_61(
38668 p_target_ledger_id IN NUMBER
38669 , p_language IN VARCHAR2
38670 , p_sla_ledger_id IN NUMBER
38671 , p_pad_start_date IN DATE
38672 , p_pad_end_date IN DATE
38673 )
38674 IS
38675
38676 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS_ALL';
38677 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS';
38678 p_apps_owner VARCHAR2(30);
38679 l_log_module VARCHAR2(240);
38680 BEGIN
38681 IF g_log_enabled THEN
38682 l_log_module := C_DEFAULT_MODULE||'.insert_sources_61';
38683 END IF;
38684 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38685
38686 trace
38687 (p_msg => 'BEGIN of insert_sources_61'
38688 ,p_level => C_LEVEL_PROCEDURE
38689 ,p_module => l_log_module);
38690
38691 END IF;
38692
38693 -- select APPS owner
38694 SELECT oracle_username
38695 INTO p_apps_owner
38696 FROM fnd_oracle_userid
38697 WHERE read_only_flag = 'U'
38698 ;
38699
38700 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
38701 trace
38702 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
38703 ' - p_language = '||p_language||
38704 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
38705 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
38706 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
38707 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
38708 ,p_level => C_LEVEL_STATEMENT
38709 ,p_module => l_log_module);
38710 END IF;
38711
38712
38713 --
38714 INSERT INTO xla_diag_sources --hdr2
38715 (
38716 event_id
38717 , ledger_id
38718 , sla_ledger_id
38719 , description_language
38720 , object_name
38721 , object_type_code
38722 , line_number
38723 , source_application_id
38724 , source_type_code
38725 , source_code
38726 , source_value
38727 , source_meaning
38728 , created_by
38729 , creation_date
38730 , last_update_date
38731 , last_updated_by
38732 , last_update_login
38733 , program_update_date
38734 , program_application_id
38735 , program_id
38736 , request_id
38737 )
38738 SELECT
38739 event_id
38740 , p_target_ledger_id
38741 , p_sla_ledger_id
38742 , p_language
38743 , object_name
38744 , object_type_code
38745 , line_number
38746 , source_application_id
38747 , source_type_code
38748 , source_code
38749 , SUBSTR(source_value ,1,1996)
38750 , SUBSTR(source_meaning ,1,200)
38751 , xla_environment_pkg.g_Usr_Id
38752 , TRUNC(SYSDATE)
38753 , TRUNC(SYSDATE)
38754 , xla_environment_pkg.g_Usr_Id
38755 , xla_environment_pkg.g_Login_Id
38756 , TRUNC(SYSDATE)
38757 , xla_environment_pkg.g_Prog_Appl_Id
38758 , xla_environment_pkg.g_Prog_Id
38759 , xla_environment_pkg.g_Req_Id
38760 FROM (
38761 SELECT xet.event_id event_id
38762 , 0 line_number
38763 , CASE r
38764 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38765 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38766 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38767 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38768 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38769 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38770 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38771 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38772 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38773 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38774 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38775 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38776 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
38777
38778 ELSE null
38779 END object_name
38780 , CASE r
38781 WHEN 1 THEN 'HEADER'
38782 WHEN 2 THEN 'HEADER'
38783 WHEN 3 THEN 'HEADER'
38784 WHEN 4 THEN 'HEADER'
38785 WHEN 5 THEN 'HEADER'
38786 WHEN 6 THEN 'HEADER'
38787 WHEN 7 THEN 'HEADER'
38788 WHEN 8 THEN 'HEADER'
38789 WHEN 9 THEN 'HEADER'
38790 WHEN 10 THEN 'HEADER'
38791 WHEN 11 THEN 'HEADER'
38792 WHEN 12 THEN 'HEADER'
38793 WHEN 13 THEN 'HEADER'
38794
38795 ELSE null
38796 END object_type_code
38797 , CASE r
38798 WHEN 1 THEN '200'
38799 WHEN 2 THEN '200'
38800 WHEN 3 THEN '200'
38801 WHEN 4 THEN '200'
38802 WHEN 5 THEN '200'
38803 WHEN 6 THEN '200'
38804 WHEN 7 THEN '200'
38805 WHEN 8 THEN '200'
38806 WHEN 9 THEN '200'
38807 WHEN 10 THEN '200'
38808 WHEN 11 THEN '200'
38809 WHEN 12 THEN '200'
38810 WHEN 13 THEN '200'
38811
38812 ELSE null
38813 END source_application_id
38814 , 'S' source_type_code
38815 , CASE r
38816 WHEN 1 THEN 'AI_PAYMENT_STATUS_FLAG'
38817 WHEN 2 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE'
38818 WHEN 3 THEN 'AI_INVOICE_ID'
38819 WHEN 4 THEN 'AI_INVOICE_CURRENCY_CODE'
38820 WHEN 5 THEN 'INV_EXCHANGE_DATE'
38821 WHEN 6 THEN 'INV_EXCHANGE_RATE'
38822 WHEN 7 THEN 'INV_EXCHANGE_RATE_TYPE'
38823 WHEN 8 THEN 'AI_VENDOR_ID'
38824 WHEN 9 THEN 'AI_VENDOR_SITE_ID'
38825 WHEN 10 THEN 'THIRD_PARTY_TYPE'
38826 WHEN 11 THEN 'INV_DOC_SEQUENCE_CATEGORY'
38827 WHEN 12 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
38828 WHEN 13 THEN 'INV_DOC_SEQUENCE_VALUE'
38829
38830 ELSE null
38831 END source_code
38832 , CASE r
38833 WHEN 1 THEN TO_CHAR(h2.AI_PAYMENT_STATUS_FLAG)
38834 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
38835 WHEN 3 THEN TO_CHAR(h2.AI_INVOICE_ID)
38836 WHEN 4 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
38837 WHEN 5 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
38838 WHEN 6 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
38839 WHEN 7 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
38840 WHEN 8 THEN TO_CHAR(h2.AI_VENDOR_ID)
38841 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
38842 WHEN 10 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
38843 WHEN 11 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
38844 WHEN 12 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
38845 WHEN 13 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
38846
38847 ELSE null
38848 END source_value
38849 , CASE r
38850 WHEN 2 THEN fvl13.meaning
38851
38852 ELSE null
38853 END source_meaning
38854 FROM xla_events_gt xet
38855 , AP_INVOICE_EXTRACT_HEADER_V h2
38856 , fnd_lookup_values fvl13
38857 ,(select rownum r from all_objects where rownum <= 13 and owner = p_apps_owner)
38858 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
38859 AND xet.event_class_code = C_EVENT_CLASS_CODE
38860 AND h2.event_id = xet.event_id
38861 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
38862 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
38863 AND fvl13.view_application_id(+) = 200
38864 AND fvl13.language(+) = USERENV('LANG')
38865
38866 )
38867 ;
38868 --
38869 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
38870
38871 trace
38872 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
38873 ,p_level => C_LEVEL_STATEMENT
38874 ,p_module => l_log_module);
38875
38876 END IF;
38877 --
38878
38879
38880
38881 --
38882 INSERT INTO xla_diag_sources --line2
38883 (
38884 event_id
38885 , ledger_id
38886 , sla_ledger_id
38887 , description_language
38888 , object_name
38889 , object_type_code
38890 , line_number
38891 , source_application_id
38892 , source_type_code
38893 , source_code
38894 , source_value
38895 , source_meaning
38896 , created_by
38897 , creation_date
38898 , last_update_date
38899 , last_updated_by
38900 , last_update_login
38901 , program_update_date
38902 , program_application_id
38903 , program_id
38904 , request_id
38905 )
38906 SELECT event_id
38907 , p_target_ledger_id
38908 , p_sla_ledger_id
38909 , p_language
38910 , object_name
38911 , object_type_code
38912 , line_number
38913 , source_application_id
38914 , source_type_code
38915 , source_code
38916 , SUBSTR(source_value,1,1996)
38917 , SUBSTR(source_meaning ,1,200)
38918 , xla_environment_pkg.g_Usr_Id
38919 , TRUNC(SYSDATE)
38920 , TRUNC(SYSDATE)
38921 , xla_environment_pkg.g_Usr_Id
38922 , xla_environment_pkg.g_Login_Id
38923 , TRUNC(SYSDATE)
38924 , xla_environment_pkg.g_Prog_Appl_Id
38925 , xla_environment_pkg.g_Prog_Id
38926 , xla_environment_pkg.g_Req_Id
38927 FROM (
38928 SELECT xet.event_id event_id
38929 , l1.line_number line_number
38930 , CASE r
38931 WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38932 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38933 WHEN 3 THEN 'FV_XLA_AP_REF_V'
38934 WHEN 4 THEN 'FV_XLA_AP_REF_V'
38935 WHEN 5 THEN 'FV_XLA_AP_REF_V'
38936 WHEN 6 THEN 'FV_XLA_AP_REF_V'
38937 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38938 WHEN 8 THEN 'FV_XLA_AP_REF_V'
38939 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38940 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38941 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38942 WHEN 12 THEN 'FV_XLA_AP_REF_V'
38943 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38944 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38945 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38946 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38947 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38948 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38949 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38950 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38951 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38952 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38953 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38954 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38955 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38956 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38957 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38958 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38959 WHEN 29 THEN 'FV_XLA_AP_REF_V'
38960 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38961 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38962 WHEN 32 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38963 WHEN 33 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38964 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38965 WHEN 35 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
38966 WHEN 36 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
38967 WHEN 37 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38968 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38969 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38970 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38971 WHEN 41 THEN 'FV_XLA_AP_REF_V'
38972 WHEN 42 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38973 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38974 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
38975
38976 ELSE null
38977 END object_name
38978 , CASE r
38979 WHEN 1 THEN 'LINE'
38980 WHEN 2 THEN 'LINE'
38981 WHEN 3 THEN 'LINE'
38982 WHEN 4 THEN 'LINE'
38983 WHEN 5 THEN 'LINE'
38984 WHEN 6 THEN 'LINE'
38985 WHEN 7 THEN 'LINE'
38986 WHEN 8 THEN 'LINE'
38987 WHEN 9 THEN 'LINE'
38988 WHEN 10 THEN 'LINE'
38989 WHEN 11 THEN 'LINE'
38990 WHEN 12 THEN 'LINE'
38991 WHEN 13 THEN 'LINE'
38992 WHEN 14 THEN 'LINE'
38993 WHEN 15 THEN 'LINE'
38994 WHEN 16 THEN 'LINE'
38995 WHEN 17 THEN 'LINE'
38996 WHEN 18 THEN 'LINE'
38997 WHEN 19 THEN 'LINE'
38998 WHEN 20 THEN 'LINE'
38999 WHEN 21 THEN 'LINE'
39000 WHEN 22 THEN 'LINE'
39001 WHEN 23 THEN 'LINE'
39002 WHEN 24 THEN 'LINE'
39003 WHEN 25 THEN 'LINE'
39004 WHEN 26 THEN 'LINE'
39005 WHEN 27 THEN 'LINE'
39006 WHEN 28 THEN 'LINE'
39007 WHEN 29 THEN 'LINE'
39008 WHEN 30 THEN 'LINE'
39009 WHEN 31 THEN 'LINE'
39010 WHEN 32 THEN 'LINE'
39011 WHEN 33 THEN 'LINE'
39012 WHEN 34 THEN 'LINE'
39013 WHEN 35 THEN 'LINE'
39014 WHEN 36 THEN 'LINE'
39015 WHEN 37 THEN 'LINE'
39016 WHEN 38 THEN 'LINE'
39017 WHEN 39 THEN 'LINE'
39018 WHEN 40 THEN 'LINE'
39019 WHEN 41 THEN 'LINE'
39020 WHEN 42 THEN 'LINE'
39021 WHEN 43 THEN 'LINE'
39022 WHEN 44 THEN 'LINE'
39023
39024 ELSE null
39025 END object_type_code
39026 , CASE r
39027 WHEN 1 THEN '200'
39028 WHEN 2 THEN '200'
39029 WHEN 3 THEN '8901'
39030 WHEN 4 THEN '8901'
39031 WHEN 5 THEN '8901'
39032 WHEN 6 THEN '8901'
39033 WHEN 7 THEN '200'
39034 WHEN 8 THEN '8901'
39035 WHEN 9 THEN '200'
39036 WHEN 10 THEN '200'
39037 WHEN 11 THEN '200'
39038 WHEN 12 THEN '8901'
39039 WHEN 13 THEN '200'
39040 WHEN 14 THEN '200'
39041 WHEN 15 THEN '200'
39042 WHEN 16 THEN '200'
39043 WHEN 17 THEN '200'
39044 WHEN 18 THEN '200'
39045 WHEN 19 THEN '200'
39046 WHEN 20 THEN '200'
39047 WHEN 21 THEN '200'
39048 WHEN 22 THEN '200'
39049 WHEN 23 THEN '200'
39050 WHEN 24 THEN '200'
39051 WHEN 25 THEN '200'
39052 WHEN 26 THEN '200'
39053 WHEN 27 THEN '200'
39054 WHEN 28 THEN '200'
39055 WHEN 29 THEN '8901'
39056 WHEN 30 THEN '200'
39057 WHEN 31 THEN '200'
39058 WHEN 32 THEN '200'
39059 WHEN 33 THEN '200'
39060 WHEN 34 THEN '200'
39061 WHEN 35 THEN '200'
39062 WHEN 36 THEN '200'
39063 WHEN 37 THEN '200'
39064 WHEN 38 THEN '200'
39065 WHEN 39 THEN '200'
39066 WHEN 40 THEN '200'
39067 WHEN 41 THEN '8901'
39068 WHEN 42 THEN '200'
39069 WHEN 43 THEN '200'
39070 WHEN 44 THEN '200'
39071
39072 ELSE null
39073 END source_application_id
39074 , 'S' source_type_code
39075 , CASE r
39076 WHEN 1 THEN 'AID_DESCRIPTION'
39077 WHEN 2 THEN 'AID_DIST_CCID'
39078 WHEN 3 THEN 'FEDERAL_ANTICIPATION'
39079 WHEN 4 THEN 'FEDERAL_FUND_CATEGORY'
39080 WHEN 5 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
39081 WHEN 6 THEN 'FEDERAL_FUND_CAT_DESC'
39082 WHEN 7 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
39083 WHEN 8 THEN 'FEDERAL_PRIOR_YEAR_FLAG'
39084 WHEN 9 THEN 'ENCUMBRANCE_AMOUNT'
39085 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
39086 WHEN 11 THEN 'PO_DISTRIBUTION_ID'
39087 WHEN 12 THEN 'FEDERAL_ADJUSTMENT_TYPE'
39088 WHEN 13 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
39089 WHEN 14 THEN 'DISTRIBUTION_LINK_TYPE'
39090 WHEN 15 THEN 'ALLOC_TO_MAIN_DIST_ID'
39091 WHEN 16 THEN 'BUS_FLOW_AP_APP_ID'
39092 WHEN 17 THEN 'BUS_FLOW_INV_DIST_TYPE'
39093 WHEN 18 THEN 'BUS_FLOW_INV_ENTITY_CODE'
39094 WHEN 19 THEN 'BUS_FLOW_INV_DIST_ID'
39095 WHEN 20 THEN 'BUS_FLOW_INV_ID'
39096 WHEN 21 THEN 'AID_INVOICE_DIST_ID'
39097 WHEN 22 THEN 'UPG_ENC_CR_CCID'
39098 WHEN 23 THEN 'UPG_ENC_CR_AMT'
39099 WHEN 24 THEN 'UPG_ENC_CR_BASE_AMT'
39100 WHEN 25 THEN 'UPG_ENC_DR_CCID'
39101 WHEN 26 THEN 'UPG_ENC_DR_AMT'
39102 WHEN 27 THEN 'UPG_ENC_DR_BASE_AMT'
39103 WHEN 28 THEN 'UPG_AP_ENCUM_OPTION'
39104 WHEN 29 THEN 'FEDERAL_ANTICIPATED_AMT'
39105 WHEN 30 THEN 'DEFERRED_END_DATE'
39106 WHEN 31 THEN 'DEFERRED_OPTION'
39107 WHEN 32 THEN 'DEFERRED_START_DATE'
39108 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
39109 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID'
39110 WHEN 35 THEN 'TAX_LINE_ID'
39111 WHEN 36 THEN 'REC_NREC_TAX_DIST_ID'
39112 WHEN 37 THEN 'SUMMARY_TAX_LINE_ID'
39113 WHEN 38 THEN 'UPG_CR_ENC_TYPE_ID'
39114 WHEN 39 THEN 'UPG_DR_ENC_TYPE_ID'
39115 WHEN 40 THEN 'ENCUMBRANCE_BASE_AMOUNT'
39116 WHEN 41 THEN 'FEDERAL_UNANTICIPATED_AMT'
39117 WHEN 42 THEN 'AID_AMOUNT'
39118 WHEN 43 THEN 'INV_DIST_BASE_AMOUNT'
39119 WHEN 44 THEN 'AID_BASE_AMT_NO_ROUND'
39120
39121 ELSE null
39122 END source_code
39123 , CASE r
39124 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
39125 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
39126 WHEN 3 THEN TO_CHAR(l3.FEDERAL_ANTICIPATION)
39127 WHEN 4 THEN TO_CHAR(l3.FEDERAL_FUND_CATEGORY)
39128 WHEN 5 THEN TO_CHAR(l3.FEDERAL_FUND_EXPIRED_STATUS)
39129 WHEN 6 THEN TO_CHAR(l3.FEDERAL_FUND_CAT_DESC)
39130 WHEN 7 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
39131 WHEN 8 THEN TO_CHAR(l3.FEDERAL_PRIOR_YEAR_FLAG)
39132 WHEN 9 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
39133 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
39134 WHEN 11 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
39135 WHEN 12 THEN TO_CHAR(l3.FEDERAL_ADJUSTMENT_TYPE)
39136 WHEN 13 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
39137 WHEN 14 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
39138 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
39139 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
39140 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
39141 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
39142 WHEN 19 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
39143 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
39144 WHEN 21 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
39145 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
39146 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
39147 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
39148 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
39149 WHEN 26 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
39150 WHEN 27 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
39151 WHEN 28 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
39152 WHEN 29 THEN TO_CHAR(l3.FEDERAL_ANTICIPATED_AMT)
39153 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
39154 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
39155 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
39156 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
39157 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
39158 WHEN 35 THEN TO_CHAR(l4.TAX_LINE_ID)
39159 WHEN 36 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
39160 WHEN 37 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
39161 WHEN 38 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
39162 WHEN 39 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
39163 WHEN 40 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
39164 WHEN 41 THEN TO_CHAR(l3.FEDERAL_UNANTICIPATED_AMT)
39165 WHEN 42 THEN TO_CHAR(l1.AID_AMOUNT)
39166 WHEN 43 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
39167 WHEN 44 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
39168
39169 ELSE null
39170 END source_value
39171 , CASE r
39172 WHEN 7 THEN fvl8.meaning
39173 WHEN 10 THEN fvl11.meaning
39174 WHEN 33 THEN fvl42.meaning
39175
39176 ELSE null
39177 END source_meaning
39178 FROM xla_events_gt xet
39179 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
39180 , FV_XLA_AP_REF_V l3
39181 , ZX_AP_DEF_TAX_EXTRACT_V l4
39182 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
39183 , fnd_lookup_values fvl8
39184 , fnd_lookup_values fvl11
39185 , fnd_lookup_values fvl42
39189 AND l1.event_id = xet.event_id
39186 , (select rownum r from all_objects where rownum <= 44 and owner = p_apps_owner)
39187 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
39188 AND xet.event_class_code = C_EVENT_CLASS_CODE
39190 AND l3.federal_event_id (+) = l1.event_id and l3.federal_line_number (+) = l1.line_number AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND fvl8.lookup_type(+) =
39191 'INVOICE DISTRIBUTION TYPE'
39192 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
39193 AND fvl8.view_application_id(+) = 200
39194 AND fvl8.language(+) = USERENV('LANG')
39195 AND fvl11.lookup_type(+) = 'YES_NO'
39196 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
39197 AND fvl11.view_application_id(+) = 0
39198 AND fvl11.language(+) = USERENV('LANG')
39199 AND fvl42.lookup_type(+) = 'YES_NO'
39200 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
39201 AND fvl42.view_application_id(+) = 0
39202 AND fvl42.language(+) = USERENV('LANG')
39203
39204 )
39205 ;
39206 --
39207 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
39208
39209 trace
39210 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
39211 ,p_level => C_LEVEL_STATEMENT
39212 ,p_module => l_log_module);
39213
39214 END IF;
39215
39216
39217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39218 trace
39219 (p_msg => 'END of insert_sources_61'
39220 ,p_level => C_LEVEL_PROCEDURE
39221 ,p_module => l_log_module);
39222 END IF;
39223 EXCEPTION
39224 WHEN xla_exceptions_pkg.application_exception THEN
39225 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
39226 trace
39227 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
39228 ,p_level => C_LEVEL_EXCEPTION
39229 ,p_module => l_log_module);
39230 END IF;
39231 RAISE;
39232 WHEN OTHERS THEN
39233 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
39234 trace
39235 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
39236 ,p_level => C_LEVEL_EXCEPTION
39237 ,p_module => l_log_module);
39238 END IF;
39239 xla_exceptions_pkg.raise_message
39240 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.insert_sources_61');
39241 END insert_sources_61;
39242 --
39243
39244 ---------------------------------------
39245 --
39246 -- PRIVATE FUNCTION
39247 -- EventClass_61
39248 --
39249 ----------------------------------------
39250 --
39251 FUNCTION EventClass_61
39252 (p_application_id IN NUMBER
39253 ,p_base_ledger_id IN NUMBER
39254 ,p_target_ledger_id IN NUMBER
39255 ,p_language IN VARCHAR2
39256 ,p_currency_code IN VARCHAR2
39257 ,p_sla_ledger_id IN NUMBER
39258 ,p_pad_start_date IN DATE
39259 ,p_pad_end_date IN DATE
39260 ,p_primary_ledger_id IN NUMBER)
39261 RETURN BOOLEAN IS
39262 --
39263 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS_ALL';
39264 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT MEMOS';
39265
39266 l_calculate_acctd_flag VARCHAR2(1) :='N';
39267 l_calculate_g_l_flag VARCHAR2(1) :='N';
39268 --
39269 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39270 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39271 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
39272 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
39273 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39274 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
39275 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
39276 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39277 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39278 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39279 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39280 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39281 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39282 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
39283 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
39284 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
39285 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
39286 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
39287 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39288 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39289 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39290 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
39291 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
39292 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
39293 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
39294 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
39295
39296 l_event_id NUMBER;
39297 l_previous_event_id NUMBER;
39298 l_first_event_id NUMBER;
39299 l_last_event_id NUMBER;
39300
39301 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
39302 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39303 --
39304 --
39305 l_result BOOLEAN := TRUE;
39306 l_rows NUMBER := 1000;
39307 l_event_type_name VARCHAR2(80) := 'All';
39308 l_event_class_name VARCHAR2(80) := 'Debit Memos';
39309 l_description VARCHAR2(4000);
39310 l_transaction_reversal NUMBER;
39311 l_ae_header_id NUMBER;
39312 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
39313 l_log_module VARCHAR2(240);
39314 --
39315 l_acct_reversal_source VARCHAR2(30);
39316 l_trx_reversal_source VARCHAR2(30);
39317
39318 l_continue_with_lines BOOLEAN := TRUE;
39319 --
39320 l_acc_rev_gl_date_source DATE; -- 4262811
39321 --
39322 type t_array_event_id is table of number index by binary_integer;
39323
39324 l_rec_array_event t_rec_array_event;
39325 l_null_rec_array_event t_rec_array_event;
39326 l_array_ae_header_id xla_number_array_type;
39327 l_actual_flag VARCHAR2(1) := NULL;
39328 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
39329 l_balance_type_code VARCHAR2(1) :=NULL;
39330 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
39331
39332 --
39333 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
39334 --
39335
39336 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_PAYMENT_STATUS_FLAG%TYPE INDEX BY BINARY_INTEGER;
39337 TYPE t_array_source_13 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
39338 TYPE t_array_source_20 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
39339 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
39340 TYPE t_array_source_36 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
39341 TYPE t_array_source_37 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
39342 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
39343 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
39344 TYPE t_array_source_44 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
39345 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
39346 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
39347 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
39348 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
39349
39350 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
39351 TYPE t_array_source_2 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
39352 TYPE t_array_source_3 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATION%TYPE INDEX BY BINARY_INTEGER;
39353 TYPE t_array_source_4 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
39354 TYPE t_array_source_5 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
39355 TYPE t_array_source_6 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CAT_DESC%TYPE INDEX BY BINARY_INTEGER;
39356 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
39357 TYPE t_array_source_9 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
39358 TYPE t_array_source_10 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
39359 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
39360 TYPE t_array_source_12 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
39361 TYPE t_array_source_14 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ADJUSTMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
39362 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
39363 TYPE t_array_source_17 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
39364 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
39365 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
39366 TYPE t_array_source_22 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
39370 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
39367 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
39368 TYPE t_array_source_24 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
39369 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
39371 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
39372 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
39373 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
39374 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
39375 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
39376 TYPE t_array_source_33 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
39377 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
39378 TYPE t_array_source_35 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
39379 TYPE t_array_source_39 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
39380 TYPE t_array_source_40 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
39381 TYPE t_array_source_41 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
39382 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
39383 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
39384 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
39385 TYPE t_array_source_49 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
39386 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
39387 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
39388 TYPE t_array_source_52 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
39389 TYPE t_array_source_53 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
39390 TYPE t_array_source_54 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_UNANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
39391 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
39392 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
39393 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
39394
39395 l_array_source_7 t_array_source_7;
39396 l_array_source_13 t_array_source_13;
39397 l_array_source_13_meaning t_array_lookup_meaning;
39398 l_array_source_20 t_array_source_20;
39399 l_array_source_29 t_array_source_29;
39400 l_array_source_36 t_array_source_36;
39401 l_array_source_37 t_array_source_37;
39402 l_array_source_38 t_array_source_38;
39403 l_array_source_43 t_array_source_43;
39404 l_array_source_44 t_array_source_44;
39405 l_array_source_45 t_array_source_45;
39406 l_array_source_71 t_array_source_71;
39407 l_array_source_72 t_array_source_72;
39408 l_array_source_73 t_array_source_73;
39409
39410 l_array_source_1 t_array_source_1;
39411 l_array_source_2 t_array_source_2;
39412 l_array_source_3 t_array_source_3;
39413 l_array_source_4 t_array_source_4;
39414 l_array_source_5 t_array_source_5;
39415 l_array_source_6 t_array_source_6;
39416 l_array_source_8 t_array_source_8;
39417 l_array_source_8_meaning t_array_lookup_meaning;
39418 l_array_source_9 t_array_source_9;
39419 l_array_source_10 t_array_source_10;
39420 l_array_source_11 t_array_source_11;
39421 l_array_source_11_meaning t_array_lookup_meaning;
39422 l_array_source_12 t_array_source_12;
39423 l_array_source_14 t_array_source_14;
39424 l_array_source_15 t_array_source_15;
39425 l_array_source_17 t_array_source_17;
39426 l_array_source_19 t_array_source_19;
39427 l_array_source_21 t_array_source_21;
39428 l_array_source_22 t_array_source_22;
39429 l_array_source_23 t_array_source_23;
39430 l_array_source_24 t_array_source_24;
39431 l_array_source_25 t_array_source_25;
39432 l_array_source_26 t_array_source_26;
39433 l_array_source_27 t_array_source_27;
39434 l_array_source_28 t_array_source_28;
39435 l_array_source_30 t_array_source_30;
39436 l_array_source_31 t_array_source_31;
39437 l_array_source_32 t_array_source_32;
39438 l_array_source_33 t_array_source_33;
39439 l_array_source_34 t_array_source_34;
39440 l_array_source_35 t_array_source_35;
39441 l_array_source_39 t_array_source_39;
39442 l_array_source_40 t_array_source_40;
39443 l_array_source_41 t_array_source_41;
39444 l_array_source_42 t_array_source_42;
39445 l_array_source_42_meaning t_array_lookup_meaning;
39446 l_array_source_46 t_array_source_46;
39447 l_array_source_48 t_array_source_48;
39448 l_array_source_49 t_array_source_49;
39449 l_array_source_50 t_array_source_50;
39450 l_array_source_51 t_array_source_51;
39451 l_array_source_52 t_array_source_52;
39452 l_array_source_53 t_array_source_53;
39453 l_array_source_54 t_array_source_54;
39454 l_array_source_55 t_array_source_55;
39455 l_array_source_56 t_array_source_56;
39456 l_array_source_58 t_array_source_58;
39457
39458 --
39459 CURSOR header_cur
39460 IS
39461 SELECT /*+ leading(xet) cardinality(xet,1) */
39462 -- Event Class Code: DEBIT MEMOS
39463 xet.entity_id
39464 ,xet.legal_entity_id
39465 ,xet.entity_code
39466 ,xet.transaction_number
39467 ,xet.event_id
39468 ,xet.event_class_code
39469 ,xet.event_type_code
39470 ,xet.event_number
39471 ,xet.event_date
39472 ,xet.transaction_date
39473 ,xet.reference_num_1
39474 ,xet.reference_num_2
39475 ,xet.reference_num_3
39476 ,xet.reference_num_4
39477 ,xet.reference_char_1
39478 ,xet.reference_char_2
39479 ,xet.reference_char_3
39480 ,xet.reference_char_4
39481 ,xet.reference_date_1
39482 ,xet.reference_date_2
39483 ,xet.reference_date_3
39484 ,xet.reference_date_4
39485 ,xet.event_created_by
39486 ,xet.budgetary_control_flag
39487 , h2.AI_PAYMENT_STATUS_FLAG source_7
39488 , h2.AI_INVOICE_TYPE_LOOKUP_CODE source_13
39489 , fvl13.meaning source_13_meaning
39490 , h2.AI_INVOICE_ID source_20
39491 , h2.AI_INVOICE_CURRENCY_CODE source_29
39492 , h2.INV_EXCHANGE_DATE source_36
39493 , h2.INV_EXCHANGE_RATE source_37
39494 , h2.INV_EXCHANGE_RATE_TYPE source_38
39495 , h2.AI_VENDOR_ID source_43
39496 , h2.AI_VENDOR_SITE_ID source_44
39497 , h2.THIRD_PARTY_TYPE source_45
39498 , h2.INV_DOC_SEQUENCE_CATEGORY source_71
39499 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_72
39500 , h2.INV_DOC_SEQUENCE_VALUE source_73
39501 FROM xla_events_gt xet
39502 , AP_INVOICE_EXTRACT_HEADER_V h2
39503 , fnd_lookup_values fvl13
39504 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
39505 and xet.event_class_code = C_EVENT_CLASS_CODE
39506 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
39507 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
39508 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
39509 AND fvl13.view_application_id(+) = 200
39510 AND fvl13.language(+) = USERENV('LANG')
39511
39512 ORDER BY event_id
39513 ;
39514
39515
39516 --
39517 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
39518 IS
39519 SELECT /*+ leading(xet) cardinality(xet,1) */
39520 -- Event Class Code: DEBIT MEMOS
39521 xet.entity_id
39522 ,xet.legal_entity_id
39523 ,xet.entity_code
39524 ,xet.transaction_number
39525 ,xet.event_id
39526 ,xet.event_class_code
39527 ,xet.event_type_code
39528 ,xet.event_number
39529 ,xet.event_date
39530 ,xet.transaction_date
39531 ,xet.reference_num_1
39532 ,xet.reference_num_2
39533 ,xet.reference_num_3
39534 ,xet.reference_num_4
39535 ,xet.reference_char_1
39536 ,xet.reference_char_2
39537 ,xet.reference_char_3
39538 ,xet.reference_char_4
39539 ,xet.reference_date_1
39540 ,xet.reference_date_2
39541 ,xet.reference_date_3
39542 ,xet.reference_date_4
39543 ,xet.event_created_by
39544 ,xet.budgetary_control_flag
39545 , l1.LINE_NUMBER
39546 , l1.AID_DESCRIPTION source_1
39547 , l1.AID_DIST_CCID source_2
39548 , l3.FEDERAL_ANTICIPATION source_3
39549 , l3.FEDERAL_FUND_CATEGORY source_4
39550 , l3.FEDERAL_FUND_EXPIRED_STATUS source_5
39551 , l3.FEDERAL_FUND_CAT_DESC source_6
39552 , l1.AID_LINE_TYPE_LOOKUP_CODE source_8
39553 , fvl8.meaning source_8_meaning
39554 , l3.FEDERAL_PRIOR_YEAR_FLAG source_9
39555 , l1.ENCUMBRANCE_AMOUNT source_10
39556 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_11
39557 , fvl11.meaning source_11_meaning
39558 , l1.PO_DISTRIBUTION_ID source_12
39559 , l3.FEDERAL_ADJUSTMENT_TYPE source_14
39560 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_15
39561 , l1.DISTRIBUTION_LINK_TYPE source_17
39562 , l1.ALLOC_TO_MAIN_DIST_ID source_19
39563 , l1.BUS_FLOW_AP_APP_ID source_21
39564 , l1.BUS_FLOW_INV_DIST_TYPE source_22
39565 , l1.BUS_FLOW_INV_ENTITY_CODE source_23
39566 , l1.BUS_FLOW_INV_DIST_ID source_24
39567 , l1.BUS_FLOW_INV_ID source_25
39568 , l1.AID_INVOICE_DIST_ID source_26
39569 , l1.UPG_ENC_CR_CCID source_27
39570 , l1.UPG_ENC_CR_AMT source_28
39571 , l1.UPG_ENC_CR_BASE_AMT source_30
39572 , l1.UPG_ENC_DR_CCID source_31
39573 , l1.UPG_ENC_DR_AMT source_32
39577 , l1.DEFERRED_END_DATE source_39
39574 , l1.UPG_ENC_DR_BASE_AMT source_33
39575 , l1.UPG_AP_ENCUM_OPTION source_34
39576 , l3.FEDERAL_ANTICIPATED_AMT source_35
39578 , l1.DEFERRED_OPTION source_40
39579 , l1.DEFERRED_START_DATE source_41
39580 , l1.OVERRIDE_ACCTD_AMT_FLAG source_42
39581 , fvl42.meaning source_42_meaning
39582 , l1.AID_PARENT_REVERSAL_ID source_46
39583 , l4.TAX_LINE_ID source_48
39584 , l5.REC_NREC_TAX_DIST_ID source_49
39585 , l1.SUMMARY_TAX_LINE_ID source_50
39586 , l1.UPG_CR_ENC_TYPE_ID source_51
39587 , l1.UPG_DR_ENC_TYPE_ID source_52
39588 , l1.ENCUMBRANCE_BASE_AMOUNT source_53
39589 , l3.FEDERAL_UNANTICIPATED_AMT source_54
39590 , l1.AID_AMOUNT source_55
39591 , l1.INV_DIST_BASE_AMOUNT source_56
39592 , l1.AID_BASE_AMT_NO_ROUND source_58
39593 FROM xla_events_gt xet
39594 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
39595 , FV_XLA_AP_REF_V l3
39596 , ZX_AP_DEF_TAX_EXTRACT_V l4
39597 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
39598 , fnd_lookup_values fvl8
39599 , fnd_lookup_values fvl11
39600 , fnd_lookup_values fvl42
39601 WHERE xet.event_id between x_first_event_id and x_last_event_id
39602 and xet.event_date between p_pad_start_date and p_pad_end_date
39603 and xet.event_class_code = C_EVENT_CLASS_CODE
39604 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
39605 AND l3.Federal_Event_Id (+) = l1.event_Id AND l3.Federal_line_number (+) = l1.line_number AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+) AND fvl8.lookup_type(+) =
39606 'INVOICE DISTRIBUTION TYPE'
39607 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
39608 AND fvl8.view_application_id(+) = 200
39609 AND fvl8.language(+) = USERENV('LANG')
39610 AND fvl11.lookup_type(+) = 'YES_NO'
39611 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
39612 AND fvl11.view_application_id(+) = 0
39613 AND fvl11.language(+) = USERENV('LANG')
39614 AND fvl42.lookup_type(+) = 'YES_NO'
39615 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
39616 AND fvl42.view_application_id(+) = 0
39617 AND fvl42.language(+) = USERENV('LANG')
39618 ;
39619
39620 --
39621 BEGIN
39622 IF g_log_enabled THEN
39623 l_log_module := C_DEFAULT_MODULE||'.EventClass_61';
39624 END IF;
39625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39626 trace
39627 (p_msg => 'BEGIN of EventClass_61'
39628 ,p_level => C_LEVEL_PROCEDURE
39629 ,p_module => l_log_module);
39630 END IF;
39631
39632 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
39633 trace
39634 (p_msg => 'p_application_id = '||p_application_id||
39635 ' - p_base_ledger_id = '||p_base_ledger_id||
39636 ' - p_target_ledger_id = '||p_target_ledger_id||
39637 ' - p_language = '||p_language||
39638 ' - p_currency_code = '||p_currency_code||
39639 ' - p_sla_ledger_id = '||p_sla_ledger_id
39640 ,p_level => C_LEVEL_STATEMENT
39641 ,p_module => l_log_module);
39642 END IF;
39643 --
39644 -- initialze arrays
39645 --
39646 g_array_event.DELETE;
39647 l_rec_array_event := l_null_rec_array_event;
39648 --
39649 --------------------------------------
39650 -- 4262811 Initialze MPA Line Number
39651 --------------------------------------
39652 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
39653
39654 --
39655
39656 --
39657 OPEN header_cur;
39658 --
39659 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
39660 trace
39661 (p_msg => 'SQL - FETCH header_cur'
39662 ,p_level => C_LEVEL_STATEMENT
39663 ,p_module => l_log_module);
39664 END IF;
39665 --
39666 LOOP
39667 FETCH header_cur BULK COLLECT INTO
39668 l_array_entity_id
39669 , l_array_legal_entity_id
39670 , l_array_entity_code
39671 , l_array_transaction_num
39672 , l_array_event_id
39673 , l_array_class_code
39674 , l_array_event_type
39675 , l_array_event_number
39676 , l_array_event_date
39677 , l_array_transaction_date
39678 , l_array_reference_num_1
39679 , l_array_reference_num_2
39680 , l_array_reference_num_3
39681 , l_array_reference_num_4
39682 , l_array_reference_char_1
39683 , l_array_reference_char_2
39684 , l_array_reference_char_3
39685 , l_array_reference_char_4
39686 , l_array_reference_date_1
39687 , l_array_reference_date_2
39688 , l_array_reference_date_3
39689 , l_array_reference_date_4
39690 , l_array_event_created_by
39691 , l_array_budgetary_control_flag
39692 , l_array_source_7
39693 , l_array_source_13
39694 , l_array_source_13_meaning
39695 , l_array_source_20
39696 , l_array_source_29
39697 , l_array_source_36
39698 , l_array_source_37
39699 , l_array_source_38
39700 , l_array_source_43
39701 , l_array_source_44
39702 , l_array_source_45
39703 , l_array_source_71
39704 , l_array_source_72
39705 , l_array_source_73
39706 LIMIT l_rows;
39707 --
39708 IF (C_LEVEL_EVENT >= g_log_level) THEN
39709 trace
39710 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
39711 ,p_level => C_LEVEL_EVENT
39712 ,p_module => l_log_module);
39713 END IF;
39714 --
39715 EXIT WHEN l_array_entity_id.COUNT = 0;
39716
39717 -- initialize arrays
39718 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
39719 XLA_AE_LINES_PKG.g_rec_lines := NULL;
39720
39721 --
39722 -- Bug 4458708
39723 --
39724 XLA_AE_LINES_PKG.g_LineNumber := 0;
39725
39726
39727 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
39728 g_last_hdr_idx := l_array_event_id.LAST;
39729 --
39730 -- loop for the headers. Each iteration is for each header extract row
39731 -- fetched in header cursor
39732 --
39733 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
39734
39735 --
39736 -- set event info as cache for other routines to refer event attributes
39737 --
39738 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
39739 (p_application_id => p_application_id
39740 ,p_primary_ledger_id => p_primary_ledger_id
39741 ,p_base_ledger_id => p_base_ledger_id
39742 ,p_target_ledger_id => p_target_ledger_id
39743 ,p_entity_id => l_array_entity_id(hdr_idx)
39744 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
39745 ,p_entity_code => l_array_entity_code(hdr_idx)
39746 ,p_transaction_num => l_array_transaction_num(hdr_idx)
39747 ,p_event_id => l_array_event_id(hdr_idx)
39748 ,p_event_class_code => l_array_class_code(hdr_idx)
39749 ,p_event_type_code => l_array_event_type(hdr_idx)
39750 ,p_event_number => l_array_event_number(hdr_idx)
39751 ,p_event_date => l_array_event_date(hdr_idx)
39752 ,p_transaction_date => l_array_transaction_date(hdr_idx)
39753 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
39754 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
39755 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
39756 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
39757 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
39758 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
39759 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
39760 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
39761 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
39762 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
39763 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
39764 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
39765 ,p_event_created_by => l_array_event_created_by(hdr_idx)
39766 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
39767
39768 --
39769 -- set the status of entry to C_VALID (0)
39770 --
39771 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
39772
39773 --
39774 -- initialize a row for ae header
39775 --
39776 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
39777
39778 l_event_id := l_array_event_id(hdr_idx);
39779
39780 --
39781 -- storing the hdr_idx for event. May be used by line cursor.
39782 --
39783 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
39784
39785 --
39786 -- store sources from header extract. This can be improved to
39787 -- store only those sources from header extract that may be used in lines
39788 --
39789
39790 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
39791 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
39792 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
39793 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
39794 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
39795 g_array_event(l_event_id).array_value_date('source_36') := l_array_source_36(hdr_idx);
39796 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
39797 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
39798 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
39799 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
39800 g_array_event(l_event_id).array_value_char('source_45') := l_array_source_45(hdr_idx);
39801 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
39802 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
39803 g_array_event(l_event_id).array_value_num('source_73') := l_array_source_73(hdr_idx);
39804
39805 --
39806 -- initilaize the status of ae headers for diffrent balance types
39807 -- the status is initialised to C_NOT_CREATED (2)
39808 --
39809 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
39810 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
39811 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
39812
39813 --
39814 -- call api to validate and store accounting attributes for header
39815 --
39816
39817 ------------------------------------------------------------
39818 -- Accrual Reversal : to get date for Standard Source (NONE)
39819 ------------------------------------------------------------
39820 l_acc_rev_gl_date_source := NULL;
39821
39822 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
39823 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_71');
39824 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
39825 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_72');
39826 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
39827 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_73');
39828 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
39829 l_rec_acct_attrs.array_date_value(4) :=
39830 xla_ae_sources_pkg.GetSystemSourceDate(
39831 p_source_code => 'XLA_EVENT_DATE'
39832 , p_source_type_code => 'Y'
39833 , p_source_application_id => 602
39834 );
39835
39836
39837 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
39838
39839 XLA_AE_HEADER_PKG.SetJeCategoryName;
39840
39841 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
39842 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
39843 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
39844 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
39845 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
39846
39847
39848 --
39849 xla_ae_header_pkg.SetHdrDescription(
39850 p_description => Description_1 (
39851 p_application_id => p_application_id
39852 )
39853 );
39854 --
39855
39856 -- No header level analytical criteria
39857
39858 --
39859 --accounting attribute enhancement, bug 3612931
39860 --
39861 l_trx_reversal_source := SUBSTR(NULL, 1,30);
39862
39863 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
39864 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
39865
39866 xla_accounting_err_pkg.build_message
39867 (p_appli_s_name => 'XLA'
39868 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
39869 ,p_token_1 => 'ACCT_ATTR_NAME'
39870 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
39871 ,p_token_2 => 'PRODUCT_NAME'
39872 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
39873 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
39874 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
39875 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
39876
39877 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
39878 --
39879 -- following sets the accounting attributes needed to reverse
39880 -- accounting for a distributeion
39881 --
39882 xla_ae_lines_pkg.SetTrxReversalAttrs
39883 (p_event_id => l_event_id
39884 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
39885 ,p_trx_reversal_source => l_trx_reversal_source);
39886
39887 END IF;
39888
39889
39890 ----------------------------------------------------------------
39891 -- 4262811 - update the header statuses to invalid in need be
39892 ----------------------------------------------------------------
39893 --
39894 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
39895
39896
39897 -----------------------------------------------
39898 -- No accrual reversal for the event class/type
39899 -----------------------------------------------
39900 ----------------------------------------------------------------
39901
39902 --
39903 -- this ends the header loop iteration for one bulk fetch
39904 --
39905 END LOOP;
39906
39907 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
39908 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
39909
39910 --
39911 -- insert dummy rows into lines gt table that were created due to
39912 -- transaction reversals
39913 --
39914 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
39915 l_result := XLA_AE_LINES_PKG.InsertLines;
39916 END IF;
39917
39918 --
39919 -- reset the temp_line_num for each set of events fetched from header
39920 -- cursor rather than doing it for each new event in line cursor
39921 -- Bug 3939231
39922 --
39923 xla_ae_lines_pkg.g_temp_line_num := 0;
39924
39925
39926
39927 --
39928 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
39929 --
39930 --
39931 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
39932
39933 trace
39934 (p_msg => 'SQL - FETCH line_cur'
39935 ,p_level => C_LEVEL_STATEMENT
39936 ,p_module => l_log_module);
39937
39938 END IF;
39939 --
39940 --
39941 LOOP
39942 --
39943 FETCH line_cur BULK COLLECT INTO
39944 l_array_entity_id
39945 , l_array_legal_entity_id
39946 , l_array_entity_code
39947 , l_array_transaction_num
39948 , l_array_event_id
39949 , l_array_class_code
39950 , l_array_event_type
39951 , l_array_event_number
39952 , l_array_event_date
39953 , l_array_transaction_date
39954 , l_array_reference_num_1
39955 , l_array_reference_num_2
39956 , l_array_reference_num_3
39957 , l_array_reference_num_4
39958 , l_array_reference_char_1
39959 , l_array_reference_char_2
39960 , l_array_reference_char_3
39961 , l_array_reference_char_4
39962 , l_array_reference_date_1
39963 , l_array_reference_date_2
39964 , l_array_reference_date_3
39965 , l_array_reference_date_4
39966 , l_array_event_created_by
39967 , l_array_budgetary_control_flag
39968 , l_array_extract_line_num
39969 , l_array_source_1
39970 , l_array_source_2
39971 , l_array_source_3
39972 , l_array_source_4
39973 , l_array_source_5
39974 , l_array_source_6
39975 , l_array_source_8
39976 , l_array_source_8_meaning
39977 , l_array_source_9
39978 , l_array_source_10
39979 , l_array_source_11
39980 , l_array_source_11_meaning
39981 , l_array_source_12
39982 , l_array_source_14
39983 , l_array_source_15
39984 , l_array_source_17
39985 , l_array_source_19
39986 , l_array_source_21
39987 , l_array_source_22
39988 , l_array_source_23
39989 , l_array_source_24
39990 , l_array_source_25
39991 , l_array_source_26
39992 , l_array_source_27
39993 , l_array_source_28
39994 , l_array_source_30
39995 , l_array_source_31
39996 , l_array_source_32
39997 , l_array_source_33
39998 , l_array_source_34
39999 , l_array_source_35
40000 , l_array_source_39
40001 , l_array_source_40
40002 , l_array_source_41
40003 , l_array_source_42
40004 , l_array_source_42_meaning
40005 , l_array_source_46
40006 , l_array_source_48
40007 , l_array_source_49
40008 , l_array_source_50
40009 , l_array_source_51
40010 , l_array_source_52
40011 , l_array_source_53
40012 , l_array_source_54
40013 , l_array_source_55
40014 , l_array_source_56
40015 , l_array_source_58
40016 LIMIT l_rows;
40017
40018 --
40019 IF (C_LEVEL_EVENT >= g_log_level) THEN
40020 trace
40021 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
40022 ,p_level => C_LEVEL_EVENT
40023 ,p_module => l_log_module);
40024 END IF;
40025 --
40026 EXIT WHEN l_array_entity_id.count = 0;
40027
40028 XLA_AE_LINES_PKG.g_rec_lines := null;
40029
40030 --
40031 -- Bug 4458708
40032 --
40033 XLA_AE_LINES_PKG.g_LineNumber := 0;
40034 --
40035 --
40036
40037 FOR Idx IN 1..l_array_event_id.count LOOP
40038 --
40039 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
40040 --
40041 l_event_id := l_array_event_id(idx); -- 5648433
40042
40043 --
40044 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
40045 --
40046
40047 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
40048 (g_array_event(l_event_id).array_value_num('header_index'))
40049 ,'N'
40050 ) <> 'Y'
40051 THEN
40052 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
40053 trace
40054 (p_msg => 'Trancaction revesal option is not Y '
40055 ,p_level => C_LEVEL_STATEMENT
40056 ,p_module => l_log_module);
40057 END IF;
40058
40059 --
40060 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
40061 --
40062 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
40063 --
40064 -- set event info as cache for other routines to refer event attributes
40065 --
40066
40067 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
40068 l_previous_event_id := l_event_id;
40069
40070 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
40071 (p_application_id => p_application_id
40072 ,p_primary_ledger_id => p_primary_ledger_id
40073 ,p_base_ledger_id => p_base_ledger_id
40074 ,p_target_ledger_id => p_target_ledger_id
40075 ,p_entity_id => l_array_entity_id(Idx)
40076 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
40077 ,p_entity_code => l_array_entity_code(Idx)
40078 ,p_transaction_num => l_array_transaction_num(Idx)
40079 ,p_event_id => l_array_event_id(Idx)
40080 ,p_event_class_code => l_array_class_code(Idx)
40081 ,p_event_type_code => l_array_event_type(Idx)
40082 ,p_event_number => l_array_event_number(Idx)
40083 ,p_event_date => l_array_event_date(Idx)
40084 ,p_transaction_date => l_array_transaction_date(Idx)
40085 ,p_reference_num_1 => l_array_reference_num_1(Idx)
40086 ,p_reference_num_2 => l_array_reference_num_2(Idx)
40087 ,p_reference_num_3 => l_array_reference_num_3(Idx)
40088 ,p_reference_num_4 => l_array_reference_num_4(Idx)
40089 ,p_reference_char_1 => l_array_reference_char_1(Idx)
40090 ,p_reference_char_2 => l_array_reference_char_2(Idx)
40091 ,p_reference_char_3 => l_array_reference_char_3(Idx)
40092 ,p_reference_char_4 => l_array_reference_char_4(Idx)
40093 ,p_reference_date_1 => l_array_reference_date_1(Idx)
40094 ,p_reference_date_2 => l_array_reference_date_2(Idx)
40095 ,p_reference_date_3 => l_array_reference_date_3(Idx)
40096 ,p_reference_date_4 => l_array_reference_date_4(Idx)
40097 ,p_event_created_by => l_array_event_created_by(Idx)
40098 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
40099 --
40100 END IF;
40101
40102
40103
40104 --
40105 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
40106
40107 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
40108
40109 IF l_continue_with_lines THEN
40110 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
40111 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
40112
40113 xla_accounting_err_pkg.build_message
40114 (p_appli_s_name => 'XLA'
40115 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
40116 ,p_token_1 => 'LINE_NUMBER'
40117 ,p_value_1 => l_array_extract_line_num(Idx)
40118 ,p_token_2 => 'PRODUCT_NAME'
40119 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
40120 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
40121 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
40122 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
40123
40124 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
40125 --
40126 -- following sets the accounting attributes needed to reverse
40127 -- accounting for a distributeion
40128 --
40129
40130 --
40131 -- 5217187
40132 --
40133 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
40134 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
40135 g_array_event(l_event_id).array_value_num('header_index'));
40136 --
40137 --
40138
40139 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
40140 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
40141 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
40142 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_26(Idx);
40143 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
40144 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
40145 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
40146 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_27(Idx);
40147 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
40148 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_28(Idx);
40149 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
40150 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_29');
40151 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
40152 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_30(Idx);
40153 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
40154 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_31(Idx);
40155 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
40156 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_32(Idx);
40157 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
40158 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_29');
40159 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
40160 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_33(Idx);
40161 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
40162 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_34(Idx);
40163 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
40164 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_45');
40165 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
40166 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_46(Idx);
40167 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
40168 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_17(Idx);
40169 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
40170 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_48(Idx);
40171 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
40172 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_49(Idx);
40173 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
40174 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_50(Idx);
40175 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
40176 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_51(Idx);
40177 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
40178 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_52(Idx);
40179
40180
40181 xla_ae_lines_pkg.SetAcctReversalAttrs
40182 (p_event_id => l_event_id
40183 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
40184 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40185 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
40186 END IF;
40187
40188 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
40189 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
40190
40191 --
40192 AcctLineType_28 (
40193 p_application_id => p_application_id
40194 ,p_event_id => l_event_id
40195 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40196 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40197 ,p_actual_flag => l_actual_flag
40198 ,p_balance_type_code => l_balance_type_code
40199 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40200
40201 , p_source_1 => l_array_source_1(Idx)
40202 , p_source_2 => l_array_source_2(Idx)
40203 , p_source_4 => l_array_source_4(Idx)
40204 , p_source_5 => l_array_source_5(Idx)
40205 , p_source_6 => l_array_source_6(Idx)
40206 , p_source_8 => l_array_source_8(Idx)
40207 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40208 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40209 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40210 , p_source_15 => l_array_source_15(Idx)
40211 , p_source_17 => l_array_source_17(Idx)
40212 , p_source_19 => l_array_source_19(Idx)
40213 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40214 , p_source_21 => l_array_source_21(Idx)
40215 , p_source_22 => l_array_source_22(Idx)
40216 , p_source_23 => l_array_source_23(Idx)
40217 , p_source_24 => l_array_source_24(Idx)
40218 , p_source_25 => l_array_source_25(Idx)
40219 , p_source_26 => l_array_source_26(Idx)
40220 , p_source_27 => l_array_source_27(Idx)
40221 , p_source_28 => l_array_source_28(Idx)
40222 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40223 , p_source_30 => l_array_source_30(Idx)
40224 , p_source_31 => l_array_source_31(Idx)
40225 , p_source_32 => l_array_source_32(Idx)
40226 , p_source_33 => l_array_source_33(Idx)
40227 , p_source_34 => l_array_source_34(Idx)
40228 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40229 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40230 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40231 , p_source_39 => l_array_source_39(Idx)
40232 , p_source_40 => l_array_source_40(Idx)
40233 , p_source_41 => l_array_source_41(Idx)
40234 , p_source_42 => l_array_source_42(Idx)
40235 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40236 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40237 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40238 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40239 , p_source_46 => l_array_source_46(Idx)
40240 , p_source_48 => l_array_source_48(Idx)
40241 , p_source_49 => l_array_source_49(Idx)
40242 , p_source_50 => l_array_source_50(Idx)
40243 , p_source_51 => l_array_source_51(Idx)
40244 , p_source_52 => l_array_source_52(Idx)
40245 , p_source_55 => l_array_source_55(Idx)
40246 , p_source_58 => l_array_source_58(Idx)
40247 );
40248 If(l_balance_type_code = 'A') THEN
40249 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40250 END IF;
40251
40252 --
40253
40254
40255 --
40256 AcctLineType_29 (
40257 p_application_id => p_application_id
40258 ,p_event_id => l_event_id
40259 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40260 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40261 ,p_actual_flag => l_actual_flag
40262 ,p_balance_type_code => l_balance_type_code
40263 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40264
40265 , p_source_1 => l_array_source_1(Idx)
40266 , p_source_2 => l_array_source_2(Idx)
40267 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
40268 , p_source_8 => l_array_source_8(Idx)
40269 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40270 , p_source_9 => l_array_source_9(Idx)
40271 , p_source_10 => l_array_source_10(Idx)
40272 , p_source_11 => l_array_source_11(Idx)
40273 , p_source_11_meaning => l_array_source_11_meaning(Idx)
40274 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40275 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40276 , p_source_15 => l_array_source_15(Idx)
40277 , p_source_17 => l_array_source_17(Idx)
40278 , p_source_19 => l_array_source_19(Idx)
40279 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40280 , p_source_21 => l_array_source_21(Idx)
40281 , p_source_22 => l_array_source_22(Idx)
40282 , p_source_23 => l_array_source_23(Idx)
40283 , p_source_24 => l_array_source_24(Idx)
40284 , p_source_25 => l_array_source_25(Idx)
40285 , p_source_26 => l_array_source_26(Idx)
40286 , p_source_27 => l_array_source_27(Idx)
40287 , p_source_28 => l_array_source_28(Idx)
40288 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40289 , p_source_30 => l_array_source_30(Idx)
40290 , p_source_31 => l_array_source_31(Idx)
40291 , p_source_32 => l_array_source_32(Idx)
40292 , p_source_33 => l_array_source_33(Idx)
40293 , p_source_34 => l_array_source_34(Idx)
40294 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40295 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40296 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40297 , p_source_39 => l_array_source_39(Idx)
40298 , p_source_40 => l_array_source_40(Idx)
40299 , p_source_41 => l_array_source_41(Idx)
40300 , p_source_42 => l_array_source_42(Idx)
40301 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40302 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40303 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40304 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40305 , p_source_46 => l_array_source_46(Idx)
40306 , p_source_48 => l_array_source_48(Idx)
40307 , p_source_49 => l_array_source_49(Idx)
40308 , p_source_50 => l_array_source_50(Idx)
40309 , p_source_51 => l_array_source_51(Idx)
40310 , p_source_52 => l_array_source_52(Idx)
40311 , p_source_55 => l_array_source_55(Idx)
40312 , p_source_58 => l_array_source_58(Idx)
40313 );
40314 If(l_balance_type_code = 'A') THEN
40315 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40316 END IF;
40317
40318 --
40319
40320
40321 --
40322 AcctLineType_32 (
40323 p_application_id => p_application_id
40324 ,p_event_id => l_event_id
40325 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40326 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40327 ,p_actual_flag => l_actual_flag
40328 ,p_balance_type_code => l_balance_type_code
40329 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40330
40331 , p_source_1 => l_array_source_1(Idx)
40332 , p_source_2 => l_array_source_2(Idx)
40333 , p_source_3 => l_array_source_3(Idx)
40334 , p_source_8 => l_array_source_8(Idx)
40335 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40336 , p_source_9 => l_array_source_9(Idx)
40337 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40338 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40339 , p_source_14 => l_array_source_14(Idx)
40340 , p_source_15 => l_array_source_15(Idx)
40341 , p_source_17 => l_array_source_17(Idx)
40342 , p_source_19 => l_array_source_19(Idx)
40343 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40344 , p_source_21 => l_array_source_21(Idx)
40345 , p_source_22 => l_array_source_22(Idx)
40346 , p_source_23 => l_array_source_23(Idx)
40347 , p_source_24 => l_array_source_24(Idx)
40348 , p_source_25 => l_array_source_25(Idx)
40349 , p_source_26 => l_array_source_26(Idx)
40350 , p_source_27 => l_array_source_27(Idx)
40351 , p_source_28 => l_array_source_28(Idx)
40352 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40353 , p_source_30 => l_array_source_30(Idx)
40354 , p_source_31 => l_array_source_31(Idx)
40355 , p_source_32 => l_array_source_32(Idx)
40356 , p_source_33 => l_array_source_33(Idx)
40357 , p_source_34 => l_array_source_34(Idx)
40358 , p_source_35 => l_array_source_35(Idx)
40359 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40360 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40361 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40362 , p_source_39 => l_array_source_39(Idx)
40363 , p_source_40 => l_array_source_40(Idx)
40364 , p_source_41 => l_array_source_41(Idx)
40365 , p_source_42 => l_array_source_42(Idx)
40366 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40367 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40368 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40369 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40370 , p_source_46 => l_array_source_46(Idx)
40371 , p_source_48 => l_array_source_48(Idx)
40372 , p_source_49 => l_array_source_49(Idx)
40373 , p_source_50 => l_array_source_50(Idx)
40374 , p_source_51 => l_array_source_51(Idx)
40375 , p_source_52 => l_array_source_52(Idx)
40376 );
40377 If(l_balance_type_code = 'A') THEN
40378 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40379 END IF;
40380
40381 --
40382
40383
40384 --
40385 AcctLineType_33 (
40386 p_application_id => p_application_id
40387 ,p_event_id => l_event_id
40388 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40389 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40390 ,p_actual_flag => l_actual_flag
40391 ,p_balance_type_code => l_balance_type_code
40392 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40393
40394 , p_source_1 => l_array_source_1(Idx)
40395 , p_source_2 => l_array_source_2(Idx)
40396 , p_source_8 => l_array_source_8(Idx)
40397 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40398 , p_source_9 => l_array_source_9(Idx)
40399 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40400 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40401 , p_source_14 => l_array_source_14(Idx)
40402 , p_source_15 => l_array_source_15(Idx)
40403 , p_source_17 => l_array_source_17(Idx)
40404 , p_source_19 => l_array_source_19(Idx)
40405 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40406 , p_source_21 => l_array_source_21(Idx)
40407 , p_source_22 => l_array_source_22(Idx)
40408 , p_source_23 => l_array_source_23(Idx)
40409 , p_source_24 => l_array_source_24(Idx)
40410 , p_source_25 => l_array_source_25(Idx)
40411 , p_source_26 => l_array_source_26(Idx)
40412 , p_source_27 => l_array_source_27(Idx)
40413 , p_source_28 => l_array_source_28(Idx)
40414 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40415 , p_source_30 => l_array_source_30(Idx)
40416 , p_source_31 => l_array_source_31(Idx)
40417 , p_source_32 => l_array_source_32(Idx)
40418 , p_source_33 => l_array_source_33(Idx)
40419 , p_source_34 => l_array_source_34(Idx)
40420 , p_source_35 => l_array_source_35(Idx)
40421 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40422 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40423 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40424 , p_source_39 => l_array_source_39(Idx)
40425 , p_source_40 => l_array_source_40(Idx)
40426 , p_source_41 => l_array_source_41(Idx)
40427 , p_source_42 => l_array_source_42(Idx)
40428 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40429 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40430 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40431 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40432 , p_source_46 => l_array_source_46(Idx)
40433 , p_source_48 => l_array_source_48(Idx)
40434 , p_source_49 => l_array_source_49(Idx)
40435 , p_source_50 => l_array_source_50(Idx)
40436 , p_source_51 => l_array_source_51(Idx)
40437 , p_source_52 => l_array_source_52(Idx)
40438 , p_source_53 => l_array_source_53(Idx)
40439 );
40440 If(l_balance_type_code = 'A') THEN
40441 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40442 END IF;
40443
40444 --
40445
40446
40447 --
40448 AcctLineType_34 (
40449 p_application_id => p_application_id
40450 ,p_event_id => l_event_id
40451 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40452 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40453 ,p_actual_flag => l_actual_flag
40454 ,p_balance_type_code => l_balance_type_code
40455 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40456
40457 , p_source_1 => l_array_source_1(Idx)
40458 , p_source_2 => l_array_source_2(Idx)
40459 , p_source_3 => l_array_source_3(Idx)
40460 , p_source_8 => l_array_source_8(Idx)
40461 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40462 , p_source_9 => l_array_source_9(Idx)
40463 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40464 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40465 , p_source_14 => l_array_source_14(Idx)
40466 , p_source_15 => l_array_source_15(Idx)
40467 , p_source_17 => l_array_source_17(Idx)
40468 , p_source_19 => l_array_source_19(Idx)
40469 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40470 , p_source_21 => l_array_source_21(Idx)
40471 , p_source_22 => l_array_source_22(Idx)
40472 , p_source_23 => l_array_source_23(Idx)
40473 , p_source_24 => l_array_source_24(Idx)
40474 , p_source_25 => l_array_source_25(Idx)
40475 , p_source_26 => l_array_source_26(Idx)
40476 , p_source_27 => l_array_source_27(Idx)
40477 , p_source_28 => l_array_source_28(Idx)
40478 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40479 , p_source_30 => l_array_source_30(Idx)
40480 , p_source_31 => l_array_source_31(Idx)
40481 , p_source_32 => l_array_source_32(Idx)
40482 , p_source_33 => l_array_source_33(Idx)
40483 , p_source_34 => l_array_source_34(Idx)
40484 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40485 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40486 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40487 , p_source_39 => l_array_source_39(Idx)
40488 , p_source_40 => l_array_source_40(Idx)
40489 , p_source_41 => l_array_source_41(Idx)
40490 , p_source_42 => l_array_source_42(Idx)
40491 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40492 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40493 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40494 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40495 , p_source_46 => l_array_source_46(Idx)
40496 , p_source_48 => l_array_source_48(Idx)
40497 , p_source_49 => l_array_source_49(Idx)
40498 , p_source_50 => l_array_source_50(Idx)
40499 , p_source_51 => l_array_source_51(Idx)
40500 , p_source_52 => l_array_source_52(Idx)
40501 , p_source_54 => l_array_source_54(Idx)
40502 );
40503 If(l_balance_type_code = 'A') THEN
40504 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40505 END IF;
40506
40507 --
40508
40509
40510 --
40511 AcctLineType_35 (
40512 p_application_id => p_application_id
40513 ,p_event_id => l_event_id
40514 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40515 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40516 ,p_actual_flag => l_actual_flag
40517 ,p_balance_type_code => l_balance_type_code
40518 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40519
40520 , p_source_1 => l_array_source_1(Idx)
40521 , p_source_2 => l_array_source_2(Idx)
40522 , p_source_8 => l_array_source_8(Idx)
40523 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40524 , p_source_9 => l_array_source_9(Idx)
40525 , p_source_11 => l_array_source_11(Idx)
40526 , p_source_11_meaning => l_array_source_11_meaning(Idx)
40527 , p_source_12 => l_array_source_12(Idx)
40528 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40529 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40530 , p_source_14 => l_array_source_14(Idx)
40531 , p_source_15 => l_array_source_15(Idx)
40532 , p_source_17 => l_array_source_17(Idx)
40533 , p_source_19 => l_array_source_19(Idx)
40534 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40535 , p_source_21 => l_array_source_21(Idx)
40536 , p_source_22 => l_array_source_22(Idx)
40537 , p_source_23 => l_array_source_23(Idx)
40538 , p_source_24 => l_array_source_24(Idx)
40539 , p_source_25 => l_array_source_25(Idx)
40540 , p_source_26 => l_array_source_26(Idx)
40541 , p_source_27 => l_array_source_27(Idx)
40542 , p_source_28 => l_array_source_28(Idx)
40543 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40544 , p_source_30 => l_array_source_30(Idx)
40545 , p_source_31 => l_array_source_31(Idx)
40546 , p_source_32 => l_array_source_32(Idx)
40547 , p_source_33 => l_array_source_33(Idx)
40548 , p_source_34 => l_array_source_34(Idx)
40549 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40550 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40551 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40552 , p_source_39 => l_array_source_39(Idx)
40553 , p_source_40 => l_array_source_40(Idx)
40554 , p_source_41 => l_array_source_41(Idx)
40555 , p_source_42 => l_array_source_42(Idx)
40556 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40557 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40558 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40559 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40560 , p_source_46 => l_array_source_46(Idx)
40561 , p_source_48 => l_array_source_48(Idx)
40562 , p_source_49 => l_array_source_49(Idx)
40563 , p_source_50 => l_array_source_50(Idx)
40564 , p_source_51 => l_array_source_51(Idx)
40565 , p_source_52 => l_array_source_52(Idx)
40566 , p_source_55 => l_array_source_55(Idx)
40567 , p_source_56 => l_array_source_56(Idx)
40568 );
40569 If(l_balance_type_code = 'A') THEN
40570 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40571 END IF;
40572
40573 --
40574
40575
40576 --
40577 AcctLineType_36 (
40578 p_application_id => p_application_id
40579 ,p_event_id => l_event_id
40580 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40581 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40582 ,p_actual_flag => l_actual_flag
40583 ,p_balance_type_code => l_balance_type_code
40584 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40585
40586 , p_source_1 => l_array_source_1(Idx)
40587 , p_source_2 => l_array_source_2(Idx)
40588 , p_source_4 => l_array_source_4(Idx)
40589 , p_source_5 => l_array_source_5(Idx)
40590 , p_source_6 => l_array_source_6(Idx)
40591 , p_source_8 => l_array_source_8(Idx)
40592 , p_source_8_meaning => l_array_source_8_meaning(Idx)
40593 , p_source_9 => l_array_source_9(Idx)
40594 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
40595 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
40596 , p_source_14 => l_array_source_14(Idx)
40597 , p_source_15 => l_array_source_15(Idx)
40598 , p_source_17 => l_array_source_17(Idx)
40599 , p_source_19 => l_array_source_19(Idx)
40600 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40601 , p_source_21 => l_array_source_21(Idx)
40602 , p_source_22 => l_array_source_22(Idx)
40603 , p_source_23 => l_array_source_23(Idx)
40604 , p_source_24 => l_array_source_24(Idx)
40605 , p_source_25 => l_array_source_25(Idx)
40606 , p_source_26 => l_array_source_26(Idx)
40607 , p_source_27 => l_array_source_27(Idx)
40608 , p_source_28 => l_array_source_28(Idx)
40609 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40610 , p_source_30 => l_array_source_30(Idx)
40611 , p_source_31 => l_array_source_31(Idx)
40612 , p_source_32 => l_array_source_32(Idx)
40613 , p_source_33 => l_array_source_33(Idx)
40614 , p_source_34 => l_array_source_34(Idx)
40615 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40616 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40617 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40618 , p_source_39 => l_array_source_39(Idx)
40619 , p_source_40 => l_array_source_40(Idx)
40620 , p_source_41 => l_array_source_41(Idx)
40621 , p_source_42 => l_array_source_42(Idx)
40622 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40623 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40624 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40625 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40626 , p_source_46 => l_array_source_46(Idx)
40627 , p_source_48 => l_array_source_48(Idx)
40628 , p_source_49 => l_array_source_49(Idx)
40629 , p_source_50 => l_array_source_50(Idx)
40630 , p_source_51 => l_array_source_51(Idx)
40631 , p_source_52 => l_array_source_52(Idx)
40632 , p_source_55 => l_array_source_55(Idx)
40633 , p_source_56 => l_array_source_56(Idx)
40634 );
40635 If(l_balance_type_code = 'A') THEN
40636 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40637 END IF;
40638
40639 --
40640
40641
40642 --
40643 AcctLineType_37 (
40644 p_application_id => p_application_id
40645 ,p_event_id => l_event_id
40646 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40647 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40648 ,p_actual_flag => l_actual_flag
40649 ,p_balance_type_code => l_balance_type_code
40650 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40651
40652 , p_source_1 => l_array_source_1(Idx)
40653 , p_source_2 => l_array_source_2(Idx)
40654 , p_source_6 => l_array_source_6(Idx)
40655 , p_source_15 => l_array_source_15(Idx)
40656 , p_source_17 => l_array_source_17(Idx)
40657 , p_source_19 => l_array_source_19(Idx)
40658 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40659 , p_source_21 => l_array_source_21(Idx)
40660 , p_source_22 => l_array_source_22(Idx)
40661 , p_source_23 => l_array_source_23(Idx)
40662 , p_source_24 => l_array_source_24(Idx)
40663 , p_source_25 => l_array_source_25(Idx)
40664 , p_source_26 => l_array_source_26(Idx)
40665 , p_source_27 => l_array_source_27(Idx)
40666 , p_source_28 => l_array_source_28(Idx)
40667 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40668 , p_source_30 => l_array_source_30(Idx)
40669 , p_source_31 => l_array_source_31(Idx)
40670 , p_source_32 => l_array_source_32(Idx)
40671 , p_source_33 => l_array_source_33(Idx)
40672 , p_source_34 => l_array_source_34(Idx)
40673 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40674 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40675 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40676 , p_source_39 => l_array_source_39(Idx)
40677 , p_source_40 => l_array_source_40(Idx)
40678 , p_source_41 => l_array_source_41(Idx)
40679 , p_source_42 => l_array_source_42(Idx)
40680 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40681 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40682 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40683 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40684 , p_source_46 => l_array_source_46(Idx)
40685 , p_source_48 => l_array_source_48(Idx)
40686 , p_source_49 => l_array_source_49(Idx)
40687 , p_source_50 => l_array_source_50(Idx)
40688 , p_source_51 => l_array_source_51(Idx)
40689 , p_source_52 => l_array_source_52(Idx)
40690 , p_source_55 => l_array_source_55(Idx)
40691 , p_source_58 => l_array_source_58(Idx)
40692 );
40693 If(l_balance_type_code = 'A') THEN
40694 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40695 END IF;
40696
40697 --
40698
40699
40700 --
40701 AcctLineType_38 (
40702 p_application_id => p_application_id
40703 ,p_event_id => l_event_id
40704 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40705 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40706 ,p_actual_flag => l_actual_flag
40707 ,p_balance_type_code => l_balance_type_code
40708 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40709
40710 , p_source_1 => l_array_source_1(Idx)
40711 , p_source_2 => l_array_source_2(Idx)
40712 , p_source_6 => l_array_source_6(Idx)
40713 , p_source_15 => l_array_source_15(Idx)
40714 , p_source_17 => l_array_source_17(Idx)
40715 , p_source_19 => l_array_source_19(Idx)
40716 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40717 , p_source_21 => l_array_source_21(Idx)
40718 , p_source_22 => l_array_source_22(Idx)
40719 , p_source_23 => l_array_source_23(Idx)
40720 , p_source_24 => l_array_source_24(Idx)
40721 , p_source_25 => l_array_source_25(Idx)
40722 , p_source_26 => l_array_source_26(Idx)
40723 , p_source_27 => l_array_source_27(Idx)
40724 , p_source_28 => l_array_source_28(Idx)
40725 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40726 , p_source_30 => l_array_source_30(Idx)
40727 , p_source_31 => l_array_source_31(Idx)
40728 , p_source_32 => l_array_source_32(Idx)
40729 , p_source_33 => l_array_source_33(Idx)
40730 , p_source_34 => l_array_source_34(Idx)
40731 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
40732 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
40733 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
40734 , p_source_39 => l_array_source_39(Idx)
40735 , p_source_40 => l_array_source_40(Idx)
40736 , p_source_41 => l_array_source_41(Idx)
40737 , p_source_42 => l_array_source_42(Idx)
40738 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40739 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
40740 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
40741 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40742 , p_source_46 => l_array_source_46(Idx)
40743 , p_source_48 => l_array_source_48(Idx)
40744 , p_source_49 => l_array_source_49(Idx)
40745 , p_source_50 => l_array_source_50(Idx)
40746 , p_source_51 => l_array_source_51(Idx)
40747 , p_source_52 => l_array_source_52(Idx)
40748 , p_source_55 => l_array_source_55(Idx)
40749 , p_source_58 => l_array_source_58(Idx)
40750 );
40751 If(l_balance_type_code = 'A') THEN
40752 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40753 END IF;
40754
40755 --
40756
40757
40758 --
40759 AcctLineType_39 (
40760 p_application_id => p_application_id
40761 ,p_event_id => l_event_id
40762 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40763 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40764 ,p_actual_flag => l_actual_flag
40765 ,p_balance_type_code => l_balance_type_code
40766 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40767
40768 , p_source_6 => l_array_source_6(Idx)
40769 , p_source_15 => l_array_source_15(Idx)
40770 , p_source_17 => l_array_source_17(Idx)
40771 , p_source_19 => l_array_source_19(Idx)
40772 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40773 , p_source_21 => l_array_source_21(Idx)
40774 , p_source_22 => l_array_source_22(Idx)
40775 , p_source_23 => l_array_source_23(Idx)
40776 , p_source_24 => l_array_source_24(Idx)
40777 , p_source_25 => l_array_source_25(Idx)
40778 , p_source_26 => l_array_source_26(Idx)
40779 , p_source_27 => l_array_source_27(Idx)
40780 , p_source_28 => l_array_source_28(Idx)
40781 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40782 , p_source_30 => l_array_source_30(Idx)
40783 , p_source_31 => l_array_source_31(Idx)
40784 , p_source_32 => l_array_source_32(Idx)
40785 , p_source_33 => l_array_source_33(Idx)
40786 , p_source_34 => l_array_source_34(Idx)
40787 , p_source_39 => l_array_source_39(Idx)
40788 , p_source_40 => l_array_source_40(Idx)
40789 , p_source_41 => l_array_source_41(Idx)
40790 , p_source_42 => l_array_source_42(Idx)
40791 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40792 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40793 , p_source_46 => l_array_source_46(Idx)
40794 , p_source_48 => l_array_source_48(Idx)
40795 , p_source_49 => l_array_source_49(Idx)
40796 , p_source_50 => l_array_source_50(Idx)
40797 , p_source_51 => l_array_source_51(Idx)
40798 , p_source_52 => l_array_source_52(Idx)
40799 , p_source_55 => l_array_source_55(Idx)
40800 , p_source_58 => l_array_source_58(Idx)
40801 );
40802 If(l_balance_type_code = 'A') THEN
40803 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40804 END IF;
40805
40806 --
40807
40808
40809 --
40810 AcctLineType_40 (
40811 p_application_id => p_application_id
40812 ,p_event_id => l_event_id
40813 ,p_calculate_acctd_flag => l_calculate_acctd_flag
40814 ,p_calculate_g_l_flag => l_calculate_g_l_flag
40815 ,p_actual_flag => l_actual_flag
40816 ,p_balance_type_code => l_balance_type_code
40817 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
40818
40819 , p_source_6 => l_array_source_6(Idx)
40820 , p_source_15 => l_array_source_15(Idx)
40821 , p_source_17 => l_array_source_17(Idx)
40822 , p_source_19 => l_array_source_19(Idx)
40823 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
40824 , p_source_21 => l_array_source_21(Idx)
40825 , p_source_22 => l_array_source_22(Idx)
40826 , p_source_23 => l_array_source_23(Idx)
40827 , p_source_24 => l_array_source_24(Idx)
40828 , p_source_25 => l_array_source_25(Idx)
40829 , p_source_26 => l_array_source_26(Idx)
40830 , p_source_27 => l_array_source_27(Idx)
40831 , p_source_28 => l_array_source_28(Idx)
40832 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
40833 , p_source_30 => l_array_source_30(Idx)
40834 , p_source_31 => l_array_source_31(Idx)
40835 , p_source_32 => l_array_source_32(Idx)
40836 , p_source_33 => l_array_source_33(Idx)
40837 , p_source_34 => l_array_source_34(Idx)
40838 , p_source_39 => l_array_source_39(Idx)
40839 , p_source_40 => l_array_source_40(Idx)
40840 , p_source_41 => l_array_source_41(Idx)
40841 , p_source_42 => l_array_source_42(Idx)
40842 , p_source_42_meaning => l_array_source_42_meaning(Idx)
40843 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
40844 , p_source_46 => l_array_source_46(Idx)
40845 , p_source_48 => l_array_source_48(Idx)
40846 , p_source_49 => l_array_source_49(Idx)
40847 , p_source_50 => l_array_source_50(Idx)
40848 , p_source_51 => l_array_source_51(Idx)
40849 , p_source_52 => l_array_source_52(Idx)
40850 , p_source_55 => l_array_source_55(Idx)
40851 , p_source_58 => l_array_source_58(Idx)
40852 );
40853 If(l_balance_type_code = 'A') THEN
40854 l_actual_gain_loss_ref := l_gain_or_loss_ref;
40855 END IF;
40856
40857 --
40858
40859 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
40860 -- or secondary ledger that has different currency with primary
40861 -- or alc that is calculated by sla
40862 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
40863 (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'))
40864
40865 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
40866 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
40867 AND (l_actual_flag = 'A')) THEN
40868 XLA_AE_LINES_PKG.CreateGainOrLossLines(
40869 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
40870 ,p_application_id => p_application_id
40871 ,p_amb_context_code => 'DEFAULT'
40872 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
40873 ,p_event_class_code => C_EVENT_CLASS_CODE
40874 ,p_event_type_code => C_EVENT_TYPE_CODE
40875
40876 ,p_gain_ccid => -1
40877 ,p_loss_ccid => -1
40878
40879 ,p_actual_flag => l_actual_flag
40880 ,p_enc_flag => null
40881 ,p_actual_g_l_ref => l_actual_gain_loss_ref
40882 ,p_enc_g_l_ref => null
40883 );
40884 END IF;
40885 END IF;
40886 END IF;
40887
40888 ELSE
40889 --
40890 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
40891 --
40892 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
40893 trace
40894 (p_msg => 'Trancaction revesal option is Y'
40895 ,p_level => C_LEVEL_STATEMENT
40896 ,p_module => l_log_module);
40897 END IF;
40898 END IF;
40899
40900 END LOOP;
40901 l_result := XLA_AE_LINES_PKG.InsertLines ;
40902 end loop;
40903 close line_cur;
40904
40905
40906 --
40907 -- insert headers into xla_ae_headers_gt table
40908 --
40909 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
40910
40911 -- insert into errors table here.
40912
40913 END LOOP;
40914
40915 --
40916 -- 4865292
40917 --
40918 -- Compare g_hdr_extract_count with event count in
40919 -- CreateHeadersAndLines.
40920 --
40921 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
40922
40923 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
40924 trace (p_msg => '# rows extracted from header extract objects '
40925 || ' (running total): '
40926 || g_hdr_extract_count
40927 ,p_level => C_LEVEL_STATEMENT
40928 ,p_module => l_log_module);
40929 END IF;
40930
40931 CLOSE header_cur;
40932 --
40933
40934 --
40935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40936 trace
40937 (p_msg => 'END of EventClass_61'
40938 ,p_level => C_LEVEL_PROCEDURE
40939 ,p_module => l_log_module);
40940 END IF;
40941 --
40942 RETURN l_result;
40943 EXCEPTION
40944 WHEN xla_exceptions_pkg.application_exception THEN
40945
40946 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
40947
40948
40949 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
40950
40951 RAISE;
40952
40953 WHEN NO_DATA_FOUND THEN
40954
40955 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
40956 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
40957
40958 FOR header_record IN header_cur
40959 LOOP
40960 l_array_header_events(header_record.event_id) := header_record.event_id;
40961 END LOOP;
40962
40963 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
40964 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
40965
40966 fnd_file.put_line(fnd_file.LOG, ' ');
40967 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
40968 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
40969 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
40970
40971 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
40972 LOOP
40973 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
40974 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
40975 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
40976 END IF;
40977 END LOOP;
40978
40979 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
40980 fnd_file.put_line(fnd_file.LOG, ' ');
40981
40982
40983 xla_exceptions_pkg.raise_message
40984 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_61');
40985
40986
40987 WHEN OTHERS THEN
40988 xla_exceptions_pkg.raise_message
40989 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_61');
40990 END EventClass_61;
40991 --
40992
40993 ---------------------------------------
40994 --
40995 -- PRIVATE PROCEDURE
40996 -- insert_sources_62
40997 --
40998 ----------------------------------------
40999 --
41000 PROCEDURE insert_sources_62(
41001 p_target_ledger_id IN NUMBER
41002 , p_language IN VARCHAR2
41003 , p_sla_ledger_id IN NUMBER
41004 , p_pad_start_date IN DATE
41005 , p_pad_end_date IN DATE
41006 )
41007 IS
41008
41009 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICES_ALL';
41010 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICES';
41011 p_apps_owner VARCHAR2(30);
41012 l_log_module VARCHAR2(240);
41013 BEGIN
41014 IF g_log_enabled THEN
41015 l_log_module := C_DEFAULT_MODULE||'.insert_sources_62';
41016 END IF;
41017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41018
41019 trace
41020 (p_msg => 'BEGIN of insert_sources_62'
41021 ,p_level => C_LEVEL_PROCEDURE
41022 ,p_module => l_log_module);
41023
41024 END IF;
41025
41026 -- select APPS owner
41027 SELECT oracle_username
41028 INTO p_apps_owner
41029 FROM fnd_oracle_userid
41030 WHERE read_only_flag = 'U'
41031 ;
41032
41033 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
41034 trace
41035 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
41036 ' - p_language = '||p_language||
41037 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
41038 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
41039 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
41040 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
41041 ,p_level => C_LEVEL_STATEMENT
41042 ,p_module => l_log_module);
41043 END IF;
41044
41045
41046 --
41047 INSERT INTO xla_diag_sources --hdr2
41048 (
41049 event_id
41050 , ledger_id
41051 , sla_ledger_id
41052 , description_language
41053 , object_name
41054 , object_type_code
41055 , line_number
41056 , source_application_id
41057 , source_type_code
41058 , source_code
41059 , source_value
41060 , source_meaning
41061 , created_by
41062 , creation_date
41063 , last_update_date
41064 , last_updated_by
41065 , last_update_login
41066 , program_update_date
41067 , program_application_id
41068 , program_id
41069 , request_id
41070 )
41071 SELECT
41072 event_id
41073 , p_target_ledger_id
41074 , p_sla_ledger_id
41075 , p_language
41076 , object_name
41077 , object_type_code
41078 , line_number
41079 , source_application_id
41080 , source_type_code
41081 , source_code
41082 , SUBSTR(source_value ,1,1996)
41083 , SUBSTR(source_meaning ,1,200)
41084 , xla_environment_pkg.g_Usr_Id
41085 , TRUNC(SYSDATE)
41086 , TRUNC(SYSDATE)
41087 , xla_environment_pkg.g_Usr_Id
41088 , xla_environment_pkg.g_Login_Id
41089 , TRUNC(SYSDATE)
41090 , xla_environment_pkg.g_Prog_Appl_Id
41091 , xla_environment_pkg.g_Prog_Id
41092 , xla_environment_pkg.g_Req_Id
41093 FROM (
41094 SELECT xet.event_id event_id
41095 , 0 line_number
41096 , CASE r
41097 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41098 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41099 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41100 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41101 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41102 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41103 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41104 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41105 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41106 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41107 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V'
41108 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41109 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41110 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
41111
41112 ELSE null
41113 END object_name
41114 , CASE r
41115 WHEN 1 THEN 'HEADER'
41116 WHEN 2 THEN 'HEADER'
41117 WHEN 3 THEN 'HEADER'
41118 WHEN 4 THEN 'HEADER'
41119 WHEN 5 THEN 'HEADER'
41120 WHEN 6 THEN 'HEADER'
41121 WHEN 7 THEN 'HEADER'
41122 WHEN 8 THEN 'HEADER'
41123 WHEN 9 THEN 'HEADER'
41124 WHEN 10 THEN 'HEADER'
41125 WHEN 11 THEN 'HEADER'
41126 WHEN 12 THEN 'HEADER'
41127 WHEN 13 THEN 'HEADER'
41128 WHEN 14 THEN 'HEADER'
41129
41130 ELSE null
41131 END object_type_code
41132 , CASE r
41133 WHEN 1 THEN '200'
41134 WHEN 2 THEN '200'
41135 WHEN 3 THEN '200'
41136 WHEN 4 THEN '200'
41137 WHEN 5 THEN '200'
41138 WHEN 6 THEN '200'
41139 WHEN 7 THEN '200'
41140 WHEN 8 THEN '200'
41141 WHEN 9 THEN '200'
41142 WHEN 10 THEN '200'
41143 WHEN 11 THEN '200'
41144 WHEN 12 THEN '200'
41145 WHEN 13 THEN '200'
41146 WHEN 14 THEN '200'
41147
41148 ELSE null
41149 END source_application_id
41150 , 'S' source_type_code
41151 , CASE r
41152 WHEN 1 THEN 'AI_PAYMENT_STATUS_FLAG'
41153 WHEN 2 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE'
41154 WHEN 3 THEN 'AI_INVOICE_ID'
41155 WHEN 4 THEN 'AI_INVOICE_CURRENCY_CODE'
41156 WHEN 5 THEN 'INV_EXCHANGE_DATE'
41157 WHEN 6 THEN 'INV_EXCHANGE_RATE'
41158 WHEN 7 THEN 'INV_EXCHANGE_RATE_TYPE'
41159 WHEN 8 THEN 'AI_VENDOR_ID'
41160 WHEN 9 THEN 'AI_VENDOR_SITE_ID'
41161 WHEN 10 THEN 'THIRD_PARTY_TYPE'
41162 WHEN 11 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG'
41163 WHEN 12 THEN 'INV_DOC_SEQUENCE_CATEGORY'
41164 WHEN 13 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
41165 WHEN 14 THEN 'INV_DOC_SEQUENCE_VALUE'
41166
41167 ELSE null
41168 END source_code
41169 , CASE r
41170 WHEN 1 THEN TO_CHAR(h2.AI_PAYMENT_STATUS_FLAG)
41171 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
41172 WHEN 3 THEN TO_CHAR(h2.AI_INVOICE_ID)
41173 WHEN 4 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
41174 WHEN 5 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
41175 WHEN 6 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
41176 WHEN 7 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
41177 WHEN 8 THEN TO_CHAR(h2.AI_VENDOR_ID)
41178 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
41179 WHEN 10 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
41180 WHEN 11 THEN TO_CHAR(h3.FSP_PURCH_ENCUMBRANCE_FLAG)
41181 WHEN 12 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
41182 WHEN 13 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
41183 WHEN 14 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
41184
41185 ELSE null
41186 END source_value
41187 , CASE r
41188 WHEN 2 THEN fvl13.meaning
41189 WHEN 11 THEN fvl60.meaning
41190
41191 ELSE null
41192 END source_meaning
41193 FROM xla_events_gt xet
41194 , AP_INVOICE_EXTRACT_HEADER_V h2
41195 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
41196 , fnd_lookup_values fvl13
41197 , fnd_lookup_values fvl60
41198 ,(select rownum r from all_objects where rownum <= 14 and owner = p_apps_owner)
41199 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
41200 AND xet.event_class_code = C_EVENT_CLASS_CODE
41201 AND h2.event_id = xet.event_id
41202 AND h3.asp_org_id = h2.ai_org_id AND fvl13.lookup_type(+) = 'INVOICE TYPE'
41203 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
41204 AND fvl13.view_application_id(+) = 200
41205 AND fvl13.language(+) = USERENV('LANG')
41206 AND fvl60.lookup_type(+) = 'YES_NO'
41207 AND fvl60.lookup_code(+) = h3.FSP_PURCH_ENCUMBRANCE_FLAG
41208 AND fvl60.view_application_id(+) = 0
41209 AND fvl60.language(+) = USERENV('LANG')
41210
41211 )
41212 ;
41213 --
41214 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
41215
41216 trace
41217 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
41218 ,p_level => C_LEVEL_STATEMENT
41219 ,p_module => l_log_module);
41220
41221 END IF;
41222 --
41223
41224
41225
41226 --
41227 INSERT INTO xla_diag_sources --line2
41228 (
41229 event_id
41230 , ledger_id
41231 , sla_ledger_id
41232 , description_language
41233 , object_name
41234 , object_type_code
41235 , line_number
41236 , source_application_id
41237 , source_type_code
41238 , source_code
41239 , source_value
41240 , source_meaning
41241 , created_by
41242 , creation_date
41243 , last_update_date
41244 , last_updated_by
41245 , last_update_login
41246 , program_update_date
41247 , program_application_id
41248 , program_id
41249 , request_id
41250 )
41251 SELECT event_id
41252 , p_target_ledger_id
41253 , p_sla_ledger_id
41254 , p_language
41255 , object_name
41256 , object_type_code
41257 , line_number
41258 , source_application_id
41259 , source_type_code
41260 , source_code
41261 , SUBSTR(source_value,1,1996)
41262 , SUBSTR(source_meaning ,1,200)
41263 , xla_environment_pkg.g_Usr_Id
41264 , TRUNC(SYSDATE)
41265 , TRUNC(SYSDATE)
41266 , xla_environment_pkg.g_Usr_Id
41267 , xla_environment_pkg.g_Login_Id
41268 , TRUNC(SYSDATE)
41269 , xla_environment_pkg.g_Prog_Appl_Id
41270 , xla_environment_pkg.g_Prog_Id
41271 , xla_environment_pkg.g_Req_Id
41272 FROM (
41273 SELECT xet.event_id event_id
41274 , l1.line_number line_number
41275 , CASE r
41276 WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41277 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41278 WHEN 3 THEN 'FV_XLA_AP_REF_V'
41279 WHEN 4 THEN 'FV_XLA_AP_REF_V'
41280 WHEN 5 THEN 'FV_XLA_AP_REF_V'
41281 WHEN 6 THEN 'FV_XLA_AP_REF_V'
41282 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41283 WHEN 8 THEN 'FV_XLA_AP_REF_V'
41284 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41285 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41286 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41287 WHEN 12 THEN 'FV_XLA_AP_REF_V'
41288 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41289 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41290 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41291 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41292 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41293 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41294 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41295 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41296 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41297 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41298 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41299 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41300 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41301 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41302 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41303 WHEN 28 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41304 WHEN 29 THEN 'FV_XLA_AP_REF_V'
41305 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41306 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41307 WHEN 32 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41308 WHEN 33 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41309 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41310 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41311 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
41312 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
41313 WHEN 38 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41314 WHEN 39 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41315 WHEN 40 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41316 WHEN 41 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41317 WHEN 42 THEN 'FV_XLA_AP_REF_V'
41318 WHEN 43 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41319 WHEN 44 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41320 WHEN 45 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41321 WHEN 46 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41322 WHEN 47 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41323 WHEN 48 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41324 WHEN 49 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41325 WHEN 50 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41326 WHEN 51 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41327 WHEN 52 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41328 WHEN 53 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41329 WHEN 54 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
41330 WHEN 55 THEN 'FV_XLA_AP_REF_V'
41331
41332 ELSE null
41333 END object_name
41334 , CASE r
41335 WHEN 1 THEN 'LINE'
41336 WHEN 2 THEN 'LINE'
41337 WHEN 3 THEN 'LINE'
41338 WHEN 4 THEN 'LINE'
41339 WHEN 5 THEN 'LINE'
41340 WHEN 6 THEN 'LINE'
41341 WHEN 7 THEN 'LINE'
41342 WHEN 8 THEN 'LINE'
41343 WHEN 9 THEN 'LINE'
41344 WHEN 10 THEN 'LINE'
41345 WHEN 11 THEN 'LINE'
41346 WHEN 12 THEN 'LINE'
41347 WHEN 13 THEN 'LINE'
41348 WHEN 14 THEN 'LINE'
41349 WHEN 15 THEN 'LINE'
41350 WHEN 16 THEN 'LINE'
41351 WHEN 17 THEN 'LINE'
41352 WHEN 18 THEN 'LINE'
41353 WHEN 19 THEN 'LINE'
41354 WHEN 20 THEN 'LINE'
41355 WHEN 21 THEN 'LINE'
41356 WHEN 22 THEN 'LINE'
41357 WHEN 23 THEN 'LINE'
41358 WHEN 24 THEN 'LINE'
41359 WHEN 25 THEN 'LINE'
41360 WHEN 26 THEN 'LINE'
41361 WHEN 27 THEN 'LINE'
41362 WHEN 28 THEN 'LINE'
41363 WHEN 29 THEN 'LINE'
41364 WHEN 30 THEN 'LINE'
41365 WHEN 31 THEN 'LINE'
41366 WHEN 32 THEN 'LINE'
41367 WHEN 33 THEN 'LINE'
41368 WHEN 34 THEN 'LINE'
41369 WHEN 35 THEN 'LINE'
41370 WHEN 36 THEN 'LINE'
41374 WHEN 40 THEN 'LINE'
41371 WHEN 37 THEN 'LINE'
41372 WHEN 38 THEN 'LINE'
41373 WHEN 39 THEN 'LINE'
41375 WHEN 41 THEN 'LINE'
41376 WHEN 42 THEN 'LINE'
41377 WHEN 43 THEN 'LINE'
41378 WHEN 44 THEN 'LINE'
41379 WHEN 45 THEN 'LINE'
41380 WHEN 46 THEN 'LINE'
41381 WHEN 47 THEN 'LINE'
41382 WHEN 48 THEN 'LINE'
41383 WHEN 49 THEN 'LINE'
41384 WHEN 50 THEN 'LINE'
41385 WHEN 51 THEN 'LINE'
41386 WHEN 52 THEN 'LINE'
41387 WHEN 53 THEN 'LINE'
41388 WHEN 54 THEN 'LINE'
41389 WHEN 55 THEN 'LINE'
41390
41391 ELSE null
41392 END object_type_code
41393 , CASE r
41394 WHEN 1 THEN '200'
41395 WHEN 2 THEN '200'
41396 WHEN 3 THEN '8901'
41397 WHEN 4 THEN '8901'
41398 WHEN 5 THEN '8901'
41399 WHEN 6 THEN '8901'
41400 WHEN 7 THEN '200'
41401 WHEN 8 THEN '8901'
41402 WHEN 9 THEN '200'
41403 WHEN 10 THEN '200'
41404 WHEN 11 THEN '200'
41405 WHEN 12 THEN '8901'
41406 WHEN 13 THEN '200'
41407 WHEN 14 THEN '200'
41408 WHEN 15 THEN '200'
41409 WHEN 16 THEN '200'
41410 WHEN 17 THEN '200'
41411 WHEN 18 THEN '200'
41412 WHEN 19 THEN '200'
41413 WHEN 20 THEN '200'
41414 WHEN 21 THEN '200'
41415 WHEN 22 THEN '200'
41416 WHEN 23 THEN '200'
41417 WHEN 24 THEN '200'
41418 WHEN 25 THEN '200'
41419 WHEN 26 THEN '200'
41420 WHEN 27 THEN '200'
41421 WHEN 28 THEN '200'
41422 WHEN 29 THEN '8901'
41423 WHEN 30 THEN '200'
41424 WHEN 31 THEN '200'
41425 WHEN 32 THEN '200'
41426 WHEN 33 THEN '200'
41427 WHEN 34 THEN '200'
41428 WHEN 35 THEN '200'
41429 WHEN 36 THEN '200'
41430 WHEN 37 THEN '200'
41431 WHEN 38 THEN '200'
41432 WHEN 39 THEN '200'
41433 WHEN 40 THEN '200'
41434 WHEN 41 THEN '200'
41435 WHEN 42 THEN '8901'
41436 WHEN 43 THEN '200'
41437 WHEN 44 THEN '200'
41438 WHEN 45 THEN '200'
41439 WHEN 46 THEN '200'
41440 WHEN 47 THEN '200'
41441 WHEN 48 THEN '200'
41442 WHEN 49 THEN '200'
41443 WHEN 50 THEN '200'
41444 WHEN 51 THEN '200'
41445 WHEN 52 THEN '200'
41446 WHEN 53 THEN '200'
41447 WHEN 54 THEN '200'
41448 WHEN 55 THEN '8901'
41449
41450 ELSE null
41451 END source_application_id
41452 , 'S' source_type_code
41453 , CASE r
41454 WHEN 1 THEN 'AID_DESCRIPTION'
41455 WHEN 2 THEN 'AID_DIST_CCID'
41456 WHEN 3 THEN 'FEDERAL_ANTICIPATION'
41457 WHEN 4 THEN 'FEDERAL_FUND_CATEGORY'
41458 WHEN 5 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
41459 WHEN 6 THEN 'FEDERAL_FUND_CAT_DESC'
41460 WHEN 7 THEN 'AID_LINE_TYPE_LOOKUP_CODE'
41461 WHEN 8 THEN 'FEDERAL_PRIOR_YEAR_FLAG'
41462 WHEN 9 THEN 'ENCUMBRANCE_AMOUNT'
41463 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG'
41464 WHEN 11 THEN 'PO_DISTRIBUTION_ID'
41465 WHEN 12 THEN 'FEDERAL_ADJUSTMENT_TYPE'
41466 WHEN 13 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
41467 WHEN 14 THEN 'DISTRIBUTION_LINK_TYPE'
41468 WHEN 15 THEN 'ALLOC_TO_MAIN_DIST_ID'
41469 WHEN 16 THEN 'BUS_FLOW_AP_APP_ID'
41470 WHEN 17 THEN 'BUS_FLOW_INV_DIST_TYPE'
41471 WHEN 18 THEN 'BUS_FLOW_INV_ENTITY_CODE'
41472 WHEN 19 THEN 'BUS_FLOW_INV_DIST_ID'
41473 WHEN 20 THEN 'BUS_FLOW_INV_ID'
41474 WHEN 21 THEN 'AID_INVOICE_DIST_ID'
41475 WHEN 22 THEN 'UPG_ENC_CR_CCID'
41476 WHEN 23 THEN 'UPG_ENC_CR_AMT'
41477 WHEN 24 THEN 'UPG_ENC_CR_BASE_AMT'
41478 WHEN 25 THEN 'UPG_ENC_DR_CCID'
41479 WHEN 26 THEN 'UPG_ENC_DR_AMT'
41480 WHEN 27 THEN 'UPG_ENC_DR_BASE_AMT'
41481 WHEN 28 THEN 'UPG_AP_ENCUM_OPTION'
41482 WHEN 29 THEN 'FEDERAL_ANTICIPATED_AMT'
41483 WHEN 30 THEN 'DEFERRED_END_DATE'
41484 WHEN 31 THEN 'DEFERRED_OPTION'
41485 WHEN 32 THEN 'DEFERRED_START_DATE'
41486 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
41487 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID'
41488 WHEN 35 THEN 'AID_STAT_AMOUNT'
41489 WHEN 36 THEN 'TAX_LINE_ID'
41490 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID'
41491 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID'
41492 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID'
41493 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID'
41494 WHEN 41 THEN 'ENCUMBRANCE_BASE_AMOUNT'
41495 WHEN 42 THEN 'FEDERAL_UNANTICIPATED_AMT'
41496 WHEN 43 THEN 'AID_AMOUNT'
41497 WHEN 44 THEN 'INV_DIST_BASE_AMOUNT'
41498 WHEN 45 THEN 'AID_BASE_AMT_NO_ROUND'
41499 WHEN 46 THEN 'AID_AMOUNT_VARIANCE'
41500 WHEN 47 THEN 'AID_BASE_AMOUNT_VARIANCE'
41501 WHEN 48 THEN 'AID_QUANTITY_VARIANCE'
41502 WHEN 49 THEN 'AID_BASE_QUANTITY_VARIANCE'
41503 WHEN 50 THEN 'BUS_FLOW_PO_APP_ID'
41504 WHEN 51 THEN 'BUS_FLOW_PO_DIST_TYPE'
41505 WHEN 52 THEN 'BUS_FLOW_PO_ENTITY_CODE'
41506 WHEN 53 THEN 'BUS_FLOW_PO_DIST_ID'
41507 WHEN 54 THEN 'BUS_FLOW_PO_DOC_ID'
41508 WHEN 55 THEN 'FEDERAL_PAID_UNEXP_OBG_AMT'
41509
41510 ELSE null
41511 END source_code
41512 , CASE r
41513 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
41514 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
41515 WHEN 3 THEN TO_CHAR(l4.FEDERAL_ANTICIPATION)
41516 WHEN 4 THEN TO_CHAR(l4.FEDERAL_FUND_CATEGORY)
41517 WHEN 5 THEN TO_CHAR(l4.FEDERAL_FUND_EXPIRED_STATUS)
41518 WHEN 6 THEN TO_CHAR(l4.FEDERAL_FUND_CAT_DESC)
41519 WHEN 7 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
41520 WHEN 8 THEN TO_CHAR(l4.FEDERAL_PRIOR_YEAR_FLAG)
41521 WHEN 9 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
41522 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
41523 WHEN 11 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
41524 WHEN 12 THEN TO_CHAR(l4.FEDERAL_ADJUSTMENT_TYPE)
41525 WHEN 13 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
41526 WHEN 14 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
41527 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
41528 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
41529 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
41530 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
41531 WHEN 19 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
41532 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
41533 WHEN 21 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
41534 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
41535 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
41536 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
41537 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
41538 WHEN 26 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
41539 WHEN 27 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
41540 WHEN 28 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
41541 WHEN 29 THEN TO_CHAR(l4.FEDERAL_ANTICIPATED_AMT)
41542 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
41543 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
41544 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
41545 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
41546 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
41547 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
41548 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
41549 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
41550 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
41551 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
41552 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
41553 WHEN 41 THEN TO_CHAR(l1.ENCUMBRANCE_BASE_AMOUNT)
41554 WHEN 42 THEN TO_CHAR(l4.FEDERAL_UNANTICIPATED_AMT)
41555 WHEN 43 THEN TO_CHAR(l1.AID_AMOUNT)
41556 WHEN 44 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
41557 WHEN 45 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
41558 WHEN 46 THEN TO_CHAR(l1.AID_AMOUNT_VARIANCE)
41559 WHEN 47 THEN TO_CHAR(l1.AID_BASE_AMOUNT_VARIANCE)
41560 WHEN 48 THEN TO_CHAR(l1.AID_QUANTITY_VARIANCE)
41561 WHEN 49 THEN TO_CHAR(l1.AID_BASE_QUANTITY_VARIANCE)
41562 WHEN 50 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
41563 WHEN 51 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
41564 WHEN 52 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
41565 WHEN 53 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
41566 WHEN 54 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
41567 WHEN 55 THEN TO_CHAR(l4.FEDERAL_PAID_UNEXP_OBG_AMT)
41568
41569 ELSE null
41570 END source_value
41571 , CASE r
41572 WHEN 7 THEN fvl8.meaning
41573 WHEN 10 THEN fvl11.meaning
41574 WHEN 33 THEN fvl42.meaning
41575
41576 ELSE null
41577 END source_meaning
41578 FROM xla_events_gt xet
41579 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
41580 , FV_XLA_AP_REF_V l4
41581 , ZX_AP_DEF_TAX_EXTRACT_V l5
41582 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
41583 , fnd_lookup_values fvl8
41584 , fnd_lookup_values fvl11
41585 , fnd_lookup_values fvl42
41586 , (select rownum r from all_objects where rownum <= 55 and owner = p_apps_owner)
41587 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
41588 AND xet.event_class_code = C_EVENT_CLASS_CODE
41589 AND l1.event_id = xet.event_id
41590 AND l4.federal_event_id (+) = l1.event_id and l4.federal_line_number (+) = l1.line_number AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+) AND fvl8.lookup_type(+) =
41591 'INVOICE DISTRIBUTION TYPE'
41592 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
41593 AND fvl8.view_application_id(+) = 200
41594 AND fvl8.language(+) = USERENV('LANG')
41595 AND fvl11.lookup_type(+) = 'YES_NO'
41596 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
41597 AND fvl11.view_application_id(+) = 0
41598 AND fvl11.language(+) = USERENV('LANG')
41599 AND fvl42.lookup_type(+) = 'YES_NO'
41600 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
41601 AND fvl42.view_application_id(+) = 0
41602 AND fvl42.language(+) = USERENV('LANG')
41603
41604 )
41605 ;
41606 --
41607 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
41608
41609 trace
41610 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
41611 ,p_level => C_LEVEL_STATEMENT
41612 ,p_module => l_log_module);
41613
41614 END IF;
41615
41616
41617 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41618 trace
41619 (p_msg => 'END of insert_sources_62'
41620 ,p_level => C_LEVEL_PROCEDURE
41621 ,p_module => l_log_module);
41622 END IF;
41623 EXCEPTION
41624 WHEN xla_exceptions_pkg.application_exception THEN
41625 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
41626 trace
41627 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
41628 ,p_level => C_LEVEL_EXCEPTION
41629 ,p_module => l_log_module);
41630 END IF;
41631 RAISE;
41632 WHEN OTHERS THEN
41633 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
41634 trace
41635 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
41636 ,p_level => C_LEVEL_EXCEPTION
41637 ,p_module => l_log_module);
41638 END IF;
41639 xla_exceptions_pkg.raise_message
41640 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.insert_sources_62');
41641 END insert_sources_62;
41642 --
41643
41644 ---------------------------------------
41645 --
41646 -- PRIVATE FUNCTION
41647 -- EventClass_62
41648 --
41649 ----------------------------------------
41650 --
41651 FUNCTION EventClass_62
41652 (p_application_id IN NUMBER
41653 ,p_base_ledger_id IN NUMBER
41654 ,p_target_ledger_id IN NUMBER
41655 ,p_language IN VARCHAR2
41656 ,p_currency_code IN VARCHAR2
41657 ,p_sla_ledger_id IN NUMBER
41658 ,p_pad_start_date IN DATE
41659 ,p_pad_end_date IN DATE
41660 ,p_primary_ledger_id IN NUMBER)
41661 RETURN BOOLEAN IS
41662 --
41663 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICES_ALL';
41664 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICES';
41665
41666 l_calculate_acctd_flag VARCHAR2(1) :='N';
41667 l_calculate_g_l_flag VARCHAR2(1) :='N';
41668 --
41669 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41670 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41671 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
41672 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
41673 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41674 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
41675 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
41676 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41677 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41678 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41679 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41680 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41681 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41682 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
41683 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
41684 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
41685 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
41686 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
41687 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41688 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41689 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41690 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
41691 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
41692 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
41693 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
41694 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
41695
41696 l_event_id NUMBER;
41697 l_previous_event_id NUMBER;
41698 l_first_event_id NUMBER;
41699 l_last_event_id NUMBER;
41700
41701 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
41702 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41703 --
41704 --
41705 l_result BOOLEAN := TRUE;
41706 l_rows NUMBER := 1000;
41707 l_event_type_name VARCHAR2(80) := 'All';
41708 l_event_class_name VARCHAR2(80) := 'Invoices';
41709 l_description VARCHAR2(4000);
41710 l_transaction_reversal NUMBER;
41711 l_ae_header_id NUMBER;
41712 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
41713 l_log_module VARCHAR2(240);
41714 --
41715 l_acct_reversal_source VARCHAR2(30);
41716 l_trx_reversal_source VARCHAR2(30);
41717
41718 l_continue_with_lines BOOLEAN := TRUE;
41719 --
41720 l_acc_rev_gl_date_source DATE; -- 4262811
41721 --
41722 type t_array_event_id is table of number index by binary_integer;
41723
41724 l_rec_array_event t_rec_array_event;
41725 l_null_rec_array_event t_rec_array_event;
41726 l_array_ae_header_id xla_number_array_type;
41727 l_actual_flag VARCHAR2(1) := NULL;
41728 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
41729 l_balance_type_code VARCHAR2(1) :=NULL;
41730 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
41731
41732 --
41733 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
41734 --
41735
41736 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_PAYMENT_STATUS_FLAG%TYPE INDEX BY BINARY_INTEGER;
41737 TYPE t_array_source_13 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
41738 TYPE t_array_source_20 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
41739 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
41740 TYPE t_array_source_36 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
41741 TYPE t_array_source_37 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
41742 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
41743 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
41744 TYPE t_array_source_44 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
41745 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
41746 TYPE t_array_source_60 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
41747 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
41748 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
41749 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
41750
41751 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
41752 TYPE t_array_source_2 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
41753 TYPE t_array_source_3 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATION%TYPE INDEX BY BINARY_INTEGER;
41754 TYPE t_array_source_4 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
41755 TYPE t_array_source_5 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
41756 TYPE t_array_source_6 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CAT_DESC%TYPE INDEX BY BINARY_INTEGER;
41757 TYPE t_array_source_8 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
41758 TYPE t_array_source_9 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
41759 TYPE t_array_source_10 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
41760 TYPE t_array_source_11 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
41761 TYPE t_array_source_12 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
41762 TYPE t_array_source_14 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ADJUSTMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
41763 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
41764 TYPE t_array_source_17 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
41765 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
41766 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
41767 TYPE t_array_source_22 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
41768 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
41769 TYPE t_array_source_24 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
41770 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
41771 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
41772 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
41773 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
41774 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
41775 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
41776 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
41777 TYPE t_array_source_33 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
41778 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
41779 TYPE t_array_source_35 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_ANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
41780 TYPE t_array_source_39 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
41781 TYPE t_array_source_40 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
41782 TYPE t_array_source_41 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
41783 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
41787 TYPE t_array_source_49 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
41784 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
41785 TYPE t_array_source_47 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
41786 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
41788 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
41789 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
41790 TYPE t_array_source_52 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
41791 TYPE t_array_source_53 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ENCUMBRANCE_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
41792 TYPE t_array_source_54 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_UNANTICIPATED_AMT%TYPE INDEX BY BINARY_INTEGER;
41793 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
41794 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
41795 TYPE t_array_source_58 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
41796 TYPE t_array_source_59 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
41797 TYPE t_array_source_61 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
41798 TYPE t_array_source_62 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
41799 TYPE t_array_source_63 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_BASE_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
41800 TYPE t_array_source_64 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
41801 TYPE t_array_source_65 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
41802 TYPE t_array_source_66 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
41803 TYPE t_array_source_67 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
41804 TYPE t_array_source_68 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
41805 TYPE t_array_source_69 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_PAID_UNEXP_OBG_AMT%TYPE INDEX BY BINARY_INTEGER;
41806
41807 l_array_source_7 t_array_source_7;
41808 l_array_source_13 t_array_source_13;
41809 l_array_source_13_meaning t_array_lookup_meaning;
41810 l_array_source_20 t_array_source_20;
41811 l_array_source_29 t_array_source_29;
41812 l_array_source_36 t_array_source_36;
41813 l_array_source_37 t_array_source_37;
41814 l_array_source_38 t_array_source_38;
41815 l_array_source_43 t_array_source_43;
41816 l_array_source_44 t_array_source_44;
41817 l_array_source_45 t_array_source_45;
41818 l_array_source_60 t_array_source_60;
41819 l_array_source_60_meaning t_array_lookup_meaning;
41820 l_array_source_71 t_array_source_71;
41821 l_array_source_72 t_array_source_72;
41822 l_array_source_73 t_array_source_73;
41823
41824 l_array_source_1 t_array_source_1;
41825 l_array_source_2 t_array_source_2;
41826 l_array_source_3 t_array_source_3;
41827 l_array_source_4 t_array_source_4;
41828 l_array_source_5 t_array_source_5;
41829 l_array_source_6 t_array_source_6;
41830 l_array_source_8 t_array_source_8;
41831 l_array_source_8_meaning t_array_lookup_meaning;
41832 l_array_source_9 t_array_source_9;
41833 l_array_source_10 t_array_source_10;
41834 l_array_source_11 t_array_source_11;
41835 l_array_source_11_meaning t_array_lookup_meaning;
41836 l_array_source_12 t_array_source_12;
41837 l_array_source_14 t_array_source_14;
41838 l_array_source_15 t_array_source_15;
41839 l_array_source_17 t_array_source_17;
41840 l_array_source_19 t_array_source_19;
41841 l_array_source_21 t_array_source_21;
41842 l_array_source_22 t_array_source_22;
41843 l_array_source_23 t_array_source_23;
41844 l_array_source_24 t_array_source_24;
41845 l_array_source_25 t_array_source_25;
41846 l_array_source_26 t_array_source_26;
41847 l_array_source_27 t_array_source_27;
41848 l_array_source_28 t_array_source_28;
41849 l_array_source_30 t_array_source_30;
41850 l_array_source_31 t_array_source_31;
41851 l_array_source_32 t_array_source_32;
41852 l_array_source_33 t_array_source_33;
41853 l_array_source_34 t_array_source_34;
41854 l_array_source_35 t_array_source_35;
41855 l_array_source_39 t_array_source_39;
41856 l_array_source_40 t_array_source_40;
41857 l_array_source_41 t_array_source_41;
41858 l_array_source_42 t_array_source_42;
41859 l_array_source_42_meaning t_array_lookup_meaning;
41860 l_array_source_46 t_array_source_46;
41861 l_array_source_47 t_array_source_47;
41862 l_array_source_48 t_array_source_48;
41863 l_array_source_49 t_array_source_49;
41864 l_array_source_50 t_array_source_50;
41865 l_array_source_51 t_array_source_51;
41866 l_array_source_52 t_array_source_52;
41867 l_array_source_53 t_array_source_53;
41868 l_array_source_54 t_array_source_54;
41869 l_array_source_55 t_array_source_55;
41870 l_array_source_56 t_array_source_56;
41871 l_array_source_58 t_array_source_58;
41872 l_array_source_59 t_array_source_59;
41873 l_array_source_61 t_array_source_61;
41874 l_array_source_62 t_array_source_62;
41875 l_array_source_63 t_array_source_63;
41876 l_array_source_64 t_array_source_64;
41877 l_array_source_65 t_array_source_65;
41878 l_array_source_66 t_array_source_66;
41882
41879 l_array_source_67 t_array_source_67;
41880 l_array_source_68 t_array_source_68;
41881 l_array_source_69 t_array_source_69;
41883 --
41884 CURSOR header_cur
41885 IS
41886 SELECT /*+ leading(xet) cardinality(xet,1) */
41887 -- Event Class Code: INVOICES
41888 xet.entity_id
41889 ,xet.legal_entity_id
41890 ,xet.entity_code
41891 ,xet.transaction_number
41892 ,xet.event_id
41893 ,xet.event_class_code
41894 ,xet.event_type_code
41895 ,xet.event_number
41896 ,xet.event_date
41897 ,xet.transaction_date
41898 ,xet.reference_num_1
41899 ,xet.reference_num_2
41900 ,xet.reference_num_3
41901 ,xet.reference_num_4
41902 ,xet.reference_char_1
41903 ,xet.reference_char_2
41904 ,xet.reference_char_3
41905 ,xet.reference_char_4
41906 ,xet.reference_date_1
41907 ,xet.reference_date_2
41908 ,xet.reference_date_3
41909 ,xet.reference_date_4
41910 ,xet.event_created_by
41911 ,xet.budgetary_control_flag
41912 , h2.AI_PAYMENT_STATUS_FLAG source_7
41913 , h2.AI_INVOICE_TYPE_LOOKUP_CODE source_13
41914 , fvl13.meaning source_13_meaning
41915 , h2.AI_INVOICE_ID source_20
41916 , h2.AI_INVOICE_CURRENCY_CODE source_29
41917 , h2.INV_EXCHANGE_DATE source_36
41918 , h2.INV_EXCHANGE_RATE source_37
41919 , h2.INV_EXCHANGE_RATE_TYPE source_38
41920 , h2.AI_VENDOR_ID source_43
41921 , h2.AI_VENDOR_SITE_ID source_44
41922 , h2.THIRD_PARTY_TYPE source_45
41923 , h3.FSP_PURCH_ENCUMBRANCE_FLAG source_60
41924 , fvl60.meaning source_60_meaning
41925 , h2.INV_DOC_SEQUENCE_CATEGORY source_71
41926 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_72
41927 , h2.INV_DOC_SEQUENCE_VALUE source_73
41928 FROM xla_events_gt xet
41929 , AP_INVOICE_EXTRACT_HEADER_V h2
41930 , AP_SYSTEM_PARAMETERS_EXTRACT_V h3
41931 , fnd_lookup_values fvl13
41932 , fnd_lookup_values fvl60
41933 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
41934 and xet.event_class_code = C_EVENT_CLASS_CODE
41935 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
41936 AND h3.asp_org_id = h2.ai_org_id AND fvl13.lookup_type(+) = 'INVOICE TYPE'
41937 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
41938 AND fvl13.view_application_id(+) = 200
41939 AND fvl13.language(+) = USERENV('LANG')
41940 AND fvl60.lookup_type(+) = 'YES_NO'
41941 AND fvl60.lookup_code(+) = h3.FSP_PURCH_ENCUMBRANCE_FLAG
41942 AND fvl60.view_application_id(+) = 0
41943 AND fvl60.language(+) = USERENV('LANG')
41944
41945 ORDER BY event_id
41946 ;
41947
41948
41949 --
41950 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
41951 IS
41952 SELECT /*+ leading(xet) cardinality(xet,1) */
41953 -- Event Class Code: INVOICES
41954 xet.entity_id
41955 ,xet.legal_entity_id
41956 ,xet.entity_code
41957 ,xet.transaction_number
41958 ,xet.event_id
41959 ,xet.event_class_code
41960 ,xet.event_type_code
41961 ,xet.event_number
41962 ,xet.event_date
41963 ,xet.transaction_date
41964 ,xet.reference_num_1
41965 ,xet.reference_num_2
41966 ,xet.reference_num_3
41967 ,xet.reference_num_4
41968 ,xet.reference_char_1
41969 ,xet.reference_char_2
41970 ,xet.reference_char_3
41971 ,xet.reference_char_4
41972 ,xet.reference_date_1
41973 ,xet.reference_date_2
41974 ,xet.reference_date_3
41975 ,xet.reference_date_4
41976 ,xet.event_created_by
41977 ,xet.budgetary_control_flag
41978 , l1.LINE_NUMBER
41979 , l1.AID_DESCRIPTION source_1
41980 , l1.AID_DIST_CCID source_2
41981 , l4.FEDERAL_ANTICIPATION source_3
41982 , l4.FEDERAL_FUND_CATEGORY source_4
41983 , l4.FEDERAL_FUND_EXPIRED_STATUS source_5
41984 , l4.FEDERAL_FUND_CAT_DESC source_6
41985 , l1.AID_LINE_TYPE_LOOKUP_CODE source_8
41986 , fvl8.meaning source_8_meaning
41987 , l4.FEDERAL_PRIOR_YEAR_FLAG source_9
41988 , l1.ENCUMBRANCE_AMOUNT source_10
41989 , l1.POD_ACCRUE_ON_RECEIPT_FLAG source_11
41990 , fvl11.meaning source_11_meaning
41991 , l1.PO_DISTRIBUTION_ID source_12
41992 , l4.FEDERAL_ADJUSTMENT_TYPE source_14
41993 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_15
41994 , l1.DISTRIBUTION_LINK_TYPE source_17
41995 , l1.ALLOC_TO_MAIN_DIST_ID source_19
41996 , l1.BUS_FLOW_AP_APP_ID source_21
41997 , l1.BUS_FLOW_INV_DIST_TYPE source_22
41998 , l1.BUS_FLOW_INV_ENTITY_CODE source_23
41999 , l1.BUS_FLOW_INV_DIST_ID source_24
42000 , l1.BUS_FLOW_INV_ID source_25
42001 , l1.AID_INVOICE_DIST_ID source_26
42002 , l1.UPG_ENC_CR_CCID source_27
42003 , l1.UPG_ENC_CR_AMT source_28
42004 , l1.UPG_ENC_CR_BASE_AMT source_30
42005 , l1.UPG_ENC_DR_CCID source_31
42006 , l1.UPG_ENC_DR_AMT source_32
42007 , l1.UPG_ENC_DR_BASE_AMT source_33
42008 , l1.UPG_AP_ENCUM_OPTION source_34
42009 , l4.FEDERAL_ANTICIPATED_AMT source_35
42010 , l1.DEFERRED_END_DATE source_39
42011 , l1.DEFERRED_OPTION source_40
42012 , l1.DEFERRED_START_DATE source_41
42013 , l1.OVERRIDE_ACCTD_AMT_FLAG source_42
42014 , fvl42.meaning source_42_meaning
42015 , l1.AID_PARENT_REVERSAL_ID source_46
42016 , l1.AID_STAT_AMOUNT source_47
42017 , l5.TAX_LINE_ID source_48
42018 , l6.REC_NREC_TAX_DIST_ID source_49
42019 , l1.SUMMARY_TAX_LINE_ID source_50
42020 , l1.UPG_CR_ENC_TYPE_ID source_51
42021 , l1.UPG_DR_ENC_TYPE_ID source_52
42022 , l1.ENCUMBRANCE_BASE_AMOUNT source_53
42023 , l4.FEDERAL_UNANTICIPATED_AMT source_54
42024 , l1.AID_AMOUNT source_55
42025 , l1.INV_DIST_BASE_AMOUNT source_56
42026 , l1.AID_BASE_AMT_NO_ROUND source_58
42027 , l1.AID_AMOUNT_VARIANCE source_59
42028 , l1.AID_BASE_AMOUNT_VARIANCE source_61
42029 , l1.AID_QUANTITY_VARIANCE source_62
42030 , l1.AID_BASE_QUANTITY_VARIANCE source_63
42031 , l1.BUS_FLOW_PO_APP_ID source_64
42032 , l1.BUS_FLOW_PO_DIST_TYPE source_65
42033 , l1.BUS_FLOW_PO_ENTITY_CODE source_66
42034 , l1.BUS_FLOW_PO_DIST_ID source_67
42035 , l1.BUS_FLOW_PO_DOC_ID source_68
42036 , l4.FEDERAL_PAID_UNEXP_OBG_AMT source_69
42037 FROM xla_events_gt xet
42038 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
42039 , FV_XLA_AP_REF_V l4
42040 , ZX_AP_DEF_TAX_EXTRACT_V l5
42041 , ZX_AP_TAX_JRNL_LINE_DESC_V l6
42042 , fnd_lookup_values fvl8
42043 , fnd_lookup_values fvl11
42044 , fnd_lookup_values fvl42
42045 WHERE xet.event_id between x_first_event_id and x_last_event_id
42046 and xet.event_date between p_pad_start_date and p_pad_end_date
42047 and xet.event_class_code = C_EVENT_CLASS_CODE
42048 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
42049 AND l4.Federal_Event_Id (+) = l1.event_Id AND l4.Federal_line_number (+) = l1.line_number AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+) AND fvl8.lookup_type(+) =
42050 'INVOICE DISTRIBUTION TYPE'
42051 AND fvl8.lookup_code(+) = l1.AID_LINE_TYPE_LOOKUP_CODE
42052 AND fvl8.view_application_id(+) = 200
42053 AND fvl8.language(+) = USERENV('LANG')
42054 AND fvl11.lookup_type(+) = 'YES_NO'
42055 AND fvl11.lookup_code(+) = l1.POD_ACCRUE_ON_RECEIPT_FLAG
42056 AND fvl11.view_application_id(+) = 0
42057 AND fvl11.language(+) = USERENV('LANG')
42058 AND fvl42.lookup_type(+) = 'YES_NO'
42059 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
42060 AND fvl42.view_application_id(+) = 0
42061 AND fvl42.language(+) = USERENV('LANG')
42062 ;
42063
42064 --
42065 BEGIN
42066 IF g_log_enabled THEN
42067 l_log_module := C_DEFAULT_MODULE||'.EventClass_62';
42068 END IF;
42069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42070 trace
42071 (p_msg => 'BEGIN of EventClass_62'
42072 ,p_level => C_LEVEL_PROCEDURE
42073 ,p_module => l_log_module);
42074 END IF;
42075
42076 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
42077 trace
42078 (p_msg => 'p_application_id = '||p_application_id||
42079 ' - p_base_ledger_id = '||p_base_ledger_id||
42080 ' - p_target_ledger_id = '||p_target_ledger_id||
42081 ' - p_language = '||p_language||
42082 ' - p_currency_code = '||p_currency_code||
42083 ' - p_sla_ledger_id = '||p_sla_ledger_id
42084 ,p_level => C_LEVEL_STATEMENT
42085 ,p_module => l_log_module);
42086 END IF;
42087 --
42088 -- initialze arrays
42089 --
42090 g_array_event.DELETE;
42091 l_rec_array_event := l_null_rec_array_event;
42092 --
42093 --------------------------------------
42094 -- 4262811 Initialze MPA Line Number
42095 --------------------------------------
42096 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
42097
42098 --
42099
42100 --
42101 OPEN header_cur;
42102 --
42103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
42104 trace
42105 (p_msg => 'SQL - FETCH header_cur'
42106 ,p_level => C_LEVEL_STATEMENT
42107 ,p_module => l_log_module);
42108 END IF;
42109 --
42110 LOOP
42111 FETCH header_cur BULK COLLECT INTO
42112 l_array_entity_id
42113 , l_array_legal_entity_id
42114 , l_array_entity_code
42115 , l_array_transaction_num
42116 , l_array_event_id
42117 , l_array_class_code
42118 , l_array_event_type
42119 , l_array_event_number
42120 , l_array_event_date
42121 , l_array_transaction_date
42122 , l_array_reference_num_1
42123 , l_array_reference_num_2
42124 , l_array_reference_num_3
42125 , l_array_reference_num_4
42126 , l_array_reference_char_1
42127 , l_array_reference_char_2
42128 , l_array_reference_char_3
42129 , l_array_reference_char_4
42130 , l_array_reference_date_1
42131 , l_array_reference_date_2
42132 , l_array_reference_date_3
42133 , l_array_reference_date_4
42134 , l_array_event_created_by
42135 , l_array_budgetary_control_flag
42136 , l_array_source_7
42137 , l_array_source_13
42138 , l_array_source_13_meaning
42139 , l_array_source_20
42140 , l_array_source_29
42141 , l_array_source_36
42142 , l_array_source_37
42143 , l_array_source_38
42144 , l_array_source_43
42145 , l_array_source_44
42146 , l_array_source_45
42147 , l_array_source_60
42148 , l_array_source_60_meaning
42149 , l_array_source_71
42150 , l_array_source_72
42151 , l_array_source_73
42152 LIMIT l_rows;
42153 --
42154 IF (C_LEVEL_EVENT >= g_log_level) THEN
42155 trace
42156 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
42157 ,p_level => C_LEVEL_EVENT
42158 ,p_module => l_log_module);
42159 END IF;
42160 --
42161 EXIT WHEN l_array_entity_id.COUNT = 0;
42162
42163 -- initialize arrays
42164 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
42165 XLA_AE_LINES_PKG.g_rec_lines := NULL;
42166
42167 --
42168 -- Bug 4458708
42169 --
42170 XLA_AE_LINES_PKG.g_LineNumber := 0;
42171
42172
42173 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
42174 g_last_hdr_idx := l_array_event_id.LAST;
42175 --
42176 -- loop for the headers. Each iteration is for each header extract row
42177 -- fetched in header cursor
42178 --
42179 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
42180
42181 --
42182 -- set event info as cache for other routines to refer event attributes
42183 --
42184 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
42185 (p_application_id => p_application_id
42186 ,p_primary_ledger_id => p_primary_ledger_id
42187 ,p_base_ledger_id => p_base_ledger_id
42188 ,p_target_ledger_id => p_target_ledger_id
42189 ,p_entity_id => l_array_entity_id(hdr_idx)
42190 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
42191 ,p_entity_code => l_array_entity_code(hdr_idx)
42192 ,p_transaction_num => l_array_transaction_num(hdr_idx)
42193 ,p_event_id => l_array_event_id(hdr_idx)
42194 ,p_event_class_code => l_array_class_code(hdr_idx)
42195 ,p_event_type_code => l_array_event_type(hdr_idx)
42196 ,p_event_number => l_array_event_number(hdr_idx)
42197 ,p_event_date => l_array_event_date(hdr_idx)
42198 ,p_transaction_date => l_array_transaction_date(hdr_idx)
42199 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
42200 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
42201 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
42202 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
42203 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
42204 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
42205 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
42206 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
42207 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
42208 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
42209 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
42210 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
42211 ,p_event_created_by => l_array_event_created_by(hdr_idx)
42212 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
42213
42214 --
42215 -- set the status of entry to C_VALID (0)
42216 --
42217 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
42218
42219 --
42220 -- initialize a row for ae header
42221 --
42222 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
42223
42224 l_event_id := l_array_event_id(hdr_idx);
42225
42226 --
42227 -- storing the hdr_idx for event. May be used by line cursor.
42228 --
42229 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
42230
42231 --
42232 -- store sources from header extract. This can be improved to
42233 -- store only those sources from header extract that may be used in lines
42234 --
42235
42236 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
42237 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
42238 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
42239 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
42240 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
42241 g_array_event(l_event_id).array_value_date('source_36') := l_array_source_36(hdr_idx);
42242 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
42243 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
42244 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
42245 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
42246 g_array_event(l_event_id).array_value_char('source_45') := l_array_source_45(hdr_idx);
42247 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
42248 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
42249 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
42250 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
42251 g_array_event(l_event_id).array_value_num('source_73') := l_array_source_73(hdr_idx);
42252
42253 --
42254 -- initilaize the status of ae headers for diffrent balance types
42255 -- the status is initialised to C_NOT_CREATED (2)
42256 --
42257 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
42258 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
42259 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
42260
42261 --
42262 -- call api to validate and store accounting attributes for header
42263 --
42264
42265 ------------------------------------------------------------
42266 -- Accrual Reversal : to get date for Standard Source (NONE)
42267 ------------------------------------------------------------
42268 l_acc_rev_gl_date_source := NULL;
42269
42270 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
42271 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_71');
42272 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
42273 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_72');
42274 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
42275 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_73');
42276 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
42277 l_rec_acct_attrs.array_date_value(4) :=
42278 xla_ae_sources_pkg.GetSystemSourceDate(
42279 p_source_code => 'XLA_EVENT_DATE'
42280 , p_source_type_code => 'Y'
42281 , p_source_application_id => 602
42282 );
42283
42284
42285 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
42286
42287 XLA_AE_HEADER_PKG.SetJeCategoryName;
42288
42289 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
42290 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
42291 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
42292 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
42293 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
42294
42295
42296 --
42297 xla_ae_header_pkg.SetHdrDescription(
42298 p_description => Description_1 (
42299 p_application_id => p_application_id
42300 )
42301 );
42302 --
42303
42304 -- No header level analytical criteria
42305
42306 --
42307 --accounting attribute enhancement, bug 3612931
42308 --
42309 l_trx_reversal_source := SUBSTR(NULL, 1,30);
42310
42311 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
42312 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
42313
42314 xla_accounting_err_pkg.build_message
42315 (p_appli_s_name => 'XLA'
42316 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
42317 ,p_token_1 => 'ACCT_ATTR_NAME'
42318 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
42319 ,p_token_2 => 'PRODUCT_NAME'
42320 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
42321 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
42322 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
42323 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
42324
42325 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
42326 --
42327 -- following sets the accounting attributes needed to reverse
42328 -- accounting for a distributeion
42329 --
42330 xla_ae_lines_pkg.SetTrxReversalAttrs
42331 (p_event_id => l_event_id
42332 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
42333 ,p_trx_reversal_source => l_trx_reversal_source);
42334
42335 END IF;
42336
42337
42338 ----------------------------------------------------------------
42339 -- 4262811 - update the header statuses to invalid in need be
42340 ----------------------------------------------------------------
42341 --
42342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
42343
42344
42345 -----------------------------------------------
42346 -- No accrual reversal for the event class/type
42347 -----------------------------------------------
42348 ----------------------------------------------------------------
42349
42350 --
42351 -- this ends the header loop iteration for one bulk fetch
42352 --
42353 END LOOP;
42354
42355 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
42356 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
42357
42358 --
42359 -- insert dummy rows into lines gt table that were created due to
42360 -- transaction reversals
42361 --
42362 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
42363 l_result := XLA_AE_LINES_PKG.InsertLines;
42364 END IF;
42365
42366 --
42367 -- reset the temp_line_num for each set of events fetched from header
42368 -- cursor rather than doing it for each new event in line cursor
42369 -- Bug 3939231
42370 --
42371 xla_ae_lines_pkg.g_temp_line_num := 0;
42372
42373
42374
42375 --
42376 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
42377 --
42378 --
42379 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
42380
42381 trace
42382 (p_msg => 'SQL - FETCH line_cur'
42383 ,p_level => C_LEVEL_STATEMENT
42384 ,p_module => l_log_module);
42385
42386 END IF;
42387 --
42388 --
42389 LOOP
42390 --
42391 FETCH line_cur BULK COLLECT INTO
42392 l_array_entity_id
42393 , l_array_legal_entity_id
42394 , l_array_entity_code
42395 , l_array_transaction_num
42396 , l_array_event_id
42397 , l_array_class_code
42398 , l_array_event_type
42399 , l_array_event_number
42400 , l_array_event_date
42401 , l_array_transaction_date
42402 , l_array_reference_num_1
42403 , l_array_reference_num_2
42404 , l_array_reference_num_3
42405 , l_array_reference_num_4
42406 , l_array_reference_char_1
42407 , l_array_reference_char_2
42408 , l_array_reference_char_3
42409 , l_array_reference_char_4
42410 , l_array_reference_date_1
42411 , l_array_reference_date_2
42412 , l_array_reference_date_3
42413 , l_array_reference_date_4
42414 , l_array_event_created_by
42415 , l_array_budgetary_control_flag
42416 , l_array_extract_line_num
42417 , l_array_source_1
42418 , l_array_source_2
42419 , l_array_source_3
42420 , l_array_source_4
42421 , l_array_source_5
42422 , l_array_source_6
42423 , l_array_source_8
42424 , l_array_source_8_meaning
42425 , l_array_source_9
42426 , l_array_source_10
42427 , l_array_source_11
42428 , l_array_source_11_meaning
42429 , l_array_source_12
42430 , l_array_source_14
42431 , l_array_source_15
42432 , l_array_source_17
42433 , l_array_source_19
42434 , l_array_source_21
42435 , l_array_source_22
42436 , l_array_source_23
42437 , l_array_source_24
42438 , l_array_source_25
42439 , l_array_source_26
42440 , l_array_source_27
42441 , l_array_source_28
42442 , l_array_source_30
42443 , l_array_source_31
42444 , l_array_source_32
42445 , l_array_source_33
42446 , l_array_source_34
42447 , l_array_source_35
42448 , l_array_source_39
42449 , l_array_source_40
42450 , l_array_source_41
42451 , l_array_source_42
42452 , l_array_source_42_meaning
42453 , l_array_source_46
42454 , l_array_source_47
42455 , l_array_source_48
42456 , l_array_source_49
42457 , l_array_source_50
42458 , l_array_source_51
42459 , l_array_source_52
42460 , l_array_source_53
42461 , l_array_source_54
42462 , l_array_source_55
42463 , l_array_source_56
42464 , l_array_source_58
42465 , l_array_source_59
42466 , l_array_source_61
42467 , l_array_source_62
42468 , l_array_source_63
42469 , l_array_source_64
42470 , l_array_source_65
42471 , l_array_source_66
42472 , l_array_source_67
42473 , l_array_source_68
42474 , l_array_source_69
42475 LIMIT l_rows;
42476
42477 --
42478 IF (C_LEVEL_EVENT >= g_log_level) THEN
42479 trace
42480 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
42481 ,p_level => C_LEVEL_EVENT
42482 ,p_module => l_log_module);
42483 END IF;
42484 --
42485 EXIT WHEN l_array_entity_id.count = 0;
42486
42487 XLA_AE_LINES_PKG.g_rec_lines := null;
42488
42489 --
42490 -- Bug 4458708
42491 --
42492 XLA_AE_LINES_PKG.g_LineNumber := 0;
42493 --
42494 --
42495
42496 FOR Idx IN 1..l_array_event_id.count LOOP
42497 --
42498 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
42499 --
42500 l_event_id := l_array_event_id(idx); -- 5648433
42501
42502 --
42503 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
42504 --
42505
42506 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
42507 (g_array_event(l_event_id).array_value_num('header_index'))
42508 ,'N'
42509 ) <> 'Y'
42510 THEN
42511 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
42512 trace
42513 (p_msg => 'Trancaction revesal option is not Y '
42514 ,p_level => C_LEVEL_STATEMENT
42515 ,p_module => l_log_module);
42516 END IF;
42517
42518 --
42519 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
42520 --
42521 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
42522 --
42523 -- set event info as cache for other routines to refer event attributes
42524 --
42525
42526 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
42527 l_previous_event_id := l_event_id;
42528
42529 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
42530 (p_application_id => p_application_id
42531 ,p_primary_ledger_id => p_primary_ledger_id
42532 ,p_base_ledger_id => p_base_ledger_id
42533 ,p_target_ledger_id => p_target_ledger_id
42534 ,p_entity_id => l_array_entity_id(Idx)
42535 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
42536 ,p_entity_code => l_array_entity_code(Idx)
42537 ,p_transaction_num => l_array_transaction_num(Idx)
42538 ,p_event_id => l_array_event_id(Idx)
42539 ,p_event_class_code => l_array_class_code(Idx)
42540 ,p_event_type_code => l_array_event_type(Idx)
42541 ,p_event_number => l_array_event_number(Idx)
42542 ,p_event_date => l_array_event_date(Idx)
42543 ,p_transaction_date => l_array_transaction_date(Idx)
42544 ,p_reference_num_1 => l_array_reference_num_1(Idx)
42545 ,p_reference_num_2 => l_array_reference_num_2(Idx)
42546 ,p_reference_num_3 => l_array_reference_num_3(Idx)
42547 ,p_reference_num_4 => l_array_reference_num_4(Idx)
42548 ,p_reference_char_1 => l_array_reference_char_1(Idx)
42549 ,p_reference_char_2 => l_array_reference_char_2(Idx)
42550 ,p_reference_char_3 => l_array_reference_char_3(Idx)
42551 ,p_reference_char_4 => l_array_reference_char_4(Idx)
42552 ,p_reference_date_1 => l_array_reference_date_1(Idx)
42553 ,p_reference_date_2 => l_array_reference_date_2(Idx)
42554 ,p_reference_date_3 => l_array_reference_date_3(Idx)
42555 ,p_reference_date_4 => l_array_reference_date_4(Idx)
42556 ,p_event_created_by => l_array_event_created_by(Idx)
42557 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
42558 --
42559 END IF;
42560
42561
42562
42563 --
42564 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
42565
42566 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
42567
42568 IF l_continue_with_lines THEN
42569 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
42570 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
42571
42572 xla_accounting_err_pkg.build_message
42573 (p_appli_s_name => 'XLA'
42574 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
42575 ,p_token_1 => 'LINE_NUMBER'
42576 ,p_value_1 => l_array_extract_line_num(Idx)
42577 ,p_token_2 => 'PRODUCT_NAME'
42578 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
42579 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
42580 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
42581 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
42582
42583 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
42584 --
42585 -- following sets the accounting attributes needed to reverse
42586 -- accounting for a distributeion
42587 --
42588
42589 --
42590 -- 5217187
42591 --
42592 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
42593 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
42594 g_array_event(l_event_id).array_value_num('header_index'));
42595 --
42596 --
42597
42598 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
42599 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
42600 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
42601 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_26(Idx);
42602 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
42603 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
42604 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
42605 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_27(Idx);
42606 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
42607 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_28(Idx);
42608 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
42609 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_29');
42610 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
42611 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_30(Idx);
42612 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
42613 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_31(Idx);
42614 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
42615 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_32(Idx);
42616 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
42617 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_29');
42618 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
42619 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_33(Idx);
42620 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
42621 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_34(Idx);
42622 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
42623 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_45');
42624 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
42625 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_46(Idx);
42626 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
42627 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_17(Idx);
42628 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
42629 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_48(Idx);
42630 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
42631 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_49(Idx);
42632 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
42633 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_50(Idx);
42634 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
42635 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_51(Idx);
42636 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
42637 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_52(Idx);
42638
42639
42640 xla_ae_lines_pkg.SetAcctReversalAttrs
42641 (p_event_id => l_event_id
42642 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
42643 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42644 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
42645 END IF;
42646
42647 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
42648 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
42649
42650 --
42651 AcctLineType_30 (
42652 p_application_id => p_application_id
42653 ,p_event_id => l_event_id
42654 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42655 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42656 ,p_actual_flag => l_actual_flag
42657 ,p_balance_type_code => l_balance_type_code
42658 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
42659
42660 , p_source_1 => l_array_source_1(Idx)
42661 , p_source_2 => l_array_source_2(Idx)
42662 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
42663 , p_source_8 => l_array_source_8(Idx)
42664 , p_source_8_meaning => l_array_source_8_meaning(Idx)
42665 , p_source_9 => l_array_source_9(Idx)
42666 , p_source_10 => l_array_source_10(Idx)
42667 , p_source_11 => l_array_source_11(Idx)
42668 , p_source_11_meaning => l_array_source_11_meaning(Idx)
42669 , p_source_12 => l_array_source_12(Idx)
42670 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
42671 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
42672 , p_source_15 => l_array_source_15(Idx)
42673 , p_source_17 => l_array_source_17(Idx)
42674 , p_source_19 => l_array_source_19(Idx)
42675 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
42676 , p_source_21 => l_array_source_21(Idx)
42677 , p_source_22 => l_array_source_22(Idx)
42678 , p_source_23 => l_array_source_23(Idx)
42679 , p_source_24 => l_array_source_24(Idx)
42680 , p_source_25 => l_array_source_25(Idx)
42681 , p_source_26 => l_array_source_26(Idx)
42682 , p_source_27 => l_array_source_27(Idx)
42683 , p_source_28 => l_array_source_28(Idx)
42684 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
42685 , p_source_30 => l_array_source_30(Idx)
42686 , p_source_31 => l_array_source_31(Idx)
42687 , p_source_32 => l_array_source_32(Idx)
42688 , p_source_33 => l_array_source_33(Idx)
42689 , p_source_34 => l_array_source_34(Idx)
42690 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
42691 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
42692 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
42693 , p_source_39 => l_array_source_39(Idx)
42694 , p_source_40 => l_array_source_40(Idx)
42695 , p_source_41 => l_array_source_41(Idx)
42696 , p_source_42 => l_array_source_42(Idx)
42697 , p_source_42_meaning => l_array_source_42_meaning(Idx)
42698 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
42699 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
42700 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
42701 , p_source_46 => l_array_source_46(Idx)
42702 , p_source_47 => l_array_source_47(Idx)
42703 , p_source_48 => l_array_source_48(Idx)
42704 , p_source_49 => l_array_source_49(Idx)
42705 , p_source_50 => l_array_source_50(Idx)
42706 , p_source_51 => l_array_source_51(Idx)
42707 , p_source_52 => l_array_source_52(Idx)
42708 , p_source_53 => l_array_source_53(Idx)
42709 , p_source_55 => l_array_source_55(Idx)
42710 );
42711 If(l_balance_type_code = 'A') THEN
42712 l_actual_gain_loss_ref := l_gain_or_loss_ref;
42713 END IF;
42714
42715 --
42716
42717
42718 --
42719 AcctLineType_31 (
42720 p_application_id => p_application_id
42721 ,p_event_id => l_event_id
42722 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42723 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42724 ,p_actual_flag => l_actual_flag
42725 ,p_balance_type_code => l_balance_type_code
42726 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
42727
42728 , p_source_1 => l_array_source_1(Idx)
42729 , p_source_2 => l_array_source_2(Idx)
42730 , p_source_4 => l_array_source_4(Idx)
42731 , p_source_5 => l_array_source_5(Idx)
42732 , p_source_6 => l_array_source_6(Idx)
42733 , p_source_8 => l_array_source_8(Idx)
42734 , p_source_8_meaning => l_array_source_8_meaning(Idx)
42735 , p_source_9 => l_array_source_9(Idx)
42736 , p_source_10 => l_array_source_10(Idx)
42737 , p_source_11 => l_array_source_11(Idx)
42738 , p_source_11_meaning => l_array_source_11_meaning(Idx)
42739 , p_source_12 => l_array_source_12(Idx)
42740 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
42741 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
42742 , p_source_15 => l_array_source_15(Idx)
42743 , p_source_17 => l_array_source_17(Idx)
42744 , p_source_19 => l_array_source_19(Idx)
42745 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
42746 , p_source_21 => l_array_source_21(Idx)
42747 , p_source_22 => l_array_source_22(Idx)
42748 , p_source_23 => l_array_source_23(Idx)
42749 , p_source_24 => l_array_source_24(Idx)
42750 , p_source_25 => l_array_source_25(Idx)
42751 , p_source_26 => l_array_source_26(Idx)
42752 , p_source_27 => l_array_source_27(Idx)
42753 , p_source_28 => l_array_source_28(Idx)
42754 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
42755 , p_source_30 => l_array_source_30(Idx)
42756 , p_source_31 => l_array_source_31(Idx)
42757 , p_source_32 => l_array_source_32(Idx)
42758 , p_source_33 => l_array_source_33(Idx)
42759 , p_source_34 => l_array_source_34(Idx)
42760 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
42761 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
42762 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
42763 , p_source_39 => l_array_source_39(Idx)
42764 , p_source_40 => l_array_source_40(Idx)
42765 , p_source_41 => l_array_source_41(Idx)
42766 , p_source_42 => l_array_source_42(Idx)
42767 , p_source_42_meaning => l_array_source_42_meaning(Idx)
42768 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
42769 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
42770 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
42771 , p_source_46 => l_array_source_46(Idx)
42772 , p_source_47 => l_array_source_47(Idx)
42773 , p_source_48 => l_array_source_48(Idx)
42774 , p_source_49 => l_array_source_49(Idx)
42775 , p_source_50 => l_array_source_50(Idx)
42776 , p_source_51 => l_array_source_51(Idx)
42777 , p_source_52 => l_array_source_52(Idx)
42778 , p_source_53 => l_array_source_53(Idx)
42779 , p_source_55 => l_array_source_55(Idx)
42780 );
42781 If(l_balance_type_code = 'A') THEN
42782 l_actual_gain_loss_ref := l_gain_or_loss_ref;
42783 END IF;
42784
42785 --
42786
42787
42788 --
42789 AcctLineType_41 (
42790 p_application_id => p_application_id
42791 ,p_event_id => l_event_id
42792 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42793 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42794 ,p_actual_flag => l_actual_flag
42795 ,p_balance_type_code => l_balance_type_code
42796 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
42797
42798 , p_source_1 => l_array_source_1(Idx)
42799 , p_source_2 => l_array_source_2(Idx)
42800 , p_source_3 => l_array_source_3(Idx)
42801 , p_source_8 => l_array_source_8(Idx)
42802 , p_source_8_meaning => l_array_source_8_meaning(Idx)
42803 , p_source_9 => l_array_source_9(Idx)
42804 , p_source_11 => l_array_source_11(Idx)
42805 , p_source_11_meaning => l_array_source_11_meaning(Idx)
42806 , p_source_12 => l_array_source_12(Idx)
42807 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
42808 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
42809 , p_source_14 => l_array_source_14(Idx)
42810 , p_source_15 => l_array_source_15(Idx)
42811 , p_source_17 => l_array_source_17(Idx)
42812 , p_source_19 => l_array_source_19(Idx)
42813 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
42814 , p_source_21 => l_array_source_21(Idx)
42815 , p_source_22 => l_array_source_22(Idx)
42816 , p_source_23 => l_array_source_23(Idx)
42817 , p_source_24 => l_array_source_24(Idx)
42818 , p_source_25 => l_array_source_25(Idx)
42819 , p_source_26 => l_array_source_26(Idx)
42820 , p_source_27 => l_array_source_27(Idx)
42821 , p_source_28 => l_array_source_28(Idx)
42822 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
42823 , p_source_30 => l_array_source_30(Idx)
42824 , p_source_31 => l_array_source_31(Idx)
42825 , p_source_32 => l_array_source_32(Idx)
42826 , p_source_33 => l_array_source_33(Idx)
42827 , p_source_34 => l_array_source_34(Idx)
42828 , p_source_35 => l_array_source_35(Idx)
42829 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
42830 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
42831 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
42832 , p_source_39 => l_array_source_39(Idx)
42833 , p_source_40 => l_array_source_40(Idx)
42834 , p_source_41 => l_array_source_41(Idx)
42835 , p_source_42 => l_array_source_42(Idx)
42836 , p_source_42_meaning => l_array_source_42_meaning(Idx)
42837 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
42838 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
42839 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
42840 , p_source_46 => l_array_source_46(Idx)
42841 , p_source_47 => l_array_source_47(Idx)
42842 , p_source_48 => l_array_source_48(Idx)
42843 , p_source_49 => l_array_source_49(Idx)
42844 , p_source_50 => l_array_source_50(Idx)
42845 , p_source_51 => l_array_source_51(Idx)
42846 , p_source_52 => l_array_source_52(Idx)
42847 , p_source_55 => l_array_source_55(Idx)
42848 );
42849 If(l_balance_type_code = 'A') THEN
42850 l_actual_gain_loss_ref := l_gain_or_loss_ref;
42851 END IF;
42852
42853 --
42854
42855
42856 --
42857 AcctLineType_42 (
42858 p_application_id => p_application_id
42859 ,p_event_id => l_event_id
42860 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42861 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42862 ,p_actual_flag => l_actual_flag
42863 ,p_balance_type_code => l_balance_type_code
42864 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
42865
42866 , p_source_1 => l_array_source_1(Idx)
42867 , p_source_2 => l_array_source_2(Idx)
42868 , p_source_8 => l_array_source_8(Idx)
42869 , p_source_8_meaning => l_array_source_8_meaning(Idx)
42870 , p_source_9 => l_array_source_9(Idx)
42871 , p_source_11 => l_array_source_11(Idx)
42872 , p_source_11_meaning => l_array_source_11_meaning(Idx)
42873 , p_source_12 => l_array_source_12(Idx)
42874 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
42875 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
42876 , p_source_14 => l_array_source_14(Idx)
42877 , p_source_15 => l_array_source_15(Idx)
42878 , p_source_17 => l_array_source_17(Idx)
42879 , p_source_19 => l_array_source_19(Idx)
42880 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
42881 , p_source_21 => l_array_source_21(Idx)
42882 , p_source_22 => l_array_source_22(Idx)
42883 , p_source_23 => l_array_source_23(Idx)
42884 , p_source_24 => l_array_source_24(Idx)
42885 , p_source_25 => l_array_source_25(Idx)
42886 , p_source_26 => l_array_source_26(Idx)
42887 , p_source_27 => l_array_source_27(Idx)
42888 , p_source_28 => l_array_source_28(Idx)
42889 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
42890 , p_source_30 => l_array_source_30(Idx)
42891 , p_source_31 => l_array_source_31(Idx)
42892 , p_source_32 => l_array_source_32(Idx)
42893 , p_source_33 => l_array_source_33(Idx)
42894 , p_source_34 => l_array_source_34(Idx)
42895 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
42896 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
42897 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
42898 , p_source_39 => l_array_source_39(Idx)
42899 , p_source_40 => l_array_source_40(Idx)
42900 , p_source_41 => l_array_source_41(Idx)
42901 , p_source_42 => l_array_source_42(Idx)
42902 , p_source_42_meaning => l_array_source_42_meaning(Idx)
42903 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
42904 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
42905 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
42906 , p_source_46 => l_array_source_46(Idx)
42907 , p_source_47 => l_array_source_47(Idx)
42908 , p_source_48 => l_array_source_48(Idx)
42909 , p_source_49 => l_array_source_49(Idx)
42910 , p_source_50 => l_array_source_50(Idx)
42911 , p_source_51 => l_array_source_51(Idx)
42912 , p_source_52 => l_array_source_52(Idx)
42913 , p_source_55 => l_array_source_55(Idx)
42914 , p_source_56 => l_array_source_56(Idx)
42915 );
42916 If(l_balance_type_code = 'A') THEN
42917 l_actual_gain_loss_ref := l_gain_or_loss_ref;
42918 END IF;
42919
42920 --
42921
42922
42923 --
42924 AcctLineType_43 (
42925 p_application_id => p_application_id
42926 ,p_event_id => l_event_id
42927 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42928 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42929 ,p_actual_flag => l_actual_flag
42930 ,p_balance_type_code => l_balance_type_code
42931 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
42932
42933 , p_source_1 => l_array_source_1(Idx)
42934 , p_source_2 => l_array_source_2(Idx)
42935 , p_source_3 => l_array_source_3(Idx)
42936 , p_source_8 => l_array_source_8(Idx)
42937 , p_source_8_meaning => l_array_source_8_meaning(Idx)
42938 , p_source_9 => l_array_source_9(Idx)
42939 , p_source_11 => l_array_source_11(Idx)
42940 , p_source_11_meaning => l_array_source_11_meaning(Idx)
42941 , p_source_12 => l_array_source_12(Idx)
42942 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
42943 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
42944 , p_source_14 => l_array_source_14(Idx)
42945 , p_source_15 => l_array_source_15(Idx)
42946 , p_source_17 => l_array_source_17(Idx)
42947 , p_source_19 => l_array_source_19(Idx)
42948 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
42949 , p_source_21 => l_array_source_21(Idx)
42950 , p_source_22 => l_array_source_22(Idx)
42951 , p_source_23 => l_array_source_23(Idx)
42952 , p_source_24 => l_array_source_24(Idx)
42953 , p_source_25 => l_array_source_25(Idx)
42954 , p_source_26 => l_array_source_26(Idx)
42955 , p_source_27 => l_array_source_27(Idx)
42956 , p_source_28 => l_array_source_28(Idx)
42957 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
42958 , p_source_30 => l_array_source_30(Idx)
42959 , p_source_31 => l_array_source_31(Idx)
42960 , p_source_32 => l_array_source_32(Idx)
42961 , p_source_33 => l_array_source_33(Idx)
42962 , p_source_34 => l_array_source_34(Idx)
42963 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
42964 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
42965 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
42966 , p_source_39 => l_array_source_39(Idx)
42967 , p_source_40 => l_array_source_40(Idx)
42968 , p_source_41 => l_array_source_41(Idx)
42969 , p_source_42 => l_array_source_42(Idx)
42970 , p_source_42_meaning => l_array_source_42_meaning(Idx)
42971 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
42972 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
42973 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
42974 , p_source_46 => l_array_source_46(Idx)
42975 , p_source_47 => l_array_source_47(Idx)
42976 , p_source_48 => l_array_source_48(Idx)
42977 , p_source_49 => l_array_source_49(Idx)
42978 , p_source_50 => l_array_source_50(Idx)
42979 , p_source_51 => l_array_source_51(Idx)
42980 , p_source_52 => l_array_source_52(Idx)
42981 , p_source_54 => l_array_source_54(Idx)
42982 , p_source_55 => l_array_source_55(Idx)
42983 );
42984 If(l_balance_type_code = 'A') THEN
42985 l_actual_gain_loss_ref := l_gain_or_loss_ref;
42986 END IF;
42987
42988 --
42989
42990
42991 --
42992 AcctLineType_44 (
42993 p_application_id => p_application_id
42994 ,p_event_id => l_event_id
42995 ,p_calculate_acctd_flag => l_calculate_acctd_flag
42996 ,p_calculate_g_l_flag => l_calculate_g_l_flag
42997 ,p_actual_flag => l_actual_flag
42998 ,p_balance_type_code => l_balance_type_code
42999 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43000
43001 , p_source_1 => l_array_source_1(Idx)
43002 , p_source_2 => l_array_source_2(Idx)
43003 , p_source_8 => l_array_source_8(Idx)
43004 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43005 , p_source_9 => l_array_source_9(Idx)
43006 , p_source_11 => l_array_source_11(Idx)
43007 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43008 , p_source_12 => l_array_source_12(Idx)
43009 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
43010 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
43011 , p_source_14 => l_array_source_14(Idx)
43012 , p_source_15 => l_array_source_15(Idx)
43013 , p_source_17 => l_array_source_17(Idx)
43014 , p_source_19 => l_array_source_19(Idx)
43015 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43016 , p_source_21 => l_array_source_21(Idx)
43017 , p_source_22 => l_array_source_22(Idx)
43018 , p_source_23 => l_array_source_23(Idx)
43019 , p_source_24 => l_array_source_24(Idx)
43020 , p_source_25 => l_array_source_25(Idx)
43021 , p_source_26 => l_array_source_26(Idx)
43022 , p_source_27 => l_array_source_27(Idx)
43023 , p_source_28 => l_array_source_28(Idx)
43024 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43025 , p_source_30 => l_array_source_30(Idx)
43026 , p_source_31 => l_array_source_31(Idx)
43027 , p_source_32 => l_array_source_32(Idx)
43028 , p_source_33 => l_array_source_33(Idx)
43029 , p_source_34 => l_array_source_34(Idx)
43030 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43031 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43032 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43033 , p_source_39 => l_array_source_39(Idx)
43034 , p_source_40 => l_array_source_40(Idx)
43035 , p_source_41 => l_array_source_41(Idx)
43036 , p_source_42 => l_array_source_42(Idx)
43037 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43038 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43039 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43040 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43041 , p_source_46 => l_array_source_46(Idx)
43042 , p_source_47 => l_array_source_47(Idx)
43043 , p_source_48 => l_array_source_48(Idx)
43044 , p_source_49 => l_array_source_49(Idx)
43045 , p_source_50 => l_array_source_50(Idx)
43046 , p_source_51 => l_array_source_51(Idx)
43047 , p_source_52 => l_array_source_52(Idx)
43048 , p_source_55 => l_array_source_55(Idx)
43049 , p_source_56 => l_array_source_56(Idx)
43050 );
43051 If(l_balance_type_code = 'A') THEN
43052 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43053 END IF;
43054
43055 --
43056
43057
43058 --
43059 AcctLineType_45 (
43060 p_application_id => p_application_id
43061 ,p_event_id => l_event_id
43062 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43063 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43064 ,p_actual_flag => l_actual_flag
43065 ,p_balance_type_code => l_balance_type_code
43066 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43067
43068 , p_source_1 => l_array_source_1(Idx)
43069 , p_source_2 => l_array_source_2(Idx)
43070 , p_source_4 => l_array_source_4(Idx)
43071 , p_source_5 => l_array_source_5(Idx)
43072 , p_source_6 => l_array_source_6(Idx)
43073 , p_source_8 => l_array_source_8(Idx)
43074 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43075 , p_source_9 => l_array_source_9(Idx)
43076 , p_source_12 => l_array_source_12(Idx)
43077 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
43078 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
43079 , p_source_14 => l_array_source_14(Idx)
43080 , p_source_15 => l_array_source_15(Idx)
43081 , p_source_17 => l_array_source_17(Idx)
43082 , p_source_19 => l_array_source_19(Idx)
43083 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43084 , p_source_21 => l_array_source_21(Idx)
43085 , p_source_22 => l_array_source_22(Idx)
43086 , p_source_23 => l_array_source_23(Idx)
43087 , p_source_24 => l_array_source_24(Idx)
43088 , p_source_25 => l_array_source_25(Idx)
43089 , p_source_26 => l_array_source_26(Idx)
43090 , p_source_27 => l_array_source_27(Idx)
43091 , p_source_28 => l_array_source_28(Idx)
43092 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43093 , p_source_30 => l_array_source_30(Idx)
43094 , p_source_31 => l_array_source_31(Idx)
43095 , p_source_32 => l_array_source_32(Idx)
43096 , p_source_33 => l_array_source_33(Idx)
43097 , p_source_34 => l_array_source_34(Idx)
43098 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43099 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43100 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43101 , p_source_39 => l_array_source_39(Idx)
43102 , p_source_40 => l_array_source_40(Idx)
43103 , p_source_41 => l_array_source_41(Idx)
43104 , p_source_42 => l_array_source_42(Idx)
43105 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43106 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43107 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43108 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43109 , p_source_46 => l_array_source_46(Idx)
43110 , p_source_47 => l_array_source_47(Idx)
43111 , p_source_48 => l_array_source_48(Idx)
43112 , p_source_49 => l_array_source_49(Idx)
43113 , p_source_50 => l_array_source_50(Idx)
43114 , p_source_51 => l_array_source_51(Idx)
43115 , p_source_52 => l_array_source_52(Idx)
43116 , p_source_55 => l_array_source_55(Idx)
43117 , p_source_56 => l_array_source_56(Idx)
43118 );
43119 If(l_balance_type_code = 'A') THEN
43120 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43121 END IF;
43122
43123 --
43124
43125
43126 --
43127 AcctLineType_46 (
43128 p_application_id => p_application_id
43129 ,p_event_id => l_event_id
43130 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43131 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43132 ,p_actual_flag => l_actual_flag
43133 ,p_balance_type_code => l_balance_type_code
43134 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43135
43136 , p_source_1 => l_array_source_1(Idx)
43137 , p_source_2 => l_array_source_2(Idx)
43138 , p_source_4 => l_array_source_4(Idx)
43139 , p_source_5 => l_array_source_5(Idx)
43140 , p_source_6 => l_array_source_6(Idx)
43141 , p_source_8 => l_array_source_8(Idx)
43142 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43143 , p_source_15 => l_array_source_15(Idx)
43144 , p_source_17 => l_array_source_17(Idx)
43145 , p_source_19 => l_array_source_19(Idx)
43146 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43147 , p_source_21 => l_array_source_21(Idx)
43148 , p_source_22 => l_array_source_22(Idx)
43149 , p_source_23 => l_array_source_23(Idx)
43150 , p_source_24 => l_array_source_24(Idx)
43151 , p_source_25 => l_array_source_25(Idx)
43152 , p_source_26 => l_array_source_26(Idx)
43153 , p_source_27 => l_array_source_27(Idx)
43154 , p_source_28 => l_array_source_28(Idx)
43155 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43156 , p_source_30 => l_array_source_30(Idx)
43157 , p_source_31 => l_array_source_31(Idx)
43158 , p_source_32 => l_array_source_32(Idx)
43159 , p_source_33 => l_array_source_33(Idx)
43160 , p_source_34 => l_array_source_34(Idx)
43161 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43162 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43163 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43164 , p_source_39 => l_array_source_39(Idx)
43165 , p_source_40 => l_array_source_40(Idx)
43166 , p_source_41 => l_array_source_41(Idx)
43167 , p_source_42 => l_array_source_42(Idx)
43168 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43169 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43170 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43171 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43172 , p_source_46 => l_array_source_46(Idx)
43173 , p_source_47 => l_array_source_47(Idx)
43174 , p_source_48 => l_array_source_48(Idx)
43175 , p_source_49 => l_array_source_49(Idx)
43176 , p_source_50 => l_array_source_50(Idx)
43177 , p_source_51 => l_array_source_51(Idx)
43178 , p_source_52 => l_array_source_52(Idx)
43179 , p_source_55 => l_array_source_55(Idx)
43180 , p_source_59 => l_array_source_59(Idx)
43181 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43182 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43183 , p_source_61 => l_array_source_61(Idx)
43184 );
43185 If(l_balance_type_code = 'A') THEN
43186 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43187 END IF;
43188
43189 --
43190
43191
43192 --
43193 AcctLineType_47 (
43194 p_application_id => p_application_id
43195 ,p_event_id => l_event_id
43196 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43197 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43198 ,p_actual_flag => l_actual_flag
43199 ,p_balance_type_code => l_balance_type_code
43200 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43201
43202 , p_source_1 => l_array_source_1(Idx)
43203 , p_source_2 => l_array_source_2(Idx)
43204 , p_source_8 => l_array_source_8(Idx)
43205 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43206 , p_source_15 => l_array_source_15(Idx)
43207 , p_source_17 => l_array_source_17(Idx)
43208 , p_source_19 => l_array_source_19(Idx)
43209 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43210 , p_source_21 => l_array_source_21(Idx)
43211 , p_source_22 => l_array_source_22(Idx)
43212 , p_source_23 => l_array_source_23(Idx)
43213 , p_source_24 => l_array_source_24(Idx)
43214 , p_source_25 => l_array_source_25(Idx)
43215 , p_source_26 => l_array_source_26(Idx)
43216 , p_source_27 => l_array_source_27(Idx)
43217 , p_source_28 => l_array_source_28(Idx)
43218 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43219 , p_source_30 => l_array_source_30(Idx)
43220 , p_source_31 => l_array_source_31(Idx)
43221 , p_source_32 => l_array_source_32(Idx)
43222 , p_source_33 => l_array_source_33(Idx)
43223 , p_source_34 => l_array_source_34(Idx)
43224 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43225 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43226 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43227 , p_source_39 => l_array_source_39(Idx)
43228 , p_source_40 => l_array_source_40(Idx)
43229 , p_source_41 => l_array_source_41(Idx)
43230 , p_source_42 => l_array_source_42(Idx)
43231 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43232 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43233 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43234 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43235 , p_source_46 => l_array_source_46(Idx)
43236 , p_source_47 => l_array_source_47(Idx)
43237 , p_source_48 => l_array_source_48(Idx)
43238 , p_source_49 => l_array_source_49(Idx)
43239 , p_source_50 => l_array_source_50(Idx)
43240 , p_source_51 => l_array_source_51(Idx)
43241 , p_source_52 => l_array_source_52(Idx)
43242 , p_source_55 => l_array_source_55(Idx)
43243 , p_source_59 => l_array_source_59(Idx)
43244 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43245 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43246 , p_source_61 => l_array_source_61(Idx)
43247 );
43248 If(l_balance_type_code = 'A') THEN
43249 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43250 END IF;
43251
43252 --
43253
43254
43255 --
43256 AcctLineType_48 (
43257 p_application_id => p_application_id
43258 ,p_event_id => l_event_id
43259 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43260 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43261 ,p_actual_flag => l_actual_flag
43262 ,p_balance_type_code => l_balance_type_code
43263 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43264
43265 , p_source_1 => l_array_source_1(Idx)
43266 , p_source_2 => l_array_source_2(Idx)
43267 , p_source_6 => l_array_source_6(Idx)
43268 , p_source_15 => l_array_source_15(Idx)
43269 , p_source_17 => l_array_source_17(Idx)
43270 , p_source_19 => l_array_source_19(Idx)
43271 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43272 , p_source_21 => l_array_source_21(Idx)
43273 , p_source_22 => l_array_source_22(Idx)
43274 , p_source_23 => l_array_source_23(Idx)
43275 , p_source_24 => l_array_source_24(Idx)
43276 , p_source_25 => l_array_source_25(Idx)
43277 , p_source_26 => l_array_source_26(Idx)
43278 , p_source_27 => l_array_source_27(Idx)
43279 , p_source_28 => l_array_source_28(Idx)
43280 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43281 , p_source_30 => l_array_source_30(Idx)
43282 , p_source_31 => l_array_source_31(Idx)
43283 , p_source_32 => l_array_source_32(Idx)
43284 , p_source_33 => l_array_source_33(Idx)
43285 , p_source_34 => l_array_source_34(Idx)
43286 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43287 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43288 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43289 , p_source_39 => l_array_source_39(Idx)
43290 , p_source_40 => l_array_source_40(Idx)
43291 , p_source_41 => l_array_source_41(Idx)
43292 , p_source_42 => l_array_source_42(Idx)
43293 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43294 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43295 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43296 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43297 , p_source_46 => l_array_source_46(Idx)
43298 , p_source_47 => l_array_source_47(Idx)
43299 , p_source_48 => l_array_source_48(Idx)
43300 , p_source_49 => l_array_source_49(Idx)
43301 , p_source_50 => l_array_source_50(Idx)
43302 , p_source_51 => l_array_source_51(Idx)
43303 , p_source_52 => l_array_source_52(Idx)
43304 , p_source_55 => l_array_source_55(Idx)
43305 , p_source_58 => l_array_source_58(Idx)
43306 );
43307 If(l_balance_type_code = 'A') THEN
43308 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43309 END IF;
43310
43311 --
43312
43313
43314 --
43315 AcctLineType_49 (
43316 p_application_id => p_application_id
43317 ,p_event_id => l_event_id
43318 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43319 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43320 ,p_actual_flag => l_actual_flag
43321 ,p_balance_type_code => l_balance_type_code
43322 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43323
43324 , p_source_1 => l_array_source_1(Idx)
43325 , p_source_2 => l_array_source_2(Idx)
43326 , p_source_6 => l_array_source_6(Idx)
43327 , p_source_15 => l_array_source_15(Idx)
43328 , p_source_17 => l_array_source_17(Idx)
43329 , p_source_19 => l_array_source_19(Idx)
43330 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43331 , p_source_21 => l_array_source_21(Idx)
43332 , p_source_22 => l_array_source_22(Idx)
43333 , p_source_23 => l_array_source_23(Idx)
43334 , p_source_24 => l_array_source_24(Idx)
43335 , p_source_25 => l_array_source_25(Idx)
43336 , p_source_26 => l_array_source_26(Idx)
43337 , p_source_27 => l_array_source_27(Idx)
43338 , p_source_28 => l_array_source_28(Idx)
43339 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43340 , p_source_30 => l_array_source_30(Idx)
43341 , p_source_31 => l_array_source_31(Idx)
43342 , p_source_32 => l_array_source_32(Idx)
43343 , p_source_33 => l_array_source_33(Idx)
43344 , p_source_34 => l_array_source_34(Idx)
43345 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43346 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43347 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43348 , p_source_39 => l_array_source_39(Idx)
43349 , p_source_40 => l_array_source_40(Idx)
43350 , p_source_41 => l_array_source_41(Idx)
43351 , p_source_42 => l_array_source_42(Idx)
43352 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43353 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43354 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43355 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43356 , p_source_46 => l_array_source_46(Idx)
43357 , p_source_47 => l_array_source_47(Idx)
43358 , p_source_48 => l_array_source_48(Idx)
43359 , p_source_49 => l_array_source_49(Idx)
43360 , p_source_50 => l_array_source_50(Idx)
43361 , p_source_51 => l_array_source_51(Idx)
43362 , p_source_52 => l_array_source_52(Idx)
43363 , p_source_55 => l_array_source_55(Idx)
43364 , p_source_58 => l_array_source_58(Idx)
43365 );
43366 If(l_balance_type_code = 'A') THEN
43367 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43368 END IF;
43369
43370 --
43371
43372
43373 --
43374 AcctLineType_50 (
43375 p_application_id => p_application_id
43376 ,p_event_id => l_event_id
43377 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43378 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43379 ,p_actual_flag => l_actual_flag
43380 ,p_balance_type_code => l_balance_type_code
43381 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43382
43383 , p_source_1 => l_array_source_1(Idx)
43384 , p_source_2 => l_array_source_2(Idx)
43385 , p_source_4 => l_array_source_4(Idx)
43386 , p_source_5 => l_array_source_5(Idx)
43387 , p_source_6 => l_array_source_6(Idx)
43388 , p_source_8 => l_array_source_8(Idx)
43389 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43390 , p_source_9 => l_array_source_9(Idx)
43391 , p_source_10 => l_array_source_10(Idx)
43392 , p_source_15 => l_array_source_15(Idx)
43393 , p_source_17 => l_array_source_17(Idx)
43394 , p_source_19 => l_array_source_19(Idx)
43395 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43396 , p_source_21 => l_array_source_21(Idx)
43397 , p_source_22 => l_array_source_22(Idx)
43398 , p_source_23 => l_array_source_23(Idx)
43399 , p_source_24 => l_array_source_24(Idx)
43400 , p_source_25 => l_array_source_25(Idx)
43401 , p_source_26 => l_array_source_26(Idx)
43402 , p_source_27 => l_array_source_27(Idx)
43403 , p_source_28 => l_array_source_28(Idx)
43404 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43405 , p_source_30 => l_array_source_30(Idx)
43406 , p_source_31 => l_array_source_31(Idx)
43407 , p_source_32 => l_array_source_32(Idx)
43408 , p_source_33 => l_array_source_33(Idx)
43409 , p_source_34 => l_array_source_34(Idx)
43410 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43411 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43412 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43413 , p_source_39 => l_array_source_39(Idx)
43414 , p_source_40 => l_array_source_40(Idx)
43415 , p_source_41 => l_array_source_41(Idx)
43416 , p_source_42 => l_array_source_42(Idx)
43417 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43418 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43419 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43420 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43421 , p_source_46 => l_array_source_46(Idx)
43422 , p_source_47 => l_array_source_47(Idx)
43423 , p_source_48 => l_array_source_48(Idx)
43424 , p_source_49 => l_array_source_49(Idx)
43425 , p_source_50 => l_array_source_50(Idx)
43426 , p_source_51 => l_array_source_51(Idx)
43427 , p_source_52 => l_array_source_52(Idx)
43428 , p_source_53 => l_array_source_53(Idx)
43429 , p_source_55 => l_array_source_55(Idx)
43430 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43431 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43432 );
43433 If(l_balance_type_code = 'A') THEN
43434 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43435 END IF;
43436
43437 --
43438
43439
43440 --
43441 AcctLineType_51 (
43442 p_application_id => p_application_id
43443 ,p_event_id => l_event_id
43444 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43445 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43446 ,p_actual_flag => l_actual_flag
43447 ,p_balance_type_code => l_balance_type_code
43448 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43449
43450 , p_source_1 => l_array_source_1(Idx)
43451 , p_source_2 => l_array_source_2(Idx)
43452 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
43453 , p_source_8 => l_array_source_8(Idx)
43454 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43455 , p_source_9 => l_array_source_9(Idx)
43456 , p_source_10 => l_array_source_10(Idx)
43457 , p_source_11 => l_array_source_11(Idx)
43458 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43459 , p_source_15 => l_array_source_15(Idx)
43460 , p_source_17 => l_array_source_17(Idx)
43461 , p_source_19 => l_array_source_19(Idx)
43462 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43463 , p_source_21 => l_array_source_21(Idx)
43464 , p_source_22 => l_array_source_22(Idx)
43465 , p_source_23 => l_array_source_23(Idx)
43466 , p_source_24 => l_array_source_24(Idx)
43467 , p_source_25 => l_array_source_25(Idx)
43468 , p_source_26 => l_array_source_26(Idx)
43469 , p_source_27 => l_array_source_27(Idx)
43470 , p_source_28 => l_array_source_28(Idx)
43471 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43472 , p_source_30 => l_array_source_30(Idx)
43473 , p_source_31 => l_array_source_31(Idx)
43474 , p_source_32 => l_array_source_32(Idx)
43475 , p_source_33 => l_array_source_33(Idx)
43476 , p_source_34 => l_array_source_34(Idx)
43477 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43478 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43479 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43480 , p_source_39 => l_array_source_39(Idx)
43481 , p_source_40 => l_array_source_40(Idx)
43482 , p_source_41 => l_array_source_41(Idx)
43483 , p_source_42 => l_array_source_42(Idx)
43484 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43485 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43486 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43487 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43488 , p_source_46 => l_array_source_46(Idx)
43489 , p_source_47 => l_array_source_47(Idx)
43490 , p_source_48 => l_array_source_48(Idx)
43491 , p_source_49 => l_array_source_49(Idx)
43492 , p_source_50 => l_array_source_50(Idx)
43493 , p_source_51 => l_array_source_51(Idx)
43494 , p_source_52 => l_array_source_52(Idx)
43495 , p_source_53 => l_array_source_53(Idx)
43496 , p_source_55 => l_array_source_55(Idx)
43497 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43498 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43499 );
43500 If(l_balance_type_code = 'A') THEN
43501 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43502 END IF;
43503
43504 --
43505
43506
43507 --
43508 AcctLineType_52 (
43509 p_application_id => p_application_id
43510 ,p_event_id => l_event_id
43511 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43512 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43513 ,p_actual_flag => l_actual_flag
43514 ,p_balance_type_code => l_balance_type_code
43515 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43516
43517 , p_source_1 => l_array_source_1(Idx)
43518 , p_source_2 => l_array_source_2(Idx)
43519 , p_source_8 => l_array_source_8(Idx)
43520 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43521 , p_source_9 => l_array_source_9(Idx)
43522 , p_source_11 => l_array_source_11(Idx)
43523 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43524 , p_source_12 => l_array_source_12(Idx)
43525 , p_source_15 => l_array_source_15(Idx)
43526 , p_source_17 => l_array_source_17(Idx)
43527 , p_source_19 => l_array_source_19(Idx)
43528 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43529 , p_source_21 => l_array_source_21(Idx)
43530 , p_source_22 => l_array_source_22(Idx)
43531 , p_source_23 => l_array_source_23(Idx)
43532 , p_source_24 => l_array_source_24(Idx)
43533 , p_source_25 => l_array_source_25(Idx)
43534 , p_source_26 => l_array_source_26(Idx)
43535 , p_source_27 => l_array_source_27(Idx)
43536 , p_source_28 => l_array_source_28(Idx)
43537 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43538 , p_source_30 => l_array_source_30(Idx)
43539 , p_source_31 => l_array_source_31(Idx)
43540 , p_source_32 => l_array_source_32(Idx)
43541 , p_source_33 => l_array_source_33(Idx)
43542 , p_source_34 => l_array_source_34(Idx)
43543 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43544 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43545 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43546 , p_source_39 => l_array_source_39(Idx)
43547 , p_source_40 => l_array_source_40(Idx)
43548 , p_source_41 => l_array_source_41(Idx)
43549 , p_source_42 => l_array_source_42(Idx)
43550 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43551 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43552 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43553 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43554 , p_source_46 => l_array_source_46(Idx)
43555 , p_source_47 => l_array_source_47(Idx)
43556 , p_source_48 => l_array_source_48(Idx)
43557 , p_source_49 => l_array_source_49(Idx)
43558 , p_source_50 => l_array_source_50(Idx)
43559 , p_source_51 => l_array_source_51(Idx)
43560 , p_source_52 => l_array_source_52(Idx)
43561 , p_source_55 => l_array_source_55(Idx)
43562 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43563 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43564 , p_source_62 => l_array_source_62(Idx)
43565 , p_source_63 => l_array_source_63(Idx)
43566 );
43567 If(l_balance_type_code = 'A') THEN
43568 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43569 END IF;
43570
43571 --
43572
43573
43574 --
43575 AcctLineType_53 (
43576 p_application_id => p_application_id
43577 ,p_event_id => l_event_id
43578 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43579 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43580 ,p_actual_flag => l_actual_flag
43581 ,p_balance_type_code => l_balance_type_code
43582 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43583
43584 , p_source_1 => l_array_source_1(Idx)
43585 , p_source_2 => l_array_source_2(Idx)
43586 , p_source_4 => l_array_source_4(Idx)
43587 , p_source_5 => l_array_source_5(Idx)
43588 , p_source_6 => l_array_source_6(Idx)
43589 , p_source_8 => l_array_source_8(Idx)
43590 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43591 , p_source_15 => l_array_source_15(Idx)
43592 , p_source_17 => l_array_source_17(Idx)
43593 , p_source_19 => l_array_source_19(Idx)
43594 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43595 , p_source_21 => l_array_source_21(Idx)
43596 , p_source_22 => l_array_source_22(Idx)
43597 , p_source_23 => l_array_source_23(Idx)
43598 , p_source_24 => l_array_source_24(Idx)
43599 , p_source_25 => l_array_source_25(Idx)
43600 , p_source_26 => l_array_source_26(Idx)
43601 , p_source_27 => l_array_source_27(Idx)
43602 , p_source_28 => l_array_source_28(Idx)
43603 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43604 , p_source_30 => l_array_source_30(Idx)
43605 , p_source_31 => l_array_source_31(Idx)
43606 , p_source_32 => l_array_source_32(Idx)
43607 , p_source_33 => l_array_source_33(Idx)
43608 , p_source_34 => l_array_source_34(Idx)
43609 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43610 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43611 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43612 , p_source_39 => l_array_source_39(Idx)
43613 , p_source_40 => l_array_source_40(Idx)
43614 , p_source_41 => l_array_source_41(Idx)
43615 , p_source_42 => l_array_source_42(Idx)
43616 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43617 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43618 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43619 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43620 , p_source_46 => l_array_source_46(Idx)
43621 , p_source_47 => l_array_source_47(Idx)
43622 , p_source_48 => l_array_source_48(Idx)
43623 , p_source_49 => l_array_source_49(Idx)
43624 , p_source_50 => l_array_source_50(Idx)
43625 , p_source_51 => l_array_source_51(Idx)
43626 , p_source_52 => l_array_source_52(Idx)
43627 , p_source_55 => l_array_source_55(Idx)
43628 , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
43629 , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
43630 , p_source_62 => l_array_source_62(Idx)
43631 , p_source_63 => l_array_source_63(Idx)
43632 );
43633 If(l_balance_type_code = 'A') THEN
43634 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43635 END IF;
43636
43637 --
43638
43639
43640 --
43641 AcctLineType_54 (
43642 p_application_id => p_application_id
43643 ,p_event_id => l_event_id
43644 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43645 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43646 ,p_actual_flag => l_actual_flag
43647 ,p_balance_type_code => l_balance_type_code
43648 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43649
43650 , p_source_1 => l_array_source_1(Idx)
43651 , p_source_2 => l_array_source_2(Idx)
43652 , p_source_5 => l_array_source_5(Idx)
43653 , p_source_8 => l_array_source_8(Idx)
43654 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43655 , p_source_10 => l_array_source_10(Idx)
43656 , p_source_11 => l_array_source_11(Idx)
43657 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43658 , p_source_12 => l_array_source_12(Idx)
43659 , p_source_15 => l_array_source_15(Idx)
43660 , p_source_17 => l_array_source_17(Idx)
43661 , p_source_19 => l_array_source_19(Idx)
43662 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43663 , p_source_26 => l_array_source_26(Idx)
43664 , p_source_27 => l_array_source_27(Idx)
43665 , p_source_28 => l_array_source_28(Idx)
43666 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43667 , p_source_30 => l_array_source_30(Idx)
43668 , p_source_31 => l_array_source_31(Idx)
43669 , p_source_32 => l_array_source_32(Idx)
43670 , p_source_33 => l_array_source_33(Idx)
43671 , p_source_34 => l_array_source_34(Idx)
43672 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43673 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43674 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43675 , p_source_39 => l_array_source_39(Idx)
43676 , p_source_40 => l_array_source_40(Idx)
43677 , p_source_41 => l_array_source_41(Idx)
43678 , p_source_42 => l_array_source_42(Idx)
43679 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43680 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43681 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43682 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43683 , p_source_46 => l_array_source_46(Idx)
43684 , p_source_47 => l_array_source_47(Idx)
43685 , p_source_48 => l_array_source_48(Idx)
43686 , p_source_49 => l_array_source_49(Idx)
43687 , p_source_50 => l_array_source_50(Idx)
43688 , p_source_51 => l_array_source_51(Idx)
43689 , p_source_52 => l_array_source_52(Idx)
43690 , p_source_55 => l_array_source_55(Idx)
43691 , p_source_64 => l_array_source_64(Idx)
43692 , p_source_65 => l_array_source_65(Idx)
43693 , p_source_66 => l_array_source_66(Idx)
43694 , p_source_67 => l_array_source_67(Idx)
43695 , p_source_68 => l_array_source_68(Idx)
43696 , p_source_69 => l_array_source_69(Idx)
43697 );
43698 If(l_balance_type_code = 'A') THEN
43699 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43700 END IF;
43701
43702 --
43703
43704
43705 --
43706 AcctLineType_55 (
43707 p_application_id => p_application_id
43708 ,p_event_id => l_event_id
43709 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43710 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43711 ,p_actual_flag => l_actual_flag
43712 ,p_balance_type_code => l_balance_type_code
43713 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43714
43715 , p_source_5 => l_array_source_5(Idx)
43716 , p_source_8 => l_array_source_8(Idx)
43717 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43718 , p_source_9 => l_array_source_9(Idx)
43722 , p_source_12 => l_array_source_12(Idx)
43719 , p_source_10 => l_array_source_10(Idx)
43720 , p_source_11 => l_array_source_11(Idx)
43721 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43723 , p_source_15 => l_array_source_15(Idx)
43724 , p_source_17 => l_array_source_17(Idx)
43725 , p_source_19 => l_array_source_19(Idx)
43726 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43727 , p_source_26 => l_array_source_26(Idx)
43728 , p_source_27 => l_array_source_27(Idx)
43729 , p_source_28 => l_array_source_28(Idx)
43730 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43731 , p_source_30 => l_array_source_30(Idx)
43732 , p_source_31 => l_array_source_31(Idx)
43733 , p_source_32 => l_array_source_32(Idx)
43734 , p_source_33 => l_array_source_33(Idx)
43735 , p_source_34 => l_array_source_34(Idx)
43736 , p_source_39 => l_array_source_39(Idx)
43737 , p_source_40 => l_array_source_40(Idx)
43738 , p_source_41 => l_array_source_41(Idx)
43739 , p_source_42 => l_array_source_42(Idx)
43740 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43741 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43742 , p_source_46 => l_array_source_46(Idx)
43743 , p_source_47 => l_array_source_47(Idx)
43744 , p_source_48 => l_array_source_48(Idx)
43745 , p_source_49 => l_array_source_49(Idx)
43746 , p_source_50 => l_array_source_50(Idx)
43747 , p_source_51 => l_array_source_51(Idx)
43748 , p_source_52 => l_array_source_52(Idx)
43749 , p_source_55 => l_array_source_55(Idx)
43750 , p_source_64 => l_array_source_64(Idx)
43751 , p_source_65 => l_array_source_65(Idx)
43752 , p_source_66 => l_array_source_66(Idx)
43753 , p_source_67 => l_array_source_67(Idx)
43754 , p_source_68 => l_array_source_68(Idx)
43755 , p_source_69 => l_array_source_69(Idx)
43756 );
43757 If(l_balance_type_code = 'A') THEN
43758 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43759 END IF;
43760
43761 --
43762
43763
43764 --
43765 AcctLineType_56 (
43766 p_application_id => p_application_id
43767 ,p_event_id => l_event_id
43768 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43769 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43770 ,p_actual_flag => l_actual_flag
43771 ,p_balance_type_code => l_balance_type_code
43772 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43773
43774 , p_source_2 => l_array_source_2(Idx)
43775 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
43776 , p_source_8 => l_array_source_8(Idx)
43777 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43778 , p_source_9 => l_array_source_9(Idx)
43779 , p_source_10 => l_array_source_10(Idx)
43780 , p_source_11 => l_array_source_11(Idx)
43781 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43782 , p_source_12 => l_array_source_12(Idx)
43783 , p_source_15 => l_array_source_15(Idx)
43784 , p_source_17 => l_array_source_17(Idx)
43785 , p_source_19 => l_array_source_19(Idx)
43786 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43787 , p_source_26 => l_array_source_26(Idx)
43788 , p_source_27 => l_array_source_27(Idx)
43789 , p_source_28 => l_array_source_28(Idx)
43790 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43791 , p_source_30 => l_array_source_30(Idx)
43792 , p_source_31 => l_array_source_31(Idx)
43793 , p_source_32 => l_array_source_32(Idx)
43794 , p_source_33 => l_array_source_33(Idx)
43795 , p_source_34 => l_array_source_34(Idx)
43796 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43797 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43798 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43799 , p_source_39 => l_array_source_39(Idx)
43800 , p_source_40 => l_array_source_40(Idx)
43801 , p_source_41 => l_array_source_41(Idx)
43802 , p_source_42 => l_array_source_42(Idx)
43803 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43804 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43805 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43806 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43807 , p_source_46 => l_array_source_46(Idx)
43808 , p_source_47 => l_array_source_47(Idx)
43809 , p_source_48 => l_array_source_48(Idx)
43810 , p_source_49 => l_array_source_49(Idx)
43811 , p_source_50 => l_array_source_50(Idx)
43812 , p_source_51 => l_array_source_51(Idx)
43813 , p_source_52 => l_array_source_52(Idx)
43814 , p_source_55 => l_array_source_55(Idx)
43815 , p_source_64 => l_array_source_64(Idx)
43816 , p_source_65 => l_array_source_65(Idx)
43817 , p_source_66 => l_array_source_66(Idx)
43818 , p_source_67 => l_array_source_67(Idx)
43819 , p_source_68 => l_array_source_68(Idx)
43820 , p_source_69 => l_array_source_69(Idx)
43821 );
43822 If(l_balance_type_code = 'A') THEN
43823 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43824 END IF;
43825
43826 --
43827
43828
43829 --
43830 AcctLineType_57 (
43831 p_application_id => p_application_id
43832 ,p_event_id => l_event_id
43833 ,p_calculate_acctd_flag => l_calculate_acctd_flag
43834 ,p_calculate_g_l_flag => l_calculate_g_l_flag
43835 ,p_actual_flag => l_actual_flag
43836 ,p_balance_type_code => l_balance_type_code
43837 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
43838
43839 , p_source_1 => l_array_source_1(Idx)
43840 , p_source_2 => l_array_source_2(Idx)
43841 , p_source_5 => l_array_source_5(Idx)
43842 , p_source_8 => l_array_source_8(Idx)
43843 , p_source_8_meaning => l_array_source_8_meaning(Idx)
43844 , p_source_9 => l_array_source_9(Idx)
43845 , p_source_10 => l_array_source_10(Idx)
43846 , p_source_11 => l_array_source_11(Idx)
43847 , p_source_11_meaning => l_array_source_11_meaning(Idx)
43848 , p_source_12 => l_array_source_12(Idx)
43849 , p_source_15 => l_array_source_15(Idx)
43850 , p_source_17 => l_array_source_17(Idx)
43851 , p_source_19 => l_array_source_19(Idx)
43852 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
43853 , p_source_26 => l_array_source_26(Idx)
43854 , p_source_27 => l_array_source_27(Idx)
43855 , p_source_28 => l_array_source_28(Idx)
43856 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
43857 , p_source_30 => l_array_source_30(Idx)
43858 , p_source_31 => l_array_source_31(Idx)
43859 , p_source_32 => l_array_source_32(Idx)
43860 , p_source_33 => l_array_source_33(Idx)
43861 , p_source_34 => l_array_source_34(Idx)
43862 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
43863 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
43864 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
43865 , p_source_39 => l_array_source_39(Idx)
43866 , p_source_40 => l_array_source_40(Idx)
43867 , p_source_41 => l_array_source_41(Idx)
43868 , p_source_42 => l_array_source_42(Idx)
43869 , p_source_42_meaning => l_array_source_42_meaning(Idx)
43870 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
43871 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
43872 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
43873 , p_source_46 => l_array_source_46(Idx)
43874 , p_source_47 => l_array_source_47(Idx)
43875 , p_source_48 => l_array_source_48(Idx)
43876 , p_source_49 => l_array_source_49(Idx)
43877 , p_source_50 => l_array_source_50(Idx)
43878 , p_source_51 => l_array_source_51(Idx)
43879 , p_source_52 => l_array_source_52(Idx)
43880 , p_source_55 => l_array_source_55(Idx)
43881 , p_source_64 => l_array_source_64(Idx)
43882 , p_source_65 => l_array_source_65(Idx)
43883 , p_source_66 => l_array_source_66(Idx)
43884 , p_source_67 => l_array_source_67(Idx)
43885 , p_source_68 => l_array_source_68(Idx)
43886 , p_source_69 => l_array_source_69(Idx)
43887 );
43888 If(l_balance_type_code = 'A') THEN
43889 l_actual_gain_loss_ref := l_gain_or_loss_ref;
43890 END IF;
43891
43892 --
43893
43894 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
43895 -- or secondary ledger that has different currency with primary
43896 -- or alc that is calculated by sla
43897 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
43898 (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'))
43899
43900 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
43901 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
43902 AND (l_actual_flag = 'A')) THEN
43903 XLA_AE_LINES_PKG.CreateGainOrLossLines(
43904 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
43905 ,p_application_id => p_application_id
43906 ,p_amb_context_code => 'DEFAULT'
43907 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
43908 ,p_event_class_code => C_EVENT_CLASS_CODE
43909 ,p_event_type_code => C_EVENT_TYPE_CODE
43910
43911 ,p_gain_ccid => -1
43912 ,p_loss_ccid => -1
43913
43914 ,p_actual_flag => l_actual_flag
43915 ,p_enc_flag => null
43916 ,p_actual_g_l_ref => l_actual_gain_loss_ref
43917 ,p_enc_g_l_ref => null
43918 );
43919 END IF;
43920 END IF;
43921 END IF;
43922
43923 ELSE
43924 --
43925 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
43926 --
43927 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
43928 trace
43929 (p_msg => 'Trancaction revesal option is Y'
43930 ,p_level => C_LEVEL_STATEMENT
43931 ,p_module => l_log_module);
43932 END IF;
43933 END IF;
43934
43935 END LOOP;
43936 l_result := XLA_AE_LINES_PKG.InsertLines ;
43937 end loop;
43938 close line_cur;
43939
43940
43941 --
43942 -- insert headers into xla_ae_headers_gt table
43943 --
43944 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
43945
43946 -- insert into errors table here.
43947
43948 END LOOP;
43949
43950 --
43951 -- 4865292
43952 --
43953 -- Compare g_hdr_extract_count with event count in
43954 -- CreateHeadersAndLines.
43955 --
43956 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
43957
43958 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
43959 trace (p_msg => '# rows extracted from header extract objects '
43960 || ' (running total): '
43961 || g_hdr_extract_count
43962 ,p_level => C_LEVEL_STATEMENT
43963 ,p_module => l_log_module);
43964 END IF;
43965
43966 CLOSE header_cur;
43967 --
43968
43969 --
43970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43971 trace
43972 (p_msg => 'END of EventClass_62'
43973 ,p_level => C_LEVEL_PROCEDURE
43974 ,p_module => l_log_module);
43975 END IF;
43976 --
43977 RETURN l_result;
43978 EXCEPTION
43979 WHEN xla_exceptions_pkg.application_exception THEN
43980
43981 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
43982
43983
43984 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
43985
43986 RAISE;
43987
43988 WHEN NO_DATA_FOUND THEN
43989
43990 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
43991 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
43992
43993 FOR header_record IN header_cur
43994 LOOP
43995 l_array_header_events(header_record.event_id) := header_record.event_id;
43996 END LOOP;
43997
43998 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
43999 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
44000
44001 fnd_file.put_line(fnd_file.LOG, ' ');
44002 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
44003 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
44004 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
44005
44006 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
44007 LOOP
44008 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
44009 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
44010 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
44011 END IF;
44012 END LOOP;
44013
44014 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
44015 fnd_file.put_line(fnd_file.LOG, ' ');
44016
44017
44018 xla_exceptions_pkg.raise_message
44019 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_62');
44020
44021
44022 WHEN OTHERS THEN
44023 xla_exceptions_pkg.raise_message
44024 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_62');
44025 END EventClass_62;
44026 --
44027
44028 ---------------------------------------
44029 --
44030 -- PRIVATE PROCEDURE
44031 -- insert_sources_63
44032 --
44033 ----------------------------------------
44034 --
44035 PROCEDURE insert_sources_63(
44036 p_target_ledger_id IN NUMBER
44037 , p_language IN VARCHAR2
44038 , p_sla_ledger_id IN NUMBER
44039 , p_pad_start_date IN DATE
44040 , p_pad_end_date IN DATE
44041 )
44042 IS
44043
44044 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS_ALL';
44045 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS';
44046 p_apps_owner VARCHAR2(30);
44047 l_log_module VARCHAR2(240);
44048 BEGIN
44049 IF g_log_enabled THEN
44050 l_log_module := C_DEFAULT_MODULE||'.insert_sources_63';
44051 END IF;
44052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44053
44054 trace
44055 (p_msg => 'BEGIN of insert_sources_63'
44056 ,p_level => C_LEVEL_PROCEDURE
44057 ,p_module => l_log_module);
44058
44059 END IF;
44060
44061 -- select APPS owner
44062 SELECT oracle_username
44063 INTO p_apps_owner
44064 FROM fnd_oracle_userid
44065 WHERE read_only_flag = 'U'
44066 ;
44067
44068 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
44069 trace
44070 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
44071 ' - p_language = '||p_language||
44072 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
44073 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
44074 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
44075 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
44076 ,p_level => C_LEVEL_STATEMENT
44077 ,p_module => l_log_module);
44078 END IF;
44079
44080
44081 --
44082 INSERT INTO xla_diag_sources --hdr2
44083 (
44084 event_id
44085 , ledger_id
44086 , sla_ledger_id
44087 , description_language
44088 , object_name
44089 , object_type_code
44090 , line_number
44091 , source_application_id
44092 , source_type_code
44093 , source_code
44094 , source_value
44095 , source_meaning
44096 , created_by
44097 , creation_date
44098 , last_update_date
44099 , last_updated_by
44100 , last_update_login
44101 , program_update_date
44102 , program_application_id
44103 , program_id
44104 , request_id
44105 )
44106 SELECT
44107 event_id
44108 , p_target_ledger_id
44109 , p_sla_ledger_id
44110 , p_language
44111 , object_name
44112 , object_type_code
44113 , line_number
44114 , source_application_id
44115 , source_type_code
44116 , source_code
44117 , SUBSTR(source_value ,1,1996)
44118 , SUBSTR(source_meaning ,1,200)
44119 , xla_environment_pkg.g_Usr_Id
44120 , TRUNC(SYSDATE)
44121 , TRUNC(SYSDATE)
44122 , xla_environment_pkg.g_Usr_Id
44123 , xla_environment_pkg.g_Login_Id
44124 , TRUNC(SYSDATE)
44125 , xla_environment_pkg.g_Prog_Appl_Id
44126 , xla_environment_pkg.g_Prog_Id
44127 , xla_environment_pkg.g_Req_Id
44128 FROM (
44129 SELECT xet.event_id event_id
44130 , 0 line_number
44131 , CASE r
44132 WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44133 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44134 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44135 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44136 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44137 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44138 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44139 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44140 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44141 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44142 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44143 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V'
44144
44145 ELSE null
44146 END object_name
44147 , CASE r
44148 WHEN 1 THEN 'HEADER'
44149 WHEN 2 THEN 'HEADER'
44150 WHEN 3 THEN 'HEADER'
44151 WHEN 4 THEN 'HEADER'
44152 WHEN 5 THEN 'HEADER'
44153 WHEN 6 THEN 'HEADER'
44154 WHEN 7 THEN 'HEADER'
44155 WHEN 8 THEN 'HEADER'
44156 WHEN 9 THEN 'HEADER'
44157 WHEN 10 THEN 'HEADER'
44158 WHEN 11 THEN 'HEADER'
44159 WHEN 12 THEN 'HEADER'
44160
44161 ELSE null
44162 END object_type_code
44163 , CASE r
44164 WHEN 1 THEN '200'
44165 WHEN 2 THEN '200'
44166 WHEN 3 THEN '200'
44167 WHEN 4 THEN '200'
44168 WHEN 5 THEN '200'
44169 WHEN 6 THEN '200'
44170 WHEN 7 THEN '200'
44171 WHEN 8 THEN '200'
44172 WHEN 9 THEN '200'
44173 WHEN 10 THEN '200'
44174 WHEN 11 THEN '200'
44175 WHEN 12 THEN '200'
44176
44177 ELSE null
44178 END source_application_id
44179 , 'S' source_type_code
44180 , CASE r
44181 WHEN 1 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE'
44182 WHEN 2 THEN 'AI_INVOICE_ID'
44183 WHEN 3 THEN 'AI_INVOICE_CURRENCY_CODE'
44184 WHEN 4 THEN 'INV_EXCHANGE_DATE'
44185 WHEN 5 THEN 'INV_EXCHANGE_RATE'
44186 WHEN 6 THEN 'INV_EXCHANGE_RATE_TYPE'
44187 WHEN 7 THEN 'AI_VENDOR_ID'
44188 WHEN 8 THEN 'AI_VENDOR_SITE_ID'
44189 WHEN 9 THEN 'THIRD_PARTY_TYPE'
44190 WHEN 10 THEN 'INV_DOC_SEQUENCE_CATEGORY'
44191 WHEN 11 THEN 'INV_DOC_SEQUENCE_IDENTIFIER'
44192 WHEN 12 THEN 'INV_DOC_SEQUENCE_VALUE'
44193
44194 ELSE null
44195 END source_code
44196 , CASE r
44197 WHEN 1 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
44198 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_ID)
44199 WHEN 3 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
44200 WHEN 4 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
44201 WHEN 5 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
44202 WHEN 6 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
44203 WHEN 7 THEN TO_CHAR(h2.AI_VENDOR_ID)
44204 WHEN 8 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
44205 WHEN 9 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
44206 WHEN 10 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
44207 WHEN 11 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
44208 WHEN 12 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
44209
44210 ELSE null
44211 END source_value
44212 , CASE r
44213 WHEN 1 THEN fvl13.meaning
44214
44215 ELSE null
44216 END source_meaning
44217 FROM xla_events_gt xet
44218 , AP_INVOICE_EXTRACT_HEADER_V h2
44219 , fnd_lookup_values fvl13
44220 ,(select rownum r from all_objects where rownum <= 12 and owner = p_apps_owner)
44221 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
44222 AND xet.event_class_code = C_EVENT_CLASS_CODE
44223 AND h2.event_id = xet.event_id
44224 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
44225 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
44226 AND fvl13.view_application_id(+) = 200
44227 AND fvl13.language(+) = USERENV('LANG')
44228
44229 )
44230 ;
44231 --
44232 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
44233
44234 trace
44235 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
44236 ,p_level => C_LEVEL_STATEMENT
44237 ,p_module => l_log_module);
44238
44239 END IF;
44240 --
44241
44242
44243
44244 --
44245 INSERT INTO xla_diag_sources --line2
44246 (
44247 event_id
44248 , ledger_id
44249 , sla_ledger_id
44250 , description_language
44251 , object_name
44252 , object_type_code
44253 , line_number
44254 , source_application_id
44255 , source_type_code
44256 , source_code
44257 , source_value
44258 , source_meaning
44259 , created_by
44260 , creation_date
44261 , last_update_date
44262 , last_updated_by
44263 , last_update_login
44264 , program_update_date
44265 , program_application_id
44266 , program_id
44267 , request_id
44268 )
44269 SELECT event_id
44270 , p_target_ledger_id
44271 , p_sla_ledger_id
44272 , p_language
44273 , object_name
44274 , object_type_code
44275 , line_number
44276 , source_application_id
44277 , source_type_code
44278 , source_code
44279 , SUBSTR(source_value,1,1996)
44280 , SUBSTR(source_meaning ,1,200)
44281 , xla_environment_pkg.g_Usr_Id
44282 , TRUNC(SYSDATE)
44283 , TRUNC(SYSDATE)
44284 , xla_environment_pkg.g_Usr_Id
44285 , xla_environment_pkg.g_Login_Id
44286 , TRUNC(SYSDATE)
44287 , xla_environment_pkg.g_Prog_Appl_Id
44288 , xla_environment_pkg.g_Prog_Id
44289 , xla_environment_pkg.g_Req_Id
44290 FROM (
44291 SELECT xet.event_id event_id
44292 , l1.line_number line_number
44293 , CASE r
44294 WHEN 1 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44295 WHEN 2 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44296 WHEN 3 THEN 'FV_XLA_AP_REF_V'
44297 WHEN 4 THEN 'FV_XLA_AP_REF_V'
44298 WHEN 5 THEN 'FV_XLA_AP_REF_V'
44299 WHEN 6 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44300 WHEN 7 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44301 WHEN 8 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44302 WHEN 9 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44303 WHEN 10 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44304 WHEN 11 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44305 WHEN 12 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44306 WHEN 13 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44307 WHEN 14 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44308 WHEN 15 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44309 WHEN 16 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44310 WHEN 17 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44311 WHEN 18 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44312 WHEN 19 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44313 WHEN 20 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44314 WHEN 21 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44315 WHEN 22 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44316 WHEN 23 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44317 WHEN 24 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44318 WHEN 25 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44319 WHEN 26 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44320 WHEN 27 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44321 WHEN 28 THEN 'ZX_AP_DEF_TAX_EXTRACT_V'
44322 WHEN 29 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V'
44323 WHEN 30 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44324 WHEN 31 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44325 WHEN 32 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44326 WHEN 33 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44327 WHEN 34 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44328 WHEN 35 THEN 'AP_EXTRACT_INVOICE_DTLS_BC_V'
44329
44330 ELSE null
44331 END object_name
44332 , CASE r
44333 WHEN 1 THEN 'LINE'
44334 WHEN 2 THEN 'LINE'
44335 WHEN 3 THEN 'LINE'
44336 WHEN 4 THEN 'LINE'
44337 WHEN 5 THEN 'LINE'
44338 WHEN 6 THEN 'LINE'
44339 WHEN 7 THEN 'LINE'
44340 WHEN 8 THEN 'LINE'
44341 WHEN 9 THEN 'LINE'
44342 WHEN 10 THEN 'LINE'
44343 WHEN 11 THEN 'LINE'
44344 WHEN 12 THEN 'LINE'
44345 WHEN 13 THEN 'LINE'
44346 WHEN 14 THEN 'LINE'
44347 WHEN 15 THEN 'LINE'
44348 WHEN 16 THEN 'LINE'
44349 WHEN 17 THEN 'LINE'
44350 WHEN 18 THEN 'LINE'
44351 WHEN 19 THEN 'LINE'
44352 WHEN 20 THEN 'LINE'
44353 WHEN 21 THEN 'LINE'
44354 WHEN 22 THEN 'LINE'
44355 WHEN 23 THEN 'LINE'
44356 WHEN 24 THEN 'LINE'
44357 WHEN 25 THEN 'LINE'
44358 WHEN 26 THEN 'LINE'
44359 WHEN 27 THEN 'LINE'
44360 WHEN 28 THEN 'LINE'
44361 WHEN 29 THEN 'LINE'
44362 WHEN 30 THEN 'LINE'
44363 WHEN 31 THEN 'LINE'
44364 WHEN 32 THEN 'LINE'
44365 WHEN 33 THEN 'LINE'
44366 WHEN 34 THEN 'LINE'
44367 WHEN 35 THEN 'LINE'
44368
44369 ELSE null
44370 END object_type_code
44371 , CASE r
44372 WHEN 1 THEN '200'
44373 WHEN 2 THEN '200'
44374 WHEN 3 THEN '8901'
44375 WHEN 4 THEN '8901'
44376 WHEN 5 THEN '8901'
44377 WHEN 6 THEN '200'
44378 WHEN 7 THEN '200'
44379 WHEN 8 THEN '200'
44380 WHEN 9 THEN '200'
44381 WHEN 10 THEN '200'
44382 WHEN 11 THEN '200'
44383 WHEN 12 THEN '200'
44384 WHEN 13 THEN '200'
44385 WHEN 14 THEN '200'
44386 WHEN 15 THEN '200'
44387 WHEN 16 THEN '200'
44388 WHEN 17 THEN '200'
44389 WHEN 18 THEN '200'
44390 WHEN 19 THEN '200'
44391 WHEN 20 THEN '200'
44392 WHEN 21 THEN '200'
44393 WHEN 22 THEN '200'
44394 WHEN 23 THEN '200'
44395 WHEN 24 THEN '200'
44396 WHEN 25 THEN '200'
44397 WHEN 26 THEN '200'
44398 WHEN 27 THEN '200'
44399 WHEN 28 THEN '200'
44400 WHEN 29 THEN '200'
44401 WHEN 30 THEN '200'
44402 WHEN 31 THEN '200'
44403 WHEN 32 THEN '200'
44404 WHEN 33 THEN '200'
44405 WHEN 34 THEN '200'
44406 WHEN 35 THEN '200'
44407
44408 ELSE null
44409 END source_application_id
44410 , 'S' source_type_code
44411 , CASE r
44412 WHEN 1 THEN 'AID_DESCRIPTION'
44413 WHEN 2 THEN 'AID_DIST_CCID'
44414 WHEN 3 THEN 'FEDERAL_FUND_CATEGORY'
44415 WHEN 4 THEN 'FEDERAL_FUND_EXPIRED_STATUS'
44416 WHEN 5 THEN 'FEDERAL_FUND_CAT_DESC'
44417 WHEN 6 THEN 'DIST_ACCOUNT_REVERSAL_OPTION'
44418 WHEN 7 THEN 'DISTRIBUTION_LINK_TYPE'
44419 WHEN 8 THEN 'ALLOC_TO_MAIN_DIST_ID'
44420 WHEN 9 THEN 'BUS_FLOW_AP_APP_ID'
44421 WHEN 10 THEN 'BUS_FLOW_INV_DIST_TYPE'
44422 WHEN 11 THEN 'BUS_FLOW_INV_ENTITY_CODE'
44423 WHEN 12 THEN 'BUS_FLOW_INV_DIST_ID'
44424 WHEN 13 THEN 'BUS_FLOW_INV_ID'
44425 WHEN 14 THEN 'AID_INVOICE_DIST_ID'
44426 WHEN 15 THEN 'UPG_ENC_CR_CCID'
44427 WHEN 16 THEN 'UPG_ENC_CR_AMT'
44428 WHEN 17 THEN 'UPG_ENC_CR_BASE_AMT'
44429 WHEN 18 THEN 'UPG_ENC_DR_CCID'
44430 WHEN 19 THEN 'UPG_ENC_DR_AMT'
44431 WHEN 20 THEN 'UPG_ENC_DR_BASE_AMT'
44432 WHEN 21 THEN 'UPG_AP_ENCUM_OPTION'
44433 WHEN 22 THEN 'DEFERRED_END_DATE'
44434 WHEN 23 THEN 'DEFERRED_OPTION'
44435 WHEN 24 THEN 'DEFERRED_START_DATE'
44436 WHEN 25 THEN 'OVERRIDE_ACCTD_AMT_FLAG'
44437 WHEN 26 THEN 'AID_PARENT_REVERSAL_ID'
44438 WHEN 27 THEN 'AID_STAT_AMOUNT'
44439 WHEN 28 THEN 'TAX_LINE_ID'
44440 WHEN 29 THEN 'REC_NREC_TAX_DIST_ID'
44441 WHEN 30 THEN 'SUMMARY_TAX_LINE_ID'
44442 WHEN 31 THEN 'UPG_CR_ENC_TYPE_ID'
44443 WHEN 32 THEN 'UPG_DR_ENC_TYPE_ID'
44444 WHEN 33 THEN 'AID_AMOUNT'
44445 WHEN 34 THEN 'INV_DIST_BASE_AMOUNT'
44446 WHEN 35 THEN 'POD_PO_DISTRIBUTION_ID'
44447
44448 ELSE null
44449 END source_code
44450 , CASE r
44451 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
44452 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
44453 WHEN 3 THEN TO_CHAR(l3.FEDERAL_FUND_CATEGORY)
44454 WHEN 4 THEN TO_CHAR(l3.FEDERAL_FUND_EXPIRED_STATUS)
44455 WHEN 5 THEN TO_CHAR(l3.FEDERAL_FUND_CAT_DESC)
44456 WHEN 6 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
44457 WHEN 7 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
44458 WHEN 8 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
44459 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
44460 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
44461 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
44462 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
44463 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
44464 WHEN 14 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
44465 WHEN 15 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
44466 WHEN 16 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
44467 WHEN 17 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
44468 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
44469 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
44470 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
44471 WHEN 21 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
44472 WHEN 22 THEN TO_CHAR(l1.DEFERRED_END_DATE)
44473 WHEN 23 THEN TO_CHAR(l1.DEFERRED_OPTION)
44474 WHEN 24 THEN TO_CHAR(l1.DEFERRED_START_DATE)
44475 WHEN 25 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
44476 WHEN 26 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
44477 WHEN 27 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
44478 WHEN 28 THEN TO_CHAR(l4.TAX_LINE_ID)
44479 WHEN 29 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
44480 WHEN 30 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
44481 WHEN 31 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
44482 WHEN 32 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
44483 WHEN 33 THEN TO_CHAR(l1.AID_AMOUNT)
44484 WHEN 34 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
44485 WHEN 35 THEN TO_CHAR(l1.POD_PO_DISTRIBUTION_ID)
44486
44487 ELSE null
44488 END source_value
44489 , CASE r
44490 WHEN 25 THEN fvl42.meaning
44491
44492 ELSE null
44493 END source_meaning
44494 FROM xla_events_gt xet
44495 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
44496 , FV_XLA_AP_REF_V l3
44497 , ZX_AP_DEF_TAX_EXTRACT_V l4
44498 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
44499 , fnd_lookup_values fvl42
44500 , (select rownum r from all_objects where rownum <= 35 and owner = p_apps_owner)
44501 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
44502 AND xet.event_class_code = C_EVENT_CLASS_CODE
44503 AND l1.event_id = xet.event_id
44504 AND l3.federal_event_id (+) = l1.event_id and l3.federal_line_number (+) = l1.line_number AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+) AND fvl42.lookup_type(+) = 'YES_NO'
44505 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
44506 AND fvl42.view_application_id(+) = 0
44507 AND fvl42.language(+) = USERENV('LANG')
44508
44509 )
44510 ;
44511 --
44512 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
44513
44514 trace
44515 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
44516 ,p_level => C_LEVEL_STATEMENT
44517 ,p_module => l_log_module);
44518
44519 END IF;
44520
44521
44522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44523 trace
44524 (p_msg => 'END of insert_sources_63'
44525 ,p_level => C_LEVEL_PROCEDURE
44526 ,p_module => l_log_module);
44527 END IF;
44528 EXCEPTION
44529 WHEN xla_exceptions_pkg.application_exception THEN
44530 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
44531 trace
44532 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
44533 ,p_level => C_LEVEL_EXCEPTION
44534 ,p_module => l_log_module);
44535 END IF;
44536 RAISE;
44537 WHEN OTHERS THEN
44538 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
44539 trace
44540 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
44541 ,p_level => C_LEVEL_EXCEPTION
44542 ,p_module => l_log_module);
44543 END IF;
44544 xla_exceptions_pkg.raise_message
44545 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.insert_sources_63');
44546 END insert_sources_63;
44547 --
44548
44549 ---------------------------------------
44550 --
44551 -- PRIVATE FUNCTION
44552 -- EventClass_63
44553 --
44554 ----------------------------------------
44555 --
44556 FUNCTION EventClass_63
44557 (p_application_id IN NUMBER
44558 ,p_base_ledger_id IN NUMBER
44559 ,p_target_ledger_id IN NUMBER
44560 ,p_language IN VARCHAR2
44561 ,p_currency_code IN VARCHAR2
44562 ,p_sla_ledger_id IN NUMBER
44563 ,p_pad_start_date IN DATE
44564 ,p_pad_end_date IN DATE
44565 ,p_primary_ledger_id IN NUMBER)
44566 RETURN BOOLEAN IS
44567 --
44568 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS_ALL';
44569 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PREPAYMENTS';
44570
44571 l_calculate_acctd_flag VARCHAR2(1) :='N';
44572 l_calculate_g_l_flag VARCHAR2(1) :='N';
44573 --
44574 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44575 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44576 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
44577 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
44578 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44579 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
44580 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
44581 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44582 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44583 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44584 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44585 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44586 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44587 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
44588 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
44589 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
44590 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
44591 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
44592 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44593 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44594 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44595 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
44596 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
44597 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
44598 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
44599 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
44600
44601 l_event_id NUMBER;
44602 l_previous_event_id NUMBER;
44603 l_first_event_id NUMBER;
44604 l_last_event_id NUMBER;
44605
44606 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
44607 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44608 --
44609 --
44610 l_result BOOLEAN := TRUE;
44611 l_rows NUMBER := 1000;
44612 l_event_type_name VARCHAR2(80) := 'All';
44613 l_event_class_name VARCHAR2(80) := 'Prepayments';
44614 l_description VARCHAR2(4000);
44615 l_transaction_reversal NUMBER;
44616 l_ae_header_id NUMBER;
44617 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
44618 l_log_module VARCHAR2(240);
44619 --
44620 l_acct_reversal_source VARCHAR2(30);
44621 l_trx_reversal_source VARCHAR2(30);
44622
44623 l_continue_with_lines BOOLEAN := TRUE;
44624 --
44625 l_acc_rev_gl_date_source DATE; -- 4262811
44626 --
44627 type t_array_event_id is table of number index by binary_integer;
44628
44629 l_rec_array_event t_rec_array_event;
44630 l_null_rec_array_event t_rec_array_event;
44631 l_array_ae_header_id xla_number_array_type;
44632 l_actual_flag VARCHAR2(1) := NULL;
44633 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
44634 l_balance_type_code VARCHAR2(1) :=NULL;
44635 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
44636
44637 --
44638 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
44639 --
44640
44641 TYPE t_array_source_13 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
44642 TYPE t_array_source_20 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
44643 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
44644 TYPE t_array_source_36 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
44645 TYPE t_array_source_37 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
44646 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
44647 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
44648 TYPE t_array_source_44 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
44649 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
44650 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
44651 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
44652 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
44653
44654 TYPE t_array_source_1 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
44655 TYPE t_array_source_2 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
44656 TYPE t_array_source_4 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
44657 TYPE t_array_source_5 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
44658 TYPE t_array_source_6 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CAT_DESC%TYPE INDEX BY BINARY_INTEGER;
44659 TYPE t_array_source_15 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
44660 TYPE t_array_source_17 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
44661 TYPE t_array_source_19 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
44662 TYPE t_array_source_21 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
44663 TYPE t_array_source_22 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
44664 TYPE t_array_source_23 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
44665 TYPE t_array_source_24 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
44666 TYPE t_array_source_25 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
44667 TYPE t_array_source_26 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
44668 TYPE t_array_source_27 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
44669 TYPE t_array_source_28 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
44670 TYPE t_array_source_30 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
44671 TYPE t_array_source_31 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
44672 TYPE t_array_source_32 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
44673 TYPE t_array_source_33 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
44674 TYPE t_array_source_34 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
44675 TYPE t_array_source_39 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
44676 TYPE t_array_source_40 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
44677 TYPE t_array_source_41 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
44678 TYPE t_array_source_42 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
44679 TYPE t_array_source_46 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
44680 TYPE t_array_source_47 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
44681 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
44682 TYPE t_array_source_49 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
44683 TYPE t_array_source_50 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
44684 TYPE t_array_source_51 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
44685 TYPE t_array_source_52 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
44686 TYPE t_array_source_55 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
44687 TYPE t_array_source_56 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
44688 TYPE t_array_source_70 IS TABLE OF AP_EXTRACT_INVOICE_DTLS_BC_V.POD_PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
44689
44690 l_array_source_13 t_array_source_13;
44691 l_array_source_13_meaning t_array_lookup_meaning;
44692 l_array_source_20 t_array_source_20;
44693 l_array_source_29 t_array_source_29;
44694 l_array_source_36 t_array_source_36;
44695 l_array_source_37 t_array_source_37;
44696 l_array_source_38 t_array_source_38;
44697 l_array_source_43 t_array_source_43;
44698 l_array_source_44 t_array_source_44;
44699 l_array_source_45 t_array_source_45;
44700 l_array_source_71 t_array_source_71;
44701 l_array_source_72 t_array_source_72;
44702 l_array_source_73 t_array_source_73;
44703
44704 l_array_source_1 t_array_source_1;
44705 l_array_source_2 t_array_source_2;
44706 l_array_source_4 t_array_source_4;
44707 l_array_source_5 t_array_source_5;
44708 l_array_source_6 t_array_source_6;
44709 l_array_source_15 t_array_source_15;
44710 l_array_source_17 t_array_source_17;
44711 l_array_source_19 t_array_source_19;
44712 l_array_source_21 t_array_source_21;
44713 l_array_source_22 t_array_source_22;
44714 l_array_source_23 t_array_source_23;
44715 l_array_source_24 t_array_source_24;
44716 l_array_source_25 t_array_source_25;
44717 l_array_source_26 t_array_source_26;
44718 l_array_source_27 t_array_source_27;
44719 l_array_source_28 t_array_source_28;
44720 l_array_source_30 t_array_source_30;
44721 l_array_source_31 t_array_source_31;
44722 l_array_source_32 t_array_source_32;
44723 l_array_source_33 t_array_source_33;
44724 l_array_source_34 t_array_source_34;
44725 l_array_source_39 t_array_source_39;
44726 l_array_source_40 t_array_source_40;
44727 l_array_source_41 t_array_source_41;
44728 l_array_source_42 t_array_source_42;
44729 l_array_source_42_meaning t_array_lookup_meaning;
44730 l_array_source_46 t_array_source_46;
44731 l_array_source_47 t_array_source_47;
44732 l_array_source_48 t_array_source_48;
44733 l_array_source_49 t_array_source_49;
44734 l_array_source_50 t_array_source_50;
44735 l_array_source_51 t_array_source_51;
44736 l_array_source_52 t_array_source_52;
44737 l_array_source_55 t_array_source_55;
44738 l_array_source_56 t_array_source_56;
44739 l_array_source_70 t_array_source_70;
44740
44741 --
44742 CURSOR header_cur
44743 IS
44744 SELECT /*+ leading(xet) cardinality(xet,1) */
44745 -- Event Class Code: PREPAYMENTS
44746 xet.entity_id
44747 ,xet.legal_entity_id
44748 ,xet.entity_code
44749 ,xet.transaction_number
44750 ,xet.event_id
44751 ,xet.event_class_code
44752 ,xet.event_type_code
44753 ,xet.event_number
44754 ,xet.event_date
44755 ,xet.transaction_date
44756 ,xet.reference_num_1
44757 ,xet.reference_num_2
44758 ,xet.reference_num_3
44759 ,xet.reference_num_4
44760 ,xet.reference_char_1
44761 ,xet.reference_char_2
44762 ,xet.reference_char_3
44763 ,xet.reference_char_4
44764 ,xet.reference_date_1
44765 ,xet.reference_date_2
44766 ,xet.reference_date_3
44767 ,xet.reference_date_4
44768 ,xet.event_created_by
44769 ,xet.budgetary_control_flag
44770 , h2.AI_INVOICE_TYPE_LOOKUP_CODE source_13
44771 , fvl13.meaning source_13_meaning
44772 , h2.AI_INVOICE_ID source_20
44773 , h2.AI_INVOICE_CURRENCY_CODE source_29
44774 , h2.INV_EXCHANGE_DATE source_36
44775 , h2.INV_EXCHANGE_RATE source_37
44776 , h2.INV_EXCHANGE_RATE_TYPE source_38
44777 , h2.AI_VENDOR_ID source_43
44778 , h2.AI_VENDOR_SITE_ID source_44
44779 , h2.THIRD_PARTY_TYPE source_45
44780 , h2.INV_DOC_SEQUENCE_CATEGORY source_71
44781 , h2.INV_DOC_SEQUENCE_IDENTIFIER source_72
44782 , h2.INV_DOC_SEQUENCE_VALUE source_73
44783 FROM xla_events_gt xet
44784 , AP_INVOICE_EXTRACT_HEADER_V h2
44785 , fnd_lookup_values fvl13
44786 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
44787 and xet.event_class_code = C_EVENT_CLASS_CODE
44788 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
44789 AND fvl13.lookup_type(+) = 'INVOICE TYPE'
44790 AND fvl13.lookup_code(+) = h2.AI_INVOICE_TYPE_LOOKUP_CODE
44791 AND fvl13.view_application_id(+) = 200
44792 AND fvl13.language(+) = USERENV('LANG')
44793
44794 ORDER BY event_id
44795 ;
44796
44797
44798 --
44799 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
44800 IS
44801 SELECT /*+ leading(xet) cardinality(xet,1) */
44802 -- Event Class Code: PREPAYMENTS
44803 xet.entity_id
44804 ,xet.legal_entity_id
44805 ,xet.entity_code
44806 ,xet.transaction_number
44807 ,xet.event_id
44808 ,xet.event_class_code
44809 ,xet.event_type_code
44810 ,xet.event_number
44811 ,xet.event_date
44812 ,xet.transaction_date
44813 ,xet.reference_num_1
44814 ,xet.reference_num_2
44815 ,xet.reference_num_3
44816 ,xet.reference_num_4
44817 ,xet.reference_char_1
44818 ,xet.reference_char_2
44819 ,xet.reference_char_3
44820 ,xet.reference_char_4
44821 ,xet.reference_date_1
44822 ,xet.reference_date_2
44823 ,xet.reference_date_3
44824 ,xet.reference_date_4
44825 ,xet.event_created_by
44826 ,xet.budgetary_control_flag
44827 , l1.LINE_NUMBER
44828 , l1.AID_DESCRIPTION source_1
44829 , l1.AID_DIST_CCID source_2
44830 , l3.FEDERAL_FUND_CATEGORY source_4
44831 , l3.FEDERAL_FUND_EXPIRED_STATUS source_5
44832 , l3.FEDERAL_FUND_CAT_DESC source_6
44833 , l1.DIST_ACCOUNT_REVERSAL_OPTION source_15
44834 , l1.DISTRIBUTION_LINK_TYPE source_17
44835 , l1.ALLOC_TO_MAIN_DIST_ID source_19
44836 , l1.BUS_FLOW_AP_APP_ID source_21
44837 , l1.BUS_FLOW_INV_DIST_TYPE source_22
44838 , l1.BUS_FLOW_INV_ENTITY_CODE source_23
44839 , l1.BUS_FLOW_INV_DIST_ID source_24
44840 , l1.BUS_FLOW_INV_ID source_25
44841 , l1.AID_INVOICE_DIST_ID source_26
44842 , l1.UPG_ENC_CR_CCID source_27
44843 , l1.UPG_ENC_CR_AMT source_28
44844 , l1.UPG_ENC_CR_BASE_AMT source_30
44845 , l1.UPG_ENC_DR_CCID source_31
44846 , l1.UPG_ENC_DR_AMT source_32
44847 , l1.UPG_ENC_DR_BASE_AMT source_33
44848 , l1.UPG_AP_ENCUM_OPTION source_34
44849 , l1.DEFERRED_END_DATE source_39
44850 , l1.DEFERRED_OPTION source_40
44851 , l1.DEFERRED_START_DATE source_41
44852 , l1.OVERRIDE_ACCTD_AMT_FLAG source_42
44853 , fvl42.meaning source_42_meaning
44854 , l1.AID_PARENT_REVERSAL_ID source_46
44855 , l1.AID_STAT_AMOUNT source_47
44856 , l4.TAX_LINE_ID source_48
44857 , l5.REC_NREC_TAX_DIST_ID source_49
44858 , l1.SUMMARY_TAX_LINE_ID source_50
44859 , l1.UPG_CR_ENC_TYPE_ID source_51
44860 , l1.UPG_DR_ENC_TYPE_ID source_52
44861 , l1.AID_AMOUNT source_55
44862 , l1.INV_DIST_BASE_AMOUNT source_56
44863 , l1.POD_PO_DISTRIBUTION_ID source_70
44864 FROM xla_events_gt xet
44865 , AP_EXTRACT_INVOICE_DTLS_BC_V l1
44866 , FV_XLA_AP_REF_V l3
44867 , ZX_AP_DEF_TAX_EXTRACT_V l4
44868 , ZX_AP_TAX_JRNL_LINE_DESC_V l5
44869 , fnd_lookup_values fvl42
44870 WHERE xet.event_id between x_first_event_id and x_last_event_id
44871 and xet.event_date between p_pad_start_date and p_pad_end_date
44872 and xet.event_class_code = C_EVENT_CLASS_CODE
44873 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
44874 AND l3.federal_event_id (+) = l1.event_id AND l3.federal_line_number (+) = l1.line_number AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+) AND fvl42.lookup_type(+) = 'YES_NO'
44875 AND fvl42.lookup_code(+) = l1.OVERRIDE_ACCTD_AMT_FLAG
44876 AND fvl42.view_application_id(+) = 0
44877 AND fvl42.language(+) = USERENV('LANG')
44878 ;
44879
44880 --
44881 BEGIN
44882 IF g_log_enabled THEN
44883 l_log_module := C_DEFAULT_MODULE||'.EventClass_63';
44884 END IF;
44885 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44886 trace
44887 (p_msg => 'BEGIN of EventClass_63'
44888 ,p_level => C_LEVEL_PROCEDURE
44889 ,p_module => l_log_module);
44890 END IF;
44891
44892 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
44893 trace
44894 (p_msg => 'p_application_id = '||p_application_id||
44895 ' - p_base_ledger_id = '||p_base_ledger_id||
44896 ' - p_target_ledger_id = '||p_target_ledger_id||
44897 ' - p_language = '||p_language||
44898 ' - p_currency_code = '||p_currency_code||
44899 ' - p_sla_ledger_id = '||p_sla_ledger_id
44900 ,p_level => C_LEVEL_STATEMENT
44901 ,p_module => l_log_module);
44902 END IF;
44903 --
44904 -- initialze arrays
44905 --
44906 g_array_event.DELETE;
44907 l_rec_array_event := l_null_rec_array_event;
44908 --
44909 --------------------------------------
44910 -- 4262811 Initialze MPA Line Number
44911 --------------------------------------
44912 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
44913
44914 --
44915
44916 --
44917 OPEN header_cur;
44918 --
44919 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
44920 trace
44921 (p_msg => 'SQL - FETCH header_cur'
44922 ,p_level => C_LEVEL_STATEMENT
44923 ,p_module => l_log_module);
44924 END IF;
44925 --
44926 LOOP
44927 FETCH header_cur BULK COLLECT INTO
44928 l_array_entity_id
44929 , l_array_legal_entity_id
44930 , l_array_entity_code
44931 , l_array_transaction_num
44932 , l_array_event_id
44933 , l_array_class_code
44934 , l_array_event_type
44935 , l_array_event_number
44936 , l_array_event_date
44937 , l_array_transaction_date
44938 , l_array_reference_num_1
44939 , l_array_reference_num_2
44940 , l_array_reference_num_3
44941 , l_array_reference_num_4
44942 , l_array_reference_char_1
44943 , l_array_reference_char_2
44944 , l_array_reference_char_3
44945 , l_array_reference_char_4
44946 , l_array_reference_date_1
44947 , l_array_reference_date_2
44948 , l_array_reference_date_3
44949 , l_array_reference_date_4
44950 , l_array_event_created_by
44951 , l_array_budgetary_control_flag
44952 , l_array_source_13
44953 , l_array_source_13_meaning
44954 , l_array_source_20
44955 , l_array_source_29
44956 , l_array_source_36
44957 , l_array_source_37
44958 , l_array_source_38
44959 , l_array_source_43
44960 , l_array_source_44
44961 , l_array_source_45
44962 , l_array_source_71
44963 , l_array_source_72
44964 , l_array_source_73
44965 LIMIT l_rows;
44966 --
44967 IF (C_LEVEL_EVENT >= g_log_level) THEN
44968 trace
44969 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
44970 ,p_level => C_LEVEL_EVENT
44971 ,p_module => l_log_module);
44972 END IF;
44973 --
44974 EXIT WHEN l_array_entity_id.COUNT = 0;
44975
44976 -- initialize arrays
44977 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
44978 XLA_AE_LINES_PKG.g_rec_lines := NULL;
44979
44980 --
44981 -- Bug 4458708
44982 --
44983 XLA_AE_LINES_PKG.g_LineNumber := 0;
44984
44985
44986 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
44987 g_last_hdr_idx := l_array_event_id.LAST;
44988 --
44989 -- loop for the headers. Each iteration is for each header extract row
44990 -- fetched in header cursor
44991 --
44992 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
44993
44994 --
44995 -- set event info as cache for other routines to refer event attributes
44996 --
44997 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
44998 (p_application_id => p_application_id
44999 ,p_primary_ledger_id => p_primary_ledger_id
45000 ,p_base_ledger_id => p_base_ledger_id
45001 ,p_target_ledger_id => p_target_ledger_id
45002 ,p_entity_id => l_array_entity_id(hdr_idx)
45003 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
45004 ,p_entity_code => l_array_entity_code(hdr_idx)
45005 ,p_transaction_num => l_array_transaction_num(hdr_idx)
45006 ,p_event_id => l_array_event_id(hdr_idx)
45007 ,p_event_class_code => l_array_class_code(hdr_idx)
45008 ,p_event_type_code => l_array_event_type(hdr_idx)
45009 ,p_event_number => l_array_event_number(hdr_idx)
45010 ,p_event_date => l_array_event_date(hdr_idx)
45011 ,p_transaction_date => l_array_transaction_date(hdr_idx)
45012 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
45013 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
45014 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
45015 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
45016 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
45017 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
45018 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
45019 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
45020 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
45021 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
45022 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
45023 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
45024 ,p_event_created_by => l_array_event_created_by(hdr_idx)
45025 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
45026
45027 --
45028 -- set the status of entry to C_VALID (0)
45029 --
45030 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
45031
45032 --
45033 -- initialize a row for ae header
45034 --
45035 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
45036
45037 l_event_id := l_array_event_id(hdr_idx);
45038
45039 --
45040 -- storing the hdr_idx for event. May be used by line cursor.
45041 --
45042 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
45043
45044 --
45045 -- store sources from header extract. This can be improved to
45046 -- store only those sources from header extract that may be used in lines
45047 --
45048
45049 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
45050 g_array_event(l_event_id).array_value_char('source_13_meaning') := l_array_source_13_meaning(hdr_idx);
45051 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
45052 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
45053 g_array_event(l_event_id).array_value_date('source_36') := l_array_source_36(hdr_idx);
45054 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
45055 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
45056 g_array_event(l_event_id).array_value_num('source_43') := l_array_source_43(hdr_idx);
45057 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
45058 g_array_event(l_event_id).array_value_char('source_45') := l_array_source_45(hdr_idx);
45059 g_array_event(l_event_id).array_value_char('source_71') := l_array_source_71(hdr_idx);
45060 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
45061 g_array_event(l_event_id).array_value_num('source_73') := l_array_source_73(hdr_idx);
45062
45063 --
45064 -- initilaize the status of ae headers for diffrent balance types
45065 -- the status is initialised to C_NOT_CREATED (2)
45066 --
45067 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
45068 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
45069 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
45070
45071 --
45072 -- call api to validate and store accounting attributes for header
45073 --
45074
45075 ------------------------------------------------------------
45076 -- Accrual Reversal : to get date for Standard Source (NONE)
45077 ------------------------------------------------------------
45078 l_acc_rev_gl_date_source := NULL;
45079
45080 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
45081 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_71');
45082 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
45083 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_72');
45084 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
45085 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_73');
45086 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
45087 l_rec_acct_attrs.array_date_value(4) :=
45088 xla_ae_sources_pkg.GetSystemSourceDate(
45089 p_source_code => 'XLA_EVENT_DATE'
45090 , p_source_type_code => 'Y'
45091 , p_source_application_id => 602
45092 );
45093
45094
45095 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
45096
45097 XLA_AE_HEADER_PKG.SetJeCategoryName;
45098
45099 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
45100 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
45101 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
45102 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
45103 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
45104
45105
45106 -- No header level analytical criteria
45107
45108 --
45109 --accounting attribute enhancement, bug 3612931
45110 --
45111 l_trx_reversal_source := SUBSTR(NULL, 1,30);
45112
45113 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
45114 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
45115
45116 xla_accounting_err_pkg.build_message
45117 (p_appli_s_name => 'XLA'
45118 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
45119 ,p_token_1 => 'ACCT_ATTR_NAME'
45120 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
45121 ,p_token_2 => 'PRODUCT_NAME'
45122 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
45123 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
45124 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
45125 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
45126
45127 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
45128 --
45129 -- following sets the accounting attributes needed to reverse
45130 -- accounting for a distributeion
45131 --
45132 xla_ae_lines_pkg.SetTrxReversalAttrs
45133 (p_event_id => l_event_id
45134 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
45135 ,p_trx_reversal_source => l_trx_reversal_source);
45136
45137 END IF;
45138
45139
45140 ----------------------------------------------------------------
45141 -- 4262811 - update the header statuses to invalid in need be
45142 ----------------------------------------------------------------
45143 --
45144 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
45145
45146
45147 -----------------------------------------------
45148 -- No accrual reversal for the event class/type
45149 -----------------------------------------------
45150 ----------------------------------------------------------------
45151
45152 --
45153 -- this ends the header loop iteration for one bulk fetch
45154 --
45155 END LOOP;
45156
45157 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
45158 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
45159
45160 --
45161 -- insert dummy rows into lines gt table that were created due to
45162 -- transaction reversals
45163 --
45164 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
45165 l_result := XLA_AE_LINES_PKG.InsertLines;
45166 END IF;
45167
45168 --
45169 -- reset the temp_line_num for each set of events fetched from header
45170 -- cursor rather than doing it for each new event in line cursor
45171 -- Bug 3939231
45172 --
45173 xla_ae_lines_pkg.g_temp_line_num := 0;
45174
45175
45176
45177 --
45178 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
45179 --
45180 --
45181 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45182
45183 trace
45184 (p_msg => 'SQL - FETCH line_cur'
45185 ,p_level => C_LEVEL_STATEMENT
45186 ,p_module => l_log_module);
45187
45188 END IF;
45189 --
45190 --
45191 LOOP
45192 --
45193 FETCH line_cur BULK COLLECT INTO
45194 l_array_entity_id
45195 , l_array_legal_entity_id
45196 , l_array_entity_code
45197 , l_array_transaction_num
45198 , l_array_event_id
45199 , l_array_class_code
45200 , l_array_event_type
45201 , l_array_event_number
45202 , l_array_event_date
45203 , l_array_transaction_date
45204 , l_array_reference_num_1
45205 , l_array_reference_num_2
45206 , l_array_reference_num_3
45207 , l_array_reference_num_4
45208 , l_array_reference_char_1
45209 , l_array_reference_char_2
45210 , l_array_reference_char_3
45211 , l_array_reference_char_4
45212 , l_array_reference_date_1
45213 , l_array_reference_date_2
45214 , l_array_reference_date_3
45215 , l_array_reference_date_4
45216 , l_array_event_created_by
45217 , l_array_budgetary_control_flag
45218 , l_array_extract_line_num
45219 , l_array_source_1
45220 , l_array_source_2
45221 , l_array_source_4
45222 , l_array_source_5
45223 , l_array_source_6
45224 , l_array_source_15
45225 , l_array_source_17
45226 , l_array_source_19
45227 , l_array_source_21
45228 , l_array_source_22
45229 , l_array_source_23
45230 , l_array_source_24
45231 , l_array_source_25
45232 , l_array_source_26
45233 , l_array_source_27
45234 , l_array_source_28
45235 , l_array_source_30
45236 , l_array_source_31
45237 , l_array_source_32
45238 , l_array_source_33
45239 , l_array_source_34
45240 , l_array_source_39
45241 , l_array_source_40
45242 , l_array_source_41
45243 , l_array_source_42
45244 , l_array_source_42_meaning
45245 , l_array_source_46
45246 , l_array_source_47
45247 , l_array_source_48
45248 , l_array_source_49
45249 , l_array_source_50
45250 , l_array_source_51
45251 , l_array_source_52
45252 , l_array_source_55
45253 , l_array_source_56
45254 , l_array_source_70
45255 LIMIT l_rows;
45256
45257 --
45258 IF (C_LEVEL_EVENT >= g_log_level) THEN
45259 trace
45260 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
45261 ,p_level => C_LEVEL_EVENT
45262 ,p_module => l_log_module);
45263 END IF;
45264 --
45265 EXIT WHEN l_array_entity_id.count = 0;
45266
45267 XLA_AE_LINES_PKG.g_rec_lines := null;
45268
45269 --
45270 -- Bug 4458708
45271 --
45272 XLA_AE_LINES_PKG.g_LineNumber := 0;
45273 --
45274 --
45275
45276 FOR Idx IN 1..l_array_event_id.count LOOP
45277 --
45278 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
45279 --
45280 l_event_id := l_array_event_id(idx); -- 5648433
45281
45282 --
45283 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
45284 --
45285
45286 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
45287 (g_array_event(l_event_id).array_value_num('header_index'))
45288 ,'N'
45289 ) <> 'Y'
45290 THEN
45291 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45292 trace
45293 (p_msg => 'Trancaction revesal option is not Y '
45294 ,p_level => C_LEVEL_STATEMENT
45295 ,p_module => l_log_module);
45296 END IF;
45297
45298 --
45299 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
45300 --
45301 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
45302 --
45303 -- set event info as cache for other routines to refer event attributes
45304 --
45305
45306 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
45307 l_previous_event_id := l_event_id;
45308
45309 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
45310 (p_application_id => p_application_id
45311 ,p_primary_ledger_id => p_primary_ledger_id
45312 ,p_base_ledger_id => p_base_ledger_id
45313 ,p_target_ledger_id => p_target_ledger_id
45314 ,p_entity_id => l_array_entity_id(Idx)
45315 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
45316 ,p_entity_code => l_array_entity_code(Idx)
45317 ,p_transaction_num => l_array_transaction_num(Idx)
45318 ,p_event_id => l_array_event_id(Idx)
45319 ,p_event_class_code => l_array_class_code(Idx)
45320 ,p_event_type_code => l_array_event_type(Idx)
45321 ,p_event_number => l_array_event_number(Idx)
45322 ,p_event_date => l_array_event_date(Idx)
45323 ,p_transaction_date => l_array_transaction_date(Idx)
45324 ,p_reference_num_1 => l_array_reference_num_1(Idx)
45325 ,p_reference_num_2 => l_array_reference_num_2(Idx)
45326 ,p_reference_num_3 => l_array_reference_num_3(Idx)
45327 ,p_reference_num_4 => l_array_reference_num_4(Idx)
45328 ,p_reference_char_1 => l_array_reference_char_1(Idx)
45329 ,p_reference_char_2 => l_array_reference_char_2(Idx)
45330 ,p_reference_char_3 => l_array_reference_char_3(Idx)
45331 ,p_reference_char_4 => l_array_reference_char_4(Idx)
45332 ,p_reference_date_1 => l_array_reference_date_1(Idx)
45333 ,p_reference_date_2 => l_array_reference_date_2(Idx)
45334 ,p_reference_date_3 => l_array_reference_date_3(Idx)
45335 ,p_reference_date_4 => l_array_reference_date_4(Idx)
45336 ,p_event_created_by => l_array_event_created_by(Idx)
45337 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
45338 --
45339 END IF;
45340
45341
45342
45343 --
45344 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
45345
45346 l_acct_reversal_source := SUBSTR(l_array_source_15(Idx), 1,30);
45347
45348 IF l_continue_with_lines THEN
45349 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
45350 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
45351
45352 xla_accounting_err_pkg.build_message
45353 (p_appli_s_name => 'XLA'
45354 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
45355 ,p_token_1 => 'LINE_NUMBER'
45356 ,p_value_1 => l_array_extract_line_num(Idx)
45357 ,p_token_2 => 'PRODUCT_NAME'
45358 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
45359 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
45360 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
45361 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
45362
45363 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
45364 --
45365 -- following sets the accounting attributes needed to reverse
45366 -- accounting for a distributeion
45367 --
45368
45369 --
45370 -- 5217187
45371 --
45372 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
45373 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
45374 g_array_event(l_event_id).array_value_num('header_index'));
45375 --
45376 --
45377
45381 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_26(Idx);
45378 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
45379 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_15(Idx);
45380 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
45382 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
45383 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_17(Idx);
45384 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
45385 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_27(Idx);
45386 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
45387 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_28(Idx);
45388 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
45389 l_rec_rev_acct_attrs.array_char_value(7) := g_array_event(l_event_id).array_value_char('source_29');
45390 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
45391 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_30(Idx);
45392 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
45393 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_31(Idx);
45394 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
45395 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_32(Idx);
45396 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
45397 l_rec_rev_acct_attrs.array_char_value(11) := g_array_event(l_event_id).array_value_char('source_29');
45398 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
45399 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_33(Idx);
45400 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
45401 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_34(Idx);
45402 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
45403 l_rec_rev_acct_attrs.array_char_value(14) := g_array_event(l_event_id).array_value_char('source_45');
45404 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
45405 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_46(Idx);
45406 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
45407 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_17(Idx);
45408 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
45409 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_48(Idx);
45410 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
45411 l_rec_rev_acct_attrs.array_num_value(18) := l_array_source_49(Idx);
45412 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
45413 l_rec_rev_acct_attrs.array_num_value(19) := l_array_source_50(Idx);
45414 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
45415 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_51(Idx);
45416 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
45417 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_52(Idx);
45418
45419
45420 xla_ae_lines_pkg.SetAcctReversalAttrs
45421 (p_event_id => l_event_id
45422 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
45423 ,p_calculate_acctd_flag => l_calculate_acctd_flag
45424 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
45425 END IF;
45426
45427 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
45428 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
45429
45430 --
45431 AcctLineType_58 (
45432 p_application_id => p_application_id
45433 ,p_event_id => l_event_id
45434 ,p_calculate_acctd_flag => l_calculate_acctd_flag
45435 ,p_calculate_g_l_flag => l_calculate_g_l_flag
45436 ,p_actual_flag => l_actual_flag
45437 ,p_balance_type_code => l_balance_type_code
45438 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
45439
45440 , p_source_1 => l_array_source_1(Idx)
45441 , p_source_2 => l_array_source_2(Idx)
45442 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
45443 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
45444 , p_source_15 => l_array_source_15(Idx)
45445 , p_source_17 => l_array_source_17(Idx)
45446 , p_source_19 => l_array_source_19(Idx)
45447 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
45448 , p_source_21 => l_array_source_21(Idx)
45449 , p_source_22 => l_array_source_22(Idx)
45450 , p_source_23 => l_array_source_23(Idx)
45451 , p_source_24 => l_array_source_24(Idx)
45452 , p_source_25 => l_array_source_25(Idx)
45453 , p_source_26 => l_array_source_26(Idx)
45454 , p_source_27 => l_array_source_27(Idx)
45455 , p_source_28 => l_array_source_28(Idx)
45456 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
45457 , p_source_30 => l_array_source_30(Idx)
45458 , p_source_31 => l_array_source_31(Idx)
45459 , p_source_32 => l_array_source_32(Idx)
45460 , p_source_33 => l_array_source_33(Idx)
45461 , p_source_34 => l_array_source_34(Idx)
45462 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
45463 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
45464 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
45465 , p_source_39 => l_array_source_39(Idx)
45466 , p_source_40 => l_array_source_40(Idx)
45467 , p_source_41 => l_array_source_41(Idx)
45468 , p_source_42 => l_array_source_42(Idx)
45469 , p_source_42_meaning => l_array_source_42_meaning(Idx)
45470 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
45471 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
45472 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
45473 , p_source_46 => l_array_source_46(Idx)
45474 , p_source_47 => l_array_source_47(Idx)
45475 , p_source_48 => l_array_source_48(Idx)
45476 , p_source_49 => l_array_source_49(Idx)
45477 , p_source_50 => l_array_source_50(Idx)
45478 , p_source_51 => l_array_source_51(Idx)
45479 , p_source_52 => l_array_source_52(Idx)
45480 , p_source_55 => l_array_source_55(Idx)
45481 , p_source_56 => l_array_source_56(Idx)
45482 , p_source_70 => l_array_source_70(Idx)
45483 );
45484 If(l_balance_type_code = 'A') THEN
45485 l_actual_gain_loss_ref := l_gain_or_loss_ref;
45486 END IF;
45487
45488 --
45489
45490
45491 --
45492 AcctLineType_59 (
45493 p_application_id => p_application_id
45494 ,p_event_id => l_event_id
45495 ,p_calculate_acctd_flag => l_calculate_acctd_flag
45496 ,p_calculate_g_l_flag => l_calculate_g_l_flag
45497 ,p_actual_flag => l_actual_flag
45498 ,p_balance_type_code => l_balance_type_code
45499 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
45500
45501 , p_source_1 => l_array_source_1(Idx)
45502 , p_source_2 => l_array_source_2(Idx)
45503 , p_source_4 => l_array_source_4(Idx)
45504 , p_source_5 => l_array_source_5(Idx)
45505 , p_source_6 => l_array_source_6(Idx)
45506 , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
45507 , p_source_13_meaning => g_array_event(l_event_id).array_value_char('source_13_meaning')
45508 , p_source_15 => l_array_source_15(Idx)
45509 , p_source_17 => l_array_source_17(Idx)
45510 , p_source_19 => l_array_source_19(Idx)
45511 , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
45512 , p_source_21 => l_array_source_21(Idx)
45513 , p_source_22 => l_array_source_22(Idx)
45514 , p_source_23 => l_array_source_23(Idx)
45515 , p_source_24 => l_array_source_24(Idx)
45516 , p_source_25 => l_array_source_25(Idx)
45517 , p_source_26 => l_array_source_26(Idx)
45518 , p_source_27 => l_array_source_27(Idx)
45519 , p_source_28 => l_array_source_28(Idx)
45520 , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
45521 , p_source_30 => l_array_source_30(Idx)
45522 , p_source_31 => l_array_source_31(Idx)
45523 , p_source_32 => l_array_source_32(Idx)
45524 , p_source_33 => l_array_source_33(Idx)
45525 , p_source_34 => l_array_source_34(Idx)
45526 , p_source_36 => g_array_event(l_event_id).array_value_date('source_36')
45527 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
45528 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
45529 , p_source_39 => l_array_source_39(Idx)
45530 , p_source_40 => l_array_source_40(Idx)
45531 , p_source_41 => l_array_source_41(Idx)
45532 , p_source_42 => l_array_source_42(Idx)
45533 , p_source_42_meaning => l_array_source_42_meaning(Idx)
45534 , p_source_43 => g_array_event(l_event_id).array_value_num('source_43')
45535 , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
45536 , p_source_45 => g_array_event(l_event_id).array_value_char('source_45')
45537 , p_source_46 => l_array_source_46(Idx)
45538 , p_source_47 => l_array_source_47(Idx)
45539 , p_source_48 => l_array_source_48(Idx)
45540 , p_source_49 => l_array_source_49(Idx)
45541 , p_source_50 => l_array_source_50(Idx)
45542 , p_source_51 => l_array_source_51(Idx)
45543 , p_source_52 => l_array_source_52(Idx)
45544 , p_source_55 => l_array_source_55(Idx)
45545 , p_source_56 => l_array_source_56(Idx)
45546 , p_source_70 => l_array_source_70(Idx)
45547 );
45548 If(l_balance_type_code = 'A') THEN
45549 l_actual_gain_loss_ref := l_gain_or_loss_ref;
45550 END IF;
45551
45552 --
45553
45554 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
45555 -- or secondary ledger that has different currency with primary
45556 -- or alc that is calculated by sla
45557 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
45558 (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'))
45559
45560 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
45561 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
45562 AND (l_actual_flag = 'A')) THEN
45563 XLA_AE_LINES_PKG.CreateGainOrLossLines(
45564 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
45565 ,p_application_id => p_application_id
45566 ,p_amb_context_code => 'DEFAULT'
45567 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
45568 ,p_event_class_code => C_EVENT_CLASS_CODE
45569 ,p_event_type_code => C_EVENT_TYPE_CODE
45570
45571 ,p_gain_ccid => -1
45572 ,p_loss_ccid => -1
45573
45574 ,p_actual_flag => l_actual_flag
45575 ,p_enc_flag => null
45576 ,p_actual_g_l_ref => l_actual_gain_loss_ref
45577 ,p_enc_g_l_ref => null
45578 );
45579 END IF;
45580 END IF;
45581 END IF;
45582
45583 ELSE
45584 --
45585 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
45586 --
45587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45588 trace
45589 (p_msg => 'Trancaction revesal option is Y'
45590 ,p_level => C_LEVEL_STATEMENT
45591 ,p_module => l_log_module);
45592 END IF;
45593 END IF;
45594
45595 END LOOP;
45596 l_result := XLA_AE_LINES_PKG.InsertLines ;
45597 end loop;
45598 close line_cur;
45599
45600
45601 --
45602 -- insert headers into xla_ae_headers_gt table
45603 --
45604 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
45605
45606 -- insert into errors table here.
45607
45608 END LOOP;
45609
45610 --
45611 -- 4865292
45612 --
45613 -- Compare g_hdr_extract_count with event count in
45614 -- CreateHeadersAndLines.
45615 --
45616 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
45617
45618 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45619 trace (p_msg => '# rows extracted from header extract objects '
45620 || ' (running total): '
45621 || g_hdr_extract_count
45622 ,p_level => C_LEVEL_STATEMENT
45623 ,p_module => l_log_module);
45624 END IF;
45625
45626 CLOSE header_cur;
45627 --
45628
45629 --
45630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45631 trace
45632 (p_msg => 'END of EventClass_63'
45633 ,p_level => C_LEVEL_PROCEDURE
45634 ,p_module => l_log_module);
45635 END IF;
45636 --
45637 RETURN l_result;
45638 EXCEPTION
45639 WHEN xla_exceptions_pkg.application_exception THEN
45640
45641 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
45642
45643
45644 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
45645
45646 RAISE;
45647
45648 WHEN NO_DATA_FOUND THEN
45649
45650 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
45651 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
45652
45653 FOR header_record IN header_cur
45654 LOOP
45655 l_array_header_events(header_record.event_id) := header_record.event_id;
45656 END LOOP;
45657
45658 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
45659 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
45660
45661 fnd_file.put_line(fnd_file.LOG, ' ');
45662 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
45663 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
45664 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
45665
45666 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
45667 LOOP
45668 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
45669 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
45670 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
45671 END IF;
45672 END LOOP;
45673
45674 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
45675 fnd_file.put_line(fnd_file.LOG, ' ');
45676
45677
45678 xla_exceptions_pkg.raise_message
45679 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_63');
45680
45681
45682 WHEN OTHERS THEN
45683 xla_exceptions_pkg.raise_message
45684 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.EventClass_63');
45685 END EventClass_63;
45686 --
45687
45688 --
45689 --+============================================+
45690 --| |
45691 --| PRIVATE FUNCTION |
45692 --| |
45693 --+============================================+
45694 --
45695 FUNCTION CreateHeadersAndLines
45696 (p_application_id IN NUMBER
45697 ,p_base_ledger_id IN NUMBER
45698 ,p_target_ledger_id IN NUMBER
45699 ,p_pad_start_date IN DATE
45700 ,p_pad_end_date IN DATE
45701 ,p_primary_ledger_id IN NUMBER)
45702 RETURN BOOLEAN IS
45703 l_created BOOLEAN:=FALSE;
45704 l_event_id NUMBER;
45705 l_event_date DATE;
45706 l_language VARCHAR2(30);
45707 l_currency_code VARCHAR2(30);
45708 l_sla_ledger_id NUMBER;
45709 l_log_module VARCHAR2(240);
45710
45711 BEGIN
45712 --
45713 IF g_log_enabled THEN
45714 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
45715 END IF;
45716 --
45717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45718 trace
45719 (p_msg => 'BEGIN of CreateHeadersAndLines'
45720 ,p_level => C_LEVEL_PROCEDURE
45721 ,p_module => l_log_module);
45722 END IF;
45723
45724 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
45725 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
45726 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
45727
45728 --
45729 -- initialize array of lines with NULL
45730 --
45731 xla_ae_lines_pkg.SetNullLine;
45732
45733 --
45734 -- initialize header extract count -- Bug 4865292
45735 --
45736 g_hdr_extract_count:= 0;
45737
45738
45739 l_created := EventClass_60(
45740 p_application_id => p_application_id
45741 , p_base_ledger_id => p_base_ledger_id
45742 , p_target_ledger_id => p_target_ledger_id
45743 , p_language => l_language
45744 , p_currency_code => l_currency_code
45745 , p_sla_ledger_id => l_sla_ledger_id
45746 , p_pad_start_date => p_pad_start_date
45747 , p_pad_end_date => p_pad_end_date
45748 , p_primary_ledger_id => p_primary_ledger_id
45749 );
45750
45751
45752
45753 IF ( g_diagnostics_mode ='Y' ) THEN
45754
45755 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45756 trace
45757 (p_msg => 'CALL Transaction Objects Diagnostics'
45758 ,p_level => C_LEVEL_STATEMENT
45759 ,p_module => l_log_module);
45760
45761 END IF;
45762
45763 insert_sources_60(
45764 p_target_ledger_id => p_target_ledger_id
45765 , p_language => l_language
45766 , p_sla_ledger_id => l_sla_ledger_id
45767 , p_pad_start_date => p_pad_start_date
45768 , p_pad_end_date => p_pad_end_date
45769 );
45770
45771 END IF;
45772
45773 l_created := EventClass_61(
45774 p_application_id => p_application_id
45775 , p_base_ledger_id => p_base_ledger_id
45776 , p_target_ledger_id => p_target_ledger_id
45777 , p_language => l_language
45778 , p_currency_code => l_currency_code
45779 , p_sla_ledger_id => l_sla_ledger_id
45780 , p_pad_start_date => p_pad_start_date
45781 , p_pad_end_date => p_pad_end_date
45782 , p_primary_ledger_id => p_primary_ledger_id
45783 );
45784
45785
45786
45787 IF ( g_diagnostics_mode ='Y' ) THEN
45788
45789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45790 trace
45791 (p_msg => 'CALL Transaction Objects Diagnostics'
45792 ,p_level => C_LEVEL_STATEMENT
45793 ,p_module => l_log_module);
45794
45795 END IF;
45796
45797 insert_sources_61(
45798 p_target_ledger_id => p_target_ledger_id
45799 , p_language => l_language
45800 , p_sla_ledger_id => l_sla_ledger_id
45801 , p_pad_start_date => p_pad_start_date
45802 , p_pad_end_date => p_pad_end_date
45803 );
45804
45805 END IF;
45806
45807 l_created := EventClass_62(
45808 p_application_id => p_application_id
45809 , p_base_ledger_id => p_base_ledger_id
45810 , p_target_ledger_id => p_target_ledger_id
45811 , p_language => l_language
45812 , p_currency_code => l_currency_code
45813 , p_sla_ledger_id => l_sla_ledger_id
45814 , p_pad_start_date => p_pad_start_date
45815 , p_pad_end_date => p_pad_end_date
45816 , p_primary_ledger_id => p_primary_ledger_id
45817 );
45818
45819
45820
45821 IF ( g_diagnostics_mode ='Y' ) THEN
45822
45823 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45824 trace
45825 (p_msg => 'CALL Transaction Objects Diagnostics'
45826 ,p_level => C_LEVEL_STATEMENT
45827 ,p_module => l_log_module);
45828
45829 END IF;
45830
45831 insert_sources_62(
45832 p_target_ledger_id => p_target_ledger_id
45833 , p_language => l_language
45834 , p_sla_ledger_id => l_sla_ledger_id
45835 , p_pad_start_date => p_pad_start_date
45836 , p_pad_end_date => p_pad_end_date
45837 );
45838
45839 END IF;
45840
45841 l_created := EventClass_63(
45842 p_application_id => p_application_id
45843 , p_base_ledger_id => p_base_ledger_id
45844 , p_target_ledger_id => p_target_ledger_id
45845 , p_language => l_language
45846 , p_currency_code => l_currency_code
45847 , p_sla_ledger_id => l_sla_ledger_id
45848 , p_pad_start_date => p_pad_start_date
45849 , p_pad_end_date => p_pad_end_date
45850 , p_primary_ledger_id => p_primary_ledger_id
45851 );
45852
45853
45854
45855 IF ( g_diagnostics_mode ='Y' ) THEN
45856
45857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45858 trace
45859 (p_msg => 'CALL Transaction Objects Diagnostics'
45860 ,p_level => C_LEVEL_STATEMENT
45861 ,p_module => l_log_module);
45862
45863 END IF;
45864
45865 insert_sources_63(
45866 p_target_ledger_id => p_target_ledger_id
45867 , p_language => l_language
45868 , p_sla_ledger_id => l_sla_ledger_id
45869 , p_pad_start_date => p_pad_start_date
45870 , p_pad_end_date => p_pad_end_date
45871 );
45872
45873 END IF;
45874
45875
45876 --
45877 -- Bug 4865292
45878 -- When the number of events and that of header extract do not match,
45879 -- set the no header extract flag to indicate there are some issues
45880 -- in header extract.
45881 --
45882 -- Event count context is set in xla_accounting_pkg.unit_processor.
45883 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
45884 -- to report it as a general error.
45885 --
45886 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
45887 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
45888
45889 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45890 trace
45891 (p_msg => '# of extracted headers and events does not match'
45892 ,p_level => C_LEVEL_STATEMENT
45893 ,p_module => l_log_module);
45894
45895 trace
45896 (p_msg => '# of extracted headers: '
45897 ||g_hdr_extract_count
45898 ,p_level => C_LEVEL_STATEMENT
45899 ,p_module => l_log_module);
45900
45901 trace
45902 (p_msg => '# of events in xla_events_gt: '
45903 ||xla_context_pkg.get_event_count_context
45904 ,p_level => C_LEVEL_STATEMENT
45905 ,p_module => l_log_module);
45906
45907 trace
45908 (p_msg => 'Event No Header Extract Context: '
45909 ||xla_context_pkg.get_event_nohdr_context
45910 ,p_level => C_LEVEL_STATEMENT
45911 ,p_module => l_log_module);
45912
45913 END IF;
45914
45915
45916 xla_context_pkg.set_event_nohdr_context
45917 (p_nohdr_extract_flag => 'Y'
45918 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
45919
45920 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45921 trace
45922 (p_msg => 'No Header Extract Flag is set to Y'
45923 ,p_level => C_LEVEL_STATEMENT
45924 ,p_module => l_log_module);
45925 END IF;
45926
45927 END IF;
45928
45929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45930 trace
45931 (p_msg => 'END of CreateHeadersAndLines'
45932 ,p_level => C_LEVEL_PROCEDURE
45933 ,p_module => l_log_module);
45934 END IF;
45935
45936 RETURN l_created;
45937 EXCEPTION
45938 WHEN xla_exceptions_pkg.application_exception THEN
45939 RAISE;
45940 WHEN OTHERS THEN
45941 xla_exceptions_pkg.raise_message
45942 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.CreateHeadersAndLines');
45943 END CreateHeadersAndLines;
45944 --
45945 --
45946
45947 --
45948 --+============================================+
45949 --| |
45950 --| PUBLIC FUNCTION |
45951 --| |
45952 --+============================================+
45953 --
45954 FUNCTION CreateJournalEntries
45955 (p_application_id IN NUMBER
45956 ,p_base_ledger_id IN NUMBER
45957 ,p_pad_start_date IN DATE
45958 ,p_pad_end_date IN DATE
45959 ,p_primary_ledger_id IN NUMBER)
45960 RETURN NUMBER IS
45961 l_log_module VARCHAR2(240);
45962 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
45963 l_temp_result BOOLEAN;
45964 l_result NUMBER;
45965 BEGIN
45966 --
45967 IF g_log_enabled THEN
45968 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
45969 END IF;
45970 --
45971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45972 trace
45973 (p_msg => 'BEGIN of CreateJournalEntries'||
45974 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
45975 ,p_level => C_LEVEL_PROCEDURE
45976 ,p_module => l_log_module);
45977
45978 END IF;
45979
45980 --
45981 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
45982
45983 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
45984 trace
45985 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
45986 ,p_level => C_LEVEL_STATEMENT
45987 ,p_module => l_log_module);
45988 END IF;
45989 --
45990 xla_ae_journal_entry_pkg.SetProductAcctDefinition
45991 (p_product_rule_code => 'FV_PAYABLES_AAD'
45992 ,p_product_rule_type_code => 'S'
45993 ,p_product_rule_version => ''
45994 ,p_product_rule_name => 'Federal Payables AAD'
45995 ,p_amb_context_code => 'DEFAULT'
45996 );
45997
45998 l_array_ledgers :=
45999 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
46000 (p_base_ledger_id => p_base_ledger_id);
46001
46002 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
46003 l_temp_result :=
46004 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
46005 (p_application_id => p_application_id
46006 ,p_base_ledger_id => p_base_ledger_id
46007 ,p_target_ledger_id => l_array_ledgers(Idx)
46008 ,p_primary_ledger_id => p_primary_ledger_id
46009 ,p_pad_start_date => p_pad_start_date
46010 ,p_pad_end_date => p_pad_end_date);
46011
46012 l_temp_result :=
46013 l_temp_result AND
46014 CreateHeadersAndLines
46015 (p_application_id => p_application_id
46016 ,p_base_ledger_id => p_base_ledger_id
46017 ,p_target_ledger_id => l_array_ledgers(Idx)
46018 ,p_pad_start_date => p_pad_start_date
46019 ,p_pad_end_date => p_pad_end_date
46020 ,p_primary_ledger_id => p_primary_ledger_id
46021 );
46022 END LOOP;
46023
46024
46025 IF (g_diagnostics_mode = 'Y' AND
46026 C_LEVEL_UNEXPECTED >= g_log_level AND
46027 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
46028
46029 xla_accounting_dump_pkg.acctg_event_extract_log(
46030 p_application_id => p_application_id
46031 ,p_request_id => xla_environment_pkg.g_Req_Id
46032 );
46033
46034 END IF;
46035
46036 CASE l_temp_result
46037 WHEN TRUE THEN l_result := 0;
46038 ELSE l_result := 2;
46039 END CASE;
46040
46041 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46042 trace
46043 (p_msg => 'return value. = '||TO_CHAR(l_result)
46044 ,p_level => C_LEVEL_PROCEDURE
46045 ,p_module => l_log_module);
46046 trace
46047 (p_msg => 'END of CreateJournalEntries '
46048 ,p_level => C_LEVEL_PROCEDURE
46049 ,p_module => l_log_module);
46050 END IF;
46051
46052 RETURN l_result;
46053 EXCEPTION
46054 WHEN xla_exceptions_pkg.application_exception THEN
46055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46056 trace
46057 (p_msg => 'ERROR. = '||sqlerrm
46058 ,p_level => C_LEVEL_PROCEDURE
46059 ,p_module => l_log_module);
46060 END IF;
46061 RAISE;
46062 WHEN OTHERS THEN
46063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46064 trace
46065 (p_msg => 'ERROR. = '||sqlerrm
46066 ,p_level => C_LEVEL_PROCEDURE
46067 ,p_module => l_log_module);
46068 END IF;
46069 xla_exceptions_pkg.raise_message
46070 (p_location => 'XLA_00200_AAD_S_000012_BC_PKG.CreateJournalEntries');
46071 END CreateJournalEntries;
46072 --
46073 --=============================================================================
46074 --
46075 --
46076 --
46077 --
46078 --
46079 --
46080 --
46081 --
46082 --
46083 --
46084 --
46085 --
46086 --
46087 --
46088 --
46089 --
46090 --
46091 --
46092 --
46093 --
46094 --
46095 --
46096 --=============================================================================
46097 --=============================================================================
46098 -- *********** Initialization routine **********
46099 --=============================================================================
46100
46101 BEGIN
46102 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
46103 g_log_enabled := fnd_log.test
46104 (log_level => g_log_level
46105 ,module => C_DEFAULT_MODULE);
46106
46107 IF NOT g_log_enabled THEN
46108 g_log_level := C_LEVEL_LOG_DISABLED;
46109 END IF;
46110 --
46111 END XLA_00200_AAD_S_000012_BC_PKG;
46112 --